Diff for /rpl/src/compilation.c between versions 1.74 and 1.87

version 1.74, 2015/01/28 20:58:02 version 1.87, 2017/01/18 15:44:17
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.20    RPL/2 (R) version 4.1.26
   Copyright (C) 1989-2015 Dr. BERTRAND Joël    Copyright (C) 1989-2017 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 997  recherche_instruction_suivante_recursive Line 997  recherche_instruction_suivante_recursive
             (drapeau_fin_objet == d_faux) &&              (drapeau_fin_objet == d_faux) &&
             (erreur_analyse == d_ex) && (erreur_format == d_ex))              (erreur_analyse == d_ex) && (erreur_format == d_ex))
     {      {
 uprintf("%c", *pointeur_caractere_courant);  
         switch(*pointeur_caractere_courant++)          switch(*pointeur_caractere_courant++)
         {          {
             case ']' :              case ']' :
Line 1490  uprintf("%c", *pointeur_caractere_couran Line 1489  uprintf("%c", *pointeur_caractere_couran
                             pointeur_caractere_courant++;                              pointeur_caractere_courant++;
                         }                          }
   
                         if ((*pointeur_caractere_courant) == '>')                          if (((*pointeur_caractere_courant) == '>') &&
                                   ((*(pointeur_caractere_courant - 1)) ==
                                   d_code_espace))
                         {                          {
                             if ((*(++pointeur_caractere_courant)) == '>')                              pointeur_caractere_courant++;
                             {  
                               if ((*pointeur_caractere_courant) == '>')
                               {   // Cas de '>>'
                                 drapeau_fin_objet = d_vrai;                                  drapeau_fin_objet = d_vrai;
                                   pointeur_caractere_courant++;
                                   break;
                             }                              }
                             else                              else if ((*pointeur_caractere_courant) == '=')
                             {                              {   // Cas de '>='
                                   pointeur_caractere_courant++;
                               }
                               else if ((*pointeur_caractere_courant) !=
                                       d_code_espace)
                               {   // Tous les cas différents de '>'
                                 erreur_analyse = d_ex_syntaxe;                                  erreur_analyse = d_ex_syntaxe;
                                   break;
                             }                              }
   
                             pointeur_caractere_courant++;                              pointeur_caractere_courant--;
                             break;  
                         }                          }
   
                         if ((erreur_format == d_absence_erreur) &&                          if ((erreur_format == d_absence_erreur) &&
Line 1640  uprintf("%c", *pointeur_caractere_couran Line 1650  uprintf("%c", *pointeur_caractere_couran
   
         if ((*(pointeur_caractere_courant - 1)) == caractere_fin)          if ((*(pointeur_caractere_courant - 1)) == caractere_fin)
         {          {
 uprintf(" > cas 1");  
             // Cas des objets composites (LST, RPN, TBL)              // Cas des objets composites (LST, RPN, TBL)
             break;              break;
         }          }
         else if ((*pointeur_caractere_courant) == caractere_fin)          else if ((*pointeur_caractere_courant) == caractere_fin)
         {          {
 uprintf(" > cas 2");  
             // Condition pour traiter les cas 123}              // Condition pour traiter les cas 123}
             break;              break;
         }          }
     }      }
 uprintf("\n");  
   
     pointeur_fin_instruction = pointeur_caractere_courant;      pointeur_fin_instruction = pointeur_caractere_courant;
   
Line 1703  uprintf("\n"); Line 1710  uprintf("\n");
         erreur = ((erreur_analyse == d_ex) && (erreur_format == d_ex))          erreur = ((erreur_analyse == d_ex) && (erreur_format == d_ex))
                 ? d_absence_erreur : d_erreur;                  ? d_absence_erreur : d_erreur;
         (*s_etat_processus).erreur_execution = erreur_analyse;          (*s_etat_processus).erreur_execution = erreur_analyse;
   
           if ((*s_etat_processus).erreur_execution == d_ex)
           {
               (*s_etat_processus).erreur_execution = erreur_format;
           }
     }      }
     else      else
     {      {
Line 1712  uprintf("\n"); Line 1724  uprintf("\n");
     (*s_etat_processus).position_courante = pointeur_fin_instruction      (*s_etat_processus).position_courante = pointeur_fin_instruction
             - (*s_etat_processus).definitions_chainees;              - (*s_etat_processus).definitions_chainees;
   
 uprintf("'%s'\n", (*s_etat_processus).instruction_courante);  
     return(erreur);      return(erreur);
 }  }
   

Removed from v.1.74  
changed lines
  Added in v.1.87


CVSweb interface <joel.bertrand@systella.fr>