sleep.engine
Class Block

java.lang.Object
  extended bysleep.engine.Block
All Implemented Interfaces:
Serializable

public class Block
extends Object
implements Serializable

A Block is the fundamental unit of parsed and ready to execute sleep code.

To execute a block of code:

 ScriptInstance    script; // asume
 Block             code;   // assume
 
 ScriptEnvironment env   = script.getEnvironment();  
 Scalar            value = SleepUtils.runCode(code, env);
 

The variable value would contain the return value after the block was executed. It is recommended blocks only be run using SleepUtils.runCode() as there is a little bit of synchronization and cleanup that has to be done prior to and after executing a block of code.

See Also:
Scalar, ScriptEnvironment, ScriptInstance, Serialized Form

Constructor Summary
Block()
           
 
Method Summary
 void add(Step n)
           
 Scalar evaluate(ScriptEnvironment environment)
          evaluates this block of code.
 int getApproximateLineNumber()
          Returns an approximated line number for the steps in this block object...
 String getApproximateLineRange()
          Returns an approximate range of line numbers for the steps in this block object.
 String toString()
          Returns a string representation of the Abstract Syntax Tree (AST).
 String toString(String prefix)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Block

public Block()
Method Detail

toString

public String toString(String prefix)

toString

public String toString()
Returns a string representation of the Abstract Syntax Tree (AST). An AST represents how the sleep parser interpreted a script string


getApproximateLineNumber

public int getApproximateLineNumber()
Returns an approximated line number for the steps in this block object... returns -1 if no code is in this block (unlikely)


getApproximateLineRange

public String getApproximateLineRange()
Returns an approximate range of line numbers for the steps in this block object. Useful for formatting error messages in script warnings and such.


add

public void add(Step n)

evaluate

public Scalar evaluate(ScriptEnvironment environment)
evaluates this block of code. please note that if the block has a return statement and the method clearReturn() is not called on the corresponding script environment chaos will ensue. use SleepUtils.runCode() to safely execute a block of code. don't call this method yourself. okay?