org.millscript.millscript.expr
Class Block

java.lang.Object
  extended by org.millscript.millscript.expr.Expr<Action>
      extended by org.millscript.millscript.expr.Block

public final class Block
extends Expr<Action>

This class implements a block expression. A block is a simple wrapper for its body expression, except that it introduces a new scope to the compiler.

See Also:
BlockAction

Constructor Summary
Block(Expr<?> e)
          Creates a new block expression with the specified body.
 
Method Summary
 Action compileIt()
          Compiles this expression into an action.
 void resolve(CompilerState state)
          Resolves any NameExpr in the tree so that they refer to the correct ident.
 void setIsUsed()
          Marks this block as used.
 
Methods inherited from class org.millscript.millscript.expr.Expr
arity, compile, isIntegerExpr, resolveList, setLineNumber, setOrigin, show, show
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Block

public Block(Expr<?> e)
Creates a new block expression with the specified body.

Parameters:
e - the body expression for this block
Method Detail

compileIt

public Action compileIt()
Description copied from class: Expr
Compiles this expression into an action.

Specified by:
compileIt in class Expr<Action>
Returns:
the Action for this expression
See Also:
Expr.compileIt()

resolve

public void resolve(CompilerState state)
Description copied from class: Expr
Resolves any NameExpr in the tree so that they refer to the correct ident. e.g. This method is responsible for ensuring that references to a function argument in the body of a function actually refer to the correct value.

Specified by:
resolve in class Expr<Action>
Parameters:
state - the compiler state we are resolving in
See Also:
Expr.resolve(org.millscript.millscript.vm.CompilerState)

setIsUsed

public void setIsUsed()
Marks this block as used.



Copyright © 2001-2007 Open World Ltd. All Rights Reserved.