Diff for /rpl/src/instructions_l1.c between versions 1.53 and 1.54

version 1.53, 2015/11/26 11:44:36 version 1.54, 2015/12/13 22:55:00
Line 44  instruction_list_fleche(struct_processus Line 44  instruction_list_fleche(struct_processus
     struct_objet                    *s_copie_objet;      struct_objet                    *s_copie_objet;
     struct_objet                    *s_objet;      struct_objet                    *s_objet;
   
       unsigned char                   *registre_instruction_courante;
       unsigned char                   registre_instruction_valide;
       unsigned char                   registre_test;
   
     unsigned long                   nombre_elements;      unsigned long                   nombre_elements;
   
     (*s_etat_processus).erreur_execution = d_ex;      (*s_etat_processus).erreur_execution = d_ex;
Line 121  instruction_list_fleche(struct_processus Line 125  instruction_list_fleche(struct_processus
   
     while(l_element_courant != NULL)      while(l_element_courant != NULL)
     {      {
         if (empilement(s_etat_processus, &((*s_etat_processus).l_base_pile),          if ((*(*l_element_courant).donnee).type != FCT)
                 (*l_element_courant).donnee) == d_erreur)  
         {          {
             return;              if (empilement(s_etat_processus, &((*s_etat_processus).l_base_pile),
                       (*l_element_courant).donnee) == d_erreur)
               {
                   return;
               }
           }
           else
           {
               registre_test = (*s_etat_processus).test_instruction;
               registre_instruction_courante = (*s_etat_processus)
                       .instruction_courante;
               registre_instruction_valide = (*s_etat_processus)
                       .instruction_valide;
   
               (*s_etat_processus).test_instruction = 'Y';
               (*s_etat_processus).instruction_courante =
                       (*((struct_fonction *) (*(*l_element_courant).donnee)
                       .objet)).nom_fonction;
   
               analyse(s_etat_processus, NULL);
   
               (*s_etat_processus).test_instruction = registre_test;
               (*s_etat_processus).instruction_courante =
                       registre_instruction_courante;
   
               if (((*s_etat_processus).instruction_valide == 'Y') &&
                       (*s_etat_processus).constante_symbolique == 'Y')
               {
                   if (evaluation(s_etat_processus, (*l_element_courant).donnee,
                           'E') == d_erreur)
                   {
                       (*s_etat_processus).instruction_valide =
                               registre_instruction_valide;
                       return;
                   }
               }
               else
               {
                   if (empilement(s_etat_processus, &((*s_etat_processus)
                           .l_base_pile), (*l_element_courant).donnee) == d_erreur)
                   {
                       (*s_etat_processus).instruction_valide =
                               registre_instruction_valide;
                       return;
                   }
               }
   
               (*s_etat_processus).instruction_valide =
                       registre_instruction_valide;
         }          }
   
         l_element_precedent = l_element_courant;          l_element_precedent = l_element_courant;

Removed from v.1.53  
changed lines
  Added in v.1.54


CVSweb interface <joel.bertrand@systella.fr>