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 "AWAIT",
66 "ASYNC",
67 "TYPE_IGNORE",
68 "TYPE_COMMENT",
69 "SOFT_KEYWORD",
70 "FSTRING_START",
71 "FSTRING_MIDDLE",
72 "FSTRING_END",
73 "COMMENT",
74 "NL",
75 "<ERRORTOKEN>",
76 "<ENCODING>",
77 "<N_TOKENS>",
78 };
79
80 /* Return the token corresponding to a single character */
81
82 int
83 _PyToken_OneChar(int c1)
84 {
85 switch (c1) {
86 case '!': return EXCLAMATION;
87 case '%': return PERCENT;
88 case '&': return AMPER;
89 case '(': return LPAR;
90 case ')': return RPAR;
91 case '*': return STAR;
92 case '+': return PLUS;
93 case ',': return COMMA;
94 case '-': return MINUS;
95 case '.': return DOT;
96 case '/': return SLASH;
97 case ':': return COLON;
98 case ';': return SEMI;
99 case '<': return LESS;
100 case '=': return EQUAL;
101 case '>': return GREATER;
102 case '@': return AT;
103 case '[': return LSQB;
104 case ']': return RSQB;
105 case '^': return CIRCUMFLEX;
106 case '{': return LBRACE;
107 case '|': return VBAR;
108 case '}': return RBRACE;
109 case '~': return TILDE;
110 }
111 return OP;
112 }
113
114 int
115 _PyToken_TwoChars(int c1, int c2)
116 {
117 switch (c1) {
118 case '!':
119 switch (c2) {
120 case '=': return NOTEQUAL;
121 }
122 break;
123 case '%':
124 switch (c2) {
125 case '=': return PERCENTEQUAL;
126 }
127 break;
128 case '&':
129 switch (c2) {
130 case '=': return AMPEREQUAL;
131 }
132 break;
133 case '*':
134 switch (c2) {
135 case '*': return DOUBLESTAR;
136 case '=': return STAREQUAL;
137 }
138 break;
139 case '+':
140 switch (c2) {
141 case '=': return PLUSEQUAL;
142 }
143 break;
144 case '-':
145 switch (c2) {
146 case '=': return MINEQUAL;
147 case '>': return RARROW;
148 }
149 break;
150 case '/':
151 switch (c2) {
152 case '/': return DOUBLESLASH;
153 case '=': return SLASHEQUAL;
154 }
155 break;
156 case ':':
157 switch (c2) {
158 case '=': return COLONEQUAL;
159 }
160 break;
161 case '<':
162 switch (c2) {
163 case '<': return LEFTSHIFT;
164 case '=': return LESSEQUAL;
165 case '>': return NOTEQUAL;
166 }
167 break;
168 case '=':
169 switch (c2) {
170 case '=': return EQEQUAL;
171 }
172 break;
173 case '>':
174 switch (c2) {
175 case '=': return GREATEREQUAL;
176 case '>': return RIGHTSHIFT;
177 }
178 break;
179 case '@':
180 switch (c2) {
181 case '=': return ATEQUAL;
182 }
183 break;
184 case '^':
185 switch (c2) {
186 case '=': return CIRCUMFLEXEQUAL;
187 }
188 break;
189 case '|':
190 switch (c2) {
191 case '=': return VBAREQUAL;
192 }
193 break;
194 }
195 return OP;
196 }
197
198 int
199 _PyToken_ThreeChars(int c1, int c2, int c3)
200 {
201 switch (c1) {
202 case '*':
203 switch (c2) {
204 case '*':
205 switch (c3) {
206 case '=': return DOUBLESTAREQUAL;
207 }
208 break;
209 }
210 break;
211 case '.':
212 switch (c2) {
213 case '.':
214 switch (c3) {
215 case '.': return ELLIPSIS;
216 }
217 break;
218 }
219 break;
220 case '/':
221 switch (c2) {
222 case '/':
223 switch (c3) {
224 case '=': return DOUBLESLASHEQUAL;
225 }
226 break;
227 }
228 break;
229 case '<':
230 switch (c2) {
231 case '<':
232 switch (c3) {
233 case '=': return LEFTSHIFTEQUAL;
234 }
235 break;
236 }
237 break;
238 case '>':
239 switch (c2) {
240 case '>':
241 switch (c3) {
242 case '=': return RIGHTSHIFTEQUAL;
243 }
244 break;
245 }
246 break;
247 }
248 return OP;
249 }