1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
#[derive(Debug, PartialEq)] pub enum Expression { Number(f64), String(String), Boolean(bool), Array(Vec<Box<Expression>>), Object(Vec<(String, Box<Expression>)>), IdentifierSequence(Vec<Box<Expression>>), BinaryOperation { operation: OpCode, left: Box<Expression>, right: Box<Expression>, }, } #[derive(Debug, PartialEq, Eq, Copy, Clone)] pub enum OpCode { Add, Subtract, Multiply, Divide, FloorDivide, Less, LessEqual, Greater, GreaterEqual, Equal, NotEqual, And, Or, Modulus, Exponent, In, }