|
||||||||||
| 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 AbstractVarModelpublic 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 AbstractVarModelnone -
public void setValue(AbstractVarModel in_value,
Scope in_scope)
- public void setValue(java.lang.Object inValue)
AbstractVarModel
setValue in class AbstractVarModelpublic 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 | |||||||||