--- rpl/src/rpl.h 2011/04/19 07:31:33 1.83 +++ rpl/src/rpl.h 2011/06/17 07:55:59 1.89 @@ -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 @@ -1679,7 +1680,7 @@ typedef struct rpl_arguments #ifndef RPLARGS typedef struct instruction { - struct instruction **noeud; + struct instruction **noeuds; void (*feuille)(struct processus *); } struct_instruction; #endif @@ -1694,7 +1695,9 @@ typedef struct instruction typedef struct arbre_variables { unsigned int noeuds_utilises; - struct arbre_variables **noeud; + signed int indice_tableau_pere; + struct arbre_variables *noeud_pere; + struct arbre_variables **noeuds; struct liste_variables *feuille; } struct_arbre_variables; @@ -1702,10 +1705,13 @@ typedef struct liste_variables { union { + // Utilisation dans la gestion des variables struct_variable *variable; + // Utilisation dans la pile système (variables par niveau) struct_liste_chainee *liste; }; + struct arbre_variables *noeud_pere; struct liste_variables *suivant; struct liste_variables *precedent; } struct_liste_variables; @@ -3110,6 +3116,8 @@ logical1 ecriture_pipe(struct_processus struct_objet *s_objet); logical1 recherche_variable(struct_processus *s_etat_processus, unsigned char *nom_variable); +logical1 recherche_variable_globale(struct_processus *s_etat_processus, + unsigned char *nom_variable); logical1 recherche_variable_partagee(struct_processus *s_etat_processus, unsigned char *nom_variable, union_position_variable position, unsigned char origine);