summaryrefslogtreecommitdiff
path: root/types.h
blob: 75aa7731a5c241ea3e27d272dd09cbfb9bfbde84 (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
37
38
39
40
41
42
43
#ifndef __TYPES_H_
#define __TYPES_H_

typedef enum parsetypes {
	NILPARSETYPE,
	FUNCTIONDEF,
	FUNCEND,
	MATHEXPR,
	MEMEXPR,
	KEYWORDEXPR,
} parsetypes;

typedef enum lextypes {
	NILLEXTYPE,
	INTLIT,
	KEYWORD,
	NAME,
	OPENCURLY = '{', 
	CLOSECURLY = '}',
	OPENBRACE = '(',
	CLOSEBRACE = ')',
	SEMICOLON = ';',
	ADD = '+',
	SUB = '-',
	DIV = '/',
	MUL = '*',
} lextypes;

typedef struct lexobj {
	lextypes t;
	char *data;
} lexobj;

typedef struct ast {
	char *function;
	int childcount;
	union {
		struct ast *children[8];
		char *litteralchildren[8];
	};
} ast;

#endif