#include typedef struct Tab { char *id; /*identificateur*/ int typ, /*normal (0) ou reference paramètre (1) ou struct (2) ou variable de contrôle (3)*/ flags; /*flags les paramètres REF d'une fonction*/ struct Tab *prec; /*enregistrement précedent*/ } Tab; void inserer(char *id, int typ, int dec, int ext, int flags, Tab **stab) { Tab * nouveau=malloc(sizeof (Tab)); nouveau->id=strdup(id); nouveau->typ=typ; nouveau->flags=flags; nouveau->prec=*stab; *stab=nouveau; } void effacer1(Tab **stab) { Tab * premier=*stab; if (premier) { *stab=premier->prec; free(premier); } else printf("Erreur: rien à effacer!\n"); } Tab * rechercher(char *id, Tab *stab) { Tab *ptr=stab; while (ptr && strcmp(id,ptr->id)) ptr=ptr->prec; return ptr; } static Tab *Symboles=0;