pub(all) enum Expr { Located(Span, Expr) Identity Literal(Literal) Pipe(Expr, Expr) Comma(Expr, Expr) Key(String) Access(Expr) Subscript(Expr, Expr) Index(Array[Int]) Slice(Int?, Int?) Optional(Expr) ArrayConstruct(Expr?) ObjectConstruct(Array[(Expr, Expr?)]) Operation(Expr, BinaryOp, Expr) IfThenElse(Expr, Expr, Expr) TryCatch(Expr, Expr?) Variable(String) As(Expr, String, Expr) Reduce(Expr, String, Expr, Expr) Foreach(Expr, String, Expr, Expr, Expr?) Update(Expr, Expr) Assign(Expr, Expr) Alternative(Expr, Expr) AddAssign(Expr, Expr) SubAssign(Expr, Expr) MulAssign(Expr, Expr) DivAssign(Expr, Expr) ModAssign(Expr, Expr) AltAssign(Expr, Expr) Format(String) StringInterpolation(Array[(String, Expr?)]) FunctionDef(String, Array[String], Expr) Scope(String, Array[String], Expr, Expr) FunctionCall(String, Array[Expr])} derive(Eq, ToJson, @moonbitlang/core/debug.Debug
Debug)