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