5 typedef struct burm_state *STATEPTR_TYPE;
26 static char rule_names[100][100]={
46 /* struct for the tree build by ox for iburg */
47 typedef struct treenode {
49 struct treenode *kids[2];
54 struct treenode *parent;
56 int param_index; /* -1 if not a parameter */
59 typedef treenode *treenodep;
61 /* macros for iburg being able to traverse the tree */
62 #define NODEPTR_TYPE treenodep
63 #define OP_LABEL(p) ((p)->op)
64 #define LEFT_CHILD(p) ((p)->kids[0])
65 #define RIGHT_CHILD(p) ((p)->kids[1])
66 #define STATE_LABEL(p) ((p)->label)
69 /* see tree.c for description about these procedures */
70 treenode *new_node(int op, treenode *left, treenode *right);
71 treenode *new_node_value(int op, treenode *left, treenode *right, long value, int param);
72 treenode *new_leaf(int op);
73 treenode *new_number_leaf(long value);
74 treenode *new_named_leaf(int op, char *name);
75 treenode *new_named_leaf_value(int op, char *name, long value, int param);
76 treenode *new_named_node(int op, treenode *left, treenode *right, char *name);
78 void write_indent(int indent);
79 void write_tree(treenode *node, int indent);