public interface AccrueExt
extends polyglot.ast.Ext
Modifier and Type | Method and Description |
---|---|
java.lang.Integer |
enclosingFinallyDepth()
How many enclosing finally blocks is this node nested inside? This information
is used during dataflow analysis to help manage syspended execution contexts.
|
<T> T |
getAnalysisResult(java.lang.Object analysisKey) |
<T> T |
getAnalysisResult(java.lang.Object analysisKey,
AnalysisContext context) |
<T> T |
getAnalysisResult(java.lang.Object analysisKey,
AnalysisContext context,
polyglot.visit.FlowGraph.PeerKey peerKey) |
int |
numArgumentsOnResultStack()
During a dataflow analysis, when this term is encountered, how many
arguments should there be on the expression result stack? For example,
for an addition (e1 + e2) there will be two, one for each operand.
|
<T> void |
recordAnalysisResult(java.lang.Object analysisKey,
AnalysisContext context,
polyglot.visit.FlowGraph.PeerKey peerKey,
T result) |
<T> void |
recordAnalysisResult(java.lang.Object analysisKey,
AnalysisContext context,
T result) |
<T> void |
recordAnalysisResult(java.lang.Object analysisKey,
T result) |
void |
registerPointerStmts(StmtRegistrar registrar,
RegisterPointerStmtsVisitor v) |
<T> T |
removeAnalysisResult(java.lang.Object analysisKey) |
<T> T |
removeAnalysisResult(java.lang.Object analysisKey,
AnalysisContext context) |
<T> T |
removeAnalysisResult(java.lang.Object analysisKey,
AnalysisContext context,
polyglot.visit.FlowGraph.PeerKey peerKey) |
void |
setEnclosingFinallyDepth(int finallyDepth)
Set the number of finally blocks that this node is nested inside.
|
addDecls, buildTypes, buildTypesEnter, checkConstants, childExpectedType, copy, copy, disambiguate, disambiguateEnter, disambiguateOverride, dump, dump, dump, dump, enterChildScope, enterScope, exceptionCheck, exceptionCheckEnter, extRewrite, extRewriteEnter, lang, prettyPrint, prettyPrint, prettyPrint, prettyPrint, prettyPrint, throwTypes, translate, typeCheck, typeCheckEnter, typeCheckOverride, visitChild, visitChildren, visitList
void registerPointerStmts(StmtRegistrar registrar, RegisterPointerStmtsVisitor v)
<T> void recordAnalysisResult(java.lang.Object analysisKey, T result)
<T> void recordAnalysisResult(java.lang.Object analysisKey, AnalysisContext context, polyglot.visit.FlowGraph.PeerKey peerKey, T result)
<T> void recordAnalysisResult(java.lang.Object analysisKey, AnalysisContext context, T result)
<T> T removeAnalysisResult(java.lang.Object analysisKey)
<T> T removeAnalysisResult(java.lang.Object analysisKey, AnalysisContext context, polyglot.visit.FlowGraph.PeerKey peerKey)
<T> T removeAnalysisResult(java.lang.Object analysisKey, AnalysisContext context)
<T> T getAnalysisResult(java.lang.Object analysisKey, AnalysisContext context, polyglot.visit.FlowGraph.PeerKey peerKey)
<T> T getAnalysisResult(java.lang.Object analysisKey, AnalysisContext context)
<T> T getAnalysisResult(java.lang.Object analysisKey)
int numArgumentsOnResultStack()
VarContextDataFlow
java.lang.Integer enclosingFinallyDepth()
void m() { ; // finally depth here is 0 try { ; // finally depth here is 0 } finally { ; // finally depth here is 1 try { ; // finally depth here is 1 } catch (Exception e) { ; // finally depth here is 1 ... } finally { ; // finally depth here is 2 } ; // finally depth here is 1 } ; // finally depth here is 0 }Note that for a finally block node, the number of enclosing finally blocks does not include itself.
void setEnclosingFinallyDepth(int finallyDepth)
finallyDepth
-