version 1.64, 2012/12/14 14:19:49
|
version 1.73, 2013/03/06 09:00:26
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.1.11 |
RPL/2 (R) version 4.1.13 |
Copyright (C) 1989-2012 Dr. BERTRAND Joël |
Copyright (C) 1989-2013 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
|
|
Line 98 evaluation(struct_processus *s_etat_proc
|
Line 98 evaluation(struct_processus *s_etat_proc
|
unsigned long niveau_initial; |
unsigned long niveau_initial; |
unsigned long nombre_termes; |
unsigned long nombre_termes; |
unsigned long registre_hauteur_pile_operationnelle; |
unsigned long registre_hauteur_pile_operationnelle; |
unsigned long registre_niveau_courant; |
|
unsigned long registre_position_courante; |
unsigned long registre_position_courante; |
|
|
void (*fonction)(); |
void (*fonction)(); |
Line 187 evaluation(struct_processus *s_etat_proc
|
Line 186 evaluation(struct_processus *s_etat_proc
|
.pointeur_variable_courante).nom, |
.pointeur_variable_courante).nom, |
(*(*s_etat_processus) |
(*(*s_etat_processus) |
.pointeur_variable_courante) |
.pointeur_variable_courante) |
.variable_partagee, 'E') == d_vrai) |
.variable_partagee, 'E') != NULL) |
{ |
{ |
presence_variable = d_vrai; |
presence_variable = d_vrai; |
presence_variable_partagee = d_vrai; |
presence_variable_partagee = d_vrai; |
Line 715 evaluation(struct_processus *s_etat_proc
|
Line 714 evaluation(struct_processus *s_etat_proc
|
registre_retour_definition = (*(*s_etat_processus).l_base_pile_systeme) |
registre_retour_definition = (*(*s_etat_processus).l_base_pile_systeme) |
.retour_definition; |
.retour_definition; |
(*(*s_etat_processus).l_base_pile_systeme).retour_definition = 'N'; |
(*(*s_etat_processus).l_base_pile_systeme).retour_definition = 'N'; |
(*(*s_etat_processus).l_base_pile_systeme).pointeur_adresse_retour = |
|
s_objet; |
|
|
|
l_element_courant = (struct_liste_chainee *) (*s_objet).objet; |
l_element_courant = (struct_liste_chainee *) (*s_objet).objet; |
autorisation_empilement_programme = (*s_etat_processus) |
autorisation_empilement_programme = (*s_etat_processus) |
Line 817 evaluation(struct_processus *s_etat_proc
|
Line 814 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 1252 evaluation(struct_processus *s_etat_proc
|
Line 1250 evaluation(struct_processus *s_etat_proc
|
/* |
/* |
* Reprise sur erreur |
* Reprise sur erreur |
*/ |
*/ |
|
uprintf("<IFERR 2>\n"); |
|
|
while(l_element_courant != NULL) |
while(l_element_courant != NULL) |
{ |
{ |
Line 2313 evaluation(struct_processus *s_etat_proc
|
Line 2312 evaluation(struct_processus *s_etat_proc
|
.pointeur_variable_courante).nom, |
.pointeur_variable_courante).nom, |
(*(*s_etat_processus) |
(*(*s_etat_processus) |
.pointeur_variable_courante).variable_partagee, |
.pointeur_variable_courante).variable_partagee, |
'E') == d_vrai) |
'E') != NULL) |
{ |
{ |
// Une variable partagée existe. |
// Une variable partagée existe. |
|
|
Line 3799 evaluation(struct_processus *s_etat_proc
|
Line 3798 evaluation(struct_processus *s_etat_proc
|
* 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 evaluation(struct_processus *s_etat_proc
|
Line 4271 evaluation(struct_processus *s_etat_proc
|
* 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 5049 evaluation(struct_processus *s_etat_proc
|
Line 5050 evaluation(struct_processus *s_etat_proc
|
* 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 5521 evaluation(struct_processus *s_etat_proc
|
Line 5523 evaluation(struct_processus *s_etat_proc
|
* 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 6241 evaluation(struct_processus *s_etat_proc
|
Line 6244 evaluation(struct_processus *s_etat_proc
|
registre_mode_execution_programme; |
registre_mode_execution_programme; |
(*s_etat_processus).instruction_courante = |
(*s_etat_processus).instruction_courante = |
instruction_courante; |
instruction_courante; |
|
|
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 6339 evaluation(struct_processus *s_etat_proc
|
Line 6341 evaluation(struct_processus *s_etat_proc
|
.pointeur_variable_courante).nom, |
.pointeur_variable_courante).nom, |
(*(*s_etat_processus) |
(*(*s_etat_processus) |
.pointeur_variable_courante) |
.pointeur_variable_courante) |
.variable_partagee, 'E') == d_vrai) |
.variable_partagee, 'E') != NULL) |
{ |
{ |
presence_variable = d_vrai; |
presence_variable = d_vrai; |
presence_variable_partagee = d_vrai; |
presence_variable_partagee = d_vrai; |
Line 6544 evaluation(struct_processus *s_etat_proc
|
Line 6546 evaluation(struct_processus *s_etat_proc
|
} |
} |
|
|
(*s_etat_processus).evaluation_forcee = |
(*s_etat_processus).evaluation_forcee = |
registre_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 6679 evaluation(struct_processus *s_etat_proc
|
Line 6681 evaluation(struct_processus *s_etat_proc
|
} |
} |
} |
} |
|
|
registre_niveau_courant = (*(*s_etat_processus) |
empilement_pile_systeme(s_etat_processus); |
.l_base_pile_systeme).niveau_courant; |
|
registre_retour_definition = |
|
(*(*s_etat_processus) |
|
.l_base_pile_systeme).retour_definition; |
|
|
|
(*(*s_etat_processus).l_base_pile_systeme) |
(*(*s_etat_processus).l_base_pile_systeme) |
.retour_definition = 'Y'; |
.retour_definition = 'Y'; |
(*(*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); |
(*(*s_etat_processus).l_base_pile_systeme) |
|
.pointeur_objet_retour = |
|
l_element_courant; |
|
(*(*s_etat_processus).l_base_pile_systeme) |
|
.origine_routine_evaluation = 'Y'; |
|
|
if (evaluation(s_etat_processus, |
if (evaluation(s_etat_processus, |
(*(*s_etat_processus) |
(*(*s_etat_processus) |
Line 6699 evaluation(struct_processus *s_etat_proc
|
Line 6701 evaluation(struct_processus *s_etat_proc
|
{ |
{ |
depilement_pile_systeme(s_etat_processus); |
depilement_pile_systeme(s_etat_processus); |
|
|
(*(*s_etat_processus).l_base_pile_systeme) |
|
.niveau_courant = |
|
registre_niveau_courant; |
|
(*(*s_etat_processus).l_base_pile_systeme) |
|
.retour_definition = |
|
registre_retour_definition; |
|
|
|
if ((*s_etat_processus).profilage == d_vrai) |
if ((*s_etat_processus).profilage == d_vrai) |
{ |
{ |
profilage(s_etat_processus, NULL); |
profilage(s_etat_processus, NULL); |
Line 6729 evaluation(struct_processus *s_etat_proc
|
Line 6724 evaluation(struct_processus *s_etat_proc
|
} |
} |
|
|
depilement_pile_systeme(s_etat_processus); |
depilement_pile_systeme(s_etat_processus); |
|
|
(*(*s_etat_processus).l_base_pile_systeme) |
|
.niveau_courant = |
|
registre_niveau_courant; |
|
(*(*s_etat_processus).l_base_pile_systeme) |
|
.retour_definition = |
|
registre_retour_definition; |
|
} |
} |
else |
else |
{ |
{ |
Line 6859 evaluation(struct_processus *s_etat_proc
|
Line 6847 evaluation(struct_processus *s_etat_proc
|
.pointeur_variable_courante).nom, |
.pointeur_variable_courante).nom, |
(*(*s_etat_processus) |
(*(*s_etat_processus) |
.pointeur_variable_courante) |
.pointeur_variable_courante) |
.variable_partagee, 'E') == d_vrai) |
.variable_partagee, 'E') != NULL) |
{ |
{ |
liberation(s_etat_processus, |
liberation(s_etat_processus, |
s_objet_elementaire); |
s_objet_elementaire); |