1#[derive(Debug, Clone, Copy, PartialEq, Eq)]
4pub enum TokenType {
5 Wire,
7 In,
8 Out,
9 State,
10 Msg,
11 Feedback,
12 Signal,
13 Float,
14 Int,
15 Bang,
16 List,
17 Symbol,
18
19 LParen,
21 RParen,
22 LBracket,
23 RBracket,
24 Comma,
25 Semicolon,
26 Colon,
27 Dot,
28 Eq,
29 Tilde,
30
31 Identifier,
34 Operator,
36 NumberLit,
38 StringLit,
40
41 DotAttrLParen,
44
45 Comment,
47
48 Eof,
50}
51
52#[derive(Debug, Clone, PartialEq)]
53pub struct Token {
54 pub token_type: TokenType,
55 pub lexeme: String,
56 pub line: usize,
57 pub column: usize,
58}
59
60impl Token {
61 pub fn new(
62 token_type: TokenType,
63 lexeme: impl Into<String>,
64 line: usize,
65 column: usize,
66 ) -> Self {
67 Self {
68 token_type,
69 lexeme: lexeme.into(),
70 line,
71 column,
72 }
73 }
74}