/src/cpython3/Parser/token.c
Line | Count | Source |
1 | | /* Auto-generated by Tools/build/generate_token.py */ |
2 | | |
3 | | #include "Python.h" |
4 | | #include "pycore_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 | | "EXCLAMATION", |
64 | | "OP", |
65 | | "TYPE_IGNORE", |
66 | | "TYPE_COMMENT", |
67 | | "SOFT_KEYWORD", |
68 | | "FSTRING_START", |
69 | | "FSTRING_MIDDLE", |
70 | | "FSTRING_END", |
71 | | "TSTRING_START", |
72 | | "TSTRING_MIDDLE", |
73 | | "TSTRING_END", |
74 | | "COMMENT", |
75 | | "NL", |
76 | | "<ERRORTOKEN>", |
77 | | "<ENCODING>", |
78 | | "<N_TOKENS>", |
79 | | }; |
80 | | |
81 | | /* Return the token corresponding to a single character */ |
82 | | |
83 | | int |
84 | | _PyToken_OneChar(int c1) |
85 | 31.6M | { |
86 | 31.6M | switch (c1) { |
87 | 8.58k | case '!': return EXCLAMATION; |
88 | 111k | case '%': return PERCENT; |
89 | 43.6k | case '&': return AMPER; |
90 | 434k | case '(': return LPAR; |
91 | 377k | case ')': return RPAR; |
92 | 287k | case '*': return STAR; |
93 | 19.6M | case '+': return PLUS; |
94 | 4.09M | case ',': return COMMA; |
95 | 1.63M | case '-': return MINUS; |
96 | 0 | case '.': return DOT; |
97 | 311k | case '/': return SLASH; |
98 | 797k | case ':': return COLON; |
99 | 103k | case ';': return SEMI; |
100 | 226k | case '<': return LESS; |
101 | 114k | case '=': return EQUAL; |
102 | 38.9k | case '>': return GREATER; |
103 | 29.4k | case '@': return AT; |
104 | 1.30M | case '[': return LSQB; |
105 | 1.27M | case ']': return RSQB; |
106 | 53.8k | case '^': return CIRCUMFLEX; |
107 | 296k | case '{': return LBRACE; |
108 | 19.3k | case '|': return VBAR; |
109 | 266k | case '}': return RBRACE; |
110 | 121k | case '~': return TILDE; |
111 | 31.6M | } |
112 | 1.41k | return OP; |
113 | 31.6M | } |
114 | | |
115 | | int |
116 | | _PyToken_TwoChars(int c1, int c2, int BARRY_AS_BDFL) |
117 | 31.8M | { |
118 | 31.8M | switch (c1) { |
119 | 9.96k | case '!': |
120 | 9.96k | switch (c2) { |
121 | 1.37k | case '=': return NOTEQUAL; |
122 | 9.96k | } |
123 | 8.58k | break; |
124 | 112k | case '%': |
125 | 112k | switch (c2) { |
126 | 1.39k | case '=': return PERCENTEQUAL; |
127 | 112k | } |
128 | 111k | break; |
129 | 111k | case '&': |
130 | 45.1k | switch (c2) { |
131 | 1.49k | case '=': return AMPEREQUAL; |
132 | 45.1k | } |
133 | 43.6k | break; |
134 | 438k | case '*': |
135 | 438k | switch (c2) { |
136 | 149k | case '*': return DOUBLESTAR; |
137 | 1.64k | case '=': return STAREQUAL; |
138 | 438k | } |
139 | 287k | break; |
140 | 19.6M | case '+': |
141 | 19.6M | switch (c2) { |
142 | 2.00k | case '=': return PLUSEQUAL; |
143 | 19.6M | } |
144 | 19.6M | break; |
145 | 19.6M | case '-': |
146 | 1.63M | switch (c2) { |
147 | 768 | case '=': return MINEQUAL; |
148 | 4.79k | case '>': return RARROW; |
149 | 1.63M | } |
150 | 1.63M | break; |
151 | 1.63M | case '/': |
152 | 343k | switch (c2) { |
153 | 31.2k | case '/': return DOUBLESLASH; |
154 | 786 | case '=': return SLASHEQUAL; |
155 | 343k | } |
156 | 311k | break; |
157 | 802k | case ':': |
158 | 802k | switch (c2) { |
159 | 4.97k | case '=': return COLONEQUAL; |
160 | 802k | } |
161 | 797k | break; |
162 | 797k | case '<': |
163 | 252k | switch (c2) { |
164 | 21.2k | case '<': return LEFTSHIFT; |
165 | 4.88k | case '=': return LESSEQUAL; |
166 | 318 | case '>': return BARRY_AS_BDFL ? NOTEQUAL : OP; |
167 | 252k | } |
168 | 226k | break; |
169 | 226k | case '=': |
170 | 118k | switch (c2) { |
171 | 4.12k | case '=': return EQEQUAL; |
172 | 118k | } |
173 | 114k | break; |
174 | 114k | case '>': |
175 | 67.0k | switch (c2) { |
176 | 6.33k | case '=': return GREATEREQUAL; |
177 | 21.6k | case '>': return RIGHTSHIFT; |
178 | 67.0k | } |
179 | 38.9k | break; |
180 | 38.9k | case '@': |
181 | 30.3k | switch (c2) { |
182 | 865 | case '=': return ATEQUAL; |
183 | 30.3k | } |
184 | 29.4k | break; |
185 | 55.7k | case '^': |
186 | 55.7k | switch (c2) { |
187 | 1.82k | case '=': return CIRCUMFLEXEQUAL; |
188 | 55.7k | } |
189 | 53.8k | break; |
190 | 53.8k | case '|': |
191 | 19.9k | switch (c2) { |
192 | 577 | case '=': return VBAREQUAL; |
193 | 19.9k | } |
194 | 19.3k | break; |
195 | 31.8M | } |
196 | 31.6M | return OP; |
197 | 31.8M | } |
198 | | |
199 | | int |
200 | | _PyToken_ThreeChars(int c1, int c2, int c3) |
201 | 261k | { |
202 | 261k | switch (c1) { |
203 | 151k | case '*': |
204 | 151k | switch (c2) { |
205 | 149k | case '*': |
206 | 149k | switch (c3) { |
207 | 442 | case '=': return DOUBLESTAREQUAL; |
208 | 149k | } |
209 | 149k | break; |
210 | 151k | } |
211 | 150k | break; |
212 | 150k | case '.': |
213 | 0 | switch (c2) { |
214 | 0 | case '.': |
215 | 0 | switch (c3) { |
216 | 0 | case '.': return ELLIPSIS; |
217 | 0 | } |
218 | 0 | break; |
219 | 0 | } |
220 | 0 | break; |
221 | 32.0k | case '/': |
222 | 32.0k | switch (c2) { |
223 | 31.2k | case '/': |
224 | 31.2k | switch (c3) { |
225 | 1.02k | case '=': return DOUBLESLASHEQUAL; |
226 | 31.2k | } |
227 | 30.2k | break; |
228 | 32.0k | } |
229 | 30.9k | break; |
230 | 30.9k | case '<': |
231 | 26.1k | switch (c2) { |
232 | 21.2k | case '<': |
233 | 21.2k | switch (c3) { |
234 | 264 | case '=': return LEFTSHIFTEQUAL; |
235 | 21.2k | } |
236 | 20.9k | break; |
237 | 26.1k | } |
238 | 25.8k | break; |
239 | 28.0k | case '>': |
240 | 28.0k | switch (c2) { |
241 | 21.6k | case '>': |
242 | 21.6k | switch (c3) { |
243 | 472 | case '=': return RIGHTSHIFTEQUAL; |
244 | 21.6k | } |
245 | 21.2k | break; |
246 | 28.0k | } |
247 | 27.5k | break; |
248 | 261k | } |
249 | 259k | return OP; |
250 | 261k | } |