codea: a-b-c-d sollte jetzt passen... trick: a-b-c-d = a-(b+c+d)
[uebersetzerbau-ss10.git] / codea / symtable.h
index df7fa5a6561ed95135d5dc76f0fc0e3059f1dfc9..5db4ed6d34dc419648efa9619c05fd7580d9a748 100755 (executable)
@@ -1,8 +1,9 @@
 #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
 
@@ -10,11 +11,12 @@ struct symbol {
        char *ident;
        struct symbol *next;
        short type;
+       int param_index;
 };
 
 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);
 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);