use crate::ast::*; #[derive(Debug, PartialEq)] pub enum Expr { BinaryExpression(Box, BinaryOperator, Box), Identifier(Identifier), Call(Box), // Literals BooleanLiteral(bool), IntegerLiteral(i64), FloatLiteral(f64), StringLiteral(String), Block(Box), /// Last field is either Expr::Block or Expr::IfExpr IfExpr(Box, Box, Box), } #[derive(Debug, PartialEq, Clone)] pub enum BinaryOperator { Add, Sub, Mul, Div, Modulo, Equal, NotEqual, }