Diff for /rpl/src/instructions_t1.c between versions 1.10 and 1.78

version 1.10, 2010/07/12 15:55:01 version 1.78, 2023/08/07 17:42:58
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.17    RPL/2 (R) version 4.1.35
   Copyright (C) 1989-2010 Dr. BERTRAND Joël    Copyright (C) 1989-2023 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 20 Line 20
 */  */
   
   
 #include "rpl.conv.h"  #include "rpl-conv.h"
   
   
 /*  /*
Line 59  instruction_type(struct_processus *s_eta Line 59  instruction_type(struct_processus *s_eta
         printf("    1: %s, %s, %s, %s, %s, %s,\n"          printf("    1: %s, %s, %s, %s, %s, %s,\n"
                 "       %s, %s, %s, %s, %s,\n"                  "       %s, %s, %s, %s, %s,\n"
                 "       %s, %s, %s, %s, %s,\n"                  "       %s, %s, %s, %s, %s,\n"
                 "       %s, %s, %s, %s\n",                  "       %s, %s, %s, %s,\n"
                   "       %s, %s, %s, %s\n"
                   "       %s\n",
                 d_INT, d_REL, d_CPL, d_VIN, d_VRL, d_VCX, d_MIN, d_MRL, d_MCX,                  d_INT, d_REL, d_CPL, d_VIN, d_VRL, d_VCX, d_MIN, d_MRL, d_MCX,
                 d_TAB,  
                 d_BIN, d_NOM, d_CHN, d_LST, d_ALG, d_RPN, d_FCH, d_SLB, d_SCK,                  d_BIN, d_NOM, d_CHN, d_LST, d_ALG, d_RPN, d_FCH, d_SLB, d_SCK,
                 d_PRC);                  d_PRC, d_TAB, d_SQL, d_MTX, d_SPH, d_REC);
         printf("->  1: %s\n", d_INT);          printf("->  1: %s\n\n", d_INT);
   
           if ((*s_etat_processus).langue == 'F')
           {
               printf("  Valeurs renvoyées : \n\n");
               printf("    0  : scalaire (entier ou réel)\n");
               printf("    1  : complexe\n");
               printf("    2  : chaîne de caractères\n");
               printf("    3  : vecteur ou matrice de scalaires\n");
               printf("    4  : vecteur ou matrice de complexes\n");
               printf("    5  : liste\n");
               printf("    6  : adresse\n");
               printf("    7  : nom\n");
               printf("    8  : expression en notation polonaire inversée\n");
               printf("    9  : expression algébrique\n");
               printf("    10 : entier binaire\n");
               printf("    11 : descripteur de fichier\n");
               printf("    12 : descripteur de bibliothèque partagée\n");
               printf("    13 : descripteur de socket\n");
               printf("    14 : processus\n");
               printf("    15 : fonction\n");
               printf("    16 : table\n");
               printf("    17 : connecteur SQL\n");
               printf("    18 : mutex\n");
               printf("    19 : sémaphore\n");
               printf("    20 : enregistrement\n");
           }
           else
           {
               printf("  Returned values : \n\n");
               printf("    0  : scalar, integer or real number\n");
               printf("    1  : complex\n");
               printf("    2  : string\n");
               printf("    3  : scalar vector or scalar matrix\n");
               printf("    4  : complex vector or complex matrix\n");
               printf("    5  : list\n");
               printf("    6  : address\n");
               printf("    7  : name\n");
               printf("    8  : RPN expression\n");
               printf("    9  : algebraic expression\n");
               printf("    10 : binary integer\n");
               printf("    11 : file descriptor\n");
               printf("    12 : shared library descriptor\n");
               printf("    13 : socket descriptor\n");
               printf("    14 : process\n");
               printf("    15 : function\n");
               printf("    16 : table\n");
               printf("    17 : SQL connector\n");
               printf("    18 : mutex\n");
               printf("    19 : semaphore\n");
               printf("    20 : record\n");
           }
   
         return;          return;
     }      }
Line 168  instruction_type(struct_processus *s_eta Line 220  instruction_type(struct_processus *s_eta
     {      {
         (*((integer8 *) (*s_objet_resultat).objet)) = 16;          (*((integer8 *) (*s_objet_resultat).objet)) = 16;
     }      }
       else if ((*s_objet_argument).type == SQL)
       {
           (*((integer8 *) (*s_objet_resultat).objet)) = 17;
       }
       else if ((*s_objet_argument).type == MTX)
       {
           (*((integer8 *) (*s_objet_resultat).objet)) = 18;
       }
       else if ((*s_objet_argument).type == SPH)
       {
           (*((integer8 *) (*s_objet_resultat).objet)) = 19;
       }
       else if ((*s_objet_argument).type == REC)
       {
           (*((integer8 *) (*s_objet_resultat).objet)) = 20;
       }
       else if ((*s_objet_argument).type == EXT)
       {
           (*((integer8 *) (*s_objet_resultat).objet)) = 21;
       }
     else      else
     {      {
         /*          /*
Line 221  instruction_then(struct_processus *s_eta Line 293  instruction_then(struct_processus *s_eta
     unsigned char                   *instruction_majuscule;      unsigned char                   *instruction_majuscule;
     unsigned char                   *tampon;      unsigned char                   *tampon;
   
     unsigned long                   niveau;      integer8                        niveau;
   
     void                            (*fonction)();      void                            (*fonction)();
   
Line 345  instruction_then(struct_processus *s_eta Line 417  instruction_then(struct_processus *s_eta
         return;          return;
     }      }
   
     if (((*s_objet).type == INT) ||      if (((*s_objet).type == INT) || ((*s_objet).type == REL))
             ((*s_objet).type == REL))  
     {      {
         if ((*s_objet).type == INT)          if ((*s_objet).type == INT)
         {          {
Line 367  instruction_then(struct_processus *s_eta Line 438  instruction_then(struct_processus *s_eta
              * THEN et ELSE ou END.               * THEN et ELSE ou END.
              */               */
   
             if ((*(*s_etat_processus).l_base_pile_systeme).clause !=              if (((*(*s_etat_processus).l_base_pile_systeme).clause ==
                     'K')                      'I') || ((*(*s_etat_processus).l_base_pile_systeme).clause
                       == 'X'))
             {              {
                 (*(*s_etat_processus).l_base_pile_systeme).clause = 'T';                  (*(*s_etat_processus).l_base_pile_systeme).clause = 'T';
             }              }
Line 442  instruction_then(struct_processus *s_eta Line 514  instruction_then(struct_processus *s_eta
                     }                      }
   
                     if ((instruction_majuscule = conversion_majuscule(                      if ((instruction_majuscule = conversion_majuscule(
                               s_etat_processus,
                             (*s_etat_processus).instruction_courante)) == NULL)                              (*s_etat_processus).instruction_courante)) == NULL)
                     {                      {
                         liberation(s_etat_processus, s_objet);                          liberation(s_etat_processus, s_objet);
Line 470  instruction_then(struct_processus *s_eta Line 543  instruction_then(struct_processus *s_eta
                                     "ELSEIF") == 0))                                      "ELSEIF") == 0))
                             {                              {
                                 (*s_etat_processus).position_courante                                  (*s_etat_processus).position_courante
                                         -= (strlen(instruction_majuscule) + 1);                                          -= (integer8) (strlen(
                                           instruction_majuscule) + 1);
                                 drapeau_fin = d_vrai;                                  drapeau_fin = d_vrai;
                             }                              }
                             else                              else

Removed from v.1.10  
changed lines
  Added in v.1.78


CVSweb interface <joel.bertrand@systella.fr>