--- rpl/src/rpl.h 2011/04/14 13:18:54 1.82 +++ rpl/src/rpl.h 2011/04/20 08:26:04 1.84 @@ -922,6 +922,7 @@ pid_t debug_fork(); # define d_ex_clef_inexistante __erreur(80) # define d_ex_nom_implicite __erreur(81) # define d_ex_version_bibliotheque __erreur(82) +# define d_ex_creation_variable_globale __erreur(83) #endif @@ -1693,17 +1694,22 @@ typedef struct instruction #ifndef RPLARGS typedef struct arbre_variables { + unsigned int noeuds_utilises; struct arbre_variables **noeud; - struct_liste_chainee *l_variable; + struct liste_variables *feuille; } struct_arbre_variables; typedef struct liste_variables { - struct_liste_chainee *donnee; - unsigned long niveau; + union + { + struct_variable *variable; + struct_liste_chainee *liste; + }; + struct liste_variables *suivant; struct liste_variables *precedent; -} struct_liste_chainee_circulaire; +} struct_liste_variables; #endif @@ -1827,8 +1833,10 @@ typedef struct processus // l_liste_variables_par_niveau->precedent == l_liste_variables_par_niveau struct_arbre_variables *s_arbre_variables; - struct_liste_chainee_circulaire - *l_liste_variables_par_niveau; + struct_liste_variables *l_liste_variables_par_niveau; + + struct_variable *pointeur_variable_courante; + struct_liste_variables *pointeur_feuille_courante; int *pointeurs_caracteres_variables; int nombre_caracteres_variables; @@ -1842,7 +1850,6 @@ typedef struct processus unsigned long niveau_courant; unsigned long niveau_initial; - struct_variable *pointeur_variable_courante; unsigned long position_variable_statique_courante; logical1 creation_variables_statiques;