simple_interpreter/
token.rs1use 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}