--- /dev/null
+#ifndef SYMTABLE_H
+#define SYMTABLE_H
+
+#define S_FIELD (1<<0)
+#define S_VAR (1<<1)
+#define S_PARM (1<<2)
+
+#define SYMNULL (struct symbol *)NULL
+
+struct symbol {
+ 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, 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);
+void check(struct symbol *tab, char *ident, short type);
+
+#endif