5 typedef struct burm_state *STATEPTR_TYPE;
34 static char rule_names[100][100]={
62 /* struct for the tree build by ox for iburg */
63 typedef struct treenode {
65 struct treenode *kids[2];
70 struct treenode *parent;
72 int param_index; /* -1 if not a parameter */
75 typedef treenode *treenodep;
77 /* macros for iburg being able to traverse the tree */
78 #define NODEPTR_TYPE treenodep
79 #define OP_LABEL(p) ((p)->op)
80 #define LEFT_CHILD(p) ((p)->kids[0])
81 #define RIGHT_CHILD(p) ((p)->kids[1])
82 #define STATE_LABEL(p) ((p)->label)
85 /* see tree.c for description about these procedures */
86 treenode *new_node(int op, treenode *left, treenode *right);
87 treenode *new_node_value(int op, treenode *left, treenode *right, long value, int param);
88 treenode *new_leaf(int op);
89 treenode *new_number_leaf(long value);
90 treenode *new_named_leaf(int op, char *name);
91 treenode *new_named_leaf_value(int op, char *name, long value, int param);
92 treenode *new_named_node(int op, treenode *left, treenode *right, char *name);
94 void write_indent(int indent);
95 void write_tree(treenode *node, int indent);