version 1.59, 2012/10/01 11:05:00
|
version 1.60, 2012/10/04 15:21:25
|
Line 585 evaluation(struct_processus *s_etat_proc
|
Line 585 evaluation(struct_processus *s_etat_proc
|
} |
} |
else if (((*s_objet).type == RPN) || ((*s_objet).type == ALG)) |
else if (((*s_objet).type == RPN) || ((*s_objet).type == ALG)) |
{ |
{ |
|
// Ajout d'un bouchon à la liste des variables statiques pour |
|
// savoir quelles sont les variables statiques qui ont été créées |
|
// par l'évaluation de l'expression et qui sont susceptibles |
|
// de devoir être éliminées. |
|
|
|
if (ajout_bouchon_variable_statique(s_etat_processus) == d_erreur) |
|
{ |
|
(*s_etat_processus).instruction_courante = instruction_courante; |
|
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
|
return(d_erreur); |
|
} |
|
|
l_element_courant = (struct_liste_chainee *) (*s_objet).objet; |
l_element_courant = (struct_liste_chainee *) (*s_objet).objet; |
l_element_egalite = NULL; |
l_element_egalite = NULL; |
presence_egalite = d_faux; |
presence_egalite = d_faux; |
Line 1147 evaluation(struct_processus *s_etat_proc
|
Line 1159 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 1514 evaluation(struct_processus *s_etat_proc
|
Line 1525 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 1900 evaluation(struct_processus *s_etat_proc
|
Line 1910 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 4140 evaluation(struct_processus *s_etat_proc
|
Line 4149 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 4548 evaluation(struct_processus *s_etat_proc
|
Line 4556 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 4922 evaluation(struct_processus *s_etat_proc
|
Line 4929 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 5393 evaluation(struct_processus *s_etat_proc
|
Line 5399 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 5801 evaluation(struct_processus *s_etat_proc
|
Line 5806 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 6175 evaluation(struct_processus *s_etat_proc
|
Line 6179 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 7179 evaluation(struct_processus *s_etat_proc
|
Line 7182 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 7189 evaluation(struct_processus *s_etat_proc
|
Line 7201 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(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); |
} |
} |
|
|
/* |
/* |