codea: exprcount (funktioniert vllt noch nicht richtig)
[uebersetzerbau-ss10.git] / codea / tree.h
index 4c4a0d91a44feb59bbc0c41b32ec09a844af50f7..27a9942e437603ed62b2a2870b33dbbe243438fb 100644 (file)
@@ -17,7 +17,9 @@ enum {
        O_OR,
        O_LESS,
        O_EQ,
-       O_ID
+       O_ID,
+       O_ADD,
+       O_NUM
 };
 
 static char *o_names[] = {
@@ -29,7 +31,9 @@ static char *o_names[] = {
        "O_OR",
        "O_LESS",
        "O_EQ",
-       "O_ID"
+       "O_ID",
+       "O_ADD",
+       "O_NUM"
 };
 
 struct treenode {
@@ -42,6 +46,7 @@ struct treenode {
        struct treenode *parent;
        int skip;
        int param_index;
+       int exprcount;
 };
 
 typedef struct treenode *treenodep;
@@ -53,6 +58,9 @@ typedef struct treenode *treenodep;
 #define STATE_LABEL(p) ((p)->label)
 #define PANIC printf
 
-struct treenode *new_node(int op, struct treenode *l, struct treenode *r);
+struct treenode *new_node(int op, struct treenode *l, struct treenode *r, int exprcount);
+struct treenode *new_number(long val, int exprcount);
+struct treenode *new_param(int op, struct treenode *l, struct treenode *r, int param_index, int exprcount);
+void write_tree(struct treenode *node, int ident);
 
 #endif