24 lines
333 B
Rust
24 lines
333 B
Rust
#[derive(Clone, Debug, PartialEq)]
|
|
pub enum Token {
|
|
Symbol(char),
|
|
Integer(i32),
|
|
OpenParen,
|
|
CloseParen,
|
|
Plus,
|
|
Minus,
|
|
Times,
|
|
Divide,
|
|
Caret,
|
|
}
|
|
|
|
impl Token {
|
|
pub fn starts_expression(&self) -> bool {
|
|
match self {
|
|
Token::OpenParen => true,
|
|
Token::Symbol(_) => true,
|
|
Token::Integer(_) => true,
|
|
_ => false,
|
|
}
|
|
}
|
|
}
|