Fantom

 

class

compiler::BinaryExpr

sys::Obj
  compiler::Node
    compiler::Expr
      compiler::BinaryExpr

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()

If this expression performs assignment, then return the target of that assignment. Otherwise return null.

isDefiniteAssignSource

override Bool isDefiniteAssign(|Expr -> Bool| f)

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

new make(Expr lhs, Token opToken, Expr rhs)

makeAssignSource

new makeAssign(Expr lhs, Expr rhs, Bool leave := false)

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)