1#[derive(Debug, Clone, Copy)]
3pub enum Token {
4 Number(f64),
6 Plus,
8 Minus,
9 Star,
10 Slash,
11 Bang,
12 LeftParen,
14 RightParen,
15 Eof,
17}
18
19impl core::fmt::Display for Token {
20 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
21 match self {
22 Token::Number(n) => write!(f, " {n} "),
23 Token::Plus => write!(f, " + "),
24 Token::Minus => write!(f, " - "),
25 Token::Star => write!(f, " * "),
26 Token::Slash => write!(f, " / "),
27 Token::Bang => write!(f, " ! "),
28 Token::Eof => write!(f, " EOF "),
29 Token::LeftParen => write!(f, " ( "),
30 Token::RightParen => write!(f, " ) "),
31 }
32 }
33}