Branch data Line data Source code
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 : : "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 : 580454 : _PyToken_OneChar(int c1)
80 : : {
81 [ + + + + : 580454 : switch (c1) {
+ + + + -
+ + + + +
+ + + + +
+ + + +
- ]
82 : 830 : case '%': return PERCENT;
83 : 193 : case '&': return AMPER;
84 : 37857 : case '(': return LPAR;
85 : 37857 : case ')': return RPAR;
86 : 1308 : case '*': return STAR;
87 : 1418 : case '+': return PLUS;
88 : 439141 : case ',': return COMMA;
89 : 1557 : case '-': return MINUS;
90 : 0 : case '.': return DOT;
91 : 176 : case '/': return SLASH;
92 : 27073 : case ':': return COLON;
93 : 14 : case ';': return SEMI;
94 : 323 : case '<': return LESS;
95 : 21087 : case '=': return EQUAL;
96 : 283 : case '>': return GREATER;
97 : 622 : case '@': return AT;
98 : 4776 : case '[': return LSQB;
99 : 4776 : case ']': return RSQB;
100 : 14 : case '^': return CIRCUMFLEX;
101 : 506 : case '{': return LBRACE;
102 : 111 : case '|': return VBAR;
103 : 506 : case '}': return RBRACE;
104 : 26 : case '~': return TILDE;
105 : : }
106 : 0 : return OP;
107 : : }
108 : :
109 : : int
110 : 584506 : _PyToken_TwoChars(int c1, int c2)
111 : : {
112 [ + + + + : 584506 : switch (c1) {
+ + + + +
+ + + + +
+ ]
113 [ + - ]: 437 : case '!':
114 : : switch (c2) {
115 : 437 : case '=': return NOTEQUAL;
116 : : }
117 : 0 : break;
118 [ + + ]: 831 : case '%':
119 : : switch (c2) {
120 : 1 : case '=': return PERCENTEQUAL;
121 : : }
122 : 830 : break;
123 [ + + ]: 209 : case '&':
124 : : switch (c2) {
125 : 16 : case '=': return AMPEREQUAL;
126 : : }
127 : 193 : break;
128 [ + + + ]: 1892 : case '*':
129 : : switch (c2) {
130 : 566 : case '*': return DOUBLESTAR;
131 : 18 : case '=': return STAREQUAL;
132 : : }
133 : 1308 : break;
134 [ + + ]: 1908 : case '+':
135 : : switch (c2) {
136 : 490 : case '=': return PLUSEQUAL;
137 : : }
138 : 1418 : break;
139 [ + + + ]: 1883 : case '-':
140 : : switch (c2) {
141 : 85 : case '=': return MINEQUAL;
142 : 241 : case '>': return RARROW;
143 : : }
144 : 1557 : break;
145 [ + + + ]: 272 : case '/':
146 : : switch (c2) {
147 : 95 : case '/': return DOUBLESLASH;
148 : 1 : case '=': return SLASHEQUAL;
149 : : }
150 : 176 : break;
151 [ + + ]: 27096 : case ':':
152 : : switch (c2) {
153 : 23 : case '=': return COLONEQUAL;
154 : : }
155 : 27073 : break;
156 [ + + - + ]: 565 : case '<':
157 : : switch (c2) {
158 : 57 : case '<': return LEFTSHIFT;
159 : 185 : case '=': return LESSEQUAL;
160 : 0 : case '>': return NOTEQUAL;
161 : : }
162 : 323 : break;
163 [ + + ]: 22662 : case '=':
164 : : switch (c2) {
165 : 1575 : case '=': return EQEQUAL;
166 : : }
167 : 21087 : break;
168 [ + + + ]: 462 : case '>':
169 : : switch (c2) {
170 : 154 : case '=': return GREATEREQUAL;
171 : 25 : case '>': return RIGHTSHIFT;
172 : : }
173 : 283 : break;
174 [ + + ]: 623 : case '@':
175 : : switch (c2) {
176 : 1 : case '=': return ATEQUAL;
177 : : }
178 : 622 : break;
179 [ + + ]: 22 : case '^':
180 : : switch (c2) {
181 : 8 : case '=': return CIRCUMFLEXEQUAL;
182 : : }
183 : 14 : break;
184 [ + + ]: 185 : case '|':
185 : : switch (c2) {
186 : 74 : case '=': return VBAREQUAL;
187 : : }
188 : 111 : break;
189 : : }
190 : 580454 : return OP;
191 : : }
192 : :
193 : : int
194 : 4052 : _PyToken_ThreeChars(int c1, int c2, int c3)
195 : : {
196 [ + - + + : 4052 : switch (c1) {
+ + ]
197 [ + + ]: 584 : case '*':
198 : : switch (c2) {
199 [ + + ]: 566 : case '*':
200 : : switch (c3) {
201 : 1 : case '=': return DOUBLESTAREQUAL;
202 : : }
203 : 565 : break;
204 : : }
205 : 583 : 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 [ + + ]: 96 : case '/':
216 : : switch (c2) {
217 [ + + ]: 95 : case '/':
218 : : switch (c3) {
219 : 14 : case '=': return DOUBLESLASHEQUAL;
220 : : }
221 : 81 : break;
222 : : }
223 : 82 : break;
224 [ + + ]: 242 : case '<':
225 : : switch (c2) {
226 [ + + ]: 57 : case '<':
227 : : switch (c3) {
228 : 5 : case '=': return LEFTSHIFTEQUAL;
229 : : }
230 : 52 : break;
231 : : }
232 : 237 : break;
233 [ + + ]: 179 : case '>':
234 : : switch (c2) {
235 [ + + ]: 25 : case '>':
236 : : switch (c3) {
237 : 1 : case '=': return RIGHTSHIFTEQUAL;
238 : : }
239 : 24 : break;
240 : : }
241 : 178 : break;
242 : : }
243 : 4031 : return OP;
244 : : }
|