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