accrue.analysis.pointer

## Class RegisterPointerStmtsVisitor

- java.lang.Object
- - polyglot.visit.NodeVisitor
  - - polyglot.visit.HaltingVisitor
    - - polyglot.visit.ErrorHandlingVisitor
      - - accrue.analysis.pointer.RegisterPointerStmtsVisitor

- All Implemented Interfaces:
    java.lang.Cloneable, polyglot.util.Copy<polyglot.visit.NodeVisitor>
  Direct Known Subclasses:
    JL5RegisterPointerStmtsVisitor

      public class RegisterPointerStmtsVisitor
      extends polyglot.visit.ErrorHandlingVisitor

  Registers all procedures (methods, constructors, initializers) with the InterAnalysisPass.

- - ### Nested Class Summary

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

      `polyglot.util.Copy.Util`

  - ### Field Summary

    - ### Fields inherited from class polyglot.visit.ErrorHandlingVisitor

      `error, job, nf, ts`

    - ### Fields inherited from class polyglot.visit.HaltingVisitor

      `bypass, bypassParent`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RegisterPointerStmtsVisitor(polyglot.frontend.Job job, polyglot.types.TypeSystem ts, polyglot.ast.NodeFactory nf)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected RegisterPointerStmtsVisitor` | `codeInfo(StmtRegistrar.CodeInfo codeInfo)`
    `ConstructorContext` | `constructorContext()`
    `RegisterPointerStmtsVisitor` | `constructorContext(ConstructorContext constructorContext)`
    `StmtRegistrar.CodeInfo` | `currentCode()`
    `protected polyglot.visit.NodeVisitor` | `enterCall(polyglot.ast.Node parent, polyglot.ast.Node n)`
    `java.util.List<StmtRegistrar.ExceptionHandlerReferenceVariable>` | `exceptionHandlers()`
    `protected RegisterPointerStmtsVisitor` | `exceptionHandlers(java.util.List<StmtRegistrar.ExceptionHandlerReferenceVariable> exln)`
    `ReferenceVariable` | `getReferenceVariable(polyglot.ast.Expr e)`
    `protected polyglot.ast.Node` | `leaveCall(polyglot.ast.Node old, polyglot.ast.Node n, polyglot.visit.NodeVisitor v)`
    `boolean` | `recordExprResults()`
    `protected RegisterPointerStmtsVisitor` | `recordExprResults(boolean recordExprResults)`
    `protected boolean` | `subexprsUninteresting(polyglot.ast.Node parent, polyglot.ast.Node child)` As a mild optimization, allow the visitor to specify subexpressions that it is not interested in.
    `void` | `visitInstanceIntializer(polyglot.ast.CodeNode init)`

    - ### Methods inherited from class polyglot.visit.ErrorHandlingVisitor

      `begin, catchErrors, enter, enterCall, enterError, errorQueue, hasErrors, job, leave, leaveCall, leaveCall, nodeFactory, typeSystem`

    - ### Methods inherited from class polyglot.visit.HaltingVisitor

      `bypass, bypass, bypassChildren, override, visitChildren`

    - ### Methods inherited from class polyglot.visit.NodeVisitor

      `copy, enter, finish, finish, lang, leave, override, toString, visitEdge, visitEdgeNoOverride`

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

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

- - ### Constructor Detail

    - #### RegisterPointerStmtsVisitor

          public RegisterPointerStmtsVisitor(polyglot.frontend.Job job,
                                     polyglot.types.TypeSystem ts,
                                     polyglot.ast.NodeFactory nf)

  - ### Method Detail

    - #### codeInfo

          protected RegisterPointerStmtsVisitor codeInfo(StmtRegistrar.CodeInfo codeInfo)

    - #### recordExprResults

          protected RegisterPointerStmtsVisitor recordExprResults(boolean recordExprResults)

    - #### exceptionHandlers

          protected RegisterPointerStmtsVisitor exceptionHandlers(java.util.List<StmtRegistrar.ExceptionHandlerReferenceVariable> exln)

    - #### constructorContext

          public RegisterPointerStmtsVisitor constructorContext(ConstructorContext constructorContext)

    - #### currentCode

          public StmtRegistrar.CodeInfo currentCode()

    - #### constructorContext

          public ConstructorContext constructorContext()

    - #### exceptionHandlers

          public java.util.List<StmtRegistrar.ExceptionHandlerReferenceVariable> exceptionHandlers()

    - #### recordExprResults

          public boolean recordExprResults()

    - #### enterCall

          protected polyglot.visit.NodeVisitor enterCall(polyglot.ast.Node parent,
                                             polyglot.ast.Node n)
                                                  throws polyglot.types.SemanticException

      Overrides:
        `enterCall` in class `polyglot.visit.ErrorHandlingVisitor`
      Throws:
        `polyglot.types.SemanticException`

    - #### subexprsUninteresting

          protected boolean subexprsUninteresting(polyglot.ast.Node parent,
                                      polyglot.ast.Node child)

      As a mild optimization, allow the visitor to specify subexpressions that it is not interested in. These subexpressions will not have points to information computed.

    - #### leaveCall

          protected polyglot.ast.Node leaveCall(polyglot.ast.Node old,
                                    polyglot.ast.Node n,
                                    polyglot.visit.NodeVisitor v)
                                         throws polyglot.types.SemanticException

      Overrides:
        `leaveCall` in class `polyglot.visit.ErrorHandlingVisitor`
      Throws:
        `polyglot.types.SemanticException`

    - #### getReferenceVariable

          public ReferenceVariable getReferenceVariable(polyglot.ast.Expr e)

    - #### visitInstanceIntializer

          public void visitInstanceIntializer(polyglot.ast.CodeNode init)