Package sleep.engine

Class Block

  • All Implemented Interfaces:
    java.io.Serializable

    public class Block
    extends java.lang.Object
    implements java.io.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
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected Step first
      our first step in this block
      protected Step last
      our last step in this block
      protected java.lang.String source
      an identifier/tag/whatever identifying the source of this block (i.e.
    • Constructor Summary

      Constructors 
      Constructor Description
      Block​(java.lang.String _src)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void add​(Step n)  
      Scalar evaluate​(ScriptEnvironment environment)
      evaluates this block of code.
      Scalar evaluate​(ScriptEnvironment environment, Step start)
      evaluates this block of code.
      int getApproximateLineNumber()
      Returns an approximated line number for the steps in this block object...
      java.lang.String getApproximateLineRange()
      Returns an approximate range of line numbers for the steps in this block object.
      int getHighLineNumber()
      return the highest line number associated with this block
      int getLowLineNumber()
      return the lowest line number associated with this block
      java.lang.String getSource()
      Returns the source identifier for this block
      java.lang.String getSourceLocation()
      Returns a string representation of where in the source code this block originated from
      java.lang.String toString()
      Returns a string representation of the Abstract Syntax Tree (AST).
      java.lang.String toString​(java.lang.String prefix)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • first

        protected Step first
        our first step in this block
      • last

        protected Step last
        our last step in this block
      • source

        protected java.lang.String source
        an identifier/tag/whatever identifying the source of this block (i.e. somescript.sl)
    • Constructor Detail

      • Block

        public Block​(java.lang.String _src)
    • Method Detail

      • toString

        public java.lang.String toString​(java.lang.String prefix)
      • toString

        public java.lang.String toString()
        Returns a string representation of the Abstract Syntax Tree (AST). An AST represents how the sleep parser interpreted a script string
        Overrides:
        toString in class java.lang.Object
      • getSource

        public java.lang.String getSource()
        Returns the source identifier for this block
      • 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)
      • getHighLineNumber

        public int getHighLineNumber()
        return the highest line number associated with this block
      • getLowLineNumber

        public int getLowLineNumber()
        return the lowest line number associated with this block
      • getApproximateLineRange

        public java.lang.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.
      • getSourceLocation

        public java.lang.String getSourceLocation()
        Returns a string representation of where in the source code this block originated from
      • 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?
      • evaluate

        public Scalar evaluate​(ScriptEnvironment environment,
                               Step start)
        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?