summaryrefslogtreecommitdiff
path: root/parser.h
blob: 3f6e2e371a6c91cff85bdc6a7a935471fc0394f2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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);