#ifndef SYMTABLE_H #define SYMTABLE_H #define S_FIELD 0 #define S_VAR 1 #define SYMNULL (struct symbol *)NULL struct symbol { char *ident; struct symbol *next; short type; }; struct symbol *tab_clone(struct symbol *tab); struct symbol *tab_new(void); struct symbol *tab_add_symbol(struct symbol *tab, char *ident, short type, short check); struct symbol *tab_lookup(struct symbol *tab, char *ident, short type); struct symbol *tab_remove_symbol(struct symbol *tab, char *ident, short type); struct symbol *tab_merge(struct symbol *tab, struct symbol *to_add, short check); void check(struct symbol *tab, char *ident, short type); #endif