|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectat.dms.util.Utils
at.dms.kjc.CContext
at.dms.kjc.CBodyContext
at.dms.kjc.CBlockContext
public class CBlockContext
This class represents a local context during checkBody It follows the control flow and maintain informations about variable (initialized, used, allocated), exceptions (thrown, catched) It also verify that context is still reachable There is a set of utilities method to access fields, methods and class with the name by clamping the parsing tree
CCompilationUnitContext,
CClassContext,
CMethodContext,
CContext,
Serialized Form| Field Summary |
|---|
| Fields inherited from class at.dms.kjc.CContext |
|---|
parent |
| Fields inherited from class at.dms.util.Utils |
|---|
EMPTY_LIST, getForLoopCallers |
| Fields inherited from interface at.dms.kjc.Constants |
|---|
CMP_VERSION, JAV_CLASS, JAV_CLONE, JAV_CLONEABLE, JAV_CONSTRUCTOR, JAV_ERROR, JAV_EXCEPTION, JAV_INIT, JAV_LENGTH, JAV_NAME_SEPARATOR, JAV_OBJECT, JAV_OUTER_THIS, JAV_RUNTIME, JAV_RUNTIME_EXCEPTION, JAV_STATIC_INIT, JAV_STRING, JAV_STRINGBUFFER, JAV_THIS, JAV_THROWABLE, OPE_BAND, OPE_BNOT, OPE_BOR, OPE_BSR, OPE_BXOR, OPE_EQ, OPE_GE, OPE_GT, OPE_LE, OPE_LNOT, OPE_LT, OPE_MINUS, OPE_NE, OPE_PERCENT, OPE_PLUS, OPE_POSTDEC, OPE_POSTINC, OPE_PREDEC, OPE_PREINC, OPE_SIMPLE, OPE_SL, OPE_SLASH, OPE_SR, OPE_STAR, TID_ARRAY, TID_BIT, TID_BOOLEAN, TID_BYTE, TID_CHAR, TID_CLASS, TID_DOUBLE, TID_FLOAT, TID_INT, TID_LONG, TID_SHORT, TID_VECTOR, TID_VOID, VECTOR_EMPTY |
| Constructor Summary | |
|---|---|
protected |
CBlockContext()
|
|
CBlockContext(CBodyContext parent)
Construct a block context, it supports local variable allocation throw statement and return statement |
|
CBlockContext(CBodyContext parent,
int predictedVars)
Construct a block context, it supports local variable allocation throw statement and return statement |
| Method Summary | |
|---|---|
void |
addClass(CClass clazz)
addLocalClass |
void |
addThisVariable()
addLocal variable |
void |
addVariable(JLocalVariable var)
addLocal variable |
void |
close(TokenReference ref)
Verify everything is okay at the end of this context |
Object |
deepClone()
Returns a deep clone of this object. |
protected void |
deepCloneInto(CBlockContext other)
Clones all fields of this into |
CBlockContext |
getBlockContext()
Returns the nearest block context (Where yuo can define some local vars) |
int |
localsIndex()
|
int |
localsPosition()
|
CClassType |
lookupClass(CClass caller,
String ident)
lookupClass search for a class with the provided type parameters |
JLocalVariable |
lookupLocalVariable(String ident)
lookupLocalVariable |
| Methods inherited from class at.dms.kjc.CContext |
|---|
addSourceClass, check, check, check, check, deepCloneInto, dumpContext, dumpIndent, fail, fail, getClassContext, getCompilationUnitContext, getMethodContext, getParentContext, isStaticContext, lookupField, lookupMethod, reportTrouble |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
protected CBlockContext()
public CBlockContext(CBodyContext parent)
parent - the parent context, it must be different
than null except if called by the top level
public CBlockContext(CBodyContext parent,
int predictedVars)
parent - the parent context, it must be different
than null except if called by the top level| Method Detail |
|---|
public void close(TokenReference ref)
close in class CBodyContext
public void addVariable(JLocalVariable var)
throws UnpositionedError
var - the name of the variable
UnpositionedError - this error will be positioned soonpublic JLocalVariable lookupLocalVariable(String ident)
lookupLocalVariable in class CContextident - the name of the variable
public void addThisVariable()
public int localsPosition()
localsPosition in class CBodyContextpublic int localsIndex()
public CBlockContext getBlockContext()
CContext
getBlockContext in class CContext
public void addClass(CClass clazz)
throws UnpositionedError
clazz - the clazz to add
UnpositionedError - this error will be positioned soon
public CClassType lookupClass(CClass caller,
String ident)
throws UnpositionedError
lookupClass in class CContextcaller - the class of the callerident - the class name
UnpositionedError - this error will be positioned soonpublic Object deepClone()
deepClone in interface DeepCloneabledeepClone in class CBodyContextprotected void deepCloneInto(CBlockContext other)
other
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||