--- rpl/src/evaluation.c 2010/02/05 19:02:56 1.4 +++ rpl/src/evaluation.c 2010/04/07 13:33:22 1.9 @@ -1,6 +1,6 @@ /* ================================================================================ - RPL/2 (R) version 4.0.10 + RPL/2 (R) version 4.0.13 Copyright (C) 1989-2010 Dr. BERTRAND Joël This file is part of RPL/2. @@ -143,6 +143,17 @@ evaluation(struct_processus *s_etat_proc if (recherche_variable(s_etat_processus, (*((struct_nom *) (*s_objet_tampon).objet)).nom) == d_faux) { + if ((*s_etat_processus).autorisation_nom_implicite == 'N') + { + if ((*((struct_nom *) (*s_objet_tampon).objet)).symbole == + d_faux) + { + (*s_etat_processus).erreur_execution = + d_ex_manque_argument; + return(d_erreur); + } + } + (*s_etat_processus).erreur_systeme = d_es; presence_variable = d_faux; } @@ -3171,8 +3182,29 @@ evaluation(struct_processus *s_etat_proc registre_test_2 = (*s_etat_processus).test_instruction; (*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); + if (registre_type_evaluation == 'E') + { + sf(s_etat_processus, 35); + } + else + { + cf(s_etat_processus, 35); + } + (*s_etat_processus).test_instruction = registre_test_2; if ((*s_etat_processus).erreur_systeme != d_es) @@ -4360,6 +4392,18 @@ evaluation(struct_processus *s_etat_proc if (recherche_variable(s_etat_processus, (*((struct_nom *) (*s_objet_elementaire).objet)).nom) == d_faux) { + if ((*s_etat_processus).autorisation_nom_implicite + == 'N') + { + if ((*((struct_nom *) (*s_objet_elementaire).objet)) + .symbole == d_faux) + { + (*s_etat_processus).erreur_systeme = + d_es_nom_implicite; + return(d_erreur); + } + } + (*s_etat_processus).erreur_systeme = d_es; presence_variable = d_faux; }