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