|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.problets.domain.model.DomainModel
org.problets.domain.model.variable.AbstractVarModel
org.problets.domain.model.variable.AccessVarModel
org.problets.domain.model.variable.PtrModel
public class PtrModel
Model for a pointer variable
Field Summary | |
---|---|
static int |
IDENTITY
|
static java.lang.String |
NOT_DECLARED
|
static java.lang.String |
NOT_INITIALIZED
|
static java.lang.String |
OUT_OF_SCOPE
|
static java.lang.String |
POINTEE_DEALLOCATED
|
static java.lang.String |
POINTEE_OUT_OF_SCOPE
|
Constructor Summary | |
---|---|
PtrModel(int index,
java.lang.String inputType)
We look for variables in the correct ordinality in symbolTable |
|
PtrModel(java.lang.String inName,
java.lang.String inputType)
Constructor used by Expression to create a pointer of a given name when creating a static expression for printing purposes |
Method Summary | |
---|---|
void |
addToAssignees(java.lang.String template,
ActivationRecord activationRecord)
Handles generating code for the following cases: Address of a variable assigned to a pointer Dynamic allocation to a pointer with no value/initialization value/array An expression to a pointer Since we do not assign to pointers at code generation time, we cannot say to which variable the pointer points. |
java.lang.Object |
clone()
Returns a clone of this object, and provides the basis for cloning of derived classes |
void |
explainObject(StackModel stack,
HeapModel heap,
Behavior behavior,
java.lang.String statement,
int event,
int lineNumber,
boolean abbreviated)
----------------------------------------------------- |
void |
explainProcess(RunEnv runEnv,
Behavior behavior,
java.lang.String statement,
int event,
int lineNumber)
For each step (e.g., print), If the step has been properly set up, (e.g., pointer points to a var which is initialized) Gives the full-fledged explanation Else, (e.g., pointer is not yet assigned, is out of scope, not yet declared, etc.) Gives an "Attempt was made" explanation |
Scope |
getAssignScope()
Returns a reference to the scope where the pointer was assigned |
void |
getCode(java.util.Vector codeText,
java.lang.String codeType,
java.lang.String template,
int lineNumber)
Assembles the code for the pointer that fits the occasion in the Vector passed as a parameter |
boolean |
getDynamicallyAllocated()
Returns whether this pointer was dynamically allocated |
java.lang.Object |
getLValue()
Returns a reference to the object to which the pointer points |
java.lang.String[] |
getPossibleErrors()
Returns the possible errors for pointers May want to post-process based on Student Model |
Value |
getValue()
Returns the DEreferenced value of the pointer |
static void |
main(java.lang.String[] args)
----------------------------------------------------- |
void |
print()
----------------------------------------------------- |
void |
resetDynamicallyAllocated()
Resets that the pointer was dynamically allocated |
void |
resetFlags()
Resets the flags for the pointer variable |
void |
resetValue()
Sets pointer to null |
void |
setDeclared()
Sets the pointer to declared |
void |
setDynamicallyAllocated()
Sets that the pointer was dynamically allocated |
void |
setValue(AbstractVarModel in_value,
Scope in_scope)
Sets the value of the pointer - value may be either a VarModel or AnonVarModel object - hence AbstractVarModel parameter |
void |
setValue(java.lang.Object inValue)
Used by Assignment Expression |
Methods inherited from class org.problets.domain.model.variable.AccessVarModel |
---|
getAssignees |
Methods inherited from class org.problets.domain.model.variable.AbstractVarModel |
---|
getAllocated, getAssigned, getDeclared, getMetaDataType, getName, getType, getValueDifference, resetAllocated, resetDeclared, setAllocated |
Methods inherited from class org.problets.domain.model.DomainModel |
---|
getId, getIdName, grade |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int IDENTITY
public static final java.lang.String NOT_DECLARED
public static final java.lang.String OUT_OF_SCOPE
public static final java.lang.String NOT_INITIALIZED
public static final java.lang.String POINTEE_DEALLOCATED
public static final java.lang.String POINTEE_OUT_OF_SCOPE
Constructor Detail |
---|
public PtrModel(int index, java.lang.String inputType)
- public PtrModel(java.lang.String inName, java.lang.String inputType)
Method Detail |
---|
public java.lang.Object clone()
DomainModel
clone
in class AbstractVarModel
public Value getValue()
getValue
in class AbstractVarModel
-
public java.lang.Object getLValue()
-
public Scope getAssignScope()
-
public boolean getDynamicallyAllocated()
-
public void resetFlags()
resetFlags
in class AbstractVarModel
- public void setDeclared()
setDeclared
in class AbstractVarModel
none
- public void setValue(AbstractVarModel in_value, Scope in_scope)
- public void setValue(java.lang.Object inValue)
AbstractVarModel
setValue
in class AbstractVarModel
public void resetValue()
- public void setDynamicallyAllocated()
- public void resetDynamicallyAllocated()
- public void addToAssignees(java.lang.String template, ActivationRecord activationRecord)
addToAssignees
in class AccessVarModel
public void getCode(java.util.Vector codeText, java.lang.String codeType, java.lang.String template, int lineNumber)
getCode
in class AbstractVarModel
- public java.lang.String[] getPossibleErrors()
getPossibleErrors
in class AbstractVarModel
public void explainProcess(RunEnv runEnv, Behavior behavior, java.lang.String statement, int event, int lineNumber)
explainProcess
in class AbstractVarModel
- public void explainObject(StackModel stack, HeapModel heap, Behavior behavior, java.lang.String statement, int event, int lineNumber, boolean abbreviated)
explainObject
in class AbstractVarModel
- public static void main(java.lang.String[] args)
- public void print()
print
in class AbstractVarModel
-
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |