Diff for /rpl/src/analyse_notation_rpn.c between versions 1.29 and 1.67

version 1.29, 2011/07/25 07:44:52 version 1.67, 2018/05/30 09:27:30
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.2    RPL/2 (R) version 4.1.29
   Copyright (C) 1989-2011 Dr. BERTRAND Joël    Copyright (C) 1989-2018 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 51  analyse_rpn(struct_processus *s_etat_pro Line 51  analyse_rpn(struct_processus *s_etat_pro
     unsigned char                   *registre_instruction;      unsigned char                   *registre_instruction;
     unsigned char                   *registre_programme;      unsigned char                   *registre_programme;
   
     unsigned long                   element_en_cours;      integer8                        element_en_cours;
     unsigned long                   i;      integer8                        i;
     unsigned long                   j;      integer8                        j;
     unsigned long                   nombre_termes;      integer8                        nombre_termes;
     unsigned long                   registre_compteur_programme;      integer8                        registre_compteur_programme;
   
     registre_autorisation_empilement = (*s_etat_processus)      registre_autorisation_empilement = (*s_etat_processus)
             .autorisation_empilement_programme;              .autorisation_empilement_programme;
Line 75  analyse_rpn(struct_processus *s_etat_pro Line 75  analyse_rpn(struct_processus *s_etat_pro
     {      {
         if (recherche_instruction_suivante(s_etat_processus) == d_erreur)          if (recherche_instruction_suivante(s_etat_processus) == d_erreur)
         {          {
               while((*s_etat_processus).l_base_pile != l_ancienne_base_pile)
               {
                   if (depilement(s_etat_processus, &((*s_etat_processus)
                           .l_base_pile), &s_objet) == d_erreur)
                   {
                       return NULL;
                   }
   
                   liberation(s_etat_processus, s_objet);
               }
   
               (*s_etat_processus).position_courante = registre_compteur_programme;
               (*s_etat_processus).definitions_chainees = registre_programme;
               (*s_etat_processus).instruction_courante = registre_instruction;
               (*s_etat_processus).autorisation_empilement_programme =
                       registre_autorisation_empilement;
   
             return NULL;              return NULL;
         }          }
   
           (*s_etat_processus).type_en_cours = NON;
         recherche_type(s_etat_processus);          recherche_type(s_etat_processus);
         free((*s_etat_processus).instruction_courante);          free((*s_etat_processus).instruction_courante);
   

Removed from v.1.29  
changed lines
  Added in v.1.67


CVSweb interface <joel.bertrand@systella.fr>