#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 *clone_tab(struct symbol *tab); struct symbol *new_tab(void); struct symbol *tab_add_symbol(struct symbol *tab, char *ident, short type, short check); struct symbol *tab_lookup(struct symbol *tab, char *ident); struct symbol *tab_remove_symbol(struct symbol *tab, char *ident); struct symbol *tab_merge(struct symbol *tab, struct symbol *to_add, short check); void check_variable(struct symbol *tab, char *ident); void check_field(struct symbol *tab, char *ident); #endif