#ifndef TABLE_SYM_H #define TABLE_SYM_H struct symbolEntry { char * symName; unsigned int address; int readOnly; int initialized; // 0 : non , 1: oui, 2: peut-être ^^ unsigned int contextProf; }; // TODO : déclarer liste chainée d'instructions struct instruction { // unsigned int numi; // Numéro d'instruction char *label; // Label de la ligne courante (0 = pas de label) unsigned int opcode; // Code operation (cf table correspondance pour avoir la forme textuelle) unsigned int op1, op2, op3; // Operandes }; struct symbolStackCell { struct symbolEntry *symbol; struct symbolStackCell *next; }; typedef struct symbolStackCell* symbolStack; void symbolPush(symbolStack *symStack, struct symbolEntry *sym); struct symbolEntry * symbolFind(symbolStack symStack, char *symName, int contextMinProf, int contextMaxProf); void printSymTable(symbolStack symStack); void cleanSymStack(symbolStack *symStack, int contextProf); #endif /*TABLE_SYM_H*/