public class ExtBinary extends ExtExpr
Constructor and Description |
---|
ExtBinary() |
Modifier and Type | Method and Description |
---|---|
<DFItem extends polyglot.visit.DataFlow.Item> |
flowDispatch(DataFlowDispatch<DFItem> d,
DFItem dfIn,
DFItem trueItem,
DFItem falseItem,
polyglot.visit.FlowGraph<DFItem> graph,
polyglot.visit.FlowGraph.Peer<DFItem> peer)
Dispatch function.
|
boolean |
mayBeNull(AnalysisContext context) |
protected boolean |
mayThrowArithmeticException(AnalysisContext context) |
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.
|
void |
registerPointerStmts(StmtRegistrar registrar,
RegisterPointerStmtsVisitor v)
This method needs to ensure that: 1.
|
java.util.Collection<ThrowableType> |
throwTypes(polyglot.types.TypeSystem ts,
AnalysisContext context)
Get the collection of types of exceptions that might be thrown
|
getConstructorContexts, getReferenceVariable, mayBeNull, recordNullAnalysisResult, setNullResultsNoPeerValid, setReferenceVariable
flowDispatch
enclosingFinallyDepth, ext, getAnalysisResult, getAnalysisResult, getAnalysisResult, lang, recordAnalysisResult, recordAnalysisResult, recordAnalysisResult, removeAnalysisResult, removeAnalysisResult, removeAnalysisResult, setEnclosingFinallyDepth
addDecls, buildTypes, buildTypesEnter, checkConstants, childExpectedType, copy, copy, copy, disambiguate, disambiguateEnter, disambiguateOverride, dump, dump, dump, dump, dump, enterChildScope, enterScope, exceptionCheck, exceptionCheckEnter, ext, ext, extRewrite, extRewriteEnter, init, initPred, node, pred, prettyPrint, prettyPrint, prettyPrint, prettyPrint, prettyPrint, print, printBlock, printSubStmt, superLang, throwTypes, toString, translate, typeCheck, typeCheckEnter, typeCheckOverride, visitChild, visitChildren, visitList
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
addDecls, buildTypes, buildTypesEnter, checkConstants, childExpectedType, copy, copy, disambiguate, disambiguateEnter, disambiguateOverride, dump, dump, dump, dump, enterChildScope, enterScope, exceptionCheck, exceptionCheckEnter, extRewrite, extRewriteEnter, prettyPrint, prettyPrint, prettyPrint, prettyPrint, prettyPrint, throwTypes, translate, typeCheck, typeCheckEnter, typeCheckOverride, visitChild, visitChildren, visitList
public void registerPointerStmts(StmtRegistrar registrar, RegisterPointerStmtsVisitor v)
ExtExpr
registerPointerStmts
in interface AccrueExt
registerPointerStmts
in class ExtExpr
public int numArgumentsOnResultStack()
AccrueExt
numArgumentsOnResultStack
in interface AccrueExt
numArgumentsOnResultStack
in class ExtExpr
VarContextDataFlow
public boolean mayBeNull(AnalysisContext context)
public java.util.Collection<ThrowableType> throwTypes(polyglot.types.TypeSystem ts, AnalysisContext context)
ExtTerm
throwTypes
in class ExtTerm
ts
- Polyglot type systemcontext
- Data flow analysis contextprotected boolean mayThrowArithmeticException(AnalysisContext context)
public <DFItem extends polyglot.visit.DataFlow.Item> java.util.Map<polyglot.visit.FlowGraph.EdgeKey,DFItem> flowDispatch(DataFlowDispatch<DFItem> d, DFItem dfIn, DFItem trueItem, DFItem falseItem, polyglot.visit.FlowGraph<DFItem> graph, polyglot.visit.FlowGraph.Peer<DFItem> peer)
ExtTerm
DataFlowDispatch d
.
Default behavior is to discard the trueItem and falseItem.flowDispatch
in class ExtTerm