org.hawk.module.script
Class MultiLineScript

java.lang.Object
  extended by org.hawk.module.script.AbstractScript
      extended by org.hawk.module.script.MultiLineScript
All Implemented Interfaces:
IScript
Direct Known Subclasses:
DoWhileLoopScript, ForLoopScript, FunctionScript, IfScript, StructureDefnScript, WhileLoopScript

public class MultiLineScript
extends AbstractScript


Field Summary
protected  boolean defaultMultiLineScript
           
protected  FunctionScript functionScript
           
protected  java.util.Map<java.lang.Integer,IScript> innerScripts
           
protected  Stack<java.util.Set<java.lang.String>> localStructStack
           
protected  Stack<java.util.Map<Variable,IScript>> localVariableTableStack
           
protected  MultiLineContainer multiLineContainer
           
 
Fields inherited from class org.hawk.module.script.AbstractScript
outerMultiLineScript
 
Constructor Summary
MultiLineScript()
           
 
Method Summary
 boolean addScript(java.lang.Integer line, AbstractScript script)
           
static int addScripts(MultiLineScript multiLineScript, int i)
           
 IScript copy()
           
 Variable execute()
          This executes the contents of a script.
static MultiLineContainer extractMultiLineContainer(java.util.Map<java.lang.Integer,java.lang.String> scriptMap, int x)
           
 IScript findArrayType(java.lang.String localVar, java.util.Map<Variable,IScript> localVarTable)
           
protected  MultiLineScript findNearestOuterMLScript()
           
 FunctionScript getFunctionScript()
           
 java.util.Map<java.lang.Integer,IScript> getInnerScripts()
           
 IScript getLocalValue(java.lang.String localVar)
           
 IScript getLocalValue(Variable localVar)
           
 MultiLineContainer getMultiLineContainer()
           
 StructureScript getStructVariable(java.lang.String structVariable)
           
 Variable getVariable()
           
 Variable getVariableValue()
           
 boolean isDefaultMultiLineScript()
           
 boolean isInside(int i)
          This checks whether particular script is inside multiline script definition block.
 boolean isInside(int i, boolean shouldCheckFromMLCDefn)
          This checks whether particular script is inside multiline script definition block.
 boolean isLocalVarDeclared(Variable localVar)
           
 boolean isVariable()
           
static boolean parseMultiLines(java.util.Map<java.lang.Integer,java.lang.String> scriptMap, int x, int y, MultiLineScript multiLineScript)
           
 java.util.Map<java.lang.String,IDataType> popLocalVars()
          Default implementation for IScript.popLocalVars()
 void pushLocalVars()
          Default implementation for IScript.pushLocalVars()
 void setDefaultMultiLineScript(boolean defaultMultiLineScript)
           
 void setFunctionScript(FunctionScript functionScript)
           
 void setInnerScripts(java.util.Map<java.lang.Integer,IScript> innerScripts)
           
 void setLocalValue(Variable variable, IScript localValue)
           
 void setMultiLineContainer(MultiLineContainer multiLineContainer)
           
 void setVariable(Variable value)
           
 void setVariableValue(Variable value)
           
 java.lang.String toUI()
           
 void unsetAllLocalValue()
           
 void unsetLocalValue(Variable localVar)
           
 
Methods inherited from class org.hawk.module.script.AbstractScript
add, and, arrayBracket, assign, divide, equalTo, evaluateGlobalVariable, evaluateLocalBoolean, evaluateLocalVariable, getLineNumber, getOuterMultiLineScript, greaterThan, greaterThanEqualTo, isLastScript, lessThan, lessThanEqualTo, mangle, modulus, multiply, or, refer, setLastScript, setLineNumber, setOuterMultiLineScript, subtract, toJava, toJavaMap
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

innerScripts

protected java.util.Map<java.lang.Integer,IScript> innerScripts

functionScript

protected FunctionScript functionScript

localVariableTableStack

protected Stack<java.util.Map<Variable,IScript>> localVariableTableStack

localStructStack

protected Stack<java.util.Set<java.lang.String>> localStructStack

defaultMultiLineScript

protected boolean defaultMultiLineScript

multiLineContainer

protected MultiLineContainer multiLineContainer
Constructor Detail

MultiLineScript

public MultiLineScript()
Method Detail

getMultiLineContainer

public MultiLineContainer getMultiLineContainer()

setMultiLineContainer

public void setMultiLineContainer(MultiLineContainer multiLineContainer)

getInnerScripts

public java.util.Map<java.lang.Integer,IScript> getInnerScripts()

setInnerScripts

public void setInnerScripts(java.util.Map<java.lang.Integer,IScript> innerScripts)

isInside

public boolean isInside(int i,
                        boolean shouldCheckFromMLCDefn)
This checks whether particular script is inside multiline script definition block.

Parameters:
i - line no at which script is present
Returns:
true if i is inside any multiline definition block false otherwise

isInside

public boolean isInside(int i)
This checks whether particular script is inside multiline script definition block.

Parameters:
i - line no at which script is present
Returns:
true if i is inside any multiline definition block false otherwise

pushLocalVars

public void pushLocalVars()
Description copied from class: AbstractScript
Default implementation for IScript.pushLocalVars()

Specified by:
pushLocalVars in interface IScript
Overrides:
pushLocalVars in class AbstractScript

popLocalVars

public java.util.Map<java.lang.String,IDataType> popLocalVars()
Description copied from class: AbstractScript
Default implementation for IScript.popLocalVars()

Specified by:
popLocalVars in interface IScript
Overrides:
popLocalVars in class AbstractScript
Returns:
a map containing local var and its value.

getLocalValue

public IScript getLocalValue(Variable localVar)

findArrayType

public IScript findArrayType(java.lang.String localVar,
                             java.util.Map<Variable,IScript> localVarTable)

getLocalValue

public IScript getLocalValue(java.lang.String localVar)

setLocalValue

public void setLocalValue(Variable variable,
                          IScript localValue)

unsetLocalValue

public void unsetLocalValue(Variable localVar)

unsetAllLocalValue

public void unsetAllLocalValue()

isLocalVarDeclared

public boolean isLocalVarDeclared(Variable localVar)

getStructVariable

public StructureScript getStructVariable(java.lang.String structVariable)

isDefaultMultiLineScript

public boolean isDefaultMultiLineScript()

setDefaultMultiLineScript

public void setDefaultMultiLineScript(boolean defaultMultiLineScript)

getFunctionScript

public FunctionScript getFunctionScript()

setFunctionScript

public void setFunctionScript(FunctionScript functionScript)

addScript

public boolean addScript(java.lang.Integer line,
                         AbstractScript script)

parseMultiLines

public static boolean parseMultiLines(java.util.Map<java.lang.Integer,java.lang.String> scriptMap,
                                      int x,
                                      int y,
                                      MultiLineScript multiLineScript)
                               throws HawkException
Throws:
HawkException

addScripts

public static int addScripts(MultiLineScript multiLineScript,
                             int i)
                      throws HawkException
Throws:
HawkException

extractMultiLineContainer

public static MultiLineContainer extractMultiLineContainer(java.util.Map<java.lang.Integer,java.lang.String> scriptMap,
                                                           int x)
                                                    throws HawkException
Throws:
HawkException

execute

public Variable execute()
                 throws HawkException
Description copied from interface: IScript
This executes the contents of a script. This returns either a boolean or double depending upon how a method is invoked.

Specified by:
execute in interface IScript
Specified by:
execute in class AbstractScript
Returns:
the returned data is being used to test whether a function returns or not. Currently Hawk support two types return Double and Boolean.The implementation should look at the return type and script type to determine what action to be taken.
Throws:
HawkException

isVariable

public boolean isVariable()
Specified by:
isVariable in interface IScript
Specified by:
isVariable in class AbstractScript
Returns:

getVariable

public Variable getVariable()

setVariableValue

public void setVariableValue(Variable value)

getVariableValue

public Variable getVariableValue()

setVariable

public void setVariable(Variable value)

copy

public IScript copy()

findNearestOuterMLScript

protected MultiLineScript findNearestOuterMLScript()
Specified by:
findNearestOuterMLScript in class AbstractScript

toUI

public java.lang.String toUI()
Specified by:
toUI in interface IScript
Specified by:
toUI in class AbstractScript