|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectat.dms.util.Utils
at.dms.compiler.Phylum
at.dms.kjc.JPhylum
at.dms.kjc.JStatement
at.dms.kjc.JTryCatchStatement
public class JTryCatchStatement
JLS 14.19: Try Statement A try statement executes a block. If a value is thrown and the try statement has one or more catch clauses that can catch it, then control will be transferred to the first such catch clause. If the try statement has a finally clause, then another block of code is executed, no matter whether the try block completes normally or abruptly, and no matter whether a catch clause is first given control. In this implementation, the Try Statement is split into a Try-Catch Statement and a Try-Finally Statement. A Try Statement where both catch and finally clauses are present is rewritten as a Try-Catch Statement enclosed in a Try-Finally Statement.
Field Summary |
---|
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 |
JTryCatchStatement()
|
|
JTryCatchStatement(TokenReference where,
JBlock tryClause,
JCatchClause[] catchClauses,
JavaStyleComment[] comments)
Construct a node in the parsing tree |
Method Summary | |
---|---|
Object |
accept(AttributeVisitor p)
Accepts the specified attribute visitor |
void |
accept(KjcVisitor p)
Accepts the specified visitor |
void |
analyse(CBodyContext context)
Analyses the statement (semantically). |
Object |
deepClone()
Returns a deep clone of this object. |
protected void |
deepCloneInto(JTryCatchStatement other)
Clones all fields of this into |
void |
genCode(CodeSequence code)
Generates a sequence of bytescodes |
Methods inherited from class at.dms.kjc.JStatement |
---|
deepCloneInto, fail, getBreakLabel, getComments, getContinueLabel, setComments |
Methods inherited from class at.dms.kjc.JPhylum |
---|
assertMutable, check, check, check, check, deepCloneInto, setLineNumber |
Methods inherited from class at.dms.compiler.Phylum |
---|
deepCloneInto, getTokenReference, setTokenReference |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
protected JTryCatchStatement()
public JTryCatchStatement(TokenReference where, JBlock tryClause, JCatchClause[] catchClauses, JavaStyleComment[] comments)
where
- the line of this node in the source codetryClause
- the bodycatchClauses
- a vector of catch clauseMethod Detail |
---|
public void analyse(CBodyContext context) throws PositionedError
analyse
in class JStatement
context
- the analysis context
PositionedError
- the analysis detected an errorpublic void accept(KjcVisitor p)
accept
in class JStatement
p
- the visitorpublic Object accept(AttributeVisitor p)
accept
in class JStatement
p
- the visitorpublic void genCode(CodeSequence code)
genCode
in class JStatement
code
- the code listpublic Object deepClone()
deepClone
in interface DeepCloneable
deepClone
in class JStatement
protected void deepCloneInto(JTryCatchStatement other)
other
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |