arm64: init from arm
[uebersetzerbau-ss10.git] / gesamt_arm64 / symtable.h
diff --git a/gesamt_arm64/symtable.h b/gesamt_arm64/symtable.h
new file mode 100644 (file)
index 0000000..9892899
--- /dev/null
@@ -0,0 +1,26 @@
+#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