X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=codea%2Ftree.h;h=24f1a3ae4c0cf5bb706caaf93a8f3b943e7ba7a8;hb=41b58f7412731cc4e7e27043e0d118aa328f3db7;hp=152b7c1a215407923784d22c04b7f01a312e6ded;hpb=79bf606e8b7d140aa1468154bb747636bd75eb00;p=uebersetzerbau-ss10.git diff --git a/codea/tree.h b/codea/tree.h index 152b7c1..24f1a3a 100644 --- a/codea/tree.h +++ b/codea/tree.h @@ -10,12 +10,17 @@ typedef struct burm_state *STATEPTR_TYPE; #endif enum { - O_RETURN=1 + O_RET=1, O_NULL, O_SUB, O_MUL, + O_OR=5, O_LESS, O_EQ, O_ID, O_ADD, + O_NUM=10, O_FIELD, O_MTWO, O_MFOUR, O_MEIGHT, + O_MONE=15 }; -static char o_names[100][100] = { - "", - "O_RETURN" +static char *o_names[] = { + "", "O_RET", "O_NULL", "O_SUB", "O_MUL", + "O_OR", "O_LESS", "O_EQ", "O_ID", "O_ADD", + "O_NUM", "O_FIELD", "O_MTWO", "O_MFOUR", "O_MEIGHT", + "O_MONE" }; struct treenode { @@ -26,8 +31,8 @@ struct treenode { long val; char *reg; struct treenode *parent; - int skip; int param_index; + int soffset; }; typedef struct treenode *treenodep; @@ -40,5 +45,9 @@ typedef struct treenode *treenodep; #define PANIC printf struct treenode *new_node(int op, struct treenode *l, struct treenode *r); +struct treenode *new_number(long val); +struct treenode *new_param(int op, char *name, struct treenode *l, struct treenode *r, int param_index); +struct treenode *new_field(char *name, struct treenode *l, struct treenode *r, int soffset); +void write_tree(struct treenode *node, int ident); #endif