|
||||||||||
| 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.JTryFinallyStatement
public class JTryFinallyStatement
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 |
JTryFinallyStatement()
|
|
JTryFinallyStatement(TokenReference where,
JBlock tryClause,
JBlock finallyClause,
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(JTryFinallyStatement other)
Clones all fields of this into |
void |
genCode(CodeSequence code)
Generates a sequence of bytescodes |
void |
genFinallyCall(CodeSequence code,
JReturnStatement ret)
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 JTryFinallyStatement()
public JTryFinallyStatement(TokenReference where,
JBlock tryClause,
JBlock finallyClause,
JavaStyleComment[] comments)
where - the line of this node in the source codetryClause - the bodyfinallyClause - the finally clausecomments - comments in the source text| Method Detail |
|---|
public void analyse(CBodyContext context)
throws PositionedError
analyse in class JStatementcontext - the analysis context
PositionedError - the analysis detected an errorpublic void accept(KjcVisitor p)
accept in class JStatementp - the visitorpublic Object accept(AttributeVisitor p)
accept in class JStatementp - the visitorpublic void genCode(CodeSequence code)
genCode in class JStatementcode - the code list
public void genFinallyCall(CodeSequence code,
JReturnStatement ret)
code - the code listpublic Object deepClone()
deepClone in interface DeepCloneabledeepClone in class JStatementprotected void deepCloneInto(JTryFinallyStatement other)
other
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||