| """Token constants.""" |
| # Auto-generated by Tools/scripts/generate_token.py |
| |
| __all__ = ['tok_name', 'ISTERMINAL', 'ISNONTERMINAL', 'ISEOF'] |
| |
| ENDMARKER = 0 |
| NAME = 1 |
| NUMBER = 2 |
| STRING = 3 |
| NEWLINE = 4 |
| INDENT = 5 |
| DEDENT = 6 |
| LPAR = 7 |
| RPAR = 8 |
| LSQB = 9 |
| RSQB = 10 |
| COLON = 11 |
| COMMA = 12 |
| SEMI = 13 |
| PLUS = 14 |
| MINUS = 15 |
| STAR = 16 |
| SLASH = 17 |
| VBAR = 18 |
| AMPER = 19 |
| LESS = 20 |
| GREATER = 21 |
| EQUAL = 22 |
| DOT = 23 |
| PERCENT = 24 |
| LBRACE = 25 |
| RBRACE = 26 |
| EQEQUAL = 27 |
| NOTEQUAL = 28 |
| LESSEQUAL = 29 |
| GREATEREQUAL = 30 |
| TILDE = 31 |
| CIRCUMFLEX = 32 |
| LEFTSHIFT = 33 |
| RIGHTSHIFT = 34 |
| DOUBLESTAR = 35 |
| PLUSEQUAL = 36 |
| MINEQUAL = 37 |
| STAREQUAL = 38 |
| SLASHEQUAL = 39 |
| PERCENTEQUAL = 40 |
| AMPEREQUAL = 41 |
| VBAREQUAL = 42 |
| CIRCUMFLEXEQUAL = 43 |
| LEFTSHIFTEQUAL = 44 |
| RIGHTSHIFTEQUAL = 45 |
| DOUBLESTAREQUAL = 46 |
| DOUBLESLASH = 47 |
| DOUBLESLASHEQUAL = 48 |
| AT = 49 |
| ATEQUAL = 50 |
| RARROW = 51 |
| ELLIPSIS = 52 |
| COLONEQUAL = 53 |
| OP = 54 |
| AWAIT = 55 |
| ASYNC = 56 |
| TYPE_IGNORE = 57 |
| TYPE_COMMENT = 58 |
| # These aren't used by the C tokenizer but are needed for tokenize.py |
| ERRORTOKEN = 59 |
| COMMENT = 60 |
| NL = 61 |
| ENCODING = 62 |
| N_TOKENS = 63 |
| # Special definitions for cooperation with parser |
| NT_OFFSET = 256 |
| |
| tok_name = {value: name |
| for name, value in globals().items() |
| if isinstance(value, int) and not name.startswith('_')} |
| __all__.extend(tok_name.values()) |
| |
| EXACT_TOKEN_TYPES = { |
| '!=': NOTEQUAL, |
| '%': PERCENT, |
| '%=': PERCENTEQUAL, |
| '&': AMPER, |
| '&=': AMPEREQUAL, |
| '(': LPAR, |
| ')': RPAR, |
| '*': STAR, |
| '**': DOUBLESTAR, |
| '**=': DOUBLESTAREQUAL, |
| '*=': STAREQUAL, |
| '+': PLUS, |
| '+=': PLUSEQUAL, |
| ',': COMMA, |
| '-': MINUS, |
| '-=': MINEQUAL, |
| '->': RARROW, |
| '.': DOT, |
| '...': ELLIPSIS, |
| '/': SLASH, |
| '//': DOUBLESLASH, |
| '//=': DOUBLESLASHEQUAL, |
| '/=': SLASHEQUAL, |
| ':': COLON, |
| ':=': COLONEQUAL, |
| ';': SEMI, |
| '<': LESS, |
| '<<': LEFTSHIFT, |
| '<<=': LEFTSHIFTEQUAL, |
| '<=': LESSEQUAL, |
| '=': EQUAL, |
| '==': EQEQUAL, |
| '>': GREATER, |
| '>=': GREATEREQUAL, |
| '>>': RIGHTSHIFT, |
| '>>=': RIGHTSHIFTEQUAL, |
| '@': AT, |
| '@=': ATEQUAL, |
| '[': LSQB, |
| ']': RSQB, |
| '^': CIRCUMFLEX, |
| '^=': CIRCUMFLEXEQUAL, |
| '{': LBRACE, |
| '|': VBAR, |
| '|=': VBAREQUAL, |
| '}': RBRACE, |
| '~': TILDE, |
| } |
| |
| def ISTERMINAL(x): |
| return x < NT_OFFSET |
| |
| def ISNONTERMINAL(x): |
| return x >= NT_OFFSET |
| |
| def ISEOF(x): |
| return x == ENDMARKER |