use super::{Call, CellPath, Expression, FullCellPath, Operator, RangeOperator}; use crate::{ast::ImportPattern, 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), VarDecl(VarId), Call(Box), ExternalCall(String, Span, Vec), Operator(Operator), RowCondition(VarId, Box), BinaryOp(Box, Box, Box), //lhs, op, rhs Subexpression(BlockId), Block(BlockId), List(Vec), Table(Vec, Vec>), Record(Vec<(Expression, Expression)>), Keyword(Vec, Span, Box), ValueWithUnit(Box, Spanned), Filepath(String), GlobPattern(String), String(String), CellPath(CellPath), FullCellPath(Box), ImportPattern(ImportPattern), Signature(Box), Garbage, }