Diff for /rpl/src/evaluation.c between versions 1.2 and 1.6

version 1.2, 2010/01/27 22:22:10 version 1.6, 2010/02/10 10:14:19
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.10    RPL/2 (R) version 4.0.11
   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 82  evaluation(struct_processus *s_etat_proc Line 82  evaluation(struct_processus *s_etat_proc
     unsigned char                   *instruction_courante;      unsigned char                   *instruction_courante;
     unsigned char                   *message;      unsigned char                   *message;
     unsigned char                   registre_evaluation_expression_compilee;      unsigned char                   registre_evaluation_expression_compilee;
       unsigned char                   registre_evaluation_forcee;
     unsigned char                   registre_instruction_valide;      unsigned char                   registre_instruction_valide;
     unsigned char                   registre_mode_execution_programme;      unsigned char                   registre_mode_execution_programme;
     unsigned char                   registre_retour_definition;      unsigned char                   registre_retour_definition;
Line 327  evaluation(struct_processus *s_etat_proc Line 328  evaluation(struct_processus *s_etat_proc
                     }                      }
                 }                  }
   
                   registre_evaluation_forcee =
                           (*s_etat_processus).evaluation_forcee;
   
                   if (type_evaluation == 'N')
                   {
                       (*s_etat_processus).evaluation_forcee = 'Y';
                   }
   
                 if (sequenceur(s_etat_processus) == d_erreur)                  if (sequenceur(s_etat_processus) == d_erreur)
                 {                  {
                       (*s_etat_processus).evaluation_forcee =
                               registre_evaluation_forcee;
                     (*s_etat_processus).mode_execution_programme =                      (*s_etat_processus).mode_execution_programme =
                             registre_mode_execution_programme;                              registre_mode_execution_programme;
                     (*s_etat_processus).instruction_courante =                      (*s_etat_processus).instruction_courante =
Line 336  evaluation(struct_processus *s_etat_proc Line 347  evaluation(struct_processus *s_etat_proc
                     return(d_erreur);                      return(d_erreur);
                 }                  }
   
                   (*s_etat_processus).evaluation_forcee =
                           registre_evaluation_forcee;
                 (*s_etat_processus).instruction_courante =                  (*s_etat_processus).instruction_courante =
                         instruction_courante;                          instruction_courante;
                 (*s_etat_processus).mode_execution_programme = 'N';                  (*s_etat_processus).mode_execution_programme = 'N';
Line 2846  evaluation(struct_processus *s_etat_proc Line 2859  evaluation(struct_processus *s_etat_proc
                             }                              }
                         }                          }
   
                           registre_evaluation_forcee =
                                   (*s_etat_processus).evaluation_forcee;
   
                           if (type_evaluation == 'N')
                           {
                               (*s_etat_processus).evaluation_forcee = 'Y';
                           }
   
                         if (sequenceur(s_etat_processus) == d_erreur)                          if (sequenceur(s_etat_processus) == d_erreur)
                         {                          {
                               (*s_etat_processus).evaluation_forcee =
                                       registre_evaluation_forcee;
   
                             if (presence_variable_partagee == d_vrai)                              if (presence_variable_partagee == d_vrai)
                             {                              {
                                 (*s_etat_processus).s_liste_variables                                  (*s_etat_processus).s_liste_variables
Line 2876  evaluation(struct_processus *s_etat_proc Line 2900  evaluation(struct_processus *s_etat_proc
                             return(d_erreur);                              return(d_erreur);
                         }                          }
   
                           (*s_etat_processus).evaluation_forcee =
                                   registre_evaluation_forcee;
                         (*s_etat_processus).instruction_courante =                          (*s_etat_processus).instruction_courante =
                                 instruction_courante;                                  instruction_courante;
                         (*s_etat_processus).mode_execution_programme = 'N';                          (*s_etat_processus).mode_execution_programme = 'N';
Line 3145  evaluation(struct_processus *s_etat_proc Line 3171  evaluation(struct_processus *s_etat_proc
                     registre_test_2 = (*s_etat_processus).test_instruction;                      registre_test_2 = (*s_etat_processus).test_instruction;
                     (*s_etat_processus).test_instruction = 'N';                      (*s_etat_processus).test_instruction = 'N';
   
                       registre_type_evaluation = (test_cfsf(s_etat_processus, 35)
                               == d_vrai) ? 'E' : 'N';
   
                       if (type_evaluation == 'N')
                       {
                           cf(s_etat_processus, 35);
                       }
                       else
                       {
                           sf(s_etat_processus, 35);
                       }
   
                     analyse(s_etat_processus, NULL);                      analyse(s_etat_processus, NULL);
   
                       if (registre_type_evaluation == 'E')
                       {
                           sf(s_etat_processus, 35);
                       }
                       else
                       {
                           cf(s_etat_processus, 35);
                       }
   
                     (*s_etat_processus).test_instruction = registre_test_2;                      (*s_etat_processus).test_instruction = registre_test_2;
   
                     if ((*s_etat_processus).erreur_systeme != d_es)                      if ((*s_etat_processus).erreur_systeme != d_es)
Line 3558  evaluation(struct_processus *s_etat_proc Line 3605  evaluation(struct_processus *s_etat_proc
                             (*s_etat_processus).erreur_execution = d_ex;                              (*s_etat_processus).erreur_execution = d_ex;
   
                             erreur_evaluation = d_erreur;                              erreur_evaluation = d_erreur;
   
                             (*s_etat_processus).expression_courante =  
                                     registre_expression_courante;  
                         }                          }
                         else                          else
                         {                          {
Line 4142  evaluation(struct_processus *s_etat_proc Line 4186  evaluation(struct_processus *s_etat_proc
                             (*s_etat_processus).erreur_execution = d_ex;                              (*s_etat_processus).erreur_execution = d_ex;
   
                             erreur_evaluation = d_erreur;                              erreur_evaluation = d_erreur;
   
                             (*s_etat_processus).expression_courante =  
                                     registre_expression_courante;  
                         }                          }
                         else                          else
                         {                          {
Line 4538  evaluation(struct_processus *s_etat_proc Line 4579  evaluation(struct_processus *s_etat_proc
                             }                              }
                         }                          }
   
                           registre_evaluation_forcee =
                                   (*s_etat_processus).evaluation_forcee;
   
                           if (type_evaluation == 'N')
                           {
                               (*s_etat_processus).evaluation_forcee = 'Y';
                           }
   
                         if (sequenceur(s_etat_processus) == d_erreur)                          if (sequenceur(s_etat_processus) == d_erreur)
                         {                          {
                               (*s_etat_processus).evaluation_forcee =
                                   registre_evaluation_forcee;
   
                             if (presence_egalite == d_vrai)                              if (presence_egalite == d_vrai)
                             {                              {
                                 liberation(s_etat_processus, s_objet_evalue);                                  liberation(s_etat_processus, s_objet_evalue);
Line 4552  evaluation(struct_processus *s_etat_proc Line 4604  evaluation(struct_processus *s_etat_proc
                             return(d_erreur);                              return(d_erreur);
                         }                          }
   
                           (*s_etat_processus).evaluation_forcee =
                               registre_evaluation_forcee;
                         (*s_etat_processus).instruction_courante =                          (*s_etat_processus).instruction_courante =
                                 instruction_courante;                                  instruction_courante;
                         (*s_etat_processus).mode_execution_programme = 'N';                          (*s_etat_processus).mode_execution_programme = 'N';

Removed from v.1.2  
changed lines
  Added in v.1.6


CVSweb interface <joel.bertrand@systella.fr>