From 9a71e795dc14c401e501125865b2a15fe59f617b Mon Sep 17 00:00:00 2001 From: Tucker Evans Date: Sun, 14 Jul 2019 13:24:52 -0400 Subject: Add parse tree --- tree.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 tree.h (limited to 'tree.h') diff --git a/tree.h b/tree.h new file mode 100644 index 0000000..b7349af --- /dev/null +++ b/tree.h @@ -0,0 +1,27 @@ +#ifndef TREE_H +#define TREE_H + +typedef struct parse_tree { + int type; + union { + int ival; /* NUM */ + float rval; /* RNUM */ + char *sval; /* ID */ + int opval; /* RELOP: LT LE GT GE EQ NE + ADDOP: PLUS MINUS OR + MULOP: MUL DIV + */ + } attr; + struct parse_tree *l, *r; +} ptree; + +void aux_tree_print(ptree*, int); +void print_tree(ptree*); + +ptree* mktree(int, ptree*, ptree*); +ptree* mkid(char*); +ptree* mkinum(int); +ptree* mkrnum(float); +ptree* mkop(int, int, ptree*, ptree*); + +#endif -- cgit v1.1