Fan

 

class

compiler::WithBlockExpr

sys::Obj
  compiler::Node
    compiler::Expr
      compiler::WithBlockExpr

WithBlockExpr is used enclose a series of sub-expressions against a base expression:

base { a = b; c() }

Translates to:

temp := base
temp.a = b
temp.c()

Slots

baseSource

Expr base

isCtorWithBlockSource

Bool isCtorWithBlock()

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.

makeSource

new make(Expr base)

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.

subsSource

WithSubExpr[] subs

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