///|
pub(all) struct Parameter {
name : String
default : Expr? // None means no default
} derive(Show, Eq, ToJson)
///|
pub(all) enum Stmt {
Def(
name~ : String,
params~ : Array[Parameter],
body~ : Array[Stmt],
span~ : Span
)
If(
clauses~ : Array[(Expr, Array[Stmt])],
else_body~ : Array[Stmt]?,
span~ : Span
)
For(vars~ : Expr, iterable~ : Expr, body~ : Array[Stmt], span~ : Span)
Return(value~ : Expr?, span~ : Span)
Assign(target~ : Expr, op~ : AssignOp?, value~ : Expr, span~ : Span)
Expr(expr~ : Expr, span~ : Span)
Load(mod~ : String, bindings~ : Array[(String, String)], span~ : Span)
Pass(Span)
Break(Span)
Continue(Span)
} derive(Show, Eq, ToJson)