use super::{Call, CellPath, Expression, FullCellPath, Operator, RangeOperator}; use crate::{BlockId, Signature, Span, Spanned, Unit, VarId}; #[derive(Debug, Clone)] pub enum Expr { Bool(bool), Int(i64), Float(f64), Range( Option>, // from Option>, // next value after "from" Option>, // to RangeOperator, ), Var(VarId), Call(Box), ExternalCall(Span, Vec), Operator(Operator), RowCondition(VarId, Box), BinaryOp(Box, Box, Box), //lhs, op, rhs Subexpression(BlockId), Block(BlockId), List(Vec), Table(Vec, Vec>), Keyword(Vec, Span, Box), ValueWithUnit(Box, Spanned), Filepath(String), GlobPattern(String), String(String), // FIXME: improve this in the future? CellPath(CellPath), FullCellPath(Box), Signature(Box), Garbage, }