org.problets.domain.model.control.abstraction
Class Program

java.lang.Object
  extended by org.problets.domain.model.DomainModel
      extended by org.problets.domain.model.control.ControlModel
          extended by org.problets.domain.model.control.abstraction.Scope
              extended by org.problets.domain.model.control.abstraction.StatementSequence
                  extended by org.problets.domain.model.control.abstraction.Block
                      extended by org.problets.domain.model.control.abstraction.Function
                          extended by org.problets.domain.model.control.abstraction.Program
All Implemented Interfaces:
java.lang.Cloneable
Direct Known Subclasses:
CPPProgram, CProgram, CSProgram, JProgram, VBProgram

public class Program
extends Function

Processes a program consisting of one or more functions, and accounts for partial referencing environments of global variables.

Author:
Amruth Kumar

Field Summary
static int IDENTITY
           
static java.lang.String MAIN_NOT_DEFINED
           
static java.lang.String PROGRAM_NAME
          Name used for this scope
 
Fields inherited from class org.problets.domain.model.control.abstraction.Function
CALL_BEFORE_DEFINED, INCORRECT_PARAMETERS, MISMATCHED_PARAMETERS
 
Fields inherited from class org.problets.domain.model.control.abstraction.Scope
MISPLACED_BREAK, MISPLACED_CONTINUE
 
Fields inherited from class org.problets.domain.model.control.ControlModel
ABORT_EXECUTION, BREAK_EXECUTION, CONTINUE_EXECUTION, END_EXECUTION, INFINITE_EXECUTION, RETURN_EXECUTION, RUN_TIME_ERROR_EXECUTION, SKIP_EXECUTION
 
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
 
Constructor Summary
Program(ActivationRecord parentActivationRecord, HeapModel heap, java.lang.String inTemplate)
           
 
Method Summary
 void commitPartialRefEnvironment(StackModel stack)
          Commits the partial referencing environment for the program by setting all the variables in this environment as declared.
 ExecutionStatus explainProcess(RunEnv runEnv, Behavior behavior, boolean stepFlag)
          Get super classes to explain execution of all the statements.
 java.util.Vector getFunctions()
          Returns a vector of functions in this program - for visualization purposes
 java.lang.String[] getPossibleErrors()
          Method to return errors for variables May want to post-process based on Student Model
static void main(java.lang.String[] args)
           
 
Methods inherited from class org.problets.domain.model.control.abstraction.Function
getFormalParameters, getName, setPartialRefEnvironment
 
Methods inherited from class org.problets.domain.model.control.abstraction.Block
grade
 
Methods inherited from class org.problets.domain.model.control.abstraction.StatementSequence
getCode
 
Methods inherited from class org.problets.domain.model.control.abstraction.Scope
getActivationRecord, getParameterCode, newFunctionCall
 
Methods inherited from class org.problets.domain.model.control.ControlModel
getCodeLength, getStartLineNumber
 
Methods inherited from class org.problets.domain.model.DomainModel
clone, getId, getIdName
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PROGRAM_NAME

public static final java.lang.String PROGRAM_NAME
Name used for this scope

See Also:
Constant Field Values

IDENTITY

public static final int IDENTITY
See Also:
Constant Field Values

MAIN_NOT_DEFINED

public static final java.lang.String MAIN_NOT_DEFINED
See Also:
Constant Field Values
Constructor Detail

Program

public Program(ActivationRecord parentActivationRecord,
               HeapModel heap,
               java.lang.String inTemplate)
Method Detail

getPossibleErrors

public java.lang.String[] getPossibleErrors()
Method to return errors for variables May want to post-process based on Student Model

Overrides:
getPossibleErrors in class Function

getFunctions

public java.util.Vector getFunctions()
Returns a vector of functions in this program - for visualization purposes


explainProcess

public ExecutionStatus explainProcess(RunEnv runEnv,
                                      Behavior behavior,
                                      boolean stepFlag)
Get super classes to explain execution of all the statements. Handle run time exception, infinite loops and aborted executions here

Overrides:
explainProcess in class Block
Returns:
status of execution, as designated by constants in DomainModel

commitPartialRefEnvironment

public void commitPartialRefEnvironment(StackModel stack)
Commits the partial referencing environment for the program by setting all the variables in this environment as declared.

Overrides:
commitPartialRefEnvironment in class Function

main

public static void main(java.lang.String[] args)