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, visitListvoid 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()
VarContextDataFlowjava.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 -