Diff for /rpl/src/sequenceur.c between versions 1.11 and 1.12

version 1.11, 2010/04/17 18:57:36 version 1.12, 2010/04/20 12:49:18
Line 19 Line 19
 ================================================================================  ================================================================================
 */  */
   
   #define DEBUG_RETURN
 #include "rpl.conv.h"  #include "rpl.conv.h"
   
   
Line 814  sequenceur(struct_processus *s_etat_proc Line 814  sequenceur(struct_processus *s_etat_proc
                         {                          {
                             (*s_etat_processus).erreur_execution =                              (*s_etat_processus).erreur_execution =
                                     d_ex_manque_argument;                                      d_ex_manque_argument;
                             return(d_erreur);  
                         }                          }
                           else if ((*(*(*s_etat_processus).l_base_pile).donnee)
                         if ((*(*(*s_etat_processus).l_base_pile).donnee).type                                  .type == NOM)
                                 == NOM)  
                         {                          {
                             if ((*((struct_nom *) (*(*(*s_etat_processus)                              if ((*((struct_nom *) (*(*(*s_etat_processus)
                                     .l_base_pile).donnee).objet)).symbole                                      .l_base_pile).donnee).objet)).symbole
                                     == d_faux)                                      == d_faux)
                             {                              {
                                 if (depilement(s_etat_processus,                                  (*s_etat_processus).erreur_execution =
                                         &((*s_etat_processus).l_base_pile),                                          d_ex_nom_implicite;
                                         &s_objet_evaluation) == d_erreur)  
                                   // Si le niveau de récursivité est non nul, on
                                   // arrive ici depuis la fonction
                                   // recherche_type(). On retourne à cette
                                   // dernière en indiquant une erreur.
   
                                   if ((*s_etat_processus).niveau_recursivite != 0)
                                 {                                  {
                                     (*s_etat_processus).erreur_execution =                                      free((*s_etat_processus)
                                             d_ex_manque_argument;                                              .instruction_courante);
                                     return(d_erreur);                                      return(d_erreur);
                                 }                                  }
   
                                 liberation(s_etat_processus,  
                                         s_objet_evaluation);  
                                 free((*s_etat_processus).instruction_courante);  
   
                                 (*s_etat_processus).erreur_execution =  
                                         d_ex_manque_argument;  
                                 return(d_erreur);  
                             }                              }
                         }                          }
                     }                      }
Line 854  sequenceur(struct_processus *s_etat_proc Line 850  sequenceur(struct_processus *s_etat_proc
                         {                          {
                             (*s_etat_processus).erreur_execution =                              (*s_etat_processus).erreur_execution =
                                     d_ex_manque_argument;                                      d_ex_manque_argument;
   ////////////////////////////////////////////////////////////////////////////////
                             return(d_erreur);                              return(d_erreur);
                         }                          }
   
Line 890  sequenceur(struct_processus *s_etat_proc Line 887  sequenceur(struct_processus *s_etat_proc
                         != 0) && (strcmp((*s_etat_processus)                          != 0) && (strcmp((*s_etat_processus)
                         .instruction_courante, ">>") != 0))                          .instruction_courante, ">>") != 0))
                 {                  {
                     if ((s_objet = (struct_objet *) malloc(                      if ((s_objet = allocation(s_etat_processus, FCT)) == NULL)
                             sizeof(struct_objet))) == NULL)  
                     {  
                         (*s_etat_processus).erreur_systeme =  
                                 d_es_allocation_memoire;  
                         return(d_erreur);  
                     }  
   
                     initialisation_objet(s_objet);  
                     (*s_objet).type = FCT;  
   
                     if (((*s_objet).objet = allocation(s_etat_processus, FCT))  
                             == NULL)  
                     {                      {
                         (*s_etat_processus).erreur_systeme =                          (*s_etat_processus).erreur_systeme =
                                 d_es_allocation_memoire;                                  d_es_allocation_memoire;

Removed from v.1.11  
changed lines
  Added in v.1.12


CVSweb interface <joel.bertrand@systella.fr>