1"""Token constants.""" 2# Auto-generated by Tools/build/generate_token.py 3 4__all__ = ['tok_name', 'ISTERMINAL', 'ISNONTERMINAL', 'ISEOF', 5 'EXACT_TOKEN_TYPES'] 6 7ENDMARKER = 0 8NAME = 1 9NUMBER = 2 10STRING = 3 11NEWLINE = 4 12INDENT = 5 13DEDENT = 6 14LPAR = 7 15RPAR = 8 16LSQB = 9 17RSQB = 10 18COLON = 11 19COMMA = 12 20SEMI = 13 21PLUS = 14 22MINUS = 15 23STAR = 16 24SLASH = 17 25VBAR = 18 26AMPER = 19 27LESS = 20 28GREATER = 21 29EQUAL = 22 30DOT = 23 31PERCENT = 24 32LBRACE = 25 33RBRACE = 26 34EQEQUAL = 27 35NOTEQUAL = 28 36LESSEQUAL = 29 37GREATEREQUAL = 30 38TILDE = 31 39CIRCUMFLEX = 32 40LEFTSHIFT = 33 41RIGHTSHIFT = 34 42DOUBLESTAR = 35 43PLUSEQUAL = 36 44MINEQUAL = 37 45STAREQUAL = 38 46SLASHEQUAL = 39 47PERCENTEQUAL = 40 48AMPEREQUAL = 41 49VBAREQUAL = 42 50CIRCUMFLEXEQUAL = 43 51LEFTSHIFTEQUAL = 44 52RIGHTSHIFTEQUAL = 45 53DOUBLESTAREQUAL = 46 54DOUBLESLASH = 47 55DOUBLESLASHEQUAL = 48 56AT = 49 57ATEQUAL = 50 58RARROW = 51 59ELLIPSIS = 52 60COLONEQUAL = 53 61EXCLAMATION = 54 62OP = 55 63TYPE_IGNORE = 56 64TYPE_COMMENT = 57 65SOFT_KEYWORD = 58 66FSTRING_START = 59 67FSTRING_MIDDLE = 60 68FSTRING_END = 61 69COMMENT = 62 70NL = 63 71# These aren't used by the C tokenizer but are needed for tokenize.py 72ERRORTOKEN = 64 73ENCODING = 65 74N_TOKENS = 66 75# Special definitions for cooperation with parser 76NT_OFFSET = 256 77 78tok_name = {value: name 79 for name, value in globals().items() 80 if isinstance(value, int) and not name.startswith('_')} 81__all__.extend(tok_name.values()) 82 83EXACT_TOKEN_TYPES = { 84 '!': EXCLAMATION, 85 '!=': NOTEQUAL, 86 '%': PERCENT, 87 '%=': PERCENTEQUAL, 88 '&': AMPER, 89 '&=': AMPEREQUAL, 90 '(': LPAR, 91 ')': RPAR, 92 '*': STAR, 93 '**': DOUBLESTAR, 94 '**=': DOUBLESTAREQUAL, 95 '*=': STAREQUAL, 96 '+': PLUS, 97 '+=': PLUSEQUAL, 98 ',': COMMA, 99 '-': MINUS, 100 '-=': MINEQUAL, 101 '->': RARROW, 102 '.': DOT, 103 '...': ELLIPSIS, 104 '/': SLASH, 105 '//': DOUBLESLASH, 106 '//=': DOUBLESLASHEQUAL, 107 '/=': SLASHEQUAL, 108 ':': COLON, 109 ':=': COLONEQUAL, 110 ';': SEMI, 111 '<': LESS, 112 '<<': LEFTSHIFT, 113 '<<=': LEFTSHIFTEQUAL, 114 '<=': LESSEQUAL, 115 '=': EQUAL, 116 '==': EQEQUAL, 117 '>': GREATER, 118 '>=': GREATEREQUAL, 119 '>>': RIGHTSHIFT, 120 '>>=': RIGHTSHIFTEQUAL, 121 '@': AT, 122 '@=': ATEQUAL, 123 '[': LSQB, 124 ']': RSQB, 125 '^': CIRCUMFLEX, 126 '^=': CIRCUMFLEXEQUAL, 127 '{': LBRACE, 128 '|': VBAR, 129 '|=': VBAREQUAL, 130 '}': RBRACE, 131 '~': TILDE, 132} 133 134def ISTERMINAL(x): 135 return x < NT_OFFSET 136 137def ISNONTERMINAL(x): 138 return x >= NT_OFFSET 139 140def ISEOF(x): 141 return x == ENDMARKER 142