diff options
Diffstat (limited to 'parser.h')
-rw-r--r-- | parser.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/parser.h b/parser.h new file mode 100644 index 0000000..3f6e2e3 --- /dev/null +++ b/parser.h @@ -0,0 +1,36 @@ +typedef struct luckyval luckyval; +typedef struct luckytree luckytree; + +typedef enum luckytypes { + LUCKYCHAR, + LUCKYINT, + LUCKYLONG, + LUCKYFLOAT, + LUCKYDOUBLE, + LUCKYARR, + LUCKYVAR, + LUCKYTREE, +} luckytypes; + +typedef struct luckyval { + union { + char c; + int i; + long l; + float f; + double d; + luckyval *arr; + luckytree *tree; + char *var; + }; + luckytypes type; + luckyval *nextelement; +} luckyval; + +typedef struct luckytree { + char *function; + luckyval *arguments; + luckytree *next; +} luckytree; + +luckytree *parse(char *expr); |