--- rpl/src/sequenceur.c 2010/02/01 14:05:03 1.3 +++ rpl/src/sequenceur.c 2010/02/05 19:02:56 1.4 @@ -41,6 +41,7 @@ sequenceur(struct_processus *s_etat_proc struct_liste_chainee *l_element_courant; struct_objet *s_objet; + struct_objet *s_objet_evaluation; struct_objet *s_sous_objet; logical1 drapeau_appel_definition; @@ -805,6 +806,29 @@ sequenceur(struct_processus *s_etat_proc (*s_etat_processus).erreur_systeme = d_es; recherche_type(s_etat_processus); + + // Le séquenceur est appelé depuis la routine d'évaluation + + if ((*s_etat_processus).evaluation_forcee == 'Y') + { + if (depilement(s_etat_processus, + &((*s_etat_processus).l_base_pile), + &s_objet_evaluation) == d_erreur) + { + (*s_etat_processus).erreur_execution = + d_ex_manque_argument; + return(d_erreur); + } + + if (evaluation(s_etat_processus, s_objet_evaluation, + 'N') == d_erreur) + { + liberation(s_etat_processus, s_objet_evaluation); + return(d_erreur); + } + + liberation(s_etat_processus, s_objet_evaluation); + } } } else if (((*s_etat_processus).test_instruction == 'Y') &&