Diff for /rpl/src/evaluation.c between versions 1.73 and 1.75

version 1.73, 2013/03/06 09:00:26 version 1.75, 2013/03/20 17:11:43
Line 48  evaluation(struct_processus *s_etat_proc Line 48  evaluation(struct_processus *s_etat_proc
 {  {
     integer8                        i;      integer8                        i;
     integer8                        j;      integer8                        j;
       integer8                        k;
       integer8                        l;
       integer8                        niveau_initial;
       integer8                        nombre_termes;
       integer8                        registre_hauteur_pile_operationnelle;
       integer8                        registre_position_courante;
   
   
     logical1                        drapeau_then;      logical1                        drapeau_then;
     logical1                        erreur_evaluation;      logical1                        erreur_evaluation;
Line 89  evaluation(struct_processus *s_etat_proc Line 96  evaluation(struct_processus *s_etat_proc
     unsigned char                   registre_test_2;      unsigned char                   registre_test_2;
     unsigned char                   registre_type_evaluation;      unsigned char                   registre_type_evaluation;
   
     unsigned int                    registre_erreur_execution;      int                             registre_erreur_execution;
     unsigned int                    registre_erreur_systeme;      int                             registre_erreur_systeme;
     unsigned int                    registre_exception;      int                             registre_exception;
   
     unsigned long                   k;  
     unsigned long                   l;  
     unsigned long                   niveau_initial;  
     unsigned long                   nombre_termes;  
     unsigned long                   registre_hauteur_pile_operationnelle;  
     unsigned long                   registre_position_courante;  
   
     void                            (*fonction)();      void                            (*fonction)();
   
Line 291  evaluation(struct_processus *s_etat_proc Line 291  evaluation(struct_processus *s_etat_proc
                 if (presence_variable_partagee == d_faux)                  if (presence_variable_partagee == d_faux)
                 {                  {
                     (*s_etat_processus).position_courante =                      (*s_etat_processus).position_courante =
                             (*((unsigned long *) ((*(*(*s_etat_processus)                              (*((integer8 *) ((*(*(*s_etat_processus)
                             .pointeur_variable_courante).objet).objet)));                              .pointeur_variable_courante).objet).objet)));
                 }                  }
                 else                  else
                 {                  {
                     (*s_etat_processus).position_courante =                      (*s_etat_processus).position_courante =
                             (*((unsigned long *) (*s_copie_variable_partagee)                              (*((integer8 *) (*s_copie_variable_partagee)
                             .objet));                              .objet));
                     liberation(s_etat_processus, s_copie_variable_partagee);                      liberation(s_etat_processus, s_copie_variable_partagee);
                 }                  }
Line 324  evaluation(struct_processus *s_etat_proc Line 324  evaluation(struct_processus *s_etat_proc
   
                 if (sequenceur(s_etat_processus) == d_erreur)                  if (sequenceur(s_etat_processus) == d_erreur)
                 {                  {
                       depilement_pile_systeme(s_etat_processus);
   
                     (*s_etat_processus).evaluation_forcee =                      (*s_etat_processus).evaluation_forcee =
                             registre_evaluation_forcee;                              registre_evaluation_forcee;
                     (*s_etat_processus).mode_execution_programme =                      (*s_etat_processus).mode_execution_programme =
Line 409  evaluation(struct_processus *s_etat_proc Line 411  evaluation(struct_processus *s_etat_proc
                         .niveau_courant = (*s_etat_processus)                          .niveau_courant = (*s_etat_processus)
                         .niveau_courant;                          .niveau_courant;
   
                 empilement_pile_systeme(s_etat_processus);                  // ICI
                   //empilement_pile_systeme(s_etat_processus);
   
                 if (presence_variable_partagee == d_faux)                  if (presence_variable_partagee == d_faux)
                 {                  {
Line 422  evaluation(struct_processus *s_etat_proc Line 425  evaluation(struct_processus *s_etat_proc
                             profilage(s_etat_processus, NULL);                              profilage(s_etat_processus, NULL);
                         }                          }
   
                           depilement_pile_systeme(s_etat_processus);
   
                         (*s_etat_processus).evaluation_expression_compilee =                          (*s_etat_processus).evaluation_expression_compilee =
                                 registre_evaluation_expression_compilee;                                  registre_evaluation_expression_compilee;
   
Line 444  evaluation(struct_processus *s_etat_proc Line 449  evaluation(struct_processus *s_etat_proc
                             profilage(s_etat_processus, NULL);                              profilage(s_etat_processus, NULL);
                         }                          }
   
                           depilement_pile_systeme(s_etat_processus);
   
                         (*s_etat_processus).evaluation_expression_compilee =                          (*s_etat_processus).evaluation_expression_compilee =
                                 registre_evaluation_expression_compilee;                                  registre_evaluation_expression_compilee;
   
Line 463  evaluation(struct_processus *s_etat_proc Line 470  evaluation(struct_processus *s_etat_proc
                 }                  }
   
                 depilement_pile_systeme(s_etat_processus);                  depilement_pile_systeme(s_etat_processus);
                 depilement_pile_systeme(s_etat_processus);  
   
                 if ((*s_etat_processus).erreur_systeme != d_es)                  if ((*s_etat_processus).erreur_systeme != d_es)
                 {                  {
Line 814  evaluation(struct_processus *s_etat_proc Line 820  evaluation(struct_processus *s_etat_proc
                     {                      {
                         if ((*s_etat_processus).arret_si_exception == d_faux)                          if ((*s_etat_processus).arret_si_exception == d_faux)
                         {                          {
 uprintf("<IFERR 1>\n");  
                             /*                              /*
                              * Reprise sur erreur                               * Reprise sur erreur
                              */                               */
Line 1250  uprintf("<IFERR 1>\n"); Line 1255  uprintf("<IFERR 1>\n");
                             /*                              /*
                              * Reprise sur erreur                               * Reprise sur erreur
                              */                               */
 uprintf("<IFERR 2>\n");  
   
                             while(l_element_courant != NULL)                              while(l_element_courant != NULL)
                             {                              {
Line 3383  uprintf("<IFERR 2>\n"); Line 3387  uprintf("<IFERR 2>\n");
                                 liberation(s_etat_processus, s_objet_evalue);                                  liberation(s_etat_processus, s_objet_evalue);
                             }                              }
   
                               depilement_pile_systeme(s_etat_processus);
   
                             (*s_etat_processus).instruction_courante =                              (*s_etat_processus).instruction_courante =
                                     instruction_courante;                                      instruction_courante;
                             return(d_erreur);                              return(d_erreur);
Line 3402  uprintf("<IFERR 2>\n"); Line 3408  uprintf("<IFERR 2>\n");
                                 .niveau_courant;                                  .niveau_courant;
   
                         (*s_etat_processus).position_courante =                          (*s_etat_processus).position_courante =
                                 (*((unsigned long *)                                  (*((integer8 *) ((*(*(*s_etat_processus)
                                 ((*(*(*s_etat_processus)  
                                 .pointeur_variable_courante).objet).objet)));                                  .pointeur_variable_courante).objet).objet)));
   
                         if ((*s_etat_processus).profilage == d_vrai)                          if ((*s_etat_processus).profilage == d_vrai)
Line 3467  uprintf("<IFERR 2>\n"); Line 3472  uprintf("<IFERR 2>\n");
                                 liberation(s_etat_processus, s_objet_evalue);                                  liberation(s_etat_processus, s_objet_evalue);
                             }                              }
   
                               depilement_pile_systeme(s_etat_processus);
   
                             (*s_etat_processus).instruction_courante =                              (*s_etat_processus).instruction_courante =
                                     instruction_courante;                                      instruction_courante;
                             (*s_etat_processus).mode_execution_programme =                              (*s_etat_processus).mode_execution_programme =
Line 3798  uprintf("<IFERR 2>\n"); Line 3805  uprintf("<IFERR 2>\n");
                              * Reprise sur erreur                               * Reprise sur erreur
                              */                               */
   
 uprintf("<IFERR 3>\n");  
                             if ((message = messages(s_etat_processus)) == NULL)                              if ((message = messages(s_etat_processus)) == NULL)
                             {                              {
                                 if (presence_egalite == d_vrai)                                  if (presence_egalite == d_vrai)
Line 4271  uprintf("<IFERR 3>\n"); Line 4277  uprintf("<IFERR 3>\n");
                              * Reprise sur erreur                               * Reprise sur erreur
                              */                               */
   
 uprintf("<IFERR 4>\n");  
                             while(l_element_courant != NULL)                              while(l_element_courant != NULL)
                             {                              {
                                 if ((*(*l_element_courant).donnee).type == FCT)                                  if ((*(*l_element_courant).donnee).type == FCT)
Line 5050  uprintf("<IFERR 4>\n"); Line 5055  uprintf("<IFERR 4>\n");
                              * Reprise sur erreur                               * Reprise sur erreur
                              */                               */
   
 uprintf("<IFERR 5>\n");  
                             if ((message = messages(s_etat_processus)) == NULL)                              if ((message = messages(s_etat_processus)) == NULL)
                             {                              {
                                 if (presence_egalite == d_vrai)                                  if (presence_egalite == d_vrai)
Line 5523  uprintf("<IFERR 5>\n"); Line 5527  uprintf("<IFERR 5>\n");
                              * Reprise sur erreur                               * Reprise sur erreur
                              */                               */
   
 uprintf("<IFERR 6>\n");  
                             while(l_element_courant != NULL)                              while(l_element_courant != NULL)
                             {                              {
                                 if ((*(*l_element_courant).donnee).type == FCT)                                  if ((*(*l_element_courant).donnee).type == FCT)
Line 6493  uprintf("<IFERR 6>\n"); Line 6496  uprintf("<IFERR 6>\n");
                             if (presence_variable_partagee == d_faux)                              if (presence_variable_partagee == d_faux)
                             {                              {
                                 (*s_etat_processus).position_courante =                                  (*s_etat_processus).position_courante =
                                         (*((unsigned long *)                                          (*((integer8 *)
                                         ((*(*(*s_etat_processus)                                          ((*(*(*s_etat_processus)
                                         .pointeur_variable_courante)                                          .pointeur_variable_courante)
                                         .objet).objet)));                                          .objet).objet)));
Line 6501  uprintf("<IFERR 6>\n"); Line 6504  uprintf("<IFERR 6>\n");
                             else                              else
                             {                              {
                                 (*s_etat_processus).position_courante =                                  (*s_etat_processus).position_courante =
                                         (*((unsigned long *)                                          (*((integer8 *)
                                         (*s_copie_variable_partagee).objet));                                          (*s_copie_variable_partagee).objet));
                                 liberation(s_etat_processus,                                  liberation(s_etat_processus,
                                         s_copie_variable_partagee);                                          s_copie_variable_partagee);
Line 6538  uprintf("<IFERR 6>\n"); Line 6541  uprintf("<IFERR 6>\n");
                                             s_objet_evalue);                                              s_objet_evalue);
                                 }                                  }
   
                                   depilement_pile_systeme(s_etat_processus);
   
                                 (*s_etat_processus).instruction_courante =                                  (*s_etat_processus).instruction_courante =
                                         instruction_courante;                                          instruction_courante;
                                 (*s_etat_processus).mode_execution_programme =                                  (*s_etat_processus).mode_execution_programme =
Line 6746  uprintf("<IFERR 6>\n"); Line 6751  uprintf("<IFERR 6>\n");
                                 (*(*s_etat_processus).l_base_pile_systeme)                                  (*(*s_etat_processus).l_base_pile_systeme)
                                         .niveau_courant = (*s_etat_processus)                                          .niveau_courant = (*s_etat_processus)
                                         .niveau_courant;                                          .niveau_courant;
                                 empilement_pile_systeme(s_etat_processus);  
   
                                 if (evaluation(s_etat_processus,                                  if (evaluation(s_etat_processus,
                                         s_copie_variable_partagee,                                          s_copie_variable_partagee,
                                         type_evaluation) == d_erreur)                                          type_evaluation) == d_erreur)
                                 {                                  {
                                     depilement_pile_systeme(s_etat_processus);                                      depilement_pile_systeme(s_etat_processus);
                                     depilement_pile_systeme(s_etat_processus);  
   
                                     liberation(s_etat_processus,                                      liberation(s_etat_processus,
                                             s_copie_variable_partagee);                                              s_copie_variable_partagee);
Line 6781  uprintf("<IFERR 6>\n"); Line 6784  uprintf("<IFERR 6>\n");
                                 }                                  }
   
                                 depilement_pile_systeme(s_etat_processus);                                  depilement_pile_systeme(s_etat_processus);
                                 depilement_pile_systeme(s_etat_processus);  
   
                                 liberation(s_etat_processus,                                  liberation(s_etat_processus,
                                         s_copie_variable_partagee);                                          s_copie_variable_partagee);

Removed from v.1.73  
changed lines
  Added in v.1.75


CVSweb interface <joel.bertrand@systella.fr>