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}