version 1.29, 2011/06/09 14:48:36
|
version 1.30, 2011/06/11 09:36:31
|
Line 66 ajout_variable(struct_processus *s_etat_
|
Line 66 ajout_variable(struct_processus *s_etat_
|
(*(*s_etat_processus).s_arbre_variables).noeuds_utilises = 0; |
(*(*s_etat_processus).s_arbre_variables).noeuds_utilises = 0; |
(*(*s_etat_processus).s_arbre_variables).noeud_pere = NULL; |
(*(*s_etat_processus).s_arbre_variables).noeud_pere = NULL; |
|
|
if (((*(*s_etat_processus).arbre_instructions).noeud = |
if (((*(*s_etat_processus).s_arbre_variables).noeuds = |
malloc((*s_etat_processus).nombre_caracteres_variables |
malloc((*s_etat_processus).nombre_caracteres_variables |
* sizeof(struct_arbre_variables))) == NULL) |
* sizeof(struct_arbre_variables))) == NULL) |
{ |
{ |
Line 137 ajout_variable(struct_processus *s_etat_
|
Line 137 ajout_variable(struct_processus *s_etat_
|
|
|
if ((*l_variable_courante).feuille == NULL) |
if ((*l_variable_courante).feuille == NULL) |
{ |
{ |
|
printf("Nouvelle feuille\n"); |
// Aucune variable de même nom préexiste. On alloue le premier |
// Aucune variable de même nom préexiste. On alloue le premier |
// élément de la liste doublement chaînée contenant toutes les |
// élément de la liste doublement chaînée contenant toutes les |
// variables de même nom. Cette liste boucle en premier lieu sur |
// variables de même nom. Cette liste boucle en premier lieu sur |
Line 527 recherche_variable(struct_processus *s_e
|
Line 528 recherche_variable(struct_processus *s_e
|
if ((*s_etat_processus).s_arbre_variables == NULL) |
if ((*s_etat_processus).s_arbre_variables == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_variable_introuvable; |
(*s_etat_processus).erreur_systeme = d_es_variable_introuvable; |
return d_faux; |
return(d_faux); |
} |
} |
|
|
l_variable_courante = (*s_etat_processus).s_arbre_variables; |
l_variable_courante = (*s_etat_processus).s_arbre_variables; |
Line 540 recherche_variable(struct_processus *s_e
|
Line 541 recherche_variable(struct_processus *s_e
|
if (pointeur < 0) |
if (pointeur < 0) |
{ |
{ |
// Caractère hors de l'alphabet des variables |
// Caractère hors de l'alphabet des variables |
return(d_erreur); |
|
|
(*s_etat_processus).erreur_systeme = d_es_variable_introuvable; |
|
return(d_faux); |
} |
} |
|
|
if ((*l_variable_courante).noeuds[pointeur] == NULL) |
if ((*l_variable_courante).noeuds[pointeur] == NULL) |
{ |
{ |
// Le chemin de la variable candidate n'existe pas. |
// Le chemin de la variable candidate n'existe pas. |
return(d_erreur); |
(*s_etat_processus).erreur_systeme = d_es_variable_introuvable; |
|
return(d_faux); |
} |
} |
|
|
l_variable_courante = (*l_variable_courante).noeuds[pointeur]; |
l_variable_courante = (*l_variable_courante).noeuds[pointeur]; |
Line 564 recherche_variable(struct_processus *s_e
|
Line 568 recherche_variable(struct_processus *s_e
|
{ |
{ |
// Problème : la pile système est vide ! |
// Problème : la pile système est vide ! |
(*s_etat_processus).erreur_systeme = d_es_pile_vide; |
(*s_etat_processus).erreur_systeme = d_es_pile_vide; |
return(d_erreur); |
return(d_faux); |
} |
} |
|
|
while((*l_element_courant).retour_definition != 'Y') |
while((*l_element_courant).retour_definition != 'Y') |
Line 574 recherche_variable(struct_processus *s_e
|
Line 578 recherche_variable(struct_processus *s_e
|
if (l_element_courant == NULL) |
if (l_element_courant == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_pile_vide; |
(*s_etat_processus).erreur_systeme = d_es_pile_vide; |
return(d_erreur); |
return(d_faux); |
} |
} |
} |
} |
|
|
Line 589 recherche_variable(struct_processus *s_e
|
Line 593 recherche_variable(struct_processus *s_e
|
(*(*l_variable_courante).feuille).variable; |
(*(*l_variable_courante).feuille).variable; |
(*s_etat_processus).pointeur_feuille_courante = |
(*s_etat_processus).pointeur_feuille_courante = |
(*l_variable_courante).feuille; |
(*l_variable_courante).feuille; |
return(d_absence_erreur); |
return(d_vrai); |
} |
} |
else |
else |
{ |
{ |
Line 623 recherche_variable(struct_processus *s_e
|
Line 627 recherche_variable(struct_processus *s_e
|
(*l_variable_courante).feuille; |
(*l_variable_courante).feuille; |
} |
} |
|
|
return(d_absence_erreur); |
return(d_vrai); |
} |
} |
} |
} |
} |
} |
|
|
return(d_erreur); |
(*s_etat_processus).erreur_systeme = d_es_variable_introuvable; |
|
return(d_faux); |
} |
} |
|
|
|
|