-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscanner.l
More file actions
120 lines (97 loc) · 2.37 KB
/
scanner.l
File metadata and controls
120 lines (97 loc) · 2.37 KB
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
%option nounput yylineno
%{
#include "values.h"
%}
%%
[\t] return TAB;
[\n] return NL;
" " ;
["#"][0-9A-Za-z#$%=@!{},`~&*()<>?.:;_|^/+\t\r\n\[\]'-]+[\n] ;
"and" return KEYWORD;
"assert" return KEYWORD;
"as" return KEYWORD;
"break" return KEYWORD;
"class" return KEYWORD;
"continue" return KEYWORD;
"def" return KEYWORD;
"del" return KEYWORD;
"elif" return KEYWORD;
"else" return KEYWORD;
"exec" return KEYWORD;
"except" return KEYWORD;
"finally" return KEYWORD;
"for" return KEYWORD;
"from" return KEYWORD;
"global" return KEYWORD;
"if" return KEYWORD;
"import" return KEYWORD;
"in" return KEYWORD;
"is" return KEYWORD;
"lambda" return KEYWORD;
"not" return KEYWORD;
"or" return KEYWORD;
"pass" return KEYWORD;
"print" return KEYWORD;
"raise" return KEYWORD;
"return" return KEYWORD;
"try" return KEYWORD;
"while" return KEYWORD;
"with" return KEYWORD;
"yield" return KEYWORD;
"==" return OPERATOR;
"!=" return OPERATOR;
"<<" return OPERATOR;
">>" return OPERATOR;
"<=" return OPERATOR;
">=" return OPERATOR;
"<>" return OPERATOR;
[<] return OPERATOR;
[>] return OPERATOR;
[~] return OPERATOR;
[%] return OPERATOR;
[\^] return OPERATOR;
[|] return OPERATOR;
[&] return OPERATOR;
"//" return OPERATOR;
[/] return OPERATOR;
"**" return OPERATOR;
[*] return OPERATOR;
[-] return OPERATOR;
[+] return OPERATOR;
[=] return DELIMETER;
[,] return DELIMETER;
":" return DELIMETER;
"(" return DELIMETER;
")" return DELIMETER;
"[" return DELIMETER;
"]" return DELIMETER;
"{" return DELIMETER;
"}" return DELIMETER;
"@" return DELIMETER;
"'" return DELIMETER;
"." return DELIMETER;
"`" return DELIMETER;
";" return DELIMETER;
"+=" return DELIMETER;
"-=" return DELIMETER;
"**=" return DELIMETER;
"*=" return DELIMETER;
"//=" return DELIMETER;
"/=" return DELIMETER;
"%=" return DELIMETER;
"&=" return DELIMETER;
"|=" return DELIMETER;
"^=" return DELIMETER;
">>=" return DELIMETER;
"<<=" return DELIMETER;
[0-9]*[l|L] return LITERAL;
([a-fA-F0-9])*|([0]+)|([0-9a-fA-F]*)? return LITERAL;
\'[ 0-9A-Za-z#$%=@!{},`~&*()<>?.:;_|^/+\t\r\n\[\]"-]*\' return LITERAL;
["][0-9A-Za-z#$%=@!{},`~&*()<>?.:;_|^/+\t\r\n\[\]'-]*["] return LITERAL;
[0-9]+([.][0-9]+)?(("e"|"E")[+|-]?[0-9]+)?([+|-][0-9]*("j"|"J"))? return LITERAL;
[a-zA-Z]+[_]?[a-zA-Z0-9]* return IDENTIFIER;
%%
int yywrap(void)
{
return 1;
}