mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	 60202609a2
			
		
	
	
		60202609a2
		
			
		
	
	
	
	
		
			
			Co-authored-by: Lysandros Nikolaou <lisandrosnik@gmail.com> Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com> Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com> Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Co-authored-by: Wingy <git@wingysam.xyz> Co-authored-by: Koudai Aono <koxudaxi@gmail.com> Co-authored-by: Dave Peck <davepeck@gmail.com> Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu> Co-authored-by: Paul Everitt <pauleveritt@me.com> Co-authored-by: sobolevn <mail@sobolevn.me>
		
			
				
	
	
		
			250 lines
		
	
	
	
		
			4.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
		
			Generated
		
	
	
			
		
		
	
	
			250 lines
		
	
	
	
		
			4.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
		
			Generated
		
	
	
| /* Auto-generated by Tools/build/generate_token.py */
 | |
| 
 | |
| #include "Python.h"
 | |
| #include "pycore_token.h"
 | |
| 
 | |
| /* Token names */
 | |
| 
 | |
| const char * const _PyParser_TokenNames[] = {
 | |
|     "ENDMARKER",
 | |
|     "NAME",
 | |
|     "NUMBER",
 | |
|     "STRING",
 | |
|     "NEWLINE",
 | |
|     "INDENT",
 | |
|     "DEDENT",
 | |
|     "LPAR",
 | |
|     "RPAR",
 | |
|     "LSQB",
 | |
|     "RSQB",
 | |
|     "COLON",
 | |
|     "COMMA",
 | |
|     "SEMI",
 | |
|     "PLUS",
 | |
|     "MINUS",
 | |
|     "STAR",
 | |
|     "SLASH",
 | |
|     "VBAR",
 | |
|     "AMPER",
 | |
|     "LESS",
 | |
|     "GREATER",
 | |
|     "EQUAL",
 | |
|     "DOT",
 | |
|     "PERCENT",
 | |
|     "LBRACE",
 | |
|     "RBRACE",
 | |
|     "EQEQUAL",
 | |
|     "NOTEQUAL",
 | |
|     "LESSEQUAL",
 | |
|     "GREATEREQUAL",
 | |
|     "TILDE",
 | |
|     "CIRCUMFLEX",
 | |
|     "LEFTSHIFT",
 | |
|     "RIGHTSHIFT",
 | |
|     "DOUBLESTAR",
 | |
|     "PLUSEQUAL",
 | |
|     "MINEQUAL",
 | |
|     "STAREQUAL",
 | |
|     "SLASHEQUAL",
 | |
|     "PERCENTEQUAL",
 | |
|     "AMPEREQUAL",
 | |
|     "VBAREQUAL",
 | |
|     "CIRCUMFLEXEQUAL",
 | |
|     "LEFTSHIFTEQUAL",
 | |
|     "RIGHTSHIFTEQUAL",
 | |
|     "DOUBLESTAREQUAL",
 | |
|     "DOUBLESLASH",
 | |
|     "DOUBLESLASHEQUAL",
 | |
|     "AT",
 | |
|     "ATEQUAL",
 | |
|     "RARROW",
 | |
|     "ELLIPSIS",
 | |
|     "COLONEQUAL",
 | |
|     "EXCLAMATION",
 | |
|     "OP",
 | |
|     "TYPE_IGNORE",
 | |
|     "TYPE_COMMENT",
 | |
|     "SOFT_KEYWORD",
 | |
|     "FSTRING_START",
 | |
|     "FSTRING_MIDDLE",
 | |
|     "FSTRING_END",
 | |
|     "TSTRING_START",
 | |
|     "TSTRING_MIDDLE",
 | |
|     "TSTRING_END",
 | |
|     "COMMENT",
 | |
|     "NL",
 | |
|     "<ERRORTOKEN>",
 | |
|     "<ENCODING>",
 | |
|     "<N_TOKENS>",
 | |
| };
 | |
| 
 | |
| /* Return the token corresponding to a single character */
 | |
| 
 | |
| int
 | |
| _PyToken_OneChar(int c1)
 | |
| {
 | |
|     switch (c1) {
 | |
|     case '!': return EXCLAMATION;
 | |
|     case '%': return PERCENT;
 | |
|     case '&': return AMPER;
 | |
|     case '(': return LPAR;
 | |
|     case ')': return RPAR;
 | |
|     case '*': return STAR;
 | |
|     case '+': return PLUS;
 | |
|     case ',': return COMMA;
 | |
|     case '-': return MINUS;
 | |
|     case '.': return DOT;
 | |
|     case '/': return SLASH;
 | |
|     case ':': return COLON;
 | |
|     case ';': return SEMI;
 | |
|     case '<': return LESS;
 | |
|     case '=': return EQUAL;
 | |
|     case '>': return GREATER;
 | |
|     case '@': return AT;
 | |
|     case '[': return LSQB;
 | |
|     case ']': return RSQB;
 | |
|     case '^': return CIRCUMFLEX;
 | |
|     case '{': return LBRACE;
 | |
|     case '|': return VBAR;
 | |
|     case '}': return RBRACE;
 | |
|     case '~': return TILDE;
 | |
|     }
 | |
|     return OP;
 | |
| }
 | |
| 
 | |
| int
 | |
| _PyToken_TwoChars(int c1, int c2)
 | |
| {
 | |
|     switch (c1) {
 | |
|     case '!':
 | |
|         switch (c2) {
 | |
|         case '=': return NOTEQUAL;
 | |
|         }
 | |
|         break;
 | |
|     case '%':
 | |
|         switch (c2) {
 | |
|         case '=': return PERCENTEQUAL;
 | |
|         }
 | |
|         break;
 | |
|     case '&':
 | |
|         switch (c2) {
 | |
|         case '=': return AMPEREQUAL;
 | |
|         }
 | |
|         break;
 | |
|     case '*':
 | |
|         switch (c2) {
 | |
|         case '*': return DOUBLESTAR;
 | |
|         case '=': return STAREQUAL;
 | |
|         }
 | |
|         break;
 | |
|     case '+':
 | |
|         switch (c2) {
 | |
|         case '=': return PLUSEQUAL;
 | |
|         }
 | |
|         break;
 | |
|     case '-':
 | |
|         switch (c2) {
 | |
|         case '=': return MINEQUAL;
 | |
|         case '>': return RARROW;
 | |
|         }
 | |
|         break;
 | |
|     case '/':
 | |
|         switch (c2) {
 | |
|         case '/': return DOUBLESLASH;
 | |
|         case '=': return SLASHEQUAL;
 | |
|         }
 | |
|         break;
 | |
|     case ':':
 | |
|         switch (c2) {
 | |
|         case '=': return COLONEQUAL;
 | |
|         }
 | |
|         break;
 | |
|     case '<':
 | |
|         switch (c2) {
 | |
|         case '<': return LEFTSHIFT;
 | |
|         case '=': return LESSEQUAL;
 | |
|         case '>': return NOTEQUAL;
 | |
|         }
 | |
|         break;
 | |
|     case '=':
 | |
|         switch (c2) {
 | |
|         case '=': return EQEQUAL;
 | |
|         }
 | |
|         break;
 | |
|     case '>':
 | |
|         switch (c2) {
 | |
|         case '=': return GREATEREQUAL;
 | |
|         case '>': return RIGHTSHIFT;
 | |
|         }
 | |
|         break;
 | |
|     case '@':
 | |
|         switch (c2) {
 | |
|         case '=': return ATEQUAL;
 | |
|         }
 | |
|         break;
 | |
|     case '^':
 | |
|         switch (c2) {
 | |
|         case '=': return CIRCUMFLEXEQUAL;
 | |
|         }
 | |
|         break;
 | |
|     case '|':
 | |
|         switch (c2) {
 | |
|         case '=': return VBAREQUAL;
 | |
|         }
 | |
|         break;
 | |
|     }
 | |
|     return OP;
 | |
| }
 | |
| 
 | |
| int
 | |
| _PyToken_ThreeChars(int c1, int c2, int c3)
 | |
| {
 | |
|     switch (c1) {
 | |
|     case '*':
 | |
|         switch (c2) {
 | |
|         case '*':
 | |
|             switch (c3) {
 | |
|             case '=': return DOUBLESTAREQUAL;
 | |
|             }
 | |
|             break;
 | |
|         }
 | |
|         break;
 | |
|     case '.':
 | |
|         switch (c2) {
 | |
|         case '.':
 | |
|             switch (c3) {
 | |
|             case '.': return ELLIPSIS;
 | |
|             }
 | |
|             break;
 | |
|         }
 | |
|         break;
 | |
|     case '/':
 | |
|         switch (c2) {
 | |
|         case '/':
 | |
|             switch (c3) {
 | |
|             case '=': return DOUBLESLASHEQUAL;
 | |
|             }
 | |
|             break;
 | |
|         }
 | |
|         break;
 | |
|     case '<':
 | |
|         switch (c2) {
 | |
|         case '<':
 | |
|             switch (c3) {
 | |
|             case '=': return LEFTSHIFTEQUAL;
 | |
|             }
 | |
|             break;
 | |
|         }
 | |
|         break;
 | |
|     case '>':
 | |
|         switch (c2) {
 | |
|         case '>':
 | |
|             switch (c3) {
 | |
|             case '=': return RIGHTSHIFTEQUAL;
 | |
|             }
 | |
|             break;
 | |
|         }
 | |
|         break;
 | |
|     }
 | |
|     return OP;
 | |
| }
 |