arm64: codea/abgabe_aa.0
[uebersetzerbau-ss10.git] / codea / tree.h
index 38347ce289e9d2552fcd8fa2191a296a72159442..24f1a3ae4c0cf5bb706caaf93a8f3b943e7ba7a8 100644 (file)
@@ -10,30 +10,17 @@ typedef struct burm_state *STATEPTR_TYPE;
 #endif
 
 enum {
-       O_RET=1,
-       O_NOT,
-       O_SUB,
-       O_MUL,
-       O_OR,
-       O_LESS,
-       O_EQ,
-       O_ID,
-       O_ADD,
-       O_NUM
+       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[] = {
-       "",
-       "O_RET",
-       "O_NOT",
-       "O_SUB",
-       "O_MUL",
-       "O_OR",
-       "O_LESS",
-       "O_EQ",
-       "O_ID",
-       "O_ADD",
-       "O_NUM"
+       "", "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 {
@@ -44,8 +31,8 @@ struct treenode {
        long val;
        char *reg;
        struct treenode *parent;
-       int skip;
        int param_index;
+       int soffset;
 };
 
 typedef struct treenode *treenodep;
@@ -59,6 +46,8 @@ typedef struct treenode *treenodep;
 
 struct treenode *new_node(int op, struct treenode *l, struct treenode *r);
 struct treenode *new_number(long val);
-struct treenode *new_param(int op, struct treenode *l, struct treenode *r, int param_index);
+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