blob: 9d0c0bf0fb0368e15170336a0c60b17f5fa4da40 [file] [log] [blame]
Serhiy Storchaka8ac65812018-12-22 11:18:40 +02001"""Token constants."""
2# Auto-generated by Tools/scripts/generate_token.py
Guido van Rossume7b146f2000-02-04 15:28:42 +00003
Alexander Belopolskyb9d10d02010-11-11 14:07:41 +00004__all__ = ['tok_name', 'ISTERMINAL', 'ISNONTERMINAL', 'ISEOF']
5
Guido van Rossumb31c7f71993-11-11 10:31:23 +00006ENDMARKER = 0
7NAME = 1
8NUMBER = 2
9STRING = 3
10NEWLINE = 4
11INDENT = 5
12DEDENT = 6
13LPAR = 7
14RPAR = 8
15LSQB = 9
16RSQB = 10
17COLON = 11
18COMMA = 12
19SEMI = 13
20PLUS = 14
21MINUS = 15
22STAR = 16
23SLASH = 17
24VBAR = 18
25AMPER = 19
26LESS = 20
27GREATER = 21
28EQUAL = 22
29DOT = 23
30PERCENT = 24
Meador Inge33880602012-01-15 19:15:36 -060031LBRACE = 25
32RBRACE = 26
33EQEQUAL = 27
34NOTEQUAL = 28
35LESSEQUAL = 29
36GREATEREQUAL = 30
37TILDE = 31
38CIRCUMFLEX = 32
39LEFTSHIFT = 33
40RIGHTSHIFT = 34
41DOUBLESTAR = 35
42PLUSEQUAL = 36
43MINEQUAL = 37
44STAREQUAL = 38
45SLASHEQUAL = 39
46PERCENTEQUAL = 40
47AMPEREQUAL = 41
48VBAREQUAL = 42
49CIRCUMFLEXEQUAL = 43
50LEFTSHIFTEQUAL = 44
51RIGHTSHIFTEQUAL = 45
52DOUBLESTAREQUAL = 46
53DOUBLESLASH = 47
54DOUBLESLASHEQUAL = 48
55AT = 49
Benjamin Petersond51374e2014-04-09 23:55:56 -040056ATEQUAL = 50
57RARROW = 51
58ELLIPSIS = 52
Emily Morehouse8f59ee02019-01-24 16:49:56 -070059COLONEQUAL = 53
60OP = 54
Guido van Rossum495da292019-03-07 12:38:08 -080061AWAIT = 55
62ASYNC = 56
63TYPE_IGNORE = 57
64TYPE_COMMENT = 58
Pablo Galindob2802482021-04-15 21:38:45 +010065SOFT_KEYWORD = 59
Albert-Jan Nijburgfc354f02017-05-31 15:00:21 +010066# These aren't used by the C tokenizer but are needed for tokenize.py
Pablo Galindob2802482021-04-15 21:38:45 +010067ERRORTOKEN = 60
68COMMENT = 61
69NL = 62
70ENCODING = 63
71N_TOKENS = 64
Albert-Jan Nijburgfc354f02017-05-31 15:00:21 +010072# Special definitions for cooperation with parser
Guido van Rossum47478871996-08-21 14:32:37 +000073NT_OFFSET = 256
Guido van Rossumb31c7f71993-11-11 10:31:23 +000074
Alexander Belopolskyb9d10d02010-11-11 14:07:41 +000075tok_name = {value: name
76 for name, value in globals().items()
Antoine Pitrouea3eb882012-05-17 18:55:59 +020077 if isinstance(value, int) and not name.startswith('_')}
Alexander Belopolskyb9d10d02010-11-11 14:07:41 +000078__all__.extend(tok_name.values())
Guido van Rossumb31c7f71993-11-11 10:31:23 +000079
Serhiy Storchaka8ac65812018-12-22 11:18:40 +020080EXACT_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,
Emily Morehouse8f59ee02019-01-24 16:49:56 -0700105 ':=': COLONEQUAL,
Serhiy Storchaka8ac65812018-12-22 11:18:40 +0200106 ';': 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
Guido van Rossum154a5391996-07-21 02:17:52 +0000130def ISTERMINAL(x):
131 return x < NT_OFFSET
132
133def ISNONTERMINAL(x):
134 return x >= NT_OFFSET
135
136def ISEOF(x):
137 return x == ENDMARKER