5 typedef struct burm_state *STATEPTR_TYPE;
32 static char rule_names[100][100]={
58 /* struct for the tree build by ox for iburg */
59 typedef struct treenode {
61 struct treenode *kids[2];
66 struct treenode *parent;
68 int param_index; /* -1 if not a parameter */
71 typedef treenode *treenodep;
73 /* macros for iburg being able to traverse the tree */
74 #define NODEPTR_TYPE treenodep
75 #define OP_LABEL(p) ((p)->op)
76 #define LEFT_CHILD(p) ((p)->kids[0])
77 #define RIGHT_CHILD(p) ((p)->kids[1])
78 #define STATE_LABEL(p) ((p)->label)
81 /* see tree.c for description about these procedures */
82 treenode *new_node(int op, treenode *left, treenode *right);
83 treenode *new_node_value(int op, treenode *left, treenode *right, long value, int param);
84 treenode *new_leaf(int op);
85 treenode *new_number_leaf(long value);
86 treenode *new_named_leaf(int op, char *name);
87 treenode *new_named_leaf_value(int op, char *name, long value, int param);
88 treenode *new_named_node(int op, treenode *left, treenode *right, char *name);
90 void write_indent(int indent);
91 void write_tree(treenode *node, int indent);