Diff for /rpl/src/sequenceur.c between versions 1.4 and 1.15

version 1.4, 2010/02/05 19:02:56 version 1.15, 2010/05/05 21:19:24
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.10    RPL/2 (R) version 4.0.15
   Copyright (C) 1989-2010 Dr. BERTRAND Joël    Copyright (C) 1989-2010 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
Line 283  sequenceur(struct_processus *s_etat_proc Line 283  sequenceur(struct_processus *s_etat_proc
   
                     tampon = (*s_etat_processus).instruction_courante;                      tampon = (*s_etat_processus).instruction_courante;
                     (*s_etat_processus).instruction_courante = ligne;                      (*s_etat_processus).instruction_courante = ligne;
   
                     recherche_type(s_etat_processus);                      recherche_type(s_etat_processus);
   
                       (*s_etat_processus).instruction_courante = tampon;
   
                     if ((((*s_etat_processus).erreur_execution != d_ex) ||                      if ((((*s_etat_processus).erreur_execution != d_ex) ||
                             ((*s_etat_processus).erreur_systeme != d_es)) &&                              ((*s_etat_processus).erreur_systeme != d_es)) &&
                             ((*s_etat_processus).invalidation_message_erreur                              ((*s_etat_processus).invalidation_message_erreur
Line 434  sequenceur(struct_processus *s_etat_proc Line 437  sequenceur(struct_processus *s_etat_proc
                         (*(*s_etat_processus).l_base_pile_systeme)                          (*(*s_etat_processus).l_base_pile_systeme)
                                 .retour_definition = tampon_retour;                                  .retour_definition = tampon_retour;
                     }                      }
   
                     (*s_etat_processus).instruction_courante = tampon;  
                 }                  }
                 else if ((*s_etat_processus).invalidation_message_erreur                  else if ((*s_etat_processus).invalidation_message_erreur
                         == d_faux)                          == d_faux)
Line 807  sequenceur(struct_processus *s_etat_proc Line 808  sequenceur(struct_processus *s_etat_proc
                     (*s_etat_processus).erreur_systeme = d_es;                      (*s_etat_processus).erreur_systeme = d_es;
                     recherche_type(s_etat_processus);                      recherche_type(s_etat_processus);
   
                       if ((*s_etat_processus).autorisation_nom_implicite == 'N')
                       {
                           if ((*s_etat_processus).l_base_pile == NULL)
                           {
                               (*s_etat_processus).erreur_execution =
                                       d_ex_manque_argument;
                           }
                           else if ((*(*(*s_etat_processus).l_base_pile).donnee)
                                   .type == NOM)
                           {
                               if ((*((struct_nom *) (*(*(*s_etat_processus)
                                       .l_base_pile).donnee).objet)).symbole
                                       == d_faux)
                               {
                                   (*s_etat_processus).erreur_execution =
                                           d_ex_nom_implicite;
   
                                   // 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)
                                   {
                                       free((*s_etat_processus)
                                               .instruction_courante);
                                       return(d_erreur);
                                   }
                               }
                           }
                       }
   
                     // Le séquenceur est appelé depuis la routine d'évaluation                      // Le séquenceur est appelé depuis la routine d'évaluation
   
                     if ((*s_etat_processus).evaluation_forcee == 'Y')                      if ((*s_etat_processus).evaluation_forcee == 'Y')
Line 853  sequenceur(struct_processus *s_etat_proc Line 886  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.4  
changed lines
  Added in v.1.15


CVSweb interface <joel.bertrand@systella.fr>