org.hawk.module.script
Class MultiLineScript
java.lang.Object
org.hawk.module.script.AbstractScript
org.hawk.module.script.MultiLineScript
- All Implemented Interfaces:
- IScript
- Direct Known Subclasses:
- DoWhileLoopScript, ForLoopScript, FunctionScript, IfScript, StructureDefnScript, WhileLoopScript
public class MultiLineScript
- extends AbstractScript
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 |
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
MultiLineScript
public MultiLineScript()
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