|
||||||||||
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.CSwitchBodyContext
public class CSwitchBodyContext
This class represents a local context during checkBody It follows the control flow and maintain informations about variable (initialised, 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 |
CSwitchBodyContext()
|
|
CSwitchBodyContext(CBodyContext parent,
JSwitchStatement stmt)
Construct a block context, it supports local variable allocation throw statement and return statement |
Method Summary | |
---|---|
protected void |
addBreak(JStatement target,
CBodyContext context)
|
void |
addDefault()
add a default label to this switch |
void |
addLabel(Integer value)
add a label to this switch and check it is a new one |
void |
close()
close |
Object |
deepClone()
Returns a deep clone of this object. |
protected void |
deepCloneInto(CSwitchBodyContext other)
Clones all fields of this into |
boolean |
defaultExists()
|
JStatement |
getNearestBreakableStatement()
Returns the innermost statement which can be target of a break statement without label. |
CType |
getType()
Returns the type of the switch expression. |
Methods inherited from class at.dms.kjc.CContext |
---|
addSourceClass, check, check, check, check, deepCloneInto, dumpContext, dumpIndent, fail, fail, getBlockContext, getClassContext, getCompilationUnitContext, getMethodContext, getParentContext, isStaticContext, lookupClass, lookupField, lookupLocalVariable, lookupMethod, reportTrouble |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
protected CSwitchBodyContext()
public CSwitchBodyContext(CBodyContext parent, JSwitchStatement stmt)
parent
- the parent context, it must be different
than null except if called by the top levelstmt
- Method Detail |
---|
public void close()
public void addDefault() throws UnpositionedError
UnpositionedError
- this error will be positioned soonpublic void addLabel(Integer value) throws UnpositionedError
value
- the literal value of this label
UnpositionedError
- this error will be positioned soonpublic CType getType()
public boolean defaultExists()
public JStatement getNearestBreakableStatement()
getNearestBreakableStatement
in class CBodyContext
protected void addBreak(JStatement target, CBodyContext context)
addBreak
in class CBodyContext
public Object deepClone()
deepClone
in interface DeepCloneable
deepClone
in class CBodyContext
protected void deepCloneInto(CSwitchBodyContext other)
other
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |