BinaryExpr is used for binary expressions with a left hand side and a right hand side including assignment. Note that many common binary operations are actually modeled as ShortcutExpr to enable method based operator overloading.
Slots
- assignTargetSource
-
override Obj? assignTarget()
Overrides compiler::Expr.assignTarget
Doc inherited from compiler::Expr.assignTarget
If this expression performs assignment, then return the target of that assignment. Otherwise return null.
- isDefiniteAssignSource
-
override Bool isDefiniteAssign(|Expr -> Bool| f)
Overrides compiler::Expr.isDefiniteAssign
Doc inherited from compiler::Expr.isDefiniteAssign
If this an assignment expression, then return the result of calling the given function with the LHS. Otherwise return false.
- isStmtSource
-
override Bool isStmt()
Overrides compiler::Expr.isStmt
Doc inherited from compiler::Expr.isStmt
Does this expression make up a complete statement. If you override this to true, then you must make sure the expr is popped in CodeAsm.
- lhsSource
-
Expr lhs
- makeSource
- makeAssignSource
- opTokenSource
-
Token opToken
- rhsSource
-
Expr rhs
- serializeSource
-
override Str serialize()
Overrides compiler::Expr.serialize
Doc inherited from compiler::Expr.serialize
Return this expression as serialization text or throw exception if not serializable.
- tempVarSource
-
MethodVar? tempVar
- toStrSource
-
override Str toStr()
Overrides compiler::Expr.toStr
Doc inherited from sys::Obj.toStr
Return a string representation of this object.
- walkChildrenSource
-
override Void walkChildren(Visitor v)
Overrides compiler::Expr.walkChildren