--- rpl/src/sequenceur.c 2010/02/10 10:14:26 1.5 +++ rpl/src/sequenceur.c 2010/04/07 13:45:10 1.10 @@ -1,6 +1,6 @@ /* ================================================================================ - RPL/2 (R) version 4.0.11 + RPL/2 (R) version 4.0.14 Copyright (C) 1989-2010 Dr. BERTRAND Joël This file is part of RPL/2. @@ -283,8 +283,11 @@ sequenceur(struct_processus *s_etat_proc tampon = (*s_etat_processus).instruction_courante; (*s_etat_processus).instruction_courante = ligne; + recherche_type(s_etat_processus); + (*s_etat_processus).instruction_courante = tampon; + if ((((*s_etat_processus).erreur_execution != d_ex) || ((*s_etat_processus).erreur_systeme != d_es)) && ((*s_etat_processus).invalidation_message_erreur @@ -434,8 +437,6 @@ sequenceur(struct_processus *s_etat_proc (*(*s_etat_processus).l_base_pile_systeme) .retour_definition = tampon_retour; } - - (*s_etat_processus).instruction_courante = tampon; } else if ((*s_etat_processus).invalidation_message_erreur == d_faux) @@ -807,6 +808,28 @@ sequenceur(struct_processus *s_etat_proc (*s_etat_processus).erreur_systeme = d_es; 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; + return(d_erreur); + } + + 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_systeme = + d_es_nom_implicite; + } + } + } + // Le séquenceur est appelé depuis la routine d'évaluation if ((*s_etat_processus).evaluation_forcee == 'Y')