|
||||||||||
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 textMethod 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 void genFinallyCall(CodeSequence code, JReturnStatement ret)
code
- the code listpublic Object deepClone()
deepClone
in interface DeepCloneable
deepClone
in class JStatement
protected void deepCloneInto(JTryFinallyStatement other)
other
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |