#ifndef SYMTABLE_H
#define SYMTABLE_H
-#define S_FIELD 0
-#define S_VAR 1
+#define S_FIELD (1<<0)
+#define S_VAR (1<<1)
+#define S_PARM (1<<2)
#define SYMNULL (struct symbol *)NULL
char *ident;
struct symbol *next;
short type;
+ int param_index;
+ int soffset;
};
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_add_symbol(struct symbol *tab, char *ident, short type, short check, int param_index, int soffset);
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);