arm64: codea/abgabe_aa.0
[uebersetzerbau-ss10.git] / gesamt_arm / symtable.h
1 #ifndef SYMTABLE_H
2 #define SYMTABLE_H
3
4 #define S_FIELD (1<<0)
5 #define S_VAR (1<<1)
6 #define S_PARM (1<<2)
7
8 #define SYMNULL (struct symbol *)NULL
9
10 struct symbol {
11         char *ident;
12         struct symbol *next;
13         short type;
14         int param_index;
15         int soffset;
16 };
17
18 struct symbol *tab_clone(struct symbol *tab);
19 struct symbol *tab_new(void);
20 struct symbol *tab_add_symbol(struct symbol *tab, char *ident, short type, short check, int param_index, int soffset);
21 struct symbol *tab_lookup(struct symbol *tab, char *ident, short type);
22 struct symbol *tab_remove_symbol(struct symbol *tab, char *ident, short type);
23 struct symbol *tab_merge(struct symbol *tab, struct symbol *to_add, short check);
24 void check(struct symbol *tab, char *ident, short type);
25
26 #endif