logo
class

compiler::ResolveExpr

sys::Obj
  compiler::CompilerSupport
    compiler::CompilerStep
      compiler::ResolveExpr

Walk the AST to resolve:

  • Manage local variable scope
  • Resolve loop for breaks and continues
  • Resolve LocalDefStmt.init into full assignment expression
  • Resolve Expr.ctype
  • Resolve UknownVarExpr -> LocalVarExpr, FieldExpr, or CallExpr
  • Resolve CallExpr to their CMethod

Slots

blockStack

Block[] blockStack

curryCount

Int curryCount

enterBlock

virtual Void enterBlock(Block block)

enterMethodDef

virtual Void enterMethodDef(MethodDef m)

enterStmt

virtual Void enterStmt(Stmt stmt)

exitBlock

virtual Void exitBlock(Block block)

inClosure

Bool inClosure

make

new make(Compiler compiler)

run

virtual Void run()

stmtStack

Stmt[] stmtStack

visitExpr

virtual Expr visitExpr(Expr expr)

visitStmt

virtual Void visitStmt(Stmt stmt)