blob: d27f98a34d55d1f6b6984dcda856269ff3c2fbfa [file] [log] [blame]
Serhiy Storchaka8ac65812018-12-22 11:18:40 +02001/* Auto-generated by Tools/scripts/generate_token.py */
2
3#include "Python.h"
4#include "token.h"
5
6/* Token names */
7
8const 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",
Emily Morehouse8f59ee02019-01-24 16:49:56 -070062 "COLONEQUAL",
Serhiy Storchaka8ac65812018-12-22 11:18:40 +020063 "OP",
64 "<ERRORTOKEN>",
65 "<COMMENT>",
66 "<NL>",
67 "<ENCODING>",
68 "<N_TOKENS>",
69};
70
71/* Return the token corresponding to a single character */
72
73int
74PyToken_OneChar(int c1)
75{
76 switch (c1) {
77 case '%': return PERCENT;
78 case '&': return AMPER;
79 case '(': return LPAR;
80 case ')': return RPAR;
81 case '*': return STAR;
82 case '+': return PLUS;
83 case ',': return COMMA;
84 case '-': return MINUS;
85 case '.': return DOT;
86 case '/': return SLASH;
87 case ':': return COLON;
88 case ';': return SEMI;
89 case '<': return LESS;
90 case '=': return EQUAL;
91 case '>': return GREATER;
92 case '@': return AT;
93 case '[': return LSQB;
94 case ']': return RSQB;
95 case '^': return CIRCUMFLEX;
96 case '{': return LBRACE;
97 case '|': return VBAR;
98 case '}': return RBRACE;
99 case '~': return TILDE;
100 }
101 return OP;
102}
103
104int
105PyToken_TwoChars(int c1, int c2)
106{
107 switch (c1) {
108 case '!':
109 switch (c2) {
110 case '=': return NOTEQUAL;
111 }
112 break;
113 case '%':
114 switch (c2) {
115 case '=': return PERCENTEQUAL;
116 }
117 break;
118 case '&':
119 switch (c2) {
120 case '=': return AMPEREQUAL;
121 }
122 break;
123 case '*':
124 switch (c2) {
125 case '*': return DOUBLESTAR;
126 case '=': return STAREQUAL;
127 }
128 break;
129 case '+':
130 switch (c2) {
131 case '=': return PLUSEQUAL;
132 }
133 break;
134 case '-':
135 switch (c2) {
136 case '=': return MINEQUAL;
137 case '>': return RARROW;
138 }
139 break;
140 case '/':
141 switch (c2) {
142 case '/': return DOUBLESLASH;
143 case '=': return SLASHEQUAL;
144 }
145 break;
Emily Morehouse8f59ee02019-01-24 16:49:56 -0700146 case ':':
147 switch (c2) {
148 case '=': return COLONEQUAL;
149 }
150 break;
Serhiy Storchaka8ac65812018-12-22 11:18:40 +0200151 case '<':
152 switch (c2) {
153 case '<': return LEFTSHIFT;
154 case '=': return LESSEQUAL;
155 case '>': return NOTEQUAL;
156 }
157 break;
158 case '=':
159 switch (c2) {
160 case '=': return EQEQUAL;
161 }
162 break;
163 case '>':
164 switch (c2) {
165 case '=': return GREATEREQUAL;
166 case '>': return RIGHTSHIFT;
167 }
168 break;
169 case '@':
170 switch (c2) {
171 case '=': return ATEQUAL;
172 }
173 break;
174 case '^':
175 switch (c2) {
176 case '=': return CIRCUMFLEXEQUAL;
177 }
178 break;
179 case '|':
180 switch (c2) {
181 case '=': return VBAREQUAL;
182 }
183 break;
184 }
185 return OP;
186}
187
188int
189PyToken_ThreeChars(int c1, int c2, int c3)
190{
191 switch (c1) {
192 case '*':
193 switch (c2) {
194 case '*':
195 switch (c3) {
196 case '=': return DOUBLESTAREQUAL;
197 }
198 break;
199 }
200 break;
201 case '.':
202 switch (c2) {
203 case '.':
204 switch (c3) {
205 case '.': return ELLIPSIS;
206 }
207 break;
208 }
209 break;
210 case '/':
211 switch (c2) {
212 case '/':
213 switch (c3) {
214 case '=': return DOUBLESLASHEQUAL;
215 }
216 break;
217 }
218 break;
219 case '<':
220 switch (c2) {
221 case '<':
222 switch (c3) {
223 case '=': return LEFTSHIFTEQUAL;
224 }
225 break;
226 }
227 break;
228 case '>':
229 switch (c2) {
230 case '>':
231 switch (c3) {
232 case '=': return RIGHTSHIFTEQUAL;
233 }
234 break;
235 }
236 break;
237 }
238 return OP;
239}