pub enum ExprDef {
Show 21 variants
BinOpExpr(BinOp, Box<Expr>, Box<Expr>),
UnaryOpExpr(UnaryOp, Box<Expr>),
ConstExpr(Const),
ConstructExpr(Box<Expr>, Vec<Expr>),
BlockExpr(Vec<Expr>),
LocalExpr(String),
GetConstFieldExpr(Box<Expr>, String),
GetFieldExpr(Box<Expr>, Box<Expr>),
CallExpr(Box<Expr>, Vec<Expr>),
WhileLoopExpr(Box<Expr>, Box<Expr>),
IfExpr(Box<Expr>, Box<Expr>, Option<Box<Expr>>),
SwitchExpr(Box<Expr>, Vec<(Expr, Vec<Expr>)>, Option<Box<Expr>>),
ObjectDeclExpr(Box<BTreeMap<String, Expr>>),
ArrayDeclExpr(Vec<Expr>),
FunctionDeclExpr(Option<String>, Vec<String>, Box<Expr>),
ArrowFunctionDeclExpr(Vec<String>, Box<Expr>),
ReturnExpr(Option<Box<Expr>>),
ThrowExpr(Box<Expr>),
AssignExpr(Box<Expr>, Box<Expr>),
VarDeclExpr(Vec<(String, Option<Expr>)>),
TypeOfExpr(Box<Expr>),
}
Expand description
A Javascript Expression
Variants
BinOpExpr(BinOp, Box<Expr>, Box<Expr>)
Run a operation between 2 expressions
UnaryOpExpr(UnaryOp, Box<Expr>)
Run an operation on a value
ConstExpr(Const)
Make a constant value
ConstructExpr(Box<Expr>, Vec<Expr>)
Construct an object from the function and arg{ uments given },
BlockExpr(Vec<Expr>)
Run several expressions from top-to-bottom
LocalExpr(String)
Load a reference to a value
GetConstFieldExpr(Box<Expr>, String)
Gets the constant field of a value
GetFieldExpr(Box<Expr>, Box<Expr>)
Gets the field of a value
CallExpr(Box<Expr>, Vec<Expr>)
Call a function with some values
WhileLoopExpr(Box<Expr>, Box<Expr>)
Repeatedly run an expression while the conditional expression resolves to true
IfExpr(Box<Expr>, Box<Expr>, Option<Box<Expr>>)
Check if a conditional expression is true and run an expression if it is and another expression if it isn’t
SwitchExpr(Box<Expr>, Vec<(Expr, Vec<Expr>)>, Option<Box<Expr>>)
Run blocks whose cases match the expression
ObjectDeclExpr(Box<BTreeMap<String, Expr>>)
Create an object out of the binary tree given
ArrayDeclExpr(Vec<Expr>)
Create an array with items inside
FunctionDeclExpr(Option<String>, Vec<String>, Box<Expr>)
Create a function with the given name, arguments, and expression
ArrowFunctionDeclExpr(Vec<String>, Box<Expr>)
Create an arrow function with the given arguments and expression
ReturnExpr(Option<Box<Expr>>)
Return the expression from a function
ThrowExpr(Box<Expr>)
Throw a value
AssignExpr(Box<Expr>, Box<Expr>)
Assign an expression to a value
VarDeclExpr(Vec<(String, Option<Expr>)>)
{ A variable declaratio }
TypeOfExpr(Box<Expr>)
Return a string representing the type of the given expression