-
Notifications
You must be signed in to change notification settings - Fork 3
/
lex.nex
67 lines (67 loc) · 3.63 KB
/
lex.nex
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
/[ \t\n]/ { /* Skip spaces and tabs. */ }
/\-\-[^\n]*/ { /* Comments. */ }
/(var)/ { log_debug("VAR_BEGIN"); return VAR_BEGIN }
/(return)/ { log_debug("RETURN"); return RETURN }
/(break)/ { log_debug("BREAK"); return BREAK }
/(func)/ { log_debug("FUNC"); return FUNC }
/(fake)/ { log_debug("FAKE"); return FAKE }
/(while)/ { log_debug("WHILE"); return WHILE }
/(for)/ { log_debug("FOR"); return FOR }
/(true)/ { log_debug("FTRUE"); return FTRUE }
/(false)/ { log_debug("FFALSE"); return FFALSE }
/(if)/ { log_debug("IF"); return IF }
/(then)/ { log_debug("THEN"); return THEN }
/(else)/ { log_debug("ELSE"); return ELSE }
/(elseif)/ { log_debug("ELSEIF"); return ELSEIF }
/(end)/ { log_debug("END"); return END }
/(const)/ { log_debug("FCONST"); return FCONST }
/(package)/ { log_debug("PACKAGE"); return PACKAGE }
/(null)/ { log_debug("NULL"); return FNULL }
/(include)/ { log_debug("INCLUDE"); return INCLUDE }
/(struct)/ { log_debug("STRUCT"); return STRUCT }
/(and)/ { log_debug("AND"); return AND }
/(or)/ { log_debug("OR"); return OR }
/(is)/ { log_debug("IS"); return IS }
/(not)/ { log_debug("NOT"); return NOT }
/(continue)/ { log_debug("CONTINUE"); return CONTINUE }
/(switch)/ { log_debug("SWITCH"); return SWITCH }
/(case)/ { log_debug("CASE"); return CASE }
/(default)/ { log_debug("DEFAULT"); return DEFAULT }
/\"(\\"|[^\"])*\"/ { log_debug("STRING_DEFINITION"); lval.s = yylex.Text(); lval.s = lval.s[1:len(lval.s)-1]; return STRING_DEFINITION;}
/[a-zA-Z_][a-zA-Z0-9_]*/ { log_debug("IDENTIFIER"); lval.s = yylex.Text(); return IDENTIFIER;}
/[a-zA-Z_][a-zA-Z0-9_]*(\.[a-zA-Z_][a-zA-Z0-9_]*)+/ { log_debug("IDENTIFIER_DOT"); lval.s = yylex.Text(); return IDENTIFIER_DOT;}
/[a-zA-Z_][a-zA-Z0-9_]*(\-\>[a-zA-Z_][a-zA-Z0-9_]*)+/ { log_debug("IDENTIFIER_POINTER"); lval.s = yylex.Text(); return IDENTIFIER_POINTER;}
/[0-9]+u/ { log_debug("FKUUID"); lval.s = yylex.Text(); return FKUUID;}
/-?[0-9]+/ { log_debug("NUMBER"); lval.s = yylex.Text(); return NUMBER;}
/-?[0-9]+\.[0-9]+([Ee]-?[0-9]+)?/ { log_debug("FKFLOAT"); lval.s = yylex.Text(); return FKFLOAT;}
/(\%)/ { log_debug("DIVIDE_MOD"); return DIVIDE_MOD }
/(\,)/ { log_debug("ARG_SPLITTER"); return ARG_SPLITTER }
/(\-\>)/ { log_debug("RIGHT_POINTER"); return RIGHT_POINTER }
/(\+\+)/ { log_debug("INC"); return INC }
/(\+)/ { log_debug("PLUS"); return PLUS }
/(\-)/ { log_debug("MINUS"); return MINUS }
/(\/)/ { log_debug("DIVIDE"); return DIVIDE }
/(\*)/ { log_debug("MULTIPLY"); return MULTIPLY }
/(\:\=)/ { log_debug("NEW_ASSIGN"); return NEW_ASSIGN }
/(\+\=)/ { log_debug("PLUS_ASSIGN"); return PLUS_ASSIGN }
/(\-\=)/ { log_debug("MINUS_ASSIGN"); return MINUS_ASSIGN }
/(\/\=)/ { log_debug("DIVIDE_ASSIGN"); return DIVIDE_ASSIGN }
/(\*\=)/ { log_debug("MULTIPLY_ASSIGN"); return MULTIPLY_ASSIGN }
/(\%\=)/ { log_debug("DIVIDE_MOD_ASSIGN"); return DIVIDE_MOD_ASSIGN }
/(\=)/ { log_debug("ASSIGN"); return ASSIGN }
/(\>)/ { log_debug("MORE"); return MORE }
/(\<)/ { log_debug("LESS"); return LESS }
/(\>\=)/ { log_debug("MORE_OR_EQUAL"); return MORE_OR_EQUAL }
/(\<\=)/ { log_debug("LESS_OR_EQUAL"); return LESS_OR_EQUAL }
/(\=\=)/ { log_debug("EQUAL"); return EQUAL }
/(\!\=)/ { log_debug("NOT_EQUAL"); return NOT_EQUAL }
/(\()/ { log_debug("OPEN_BRACKET"); return OPEN_BRACKET }
/(\))/ { log_debug("CLOSE_BRACKET"); return CLOSE_BRACKET }
/(\:)/ { log_debug("COLON"); return COLON }
/(\[)/ { log_debug("OPEN_SQUARE_BRACKET"); return OPEN_SQUARE_BRACKET }
/(\])/ { log_debug("CLOSE_SQUARE_BRACKET"); return CLOSE_SQUARE_BRACKET }
/(\{)/ { log_debug("OPEN_BIG_BRACKET"); return OPEN_BIG_BRACKET }
/(\})/ { log_debug("CLOSE_BIG_BRACKET"); return CLOSE_BIG_BRACKET }
/(\.\.)/ { log_debug("STRING_CAT"); return STRING_CAT }
//
package fakego