org.problets.domain.model.control.abstraction
Class Statement
java.lang.Object
org.problets.domain.model.DomainModel
org.problets.domain.model.control.ControlModel
org.problets.domain.model.control.abstraction.Scope
org.problets.domain.model.control.abstraction.Statement
- All Implemented Interfaces:
- java.lang.Cloneable
public class Statement
- extends Scope
Processes ONE statement, creates activation record for it.
Does not automatically end scope upon exiting.
- Author:
- Amruth Kumar
Fields inherited from class org.problets.domain.model.DomainModel |
BOOLEAN, BREAKPOINT, CHARACTER, DOUBLE_PRECISION_REAL, ERROR_TYPE, EVAL_STATUS, expACTION, expASSIGNMENT, expAUTO_DEALLOCATION, expCALL, expCONDITION, expDECLARATION, expDEREFERENCING, expDYNAMIC_ALLOCATION, expDYNAMIC_ALLOCATION_INITIALIZATION, expDYNAMIC_DEALLOCATION, expELSE_CLAUSE, expERROR, expEXECUTION, expIF_CLAUSE, expINITIALIZATION, expINPUT, expPARAMETER_PASSING, expPRINT, expQUESTIONABLE, expREFERENCING, expRETURN, expRUNTIME_ERROR, expSEMANTIC_ERROR, expSYNTAX_ERROR, expUPDATE, MAX_OBJECT_IDENTITY, MIN_OBJECT_IDENTITY, QUADRUPLE_PRECISION_REAL, RUNTIME_ERROR, SEMANTIC_ERROR, SIGNED_INTEGER, SIGNED_LONG, SIGNED_SHORT, SINGLE_PRECISION_REAL, SYNTAX_ERROR, UNDEFINED_TYPE, UNSIGNED_INTEGER, UNSIGNED_LONG, UNSIGNED_SHORT, WARNING |
Method Summary |
ExecutionStatus |
explainProcess(RunEnv runEnv,
Behavior behavior,
boolean stepFlag)
public void explainProcess(Vector explanation, Vector errors,
int lineNumber);
Generate the explanation for the control object |
void |
getCode(java.util.Vector codeText,
OutputStream output)
public void getCode(Vector codeText, String template,
int lineNumber);
Generate the code for the control object |
void |
getCode(java.util.Vector codeText,
OutputStream output,
int lineNumber)
When a statement is used to represent a variable declaration in the condition of
a while, for, if, if-else or switch, since we need to post-process the code, i.e.,
add "while(", "for(", etc. |
static boolean |
grade(java.lang.String template,
java.lang.String code)
|
static void |
main(java.lang.String[] args)
|
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Statement
public Statement(ActivationRecord parentActivationRecord,
HeapModel heap,
java.lang.String inTemplate)
getCode
public void getCode(java.util.Vector codeText,
OutputStream output)
- Description copied from class:
ControlModel
- public void getCode(Vector codeText, String template,
int lineNumber);
Generate the code for the control object
- Overrides:
getCode
in class ControlModel
- Parameters:
codeText
- - a Vector that holds the code
getCode
public void getCode(java.util.Vector codeText,
OutputStream output,
int lineNumber)
- When a statement is used to represent a variable declaration in the condition of
a while, for, if, if-else or switch, since we need to post-process the code, i.e.,
add "while(", "for(", etc. traditionally, we had passed a temporary vector for codeText.
Hence, the need to also pass the start line number
explainProcess
public ExecutionStatus explainProcess(RunEnv runEnv,
Behavior behavior,
boolean stepFlag)
- Description copied from class:
ControlModel
- public void explainProcess(Vector explanation, Vector errors,
int lineNumber);
Generate the explanation for the control object
- Overrides:
explainProcess
in class ControlModel
- Returns:
- status of execution, as designated by constants in DomainModel
grade
public static boolean grade(java.lang.String template,
java.lang.String code)
main
public static void main(java.lang.String[] args)