#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