marianoguerra/wap/ast does not have a README file
pub(all) enum Decl {
ModuleName(String)
Import(Array[String])
ImportWas(file~ : String, funcs~ : Array[FnDecl], consts~ : Array[ConstDecl])
ImportHost(module_~ : String, funcs~ : Array[FnDecl], consts~ : Array[ConstDecl])
Const(ConstDecl)
TypeD(name~ : String, def~ : TypeDef, is_pub~ : Bool, span~ : Span)
Fn(FnDecl)
Impl(typ~ : String, methods~ : Array[FnDecl], span~ : Span)
} derive(Eq, Debug)pub(all) enum Expr {
Int(String)
Float(String)
BoolLit(Bool)
CharLit(Char)
StrLit(String)
Null
TupleLit(Array[Node])
SetLit(Array[Node])
Var(String)
Field(Node, String)
Index(Node, Node)
RecordLit(typ~ : String?, fields~ : Array[(String, Node?)])
RecordDefault(typ~ : String?)
ArrayLit(typ~ : String?, items~ : Array[Node])
ArrayRepeat(typ~ : String?, value~ : Node, count~ : Node)
Call(Node, Array[Node])
MethodCall(Node, String, Array[Node])
Bin(BinOp, Node, Node)
Un(UnOp, Node)
AndAlso(Node, Node)
OrElse(Node, Node)
InSet(Node, Node)
Cast(Node, Type)
Test(Node, Type)
NonNull(Node)
Bind(binders~ : Array[Binder], value~ : Node?, mutable~ : Bool)
Assign(targets~ : Array[Node], op~ : AssignOp, value~ : Node)
Block(Array[Node])
If(arms~ : Array[(Node?, Array[Node])], typ~ : Type?)
While(label~ : String?, cond~ : Node, step~ : Node?, body~ : Array[Node])
ForRange(label~ : String?, var_~ : String, from~ : Node, to~ : Node, inclusive~ : Bool, by~ : Node?, body~ : Array[Node])
ForIn(label~ : String?, var_~ : String, seq~ : Node, body~ : Array[Node])
Loop(label~ : String?, body~ : Array[Node])
Break(String?)
Continue(String?)
Return(Node?)
Match(scrutinee~ : Node, arms~ : Array[Arm], typ~ : Type?)
Unreachable
Nop
Drop(Node)
} derive(Eq, Debug)Install
Download zipWap: an Oberon-level language on shrubbery notation, compiled through the Wax AST
Dependencies