/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 | 1.82M | { |
86 | 1.82M | switch (c1) { |
87 | 7.35k | case '!': return EXCLAMATION; |
88 | 46.8k | case '%': return PERCENT; |
89 | 13.9k | case '&': return AMPER; |
90 | 132k | case '(': return LPAR; |
91 | 101k | case ')': return RPAR; |
92 | 147k | case '*': return STAR; |
93 | 214k | case '+': return PLUS; |
94 | 366k | case ',': return COMMA; |
95 | 192k | case '-': return MINUS; |
96 | 0 | case '.': return DOT; |
97 | 79.3k | case '/': return SLASH; |
98 | 111k | case ':': return COLON; |
99 | 66.7k | case ';': return SEMI; |
100 | 16.2k | case '<': return LESS; |
101 | 65.3k | case '=': return EQUAL; |
102 | 18.5k | case '>': return GREATER; |
103 | 10.8k | case '@': return AT; |
104 | 58.6k | case '[': return LSQB; |
105 | 41.0k | case ']': return RSQB; |
106 | 29.6k | case '^': return CIRCUMFLEX; |
107 | 46.2k | case '{': return LBRACE; |
108 | 11.8k | case '|': return VBAR; |
109 | 26.2k | case '}': return RBRACE; |
110 | 14.1k | case '~': return TILDE; |
111 | 1.82M | } |
112 | 1.04k | return OP; |
113 | 1.82M | } |
114 | | |
115 | | int |
116 | | _PyToken_TwoChars(int c1, int c2) |
117 | 1.93M | { |
118 | 1.93M | switch (c1) { |
119 | 9.24k | case '!': |
120 | 9.24k | switch (c2) { |
121 | 1.89k | case '=': return NOTEQUAL; |
122 | 9.24k | } |
123 | 7.35k | break; |
124 | 47.0k | case '%': |
125 | 47.0k | switch (c2) { |
126 | 194 | case '=': return PERCENTEQUAL; |
127 | 47.0k | } |
128 | 46.8k | break; |
129 | 46.8k | case '&': |
130 | 14.2k | switch (c2) { |
131 | 227 | case '=': return AMPEREQUAL; |
132 | 14.2k | } |
133 | 13.9k | break; |
134 | 221k | case '*': |
135 | 221k | switch (c2) { |
136 | 72.0k | case '*': return DOUBLESTAR; |
137 | 1.74k | case '=': return STAREQUAL; |
138 | 221k | } |
139 | 147k | break; |
140 | 215k | case '+': |
141 | 215k | switch (c2) { |
142 | 877 | case '=': return PLUSEQUAL; |
143 | 215k | } |
144 | 214k | break; |
145 | 214k | case '-': |
146 | 193k | switch (c2) { |
147 | 50 | case '=': return MINEQUAL; |
148 | 1.81k | case '>': return RARROW; |
149 | 193k | } |
150 | 192k | break; |
151 | 192k | case '/': |
152 | 96.8k | switch (c2) { |
153 | 16.8k | case '/': return DOUBLESLASH; |
154 | 655 | case '=': return SLASHEQUAL; |
155 | 96.8k | } |
156 | 79.3k | break; |
157 | 106k | case ':': |
158 | 106k | switch (c2) { |
159 | 1.05k | case '=': return COLONEQUAL; |
160 | 106k | } |
161 | 105k | break; |
162 | 105k | case '<': |
163 | 26.7k | switch (c2) { |
164 | 7.04k | case '<': return LEFTSHIFT; |
165 | 3.34k | case '=': return LESSEQUAL; |
166 | 144 | case '>': return NOTEQUAL; |
167 | 26.7k | } |
168 | 16.2k | break; |
169 | 67.4k | case '=': |
170 | 67.4k | switch (c2) { |
171 | 2.11k | case '=': return EQEQUAL; |
172 | 67.4k | } |
173 | 65.3k | break; |
174 | 65.3k | case '>': |
175 | 31.2k | switch (c2) { |
176 | 2.22k | case '=': return GREATEREQUAL; |
177 | 10.4k | case '>': return RIGHTSHIFT; |
178 | 31.2k | } |
179 | 18.5k | break; |
180 | 18.5k | case '@': |
181 | 11.3k | switch (c2) { |
182 | 533 | case '=': return ATEQUAL; |
183 | 11.3k | } |
184 | 10.8k | break; |
185 | 30.2k | case '^': |
186 | 30.2k | switch (c2) { |
187 | 619 | case '=': return CIRCUMFLEXEQUAL; |
188 | 30.2k | } |
189 | 29.6k | break; |
190 | 29.6k | case '|': |
191 | 12.1k | switch (c2) { |
192 | 266 | case '=': return VBAREQUAL; |
193 | 12.1k | } |
194 | 11.8k | break; |
195 | 1.93M | } |
196 | 1.81M | return OP; |
197 | 1.93M | } |
198 | | |
199 | | int |
200 | | _PyToken_ThreeChars(int c1, int c2, int c3) |
201 | 124k | { |
202 | 124k | switch (c1) { |
203 | 73.7k | case '*': |
204 | 73.7k | switch (c2) { |
205 | 72.0k | case '*': |
206 | 72.0k | switch (c3) { |
207 | 330 | case '=': return DOUBLESTAREQUAL; |
208 | 72.0k | } |
209 | 71.7k | break; |
210 | 73.7k | } |
211 | 73.4k | break; |
212 | 73.4k | 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 | 17.5k | case '/': |
222 | 17.5k | switch (c2) { |
223 | 16.8k | case '/': |
224 | 16.8k | switch (c3) { |
225 | 276 | case '=': return DOUBLESLASHEQUAL; |
226 | 16.8k | } |
227 | 16.5k | break; |
228 | 17.5k | } |
229 | 17.2k | break; |
230 | 17.2k | case '<': |
231 | 10.5k | switch (c2) { |
232 | 7.04k | case '<': |
233 | 7.04k | switch (c3) { |
234 | 252 | case '=': return LEFTSHIFTEQUAL; |
235 | 7.04k | } |
236 | 6.79k | break; |
237 | 10.5k | } |
238 | 10.2k | break; |
239 | 12.7k | case '>': |
240 | 12.7k | switch (c2) { |
241 | 10.4k | case '>': |
242 | 10.4k | switch (c3) { |
243 | 305 | case '=': return RIGHTSHIFTEQUAL; |
244 | 10.4k | } |
245 | 10.1k | break; |
246 | 12.7k | } |
247 | 12.4k | break; |
248 | 124k | } |
249 | 123k | return OP; |
250 | 124k | } |