dowdiness/js_engine/ast does not have a README file
pub(all) enum BinOp {
Add
Sub
Mul
Div
Mod
EqEq
EqEqEq
NotEq
NotEqEq
Lt
Gt
LtEq
GtEq
And
Or
NullishCoalesce
BitAnd
BitOr
BitXor
LShift
RShift
URShift
Exp
In
Instanceof
}pub(all) enum CompoundOp {
AddAssign
SubAssign
MulAssign
DivAssign
ModAssign
ExpAssign
BitAndAssign
BitOrAssign
BitXorAssign
LShiftAssign
RShiftAssign
URShiftAssign
LogicalAndAssign
LogicalOrAssign
NullishAssign
}pub(all) enum Expr {
NumberLit(Double, Loc)
StringLit(String, Loc)
BoolLit(Bool, Loc)
NullLit(Loc)
UndefinedLit(Loc)
Ident(String, Loc)
Binary(BinOp, Expr, Expr, Loc)
Unary(UnaryOp, Expr, Loc)
Assign(String, Expr, Loc)
Call(Expr, Array[Expr], Loc)
Member(Expr, String, Loc)
Ternary(Expr, Expr, Expr, Loc)
FuncExpr(String?, Array[String], Array[Stmt], Loc)
FuncExprExt(String?, Array[Param], String?, Array[Stmt], Loc)
Grouping(Expr, Loc)
ObjectLit(Array[Property], Loc)
ArrayLit(Array[Expr], Loc)
ComputedMember(Expr, Expr, Loc)
MemberAssign(Expr, String, Expr, Loc)
ComputedAssign(Expr, Expr, Expr, Loc)
NewExpr(Expr, Array[Expr], Loc)
ThisExpr(Loc)
UpdateExpr(UpdateOp, Expr, Bool, Loc)
CompoundAssign(CompoundOp, Expr, Expr, Loc)
Comma(Expr, Expr, Loc)
TemplateLit(Array[String], Array[Expr], Loc)
ArrowFunc(Array[String], Array[Stmt], Loc)
ArrowFuncExt(Array[Param], String?, Array[Stmt], Loc)
SpreadExpr(Expr, Loc)
RegexLit(String, String, Loc)
DestructureAssign(Pattern, Expr, Loc)
OptionalMember(Expr, String, Loc)
OptionalComputedMember(Expr, Expr, Loc)
OptionalCall(Expr, Array[Expr], Loc)
ClassExpr(String?, Expr?, Array[ClassMethod], Loc)
SuperCall(Array[Expr], Loc)
SuperMember(String, Loc)
SuperComputedMember(Expr, Loc)
NewTargetExpr(Loc)
TaggedTemplate(Expr, Array[String], Array[Expr], Loc)
}pub(all) enum PropKind {
Init
Get
Set
Spread
}pub(all) enum Stmt {
ExprStmt(Expr, Loc)
VarDecl(VarKind, String, Expr?, Loc)
Block(Array[Stmt], Loc)
StmtList(Array[Stmt], Loc)
IfStmt(Expr, Stmt, Stmt?, Loc)
WhileStmt(Expr, Stmt, Loc)
ForStmt(Stmt?, Expr?, Expr?, Stmt, Loc)
FuncDecl(String, Array[String], Array[Stmt], Loc)
FuncDeclExt(String, Array[Param], String?, Array[Stmt], Loc)
ReturnStmt(Expr?, Loc)
BreakStmt(String?, Loc)
ContinueStmt(String?, Loc)
ThrowStmt(Expr, Loc)
TryCatchStmt(Array[Stmt], String?, Array[Stmt]?, Array[Stmt]?, Loc)
SwitchStmt(Expr, Array[SwitchCase], Loc)
DoWhileStmt(Stmt, Expr, Loc)
ForInStmt(VarKind?, String, Expr, Stmt, Loc)
ForOfStmt(VarKind?, String, Expr, Stmt, Loc)
ForInStmtPat(VarKind, Pattern, Expr, Stmt, Loc)
ForOfStmtPat(VarKind, Pattern, Expr, Stmt, Loc)
DestructureDecl(VarKind, Pattern, Expr, Loc)
LabeledStmt(String, Stmt, Loc)
ClassDecl(String, Expr?, Array[ClassMethod], Loc)
}pub(all) enum UnaryOp {
Neg
Pos
Not
Typeof
Void
Delete
BitNot
}pub(all) enum UpdateOp {
Increment
Decrement
}