#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum TokenType {
Wire,
In,
Out,
State,
Msg,
Feedback,
Signal,
Float,
Int,
Bang,
List,
Symbol,
LParen,
RParen,
LBracket,
RBracket,
Comma,
Semicolon,
Colon,
Dot,
Eq,
Tilde,
Identifier,
Operator,
NumberLit,
StringLit,
DotAttrLParen,
Comment,
Eof,
}
#[derive(Debug, Clone, PartialEq)]
pub struct Token {
pub token_type: TokenType,
pub lexeme: String,
pub line: usize,
pub column: usize,
}
impl Token {
pub fn new(
token_type: TokenType,
lexeme: impl Into<String>,
line: usize,
column: usize,
) -> Self {
Self {
token_type,
lexeme: lexeme.into(),
line,
column,
}
}
}