-
Notifications
You must be signed in to change notification settings - Fork 1
/
LexType.java
38 lines (37 loc) · 1.13 KB
/
LexType.java
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
public enum LexType {
IDENFR, INTCON, STRCON, MAINTK, CONSTTK, INTTK, BREAKTK, CONTINUETK, IFTK, ELSETK,
NOT, AND, OR, FORTK, GETINTTK, PRINTFTK, RETURNTK, PLUS, MINU, VOIDTK,
MULT, DIV, MOD, LSS, LEQ, GRE, GEQ, EQL, NEQ,
ASSIGN, SEMICN, COMMA, LPARENT, RPARENT, LBRACK, RBRACK, LBRACE, RBRACE,
EOF, ERR;
public static LexType reserve(String str) {
switch (str) {
case "const":
return CONSTTK;
case "int":
return INTTK;
case "void":
return VOIDTK;
case "main":
return MAINTK;
case "if":
return IFTK;
case "else":
return ELSETK;
case "for":
return FORTK;
case "getint":
return GETINTTK;
case "printf":
return PRINTFTK;
case "return":
return RETURNTK;
case "break":
return BREAKTK;
case "continue":
return CONTINUETK;
default:
return IDENFR;
}
}
}