-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtoken.h
101 lines (92 loc) · 1.23 KB
/
token.h
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
/* Group 3
Ashrya Agrawal 2018A7PS0210P
Kalit Naresh Inani 2018A7PS0207P
Prajwal Gupta 2018A7PS0231P */
#ifndef LEX_DEF_
#define LEX_DEF_
#define NUM_TOKENS 33
static char *TOKENS[NUM_TOKENS] = {
"PROGRAM",
"DECLARE",
"LIST",
"OF",
"VARIABLES",
"ARRAY",
"SIZE",
"VALUES",
"JAGGED",
"INTEGER",
"REAL",
"BOOLEAN",
"RBOP",
"RBCL",
"CBOP",
"CBCL",
"SBOP",
"SBCL",
"COLON",
"SEMICOLON",
"PLUS",
"MINUS",
"MULT",
"DIV",
"AND",
"OR",
"TWODOT",
"R",
"EQUALS",
"ID",
"NUM",
"EPS",
"ERR"};
typedef enum TokenName
{
// Add tokens here
PROGRAM,
DECLARE,
LIST,
OF,
VARIABLES,
ARRAY,
SIZE,
VALUES,
JAGGED,
INTEGER,
REAL,
BOOLEAN,
RBOP,
RBCL,
CBOP,
CBCL,
SBOP,
SBCL,
COLON,
SEMICOLON,
PLUS,
MINUS,
MULT,
DIV,
AND,
OR,
TWODOT,
R,
EQUALS,
ID,
NUM,
EPS,
ERR
} TokenName;
typedef union Value
{
int INT_VALUE;
float FLOAT_VALUE;
} Value;
struct token
{
TokenName tokenName;
char *lexeme;
int lineNo;
struct token *next;
};
typedef struct token Token;
#endif