1 | /* Auto-generated by Tools/scripts/generate_token.py */ |
2 | |
3 | #include "Python.h" |
4 | #include "token.h" |
5 | |
6 | /* Token names */ |
7 | |
8 | const char * const _PyParser_TokenNames[] = { |
9 | "ENDMARKER" , |
10 | "NAME" , |
11 | "NUMBER" , |
12 | "STRING" , |
13 | "NEWLINE" , |
14 | "INDENT" , |
15 | "DEDENT" , |
16 | "LPAR" , |
17 | "RPAR" , |
18 | "LSQB" , |
19 | "RSQB" , |
20 | "COLON" , |
21 | "COMMA" , |
22 | "SEMI" , |
23 | "PLUS" , |
24 | "MINUS" , |
25 | "STAR" , |
26 | "SLASH" , |
27 | "VBAR" , |
28 | "AMPER" , |
29 | "LESS" , |
30 | "GREATER" , |
31 | "EQUAL" , |
32 | "DOT" , |
33 | "PERCENT" , |
34 | "LBRACE" , |
35 | "RBRACE" , |
36 | "EQEQUAL" , |
37 | "NOTEQUAL" , |
38 | "LESSEQUAL" , |
39 | "GREATEREQUAL" , |
40 | "TILDE" , |
41 | "CIRCUMFLEX" , |
42 | "LEFTSHIFT" , |
43 | "RIGHTSHIFT" , |
44 | "DOUBLESTAR" , |
45 | "PLUSEQUAL" , |
46 | "MINEQUAL" , |
47 | "STAREQUAL" , |
48 | "SLASHEQUAL" , |
49 | "PERCENTEQUAL" , |
50 | "AMPEREQUAL" , |
51 | "VBAREQUAL" , |
52 | "CIRCUMFLEXEQUAL" , |
53 | "LEFTSHIFTEQUAL" , |
54 | "RIGHTSHIFTEQUAL" , |
55 | "DOUBLESTAREQUAL" , |
56 | "DOUBLESLASH" , |
57 | "DOUBLESLASHEQUAL" , |
58 | "AT" , |
59 | "ATEQUAL" , |
60 | "RARROW" , |
61 | "ELLIPSIS" , |
62 | "COLONEQUAL" , |
63 | "OP" , |
64 | "AWAIT" , |
65 | "ASYNC" , |
66 | "TYPE_IGNORE" , |
67 | "TYPE_COMMENT" , |
68 | "SOFT_KEYWORD" , |
69 | "<ERRORTOKEN>" , |
70 | "<COMMENT>" , |
71 | "<NL>" , |
72 | "<ENCODING>" , |
73 | "<N_TOKENS>" , |
74 | }; |
75 | |
76 | /* Return the token corresponding to a single character */ |
77 | |
78 | int |
79 | PyToken_OneChar(int c1) |
80 | { |
81 | switch (c1) { |
82 | case '%': return PERCENT; |
83 | case '&': return AMPER; |
84 | case '(': return LPAR; |
85 | case ')': return RPAR; |
86 | case '*': return STAR; |
87 | case '+': return PLUS; |
88 | case ',': return COMMA; |
89 | case '-': return MINUS; |
90 | case '.': return DOT; |
91 | case '/': return SLASH; |
92 | case ':': return COLON; |
93 | case ';': return SEMI; |
94 | case '<': return LESS; |
95 | case '=': return EQUAL; |
96 | case '>': return GREATER; |
97 | case '@': return AT; |
98 | case '[': return LSQB; |
99 | case ']': return RSQB; |
100 | case '^': return CIRCUMFLEX; |
101 | case '{': return LBRACE; |
102 | case '|': return VBAR; |
103 | case '}': return RBRACE; |
104 | case '~': return TILDE; |
105 | } |
106 | return OP; |
107 | } |
108 | |
109 | int |
110 | PyToken_TwoChars(int c1, int c2) |
111 | { |
112 | switch (c1) { |
113 | case '!': |
114 | switch (c2) { |
115 | case '=': return NOTEQUAL; |
116 | } |
117 | break; |
118 | case '%': |
119 | switch (c2) { |
120 | case '=': return PERCENTEQUAL; |
121 | } |
122 | break; |
123 | case '&': |
124 | switch (c2) { |
125 | case '=': return AMPEREQUAL; |
126 | } |
127 | break; |
128 | case '*': |
129 | switch (c2) { |
130 | case '*': return DOUBLESTAR; |
131 | case '=': return STAREQUAL; |
132 | } |
133 | break; |
134 | case '+': |
135 | switch (c2) { |
136 | case '=': return PLUSEQUAL; |
137 | } |
138 | break; |
139 | case '-': |
140 | switch (c2) { |
141 | case '=': return MINEQUAL; |
142 | case '>': return RARROW; |
143 | } |
144 | break; |
145 | case '/': |
146 | switch (c2) { |
147 | case '/': return DOUBLESLASH; |
148 | case '=': return SLASHEQUAL; |
149 | } |
150 | break; |
151 | case ':': |
152 | switch (c2) { |
153 | case '=': return COLONEQUAL; |
154 | } |
155 | break; |
156 | case '<': |
157 | switch (c2) { |
158 | case '<': return LEFTSHIFT; |
159 | case '=': return LESSEQUAL; |
160 | case '>': return NOTEQUAL; |
161 | } |
162 | break; |
163 | case '=': |
164 | switch (c2) { |
165 | case '=': return EQEQUAL; |
166 | } |
167 | break; |
168 | case '>': |
169 | switch (c2) { |
170 | case '=': return GREATEREQUAL; |
171 | case '>': return RIGHTSHIFT; |
172 | } |
173 | break; |
174 | case '@': |
175 | switch (c2) { |
176 | case '=': return ATEQUAL; |
177 | } |
178 | break; |
179 | case '^': |
180 | switch (c2) { |
181 | case '=': return CIRCUMFLEXEQUAL; |
182 | } |
183 | break; |
184 | case '|': |
185 | switch (c2) { |
186 | case '=': return VBAREQUAL; |
187 | } |
188 | break; |
189 | } |
190 | return OP; |
191 | } |
192 | |
193 | int |
194 | PyToken_ThreeChars(int c1, int c2, int c3) |
195 | { |
196 | switch (c1) { |
197 | case '*': |
198 | switch (c2) { |
199 | case '*': |
200 | switch (c3) { |
201 | case '=': return DOUBLESTAREQUAL; |
202 | } |
203 | break; |
204 | } |
205 | break; |
206 | case '.': |
207 | switch (c2) { |
208 | case '.': |
209 | switch (c3) { |
210 | case '.': return ELLIPSIS; |
211 | } |
212 | break; |
213 | } |
214 | break; |
215 | case '/': |
216 | switch (c2) { |
217 | case '/': |
218 | switch (c3) { |
219 | case '=': return DOUBLESLASHEQUAL; |
220 | } |
221 | break; |
222 | } |
223 | break; |
224 | case '<': |
225 | switch (c2) { |
226 | case '<': |
227 | switch (c3) { |
228 | case '=': return LEFTSHIFTEQUAL; |
229 | } |
230 | break; |
231 | } |
232 | break; |
233 | case '>': |
234 | switch (c2) { |
235 | case '>': |
236 | switch (c3) { |
237 | case '=': return RIGHTSHIFTEQUAL; |
238 | } |
239 | break; |
240 | } |
241 | break; |
242 | } |
243 | return OP; |
244 | } |
245 | |