version 1.57, 2012/09/29 17:53:02
|
version 1.61, 2012/10/07 08:18:35
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.1.10 |
RPL/2 (R) version 4.1.11 |
Copyright (C) 1989-2012 Dr. BERTRAND Joël |
Copyright (C) 1989-2012 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
Line 956 evaluation(struct_processus *s_etat_proc
|
Line 956 evaluation(struct_processus *s_etat_proc
|
registre_erreur_execution; |
registre_erreur_execution; |
} |
} |
else if (TEST(instruction_for) || |
else if (TEST(instruction_for) || |
|
TEST(instruction_forall) || |
TEST(instruction_start)) |
TEST(instruction_start)) |
{ |
{ |
empilement_pile_systeme( |
empilement_pile_systeme( |
Line 1057 evaluation(struct_processus *s_etat_proc
|
Line 1058 evaluation(struct_processus *s_etat_proc
|
*/ |
*/ |
|
|
presence_compteur = |
presence_compteur = |
|
(((*(*s_etat_processus) |
|
.l_base_pile_systeme) |
|
.type_cloture == 'F') || |
((*(*s_etat_processus) |
((*(*s_etat_processus) |
.l_base_pile_systeme) |
.l_base_pile_systeme) |
.type_cloture == 'F') |
.type_cloture == 'A')) |
? d_vrai : d_faux; |
? d_vrai : d_faux; |
|
|
if (((*(*s_etat_processus) |
if (((*(*s_etat_processus) |
Line 1143 evaluation(struct_processus *s_etat_proc
|
Line 1147 evaluation(struct_processus *s_etat_proc
|
.niveau_courant--; |
.niveau_courant--; |
|
|
if ( |
if ( |
retrait_variable_par_niveau( |
retrait_variables_par_niveau( |
s_etat_processus) == |
s_etat_processus) == d_erreur) |
d_erreur) |
|
{ |
{ |
if (presence_egalite == |
if (presence_egalite == |
d_vrai) |
d_vrai) |
Line 1332 evaluation(struct_processus *s_etat_proc
|
Line 1335 evaluation(struct_processus *s_etat_proc
|
} |
} |
} |
} |
else if (TEST(instruction_for) || |
else if (TEST(instruction_for) || |
|
TEST(instruction_forall) || |
TEST(instruction_start)) |
TEST(instruction_start)) |
{ |
{ |
empilement_pile_systeme( |
empilement_pile_systeme( |
Line 1420 evaluation(struct_processus *s_etat_proc
|
Line 1424 evaluation(struct_processus *s_etat_proc
|
*/ |
*/ |
|
|
presence_compteur = |
presence_compteur = |
|
(((*(*s_etat_processus) |
|
.l_base_pile_systeme) |
|
.type_cloture == 'F') || |
((*(*s_etat_processus) |
((*(*s_etat_processus) |
.l_base_pile_systeme) |
.l_base_pile_systeme) |
.type_cloture == 'F') |
.type_cloture == 'A')) |
? d_vrai : d_faux; |
? d_vrai : d_faux; |
|
|
if (((*(*s_etat_processus) |
if (((*(*s_etat_processus) |
Line 1506 evaluation(struct_processus *s_etat_proc
|
Line 1513 evaluation(struct_processus *s_etat_proc
|
.niveau_courant--; |
.niveau_courant--; |
|
|
if ( |
if ( |
retrait_variable_par_niveau( |
retrait_variables_par_niveau( |
s_etat_processus) == |
s_etat_processus) == d_erreur) |
d_erreur) |
|
{ |
{ |
if (presence_egalite == |
if (presence_egalite == |
d_vrai) |
d_vrai) |
Line 1706 evaluation(struct_processus *s_etat_proc
|
Line 1712 evaluation(struct_processus *s_etat_proc
|
} |
} |
} |
} |
else if (TEST(instruction_for) || |
else if (TEST(instruction_for) || |
|
TEST(instruction_forall) || |
TEST(instruction_start)) |
TEST(instruction_start)) |
{ |
{ |
empilement_pile_systeme( |
empilement_pile_systeme( |
Line 1802 evaluation(struct_processus *s_etat_proc
|
Line 1809 evaluation(struct_processus *s_etat_proc
|
*/ |
*/ |
|
|
presence_compteur = |
presence_compteur = |
|
(((*(*s_etat_processus) |
|
.l_base_pile_systeme) |
|
.type_cloture == 'F') || |
((*(*s_etat_processus) |
((*(*s_etat_processus) |
.l_base_pile_systeme) |
.l_base_pile_systeme) |
.type_cloture == 'F') |
.type_cloture == 'A')) |
? d_vrai : d_faux; |
? d_vrai : d_faux; |
|
|
if (((*(*s_etat_processus) |
if (((*(*s_etat_processus) |
Line 1888 evaluation(struct_processus *s_etat_proc
|
Line 1898 evaluation(struct_processus *s_etat_proc
|
.niveau_courant--; |
.niveau_courant--; |
|
|
if ( |
if ( |
retrait_variable_par_niveau( |
retrait_variables_par_niveau( |
s_etat_processus) == |
s_etat_processus) == d_erreur) |
d_erreur) |
|
{ |
{ |
if (presence_egalite == |
if (presence_egalite == |
d_vrai) |
d_vrai) |
Line 3937 evaluation(struct_processus *s_etat_proc
|
Line 3946 evaluation(struct_processus *s_etat_proc
|
registre_erreur_execution; |
registre_erreur_execution; |
} |
} |
else if (TEST(instruction_for) || |
else if (TEST(instruction_for) || |
|
TEST(instruction_forall) || |
TEST(instruction_start)) |
TEST(instruction_start)) |
{ |
{ |
empilement_pile_systeme( |
empilement_pile_systeme( |
Line 4038 evaluation(struct_processus *s_etat_proc
|
Line 4048 evaluation(struct_processus *s_etat_proc
|
*/ |
*/ |
|
|
presence_compteur = |
presence_compteur = |
|
(((*(*s_etat_processus) |
|
.l_base_pile_systeme) |
|
.type_cloture == 'F') || |
((*(*s_etat_processus) |
((*(*s_etat_processus) |
.l_base_pile_systeme) |
.l_base_pile_systeme) |
.type_cloture == 'F') |
.type_cloture == 'A')) |
? d_vrai : d_faux; |
? d_vrai : d_faux; |
|
|
if (((*(*s_etat_processus) |
if (((*(*s_etat_processus) |
Line 4124 evaluation(struct_processus *s_etat_proc
|
Line 4137 evaluation(struct_processus *s_etat_proc
|
.niveau_courant--; |
.niveau_courant--; |
|
|
if ( |
if ( |
retrait_variable_par_niveau( |
retrait_variables_par_niveau( |
s_etat_processus) == |
s_etat_processus) == d_erreur) |
d_erreur) |
|
{ |
{ |
if (presence_egalite == |
if (presence_egalite == |
d_vrai) |
d_vrai) |
Line 4354 evaluation(struct_processus *s_etat_proc
|
Line 4366 evaluation(struct_processus *s_etat_proc
|
} |
} |
} |
} |
else if (TEST(instruction_for) || |
else if (TEST(instruction_for) || |
|
TEST(instruction_forall) || |
TEST(instruction_start)) |
TEST(instruction_start)) |
{ |
{ |
empilement_pile_systeme( |
empilement_pile_systeme( |
Line 4442 evaluation(struct_processus *s_etat_proc
|
Line 4455 evaluation(struct_processus *s_etat_proc
|
*/ |
*/ |
|
|
presence_compteur = |
presence_compteur = |
|
(((*(*s_etat_processus) |
|
.l_base_pile_systeme) |
|
.type_cloture == 'F') || |
((*(*s_etat_processus) |
((*(*s_etat_processus) |
.l_base_pile_systeme) |
.l_base_pile_systeme) |
.type_cloture == 'F') |
.type_cloture == 'A')) |
? d_vrai : d_faux; |
? d_vrai : d_faux; |
|
|
if (((*(*s_etat_processus) |
if (((*(*s_etat_processus) |
Line 4528 evaluation(struct_processus *s_etat_proc
|
Line 4544 evaluation(struct_processus *s_etat_proc
|
.niveau_courant--; |
.niveau_courant--; |
|
|
if ( |
if ( |
retrait_variable_par_niveau( |
retrait_variables_par_niveau( |
s_etat_processus) == |
s_etat_processus) == d_erreur) |
d_erreur) |
|
{ |
{ |
if (presence_egalite == |
if (presence_egalite == |
d_vrai) |
d_vrai) |
Line 4724 evaluation(struct_processus *s_etat_proc
|
Line 4739 evaluation(struct_processus *s_etat_proc
|
} |
} |
} |
} |
else if (TEST(instruction_for) || |
else if (TEST(instruction_for) || |
|
TEST(instruction_forall) || |
TEST(instruction_start)) |
TEST(instruction_start)) |
{ |
{ |
empilement_pile_systeme( |
empilement_pile_systeme( |
Line 4812 evaluation(struct_processus *s_etat_proc
|
Line 4828 evaluation(struct_processus *s_etat_proc
|
*/ |
*/ |
|
|
presence_compteur = |
presence_compteur = |
|
(((*(*s_etat_processus) |
|
.l_base_pile_systeme) |
|
.type_cloture == 'F') || |
((*(*s_etat_processus) |
((*(*s_etat_processus) |
.l_base_pile_systeme) |
.l_base_pile_systeme) |
.type_cloture == 'F') |
.type_cloture == 'A')) |
? d_vrai : d_faux; |
? d_vrai : d_faux; |
|
|
if (((*(*s_etat_processus) |
if (((*(*s_etat_processus) |
Line 4898 evaluation(struct_processus *s_etat_proc
|
Line 4917 evaluation(struct_processus *s_etat_proc
|
.niveau_courant--; |
.niveau_courant--; |
|
|
if ( |
if ( |
retrait_variable_par_niveau( |
retrait_variables_par_niveau( |
s_etat_processus) == |
s_etat_processus) == d_erreur) |
d_erreur) |
|
{ |
{ |
if (presence_egalite == |
if (presence_egalite == |
d_vrai) |
d_vrai) |
Line 5178 evaluation(struct_processus *s_etat_proc
|
Line 5196 evaluation(struct_processus *s_etat_proc
|
registre_erreur_execution; |
registre_erreur_execution; |
} |
} |
else if (TEST(instruction_for) || |
else if (TEST(instruction_for) || |
|
TEST(instruction_forall) || |
TEST(instruction_start)) |
TEST(instruction_start)) |
{ |
{ |
empilement_pile_systeme( |
empilement_pile_systeme( |
Line 5279 evaluation(struct_processus *s_etat_proc
|
Line 5298 evaluation(struct_processus *s_etat_proc
|
*/ |
*/ |
|
|
presence_compteur = |
presence_compteur = |
|
(((*(*s_etat_processus) |
|
.l_base_pile_systeme) |
|
.type_cloture == 'F') || |
((*(*s_etat_processus) |
((*(*s_etat_processus) |
.l_base_pile_systeme) |
.l_base_pile_systeme) |
.type_cloture == 'F') |
.type_cloture == 'A')) |
? d_vrai : d_faux; |
? d_vrai : d_faux; |
|
|
if (((*(*s_etat_processus) |
if (((*(*s_etat_processus) |
Line 5365 evaluation(struct_processus *s_etat_proc
|
Line 5387 evaluation(struct_processus *s_etat_proc
|
.niveau_courant--; |
.niveau_courant--; |
|
|
if ( |
if ( |
retrait_variable_par_niveau( |
retrait_variables_par_niveau( |
s_etat_processus) == |
s_etat_processus) == d_erreur) |
d_erreur) |
|
{ |
{ |
if (presence_egalite == |
if (presence_egalite == |
d_vrai) |
d_vrai) |
Line 5595 evaluation(struct_processus *s_etat_proc
|
Line 5616 evaluation(struct_processus *s_etat_proc
|
} |
} |
} |
} |
else if (TEST(instruction_for) || |
else if (TEST(instruction_for) || |
|
TEST(instruction_forall) || |
TEST(instruction_start)) |
TEST(instruction_start)) |
{ |
{ |
empilement_pile_systeme( |
empilement_pile_systeme( |
Line 5683 evaluation(struct_processus *s_etat_proc
|
Line 5705 evaluation(struct_processus *s_etat_proc
|
*/ |
*/ |
|
|
presence_compteur = |
presence_compteur = |
|
(((*(*s_etat_processus) |
|
.l_base_pile_systeme) |
|
.type_cloture == 'F') || |
((*(*s_etat_processus) |
((*(*s_etat_processus) |
.l_base_pile_systeme) |
.l_base_pile_systeme) |
.type_cloture == 'F') |
.type_cloture == 'A')) |
? d_vrai : d_faux; |
? d_vrai : d_faux; |
|
|
if (((*(*s_etat_processus) |
if (((*(*s_etat_processus) |
Line 5769 evaluation(struct_processus *s_etat_proc
|
Line 5794 evaluation(struct_processus *s_etat_proc
|
.niveau_courant--; |
.niveau_courant--; |
|
|
if ( |
if ( |
retrait_variable_par_niveau( |
retrait_variables_par_niveau( |
s_etat_processus) == |
s_etat_processus) == d_erreur) |
d_erreur) |
|
{ |
{ |
if (presence_egalite == |
if (presence_egalite == |
d_vrai) |
d_vrai) |
Line 5965 evaluation(struct_processus *s_etat_proc
|
Line 5989 evaluation(struct_processus *s_etat_proc
|
} |
} |
} |
} |
else if (TEST(instruction_for) || |
else if (TEST(instruction_for) || |
|
TEST(instruction_forall) || |
TEST(instruction_start)) |
TEST(instruction_start)) |
{ |
{ |
empilement_pile_systeme( |
empilement_pile_systeme( |
Line 6053 evaluation(struct_processus *s_etat_proc
|
Line 6078 evaluation(struct_processus *s_etat_proc
|
*/ |
*/ |
|
|
presence_compteur = |
presence_compteur = |
|
(((*(*s_etat_processus) |
|
.l_base_pile_systeme) |
|
.type_cloture == 'F') || |
((*(*s_etat_processus) |
((*(*s_etat_processus) |
.l_base_pile_systeme) |
.l_base_pile_systeme) |
.type_cloture == 'F') |
.type_cloture == 'A')) |
? d_vrai : d_faux; |
? d_vrai : d_faux; |
|
|
if (((*(*s_etat_processus) |
if (((*(*s_etat_processus) |
Line 6139 evaluation(struct_processus *s_etat_proc
|
Line 6167 evaluation(struct_processus *s_etat_proc
|
.niveau_courant--; |
.niveau_courant--; |
|
|
if ( |
if ( |
retrait_variable_par_niveau( |
retrait_variables_par_niveau( |
s_etat_processus) == |
s_etat_processus) == d_erreur) |
d_erreur) |
|
{ |
{ |
if (presence_egalite == |
if (presence_egalite == |
d_vrai) |
d_vrai) |
Line 7143 evaluation(struct_processus *s_etat_proc
|
Line 7170 evaluation(struct_processus *s_etat_proc
|
|
|
(*s_etat_processus).niveau_courant = niveau_initial; |
(*s_etat_processus).niveau_courant = niveau_initial; |
|
|
if (retrait_variable_par_niveau(s_etat_processus) == d_erreur) |
if (retrait_variables_par_niveau(s_etat_processus) == d_erreur) |
{ |
{ |
|
if (presence_egalite == d_vrai) |
|
{ |
|
liberation(s_etat_processus, s_objet_evalue); |
|
} |
|
|
|
(*s_etat_processus).instruction_courante = |
|
instruction_courante; |
|
(*s_etat_processus).mode_execution_programme = |
|
registre_mode_execution_programme; |
return(d_erreur); |
return(d_erreur); |
} |
} |
} |
} |
Line 7153 evaluation(struct_processus *s_etat_proc
|
Line 7189 evaluation(struct_processus *s_etat_proc
|
* Retrait des variables statiques créées dans l'expression |
* Retrait des variables statiques créées dans l'expression |
*/ |
*/ |
|
|
for(n = 0; n < (*s_etat_processus).nombre_variables_statiques; n++) |
if (retrait_variables_statiques_locales(s_etat_processus) == d_erreur) |
{ |
{ |
if ((*s_etat_processus).s_liste_variables_statiques[n] |
if (presence_egalite == d_vrai) |
.niveau > (*s_etat_processus).niveau_courant) |
|
{ |
{ |
if (retrait_variable_statique(s_etat_processus, |
liberation(s_etat_processus, s_objet_evalue); |
(*s_etat_processus).s_liste_variables_statiques[n].nom, |
|
(*s_etat_processus).s_liste_variables_statiques[n] |
|
.variable_statique) == d_erreur) |
|
{ |
|
if (presence_egalite == d_vrai) |
|
{ |
|
liberation(s_etat_processus, s_objet_evalue); |
|
} |
|
|
|
(*s_etat_processus).instruction_courante = |
|
instruction_courante; |
|
(*s_etat_processus).mode_execution_programme = |
|
registre_mode_execution_programme; |
|
return(d_erreur); |
|
} |
|
} |
} |
|
|
|
(*s_etat_processus).instruction_courante = |
|
instruction_courante; |
|
(*s_etat_processus).mode_execution_programme = |
|
registre_mode_execution_programme; |
|
return(d_erreur); |
} |
} |
|
|
/* |
/* |