• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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