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

version 1.72, 2015/01/27 14:18:05 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 281  compilation(struct_processus *s_etat_pro Line 281  compilation(struct_processus *s_etat_pro
   
                 while(i <= position_fin_nom_definition)                  while(i <= position_fin_nom_definition)
                 {                  {
                       if ((*s_etat_processus).pointeurs_caracteres_variables
                               [(*s_etat_processus).definitions_chainees[i]] < 0)
                       {
                           free(s_variable);
   
                           (*s_etat_processus).erreur_execution = d_ex_syntaxe;
                           return(d_erreur);
                       }
   
                     *(definition++) = (*s_etat_processus)                      *(definition++) = (*s_etat_processus)
                             .definitions_chainees[i++];                              .definitions_chainees[i++];
                 }                  }
Line 290  compilation(struct_processus *s_etat_pro Line 299  compilation(struct_processus *s_etat_pro
                 if (recherche_variable(s_etat_processus, (*s_variable).nom)                  if (recherche_variable(s_etat_processus, (*s_variable).nom)
                         == d_vrai)                          == d_vrai)
                 {                  {
                       free(s_variable);
   
                     if ((*s_etat_processus).langue == 'F')                      if ((*s_etat_processus).langue == 'F')
                     {                      {
                         printf("+++Attention : Plusieurs définitions de"                          printf("+++Attention : Plusieurs définitions de"
Line 311  compilation(struct_processus *s_etat_pro Line 322  compilation(struct_processus *s_etat_pro
                 if ((*s_etat_processus).erreur_systeme != d_es)                  if ((*s_etat_processus).erreur_systeme != d_es)
                 {                  {
                     free(s_variable);                      free(s_variable);
   
                     return(d_erreur);                      return(d_erreur);
                 }                  }
   
Line 1479  recherche_instruction_suivante_recursive Line 1489  recherche_instruction_suivante_recursive
                             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 1659  recherche_instruction_suivante_recursive Line 1680  recherche_instruction_suivante_recursive
             default:              default:
             {              {
                 (*s_etat_processus).erreur_execution = d_ex_syntaxe;                  (*s_etat_processus).erreur_execution = d_ex_syntaxe;
                 return(d_erreur);  //              return(d_erreur);
             }              }
         }          }
     }      }
Line 1689  recherche_instruction_suivante_recursive Line 1710  recherche_instruction_suivante_recursive
         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
     {      {

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


CVSweb interface <joel.bertrand@systella.fr>