|
||||||||||
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 FormField 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 levelpublic CBlockContext(CBodyContext parent, int predictedVars)
parent
- the parent context, it must be different
than null except if called by the top levelMethod 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 CContext
ident
- the name of the variable
public void addThisVariable()
public int localsPosition()
localsPosition
in class CBodyContext
public 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 soonpublic CClassType lookupClass(CClass caller, String ident) throws UnpositionedError
lookupClass
in class CContext
caller
- the class of the callerident
- the class name
UnpositionedError
- this error will be positioned soonpublic Object deepClone()
deepClone
in interface DeepCloneable
deepClone
in class CBodyContext
protected void deepCloneInto(CBlockContext other)
other
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |