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