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