1use crate::decimal::DecimalNumber;
2use std::fmt;
3
4#[derive(Debug, Clone, PartialEq)]
5pub enum Token {
6 PosNum(DecimalNumber), EulersNum, Pi, PlusMinus, Add, Minus, Mul, Div, Caret, LeftParen, RightParen, Eof,
28}
29
30impl fmt::Display for Token {
31 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
32 match self {
33 Token::PosNum(d) => write!(f, "{}", d),
34 Token::EulersNum => write!(f, "e"),
35 Token::Pi => write!(f, "π"),
36 Token::PlusMinus => write!(f, "±"),
37 Token::Add => write!(f, "+"),
38 Token::Minus => write!(f, "-"),
39 Token::Mul => write!(f, "*"),
40 Token::Div => write!(f, "/"),
41 Token::Caret => write!(f, "^"),
42 Token::LeftParen => write!(f, "("),
43 Token::RightParen => write!(f, ")"),
44 Token::Eof => write!(f, "EOF"), }
46 }
47}