/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 | 799k | { |
86 | 799k | switch (c1) { |
87 | 1.29k | case '!': return EXCLAMATION; |
88 | 3.34k | case '%': return PERCENT; |
89 | 2.97k | case '&': return AMPER; |
90 | 83.6k | case '(': return LPAR; |
91 | 55.5k | case ')': return RPAR; |
92 | 20.0k | case '*': return STAR; |
93 | 85.9k | case '+': return PLUS; |
94 | 134k | case ',': return COMMA; |
95 | 135k | case '-': return MINUS; |
96 | 0 | case '.': return DOT; |
97 | 4.66k | case '/': return SLASH; |
98 | 72.1k | case ':': return COLON; |
99 | 13.5k | case ';': return SEMI; |
100 | 2.81k | case '<': return LESS; |
101 | 39.2k | case '=': return EQUAL; |
102 | 7.86k | case '>': return GREATER; |
103 | 6.29k | case '@': return AT; |
104 | 32.3k | case '[': return LSQB; |
105 | 10.7k | case ']': return RSQB; |
106 | 1.50k | case '^': return CIRCUMFLEX; |
107 | 43.3k | case '{': return LBRACE; |
108 | 3.63k | case '|': return VBAR; |
109 | 22.7k | case '}': return RBRACE; |
110 | 14.8k | case '~': return TILDE; |
111 | 799k | } |
112 | 797 | return OP; |
113 | 799k | } |
114 | | |
115 | | int |
116 | | _PyToken_TwoChars(int c1, int c2) |
117 | 817k | { |
118 | 817k | switch (c1) { |
119 | 2.31k | case '!': |
120 | 2.31k | switch (c2) { |
121 | 1.02k | case '=': return NOTEQUAL; |
122 | 2.31k | } |
123 | 1.29k | break; |
124 | 3.77k | case '%': |
125 | 3.77k | switch (c2) { |
126 | 435 | case '=': return PERCENTEQUAL; |
127 | 3.77k | } |
128 | 3.34k | break; |
129 | 3.34k | case '&': |
130 | 3.30k | switch (c2) { |
131 | 334 | case '=': return AMPEREQUAL; |
132 | 3.30k | } |
133 | 2.97k | break; |
134 | 28.8k | case '*': |
135 | 28.8k | switch (c2) { |
136 | 8.41k | case '*': return DOUBLESTAR; |
137 | 332 | case '=': return STAREQUAL; |
138 | 28.8k | } |
139 | 20.0k | break; |
140 | 86.4k | case '+': |
141 | 86.4k | switch (c2) { |
142 | 466 | case '=': return PLUSEQUAL; |
143 | 86.4k | } |
144 | 85.9k | break; |
145 | 135k | case '-': |
146 | 135k | switch (c2) { |
147 | 98 | case '=': return MINEQUAL; |
148 | 333 | case '>': return RARROW; |
149 | 135k | } |
150 | 135k | break; |
151 | 135k | case '/': |
152 | 6.40k | switch (c2) { |
153 | 1.28k | case '/': return DOUBLESLASH; |
154 | 459 | case '=': return SLASHEQUAL; |
155 | 6.40k | } |
156 | 4.66k | break; |
157 | 69.5k | case ':': |
158 | 69.5k | switch (c2) { |
159 | 1.13k | case '=': return COLONEQUAL; |
160 | 69.5k | } |
161 | 68.3k | break; |
162 | 68.3k | case '<': |
163 | 4.76k | switch (c2) { |
164 | 1.02k | case '<': return LEFTSHIFT; |
165 | 908 | case '=': return LESSEQUAL; |
166 | 10 | case '>': return NOTEQUAL; |
167 | 4.76k | } |
168 | 2.81k | break; |
169 | 41.0k | case '=': |
170 | 41.0k | switch (c2) { |
171 | 1.84k | case '=': return EQEQUAL; |
172 | 41.0k | } |
173 | 39.2k | break; |
174 | 39.2k | case '>': |
175 | 9.63k | switch (c2) { |
176 | 728 | case '=': return GREATEREQUAL; |
177 | 1.04k | case '>': return RIGHTSHIFT; |
178 | 9.63k | } |
179 | 7.86k | break; |
180 | 7.86k | case '@': |
181 | 6.41k | switch (c2) { |
182 | 117 | case '=': return ATEQUAL; |
183 | 6.41k | } |
184 | 6.29k | break; |
185 | 6.29k | case '^': |
186 | 1.76k | switch (c2) { |
187 | 258 | case '=': return CIRCUMFLEXEQUAL; |
188 | 1.76k | } |
189 | 1.50k | break; |
190 | 4.01k | case '|': |
191 | 4.01k | switch (c2) { |
192 | 373 | case '=': return VBAREQUAL; |
193 | 4.01k | } |
194 | 3.63k | break; |
195 | 817k | } |
196 | 796k | return OP; |
197 | 817k | } |
198 | | |
199 | | int |
200 | | _PyToken_ThreeChars(int c1, int c2, int c3) |
201 | 20.6k | { |
202 | 20.6k | switch (c1) { |
203 | 8.74k | case '*': |
204 | 8.74k | switch (c2) { |
205 | 8.41k | case '*': |
206 | 8.41k | switch (c3) { |
207 | 244 | case '=': return DOUBLESTAREQUAL; |
208 | 8.41k | } |
209 | 8.16k | break; |
210 | 8.74k | } |
211 | 8.49k | break; |
212 | 8.49k | 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.74k | case '/': |
222 | 1.74k | switch (c2) { |
223 | 1.28k | case '/': |
224 | 1.28k | switch (c3) { |
225 | 339 | case '=': return DOUBLESLASHEQUAL; |
226 | 1.28k | } |
227 | 942 | break; |
228 | 1.74k | } |
229 | 1.40k | break; |
230 | 1.94k | case '<': |
231 | 1.94k | switch (c2) { |
232 | 1.02k | case '<': |
233 | 1.02k | switch (c3) { |
234 | 249 | case '=': return LEFTSHIFTEQUAL; |
235 | 1.02k | } |
236 | 778 | break; |
237 | 1.94k | } |
238 | 1.69k | break; |
239 | 1.77k | case '>': |
240 | 1.77k | switch (c2) { |
241 | 1.04k | case '>': |
242 | 1.04k | switch (c3) { |
243 | 132 | case '=': return RIGHTSHIFTEQUAL; |
244 | 1.04k | } |
245 | 911 | break; |
246 | 1.77k | } |
247 | 1.63k | break; |
248 | 20.6k | } |
249 | 19.6k | return OP; |
250 | 20.6k | } |