1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#[allow(non_camel_case_types)]
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
pub enum TokenType {
ENDMARKER,
NAME,
INTEGER,
BININT,
OCTINT,
HEXINT,
FLOAT,
IMAGINARY,
NUMBER,
STRING,
NEWLINE,
INDENT,
DEDENT,
LPAR,
RPAR,
LSQB,
RSQB,
COLON,
COMMA,
SEMI,
PLUS,
MINUS,
STAR,
SLASH,
VBAR,
AMPER,
LESS,
GREATER,
EQUAL,
DOT,
PERCENT,
LBRACE,
RBRACE,
EQEQUAL,
NOTEQUAL,
LESSEQUAL,
GREATEREQUAL,
TILDE,
CIRCUMFLEX,
LEFTSHIFT,
RIGHTSHIFT,
DOUBLESTAR,
PLUSEQUAL,
MINEQUAL,
STAREQUAL,
SLASHEQUAL,
PERCENTEQUAL,
AMPEREQUAL,
VBAREQUAL,
CIRCUMFLEXEQUAL,
LEFTSHIFTEQUAL,
RIGHTSHIFTEQUAL,
DOUBLESTAREQUAL,
DOUBLESLASH,
DOUBLESLASHEQUAL,
AT,
ATEQUAL,
RARROW,
ELLIPSIS,
COLONEQUAL,
OP,
AWAIT,
ASYNC,
TYPE_IGNORE,
TYPE_COMMENT,
ERRORTOKEN,
COMMENT,
NL,
ENCODING,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct Token {
pub token_type: TokenType,
pub exact_token_type: TokenType,
pub token_contents: String,
pub col_start: usize,
pub col_end: usize,
}