O_OR,
O_LESS,
O_EQ,
- O_ID
+ O_ID,
+ O_ADD,
+ O_NUM
};
static char *o_names[] = {
"O_OR",
"O_LESS",
"O_EQ",
- "O_ID"
+ "O_ID",
+ "O_ADD",
+ "O_NUM"
};
struct treenode {
struct treenode *parent;
int skip;
int param_index;
+ int exprcount;
};
typedef struct treenode *treenodep;
#define STATE_LABEL(p) ((p)->label)
#define PANIC printf
-struct treenode *new_node(int op, struct treenode *l, struct treenode *r);
+struct treenode *new_node(int op, struct treenode *l, struct treenode *r, int exprcount);
+struct treenode *new_number(long val, int exprcount);
+struct treenode *new_param(int op, struct treenode *l, struct treenode *r, int param_index, int exprcount);
+void write_tree(struct treenode *node, int ident);
#endif