use chrono::FixedOffset; 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(Box, Vec), Operator(Operator), RowCondition(BlockId), 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), DateTime(chrono::DateTime), Filepath(String), GlobPattern(String), String(String), CellPath(CellPath), FullCellPath(Box), ImportPattern(ImportPattern), Signature(Box), StringInterpolation(Vec), Nothing, Garbage, }