simple_interpreter/
token.rs

1use std::fmt;
2
3#[derive(PartialEq, Eq, Hash, Debug, Clone)]
4pub enum Token {
5    AndOp,
6    OrOp,
7    XorOp,
8    NotOp,
9    EqOp,
10    ConstVal(u8),
11    LeftBrace,
12    RightBrace
13}
14
15impl fmt::Display for Token {
16    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), std::fmt::Error> { 
17        use Token::*;
18        let str: String = match *self {
19            AndOp => "AND".to_string(),
20            OrOp => "OR".to_string(),
21            XorOp => "XOR".to_string(),
22            NotOp => "NOT".to_string(),
23            EqOp => "EQ".to_string(),
24            ConstVal(val) => format!("{:x}", val),
25            LeftBrace => "(".to_string(),
26            RightBrace => ")".to_string()
27        };
28        write!(f, "{str}")?;
29        Ok(())
30    }
31}