/src/cpython/Parser/token.c
Line | Count | Source (jump to first uncovered line) |
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 | 824k | { |
86 | 824k | switch (c1) { |
87 | 1.95k | case '!': return EXCLAMATION; |
88 | 3.62k | case '%': return PERCENT; |
89 | 3.14k | case '&': return AMPER; |
90 | 90.1k | case '(': return LPAR; |
91 | 57.9k | case ')': return RPAR; |
92 | 24.4k | case '*': return STAR; |
93 | 81.3k | case '+': return PLUS; |
94 | 141k | case ',': return COMMA; |
95 | 113k | case '-': return MINUS; |
96 | 0 | case '.': return DOT; |
97 | 5.43k | case '/': return SLASH; |
98 | 76.7k | case ':': return COLON; |
99 | 14.1k | case ';': return SEMI; |
100 | 6.68k | case '<': return LESS; |
101 | 41.8k | case '=': return EQUAL; |
102 | 8.82k | case '>': return GREATER; |
103 | 5.52k | case '@': return AT; |
104 | 35.9k | case '[': return LSQB; |
105 | 11.8k | case ']': return RSQB; |
106 | 1.10k | case '^': return CIRCUMFLEX; |
107 | 45.8k | case '{': return LBRACE; |
108 | 4.13k | case '|': return VBAR; |
109 | 26.8k | case '}': return RBRACE; |
110 | 20.9k | case '~': return TILDE; |
111 | 824k | } |
112 | 856 | return OP; |
113 | 824k | } |
114 | | |
115 | | int |
116 | | _PyToken_TwoChars(int c1, int c2) |
117 | 844k | { |
118 | 844k | switch (c1) { |
119 | 3.11k | case '!': |
120 | 3.11k | switch (c2) { |
121 | 1.16k | case '=': return NOTEQUAL; |
122 | 3.11k | } |
123 | 1.95k | break; |
124 | 4.05k | case '%': |
125 | 4.05k | switch (c2) { |
126 | 433 | case '=': return PERCENTEQUAL; |
127 | 4.05k | } |
128 | 3.62k | break; |
129 | 3.62k | case '&': |
130 | 3.48k | switch (c2) { |
131 | 345 | case '=': return AMPEREQUAL; |
132 | 3.48k | } |
133 | 3.14k | break; |
134 | 33.7k | case '*': |
135 | 33.7k | switch (c2) { |
136 | 8.89k | case '*': return DOUBLESTAR; |
137 | 349 | case '=': return STAREQUAL; |
138 | 33.7k | } |
139 | 24.4k | break; |
140 | 81.9k | case '+': |
141 | 81.9k | switch (c2) { |
142 | 598 | case '=': return PLUSEQUAL; |
143 | 81.9k | } |
144 | 81.3k | break; |
145 | 114k | case '-': |
146 | 114k | switch (c2) { |
147 | 98 | case '=': return MINEQUAL; |
148 | 383 | case '>': return RARROW; |
149 | 114k | } |
150 | 113k | break; |
151 | 113k | case '/': |
152 | 7.23k | switch (c2) { |
153 | 1.31k | case '/': return DOUBLESLASH; |
154 | 487 | case '=': return SLASHEQUAL; |
155 | 7.23k | } |
156 | 5.43k | break; |
157 | 73.7k | case ':': |
158 | 73.7k | switch (c2) { |
159 | 841 | case '=': return COLONEQUAL; |
160 | 73.7k | } |
161 | 72.9k | break; |
162 | 72.9k | case '<': |
163 | 9.15k | switch (c2) { |
164 | 1.47k | case '<': return LEFTSHIFT; |
165 | 978 | case '=': return LESSEQUAL; |
166 | 8 | case '>': return NOTEQUAL; |
167 | 9.15k | } |
168 | 6.68k | break; |
169 | 43.9k | case '=': |
170 | 43.9k | switch (c2) { |
171 | 2.11k | case '=': return EQEQUAL; |
172 | 43.9k | } |
173 | 41.8k | break; |
174 | 41.8k | case '>': |
175 | 11.1k | switch (c2) { |
176 | 979 | case '=': return GREATEREQUAL; |
177 | 1.36k | case '>': return RIGHTSHIFT; |
178 | 11.1k | } |
179 | 8.82k | break; |
180 | 8.82k | case '@': |
181 | 5.76k | switch (c2) { |
182 | 243 | case '=': return ATEQUAL; |
183 | 5.76k | } |
184 | 5.52k | break; |
185 | 5.52k | case '^': |
186 | 1.41k | switch (c2) { |
187 | 315 | case '=': return CIRCUMFLEXEQUAL; |
188 | 1.41k | } |
189 | 1.10k | break; |
190 | 4.48k | case '|': |
191 | 4.48k | switch (c2) { |
192 | 354 | case '=': return VBAREQUAL; |
193 | 4.48k | } |
194 | 4.13k | break; |
195 | 844k | } |
196 | 821k | return OP; |
197 | 844k | } |
198 | | |
199 | | int |
200 | | _PyToken_ThreeChars(int c1, int c2, int c3) |
201 | 22.7k | { |
202 | 22.7k | switch (c1) { |
203 | 9.24k | case '*': |
204 | 9.24k | switch (c2) { |
205 | 8.89k | case '*': |
206 | 8.89k | switch (c3) { |
207 | 272 | case '=': return DOUBLESTAREQUAL; |
208 | 8.89k | } |
209 | 8.61k | break; |
210 | 9.24k | } |
211 | 8.96k | break; |
212 | 8.96k | 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 | 1.80k | case '/': |
222 | 1.80k | switch (c2) { |
223 | 1.31k | case '/': |
224 | 1.31k | switch (c3) { |
225 | 317 | case '=': return DOUBLESLASHEQUAL; |
226 | 1.31k | } |
227 | 999 | break; |
228 | 1.80k | } |
229 | 1.48k | break; |
230 | 2.46k | case '<': |
231 | 2.46k | switch (c2) { |
232 | 1.47k | case '<': |
233 | 1.47k | switch (c3) { |
234 | 319 | case '=': return LEFTSHIFTEQUAL; |
235 | 1.47k | } |
236 | 1.15k | break; |
237 | 2.46k | } |
238 | 2.14k | break; |
239 | 2.34k | case '>': |
240 | 2.34k | switch (c2) { |
241 | 1.36k | case '>': |
242 | 1.36k | switch (c3) { |
243 | 307 | case '=': return RIGHTSHIFTEQUAL; |
244 | 1.36k | } |
245 | 1.05k | break; |
246 | 2.34k | } |
247 | 2.03k | break; |
248 | 22.7k | } |
249 | 21.5k | return OP; |
250 | 22.7k | } |