Branch data Line data Source code
1 : : /* Auto-generated by Tools/scripts/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 : : "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 : 14665111 : _PyToken_OneChar(int c1)
80 : : {
81 [ + + + + : 14665111 : switch (c1) {
+ + + + -
+ + + + +
+ + + + +
+ + + +
+ ]
82 : 65246 : case '%': return PERCENT;
83 : 6390 : case '&': return AMPER;
84 : 2694759 : case '(': return LPAR;
85 : 2694400 : case ')': return RPAR;
86 : 379449 : case '*': return STAR;
87 : 95027 : case '+': return PLUS;
88 : 4070035 : case ',': return COMMA;
89 : 110573 : case '-': return MINUS;
90 : 0 : case '.': return DOT;
91 : 25341 : case '/': return SLASH;
92 : 1982414 : case ':': return COLON;
93 : 7791 : case ';': return SEMI;
94 : 15089 : case '<': return LESS;
95 : 1084530 : case '=': return EQUAL;
96 : 13410 : case '>': return GREATER;
97 : 36663 : case '@': return AT;
98 : 639040 : case '[': return LSQB;
99 : 638991 : case ']': return RSQB;
100 : 1016 : case '^': return CIRCUMFLEX;
101 : 47792 : case '{': return LBRACE;
102 : 8330 : case '|': return VBAR;
103 : 47733 : case '}': return RBRACE;
104 : 1066 : case '~': return TILDE;
105 : : }
106 : 26 : return OP;
107 : : }
108 : :
109 : : int
110 : 14880314 : _PyToken_TwoChars(int c1, int c2)
111 : : {
112 [ + + + + : 14880314 : switch (c1) {
+ + + + +
+ + + + +
+ ]
113 [ + + ]: 17561 : case '!':
114 : : switch (c2) {
115 : 17559 : case '=': return NOTEQUAL;
116 : : }
117 : 2 : break;
118 [ + + ]: 65319 : case '%':
119 : : switch (c2) {
120 : 73 : case '=': return PERCENTEQUAL;
121 : : }
122 : 65246 : break;
123 [ + + ]: 6867 : case '&':
124 : : switch (c2) {
125 : 477 : case '=': return AMPEREQUAL;
126 : : }
127 : 6390 : break;
128 [ + + + ]: 421225 : case '*':
129 : : switch (c2) {
130 : 41125 : case '*': return DOUBLESTAR;
131 : 651 : case '=': return STAREQUAL;
132 : : }
133 : 379449 : break;
134 [ + + ]: 113860 : case '+':
135 : : switch (c2) {
136 : 18833 : case '=': return PLUSEQUAL;
137 : : }
138 : 95027 : break;
139 [ + + + ]: 146686 : case '-':
140 : : switch (c2) {
141 : 2726 : case '=': return MINEQUAL;
142 : 33387 : case '>': return RARROW;
143 : : }
144 : 110573 : break;
145 [ + + + ]: 29285 : case '/':
146 : : switch (c2) {
147 : 3818 : case '/': return DOUBLESLASH;
148 : 126 : case '=': return SLASHEQUAL;
149 : : }
150 : 25341 : break;
151 [ + + ]: 1983359 : case ':':
152 : : switch (c2) {
153 : 945 : case '=': return COLONEQUAL;
154 : : }
155 : 1982414 : break;
156 [ + + + + ]: 27781 : case '<':
157 : : switch (c2) {
158 : 3796 : case '<': return LEFTSHIFT;
159 : 8894 : case '=': return LESSEQUAL;
160 : 2 : case '>': return NOTEQUAL;
161 : : }
162 : 15089 : break;
163 [ + + ]: 1155731 : case '=':
164 : : switch (c2) {
165 : 71201 : case '=': return EQEQUAL;
166 : : }
167 : 1084530 : break;
168 [ + + + ]: 23032 : case '>':
169 : : switch (c2) {
170 : 8205 : case '=': return GREATEREQUAL;
171 : 1417 : case '>': return RIGHTSHIFT;
172 : : }
173 : 13410 : break;
174 [ + + ]: 36708 : case '@':
175 : : switch (c2) {
176 : 45 : case '=': return ATEQUAL;
177 : : }
178 : 36663 : break;
179 [ + + ]: 1228 : case '^':
180 : : switch (c2) {
181 : 212 : case '=': return CIRCUMFLEXEQUAL;
182 : : }
183 : 1016 : break;
184 [ + + ]: 10022 : case '|':
185 : : switch (c2) {
186 : 1692 : case '=': return VBAREQUAL;
187 : : }
188 : 8330 : break;
189 : : }
190 : 14665130 : return OP;
191 : : }
192 : :
193 : : int
194 : 215184 : _PyToken_ThreeChars(int c1, int c2, int c3)
195 : : {
196 [ + - + + : 215184 : switch (c1) {
+ + ]
197 [ + + ]: 41776 : case '*':
198 : : switch (c2) {
199 [ + + ]: 41125 : case '*':
200 : : switch (c3) {
201 : 58 : case '=': return DOUBLESTAREQUAL;
202 : : }
203 : 41067 : break;
204 : : }
205 : 41718 : break;
206 [ # # ]: 0 : case '.':
207 : : switch (c2) {
208 [ # # ]: 0 : case '.':
209 : : switch (c3) {
210 : 0 : case '.': return ELLIPSIS;
211 : : }
212 : 0 : break;
213 : : }
214 : 0 : break;
215 [ + + ]: 3944 : case '/':
216 : : switch (c2) {
217 [ + + ]: 3818 : case '/':
218 : : switch (c3) {
219 : 357 : case '=': return DOUBLESLASHEQUAL;
220 : : }
221 : 3461 : break;
222 : : }
223 : 3587 : break;
224 [ + + ]: 12692 : case '<':
225 : : switch (c2) {
226 [ + + ]: 3796 : case '<':
227 : : switch (c3) {
228 : 269 : case '=': return LEFTSHIFTEQUAL;
229 : : }
230 : 3527 : break;
231 : : }
232 : 12423 : break;
233 [ + + ]: 9622 : case '>':
234 : : switch (c2) {
235 [ + + ]: 1417 : case '>':
236 : : switch (c3) {
237 : 82 : case '=': return RIGHTSHIFTEQUAL;
238 : : }
239 : 1335 : break;
240 : : }
241 : 9540 : break;
242 : : }
243 : 214418 : return OP;
244 : : }
|