+#ifndef __TREE_H
+#define __TREE_H
+
+#define TREENULL (struct treenode *)NULL
+#define TREESIZE (sizeof(struct treenode))
+#define TREECAST struct treenode *
+
+#ifndef BFEHAX
+typedef struct burm_state *STATEPTR_TYPE;
+#endif
+
+enum {
+ O_RETURN=1
+};
+
+static char o_names[100][100] = {
+ "",
+ "O_RETURN"
+};
+
+struct treenode {
+ int op;
+ struct treenode *kids[2];
+ STATEPTR_TYPE label;
+ char *name;
+ long val;
+ char *reg;
+ struct treenode *parent;
+ int skip;
+ int param_index;
+};
+
+typedef struct treenode *treenodep;
+
+#define NODEPTR_TYPE treenodep
+#define OP_LABEL(p) ((p)->op)
+#define LEFT_CHILD(p) ((p)->kids[0])
+#define RIGHT_CHILD(p) ((p)->kids[1])
+#define STATE_LABEL(p) ((p)->label)
+#define PANIC printf
+
+struct treenode *new_node(int op, struct treenode *l, struct treenode *r);
+
+#endif