Problema de checagem de tipos resolvido; mais globais eliminadas; e geracao de grafo...
[toypasc.git] / symbol_table.h
blobceceb2bfafa070e96a505b06ca77ce0f50b4d012
1 #ifndef SYMBOL_TABLE_H
2 #define SYMBOL_TABLE_H
4 #include "base.h"
6 typedef struct _symbol {
7 char *name;
8 Type type;
9 Value value;
10 int decl_linenum;
11 int params;
12 Type *param_types;
13 bool is_parameter;
14 bool is_global;
15 int stack_index;
16 struct _symbol *next;
17 } Symbol;
19 static Symbol *global_symbol_table;
21 Symbol *symbol_new(char const * name);
22 Symbol *symbol_lookup(Symbol *symtab, char const *name);
23 Symbol *symbol_insert(Symbol *symtab, Symbol *symbol);
25 void symbol_create_params(Symbol *symbol, int quantity);
26 bool symbol_is_procfunc(Symbol *symbol);
27 void symbol_print(Symbol *symbol);
29 void symbol_table_destroy(Symbol *table);
30 void symbol_table_dump(Symbol *table);
32 #endif // SYMBOL_TABLE_H