accrue.analysis.ext

## Class ExtInstanceof

- java.lang.Object
- - polyglot.ast.Ext_c
  - - accrue.analysis.ext.AccrueExt_c
    - - accrue.analysis.ext.ExtTerm
      - - accrue.analysis.ext.ExtExpr
        - - accrue.analysis.ext.ExtInstanceof

- All Implemented Interfaces:
    AccrueExt, java.io.Serializable, java.lang.Cloneable, polyglot.ast.Ext, polyglot.ast.NodeOps, polyglot.util.Copy<polyglot.ast.Ext>

      public class ExtInstanceof
      extends ExtExpr

  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface polyglot.util.Copy

      `polyglot.util.Copy.Util`

  - ### Field Summary

    - ### Fields inherited from class polyglot.ast.Ext_c

      `ext, node, pred`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ExtInstanceof()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `<DFItem extends polyglot.visit.DataFlow.Item> java.util.Map<polyglot.visit.FlowGraph.EdgeKey,DFItem>` | `flowDispatch(DataFlowDispatch<DFItem> dataflow, DFItem dfIn, polyglot.visit.FlowGraph<DFItem> graph, polyglot.visit.FlowGraph.Peer<DFItem> peer)` Dispatch function.
    `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.

    - ### Methods inherited from class accrue.analysis.ext.ExtExpr

      `getConstructorContexts, getReferenceVariable, mayBeNull, mayBeNull, recordNullAnalysisResult, setNullResultsNoPeerValid, setReferenceVariable`

    - ### Methods inherited from class accrue.analysis.ext.ExtTerm

      `flowDispatch, throwTypes`

    - ### Methods inherited from class accrue.analysis.ext.AccrueExt_c

      `enclosingFinallyDepth, ext, getAnalysisResult, getAnalysisResult, getAnalysisResult, lang, recordAnalysisResult, recordAnalysisResult, recordAnalysisResult, removeAnalysisResult, removeAnalysisResult, removeAnalysisResult, setEnclosingFinallyDepth`

    - ### Methods inherited from class polyglot.ast.Ext_c

      `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`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface polyglot.ast.Ext

      `dump, ext, ext, init, initPred, node, pred`

    - ### Methods inherited from interface polyglot.ast.NodeOps

      `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`

    - ### Methods inherited from interface polyglot.util.Copy

      `copy`

- - ### Constructor Detail

    - #### ExtInstanceof

          public ExtInstanceof()

  - ### Method Detail

    - #### registerPointerStmts

          public void registerPointerStmts(StmtRegistrar registrar,
                                  RegisterPointerStmtsVisitor v)

      Description copied from class: `ExtExpr`
      This method needs to ensure that: 1. For all expressions of reference type, there is a local node 2. That local node has been assigned to appropriately, based on the semantics of the expression 3. Exceptions have been assigned to the appropriate handlers (including exceptions that may be generated by this expression).
      Specified by:
        `registerPointerStmts` in interface `AccrueExt`
      Overrides:
        `registerPointerStmts` in class `ExtExpr`

    - #### numArgumentsOnResultStack

          public int numArgumentsOnResultStack()

      Description copied from interface: `AccrueExt`
      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. For a field access (o.f) there will be one, the target of the access. In general, this will return a meaningful number only for expressions.
      Specified by:
        `numArgumentsOnResultStack` in interface `AccrueExt`
      Overrides:
        `numArgumentsOnResultStack` in class `ExtExpr`
      Returns:
      See Also:
        `VarContextDataFlow`

    - #### flowDispatch

          public <DFItem extends polyglot.visit.DataFlow.Item> java.util.Map<polyglot.visit.FlowGraph.EdgeKey,DFItem> flowDispatch(DataFlowDispatch<DFItem> dataflow,
                                                                                                                          DFItem dfIn,
                                                                                                                          polyglot.visit.FlowGraph<DFItem> graph,
                                                                                                                          polyglot.visit.FlowGraph.Peer<DFItem> peer)

      Description copied from class: `ExtTerm`
      Dispatch function. Subclasses of ExtTerm should override this method to invoke the appropriate method of `DataFlowDispatch d`. This helps extensions implement and extend data flow analyses.
      Overrides:
        `flowDispatch` in class `ExtTerm`
      Returns: