accrue

## Class AccrueOptionsHelper

- java.lang.Object
- - accrue.AccrueOptionsHelper

-     public class AccrueOptionsHelper
      extends java.lang.Object

  Polyglot options for an object sensitive analysis

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `boolean` | `emptysetsigs`
    `polyglot.main.OptFlag.Switch` | `emptySetSigsOptFlag`
    `polyglot.main.OptFlag.Switch` | `flattenExpressionOptFlag`
    `boolean` | `flattenExpressions`
    `polyglot.main.OptFlag.Switch` | `noWarnMissingEdgesOptFlag`
    `boolean` | `noWemptysetsigs`
    `java.lang.String` | `pointsToEngineClass`
    `polyglot.main.OptFlag<java.lang.String>` | `pointsToEngineClassOptFlag`
    `java.lang.Integer` | `pointsToTimeout`
    `java.util.Collection<java.io.File>` | `signatureSourcePath`
    `polyglot.main.OptFlag.PathFlag<java.io.File>` | `sigSrcPathOptFlag`
    `polyglot.main.OptFlag<java.lang.String>` | `startOptFlag`
    `java.lang.String` | `startProcClass`
    `polyglot.main.OptFlag.Switch` | `warnEmptySetSigsOptFlag`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AccrueOptionsHelper()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `HeapAbstractionFactory` | `createHeapAbstractionFactory()`
    `static HeapAbstractionFactory` | `createHeapAbstractionFactory(java.lang.String hafString)` create a HeapAbstractionFactory from a string.
    `PointsToEngine` | `createPointsToEngine()` Create the PointsToEngine for performing pointer analysis.
    `boolean` | `handleArg(polyglot.main.OptFlag.Arg<?> arg)`
    `void` | `populateFlags(java.util.Set<polyglot.main.OptFlag<?>> flags)`

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

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

- - ### Field Detail

    - #### startProcClass

          public java.lang.String startProcClass

    - #### pointsToEngineClass

          public java.lang.String pointsToEngineClass

    - #### pointsToTimeout

          public java.lang.Integer pointsToTimeout

    - #### emptysetsigs

          public boolean emptysetsigs

    - #### noWemptysetsigs

          public boolean noWemptysetsigs

    - #### flattenExpressions

          public boolean flattenExpressions

    - #### signatureSourcePath

          public java.util.Collection<java.io.File> signatureSourcePath

    - #### startOptFlag

          public polyglot.main.OptFlag<java.lang.String> startOptFlag

    - #### pointsToEngineClassOptFlag

          public polyglot.main.OptFlag<java.lang.String> pointsToEngineClassOptFlag

    - #### noWarnMissingEdgesOptFlag

          public polyglot.main.OptFlag.Switch noWarnMissingEdgesOptFlag

    - #### emptySetSigsOptFlag

          public polyglot.main.OptFlag.Switch emptySetSigsOptFlag

    - #### flattenExpressionOptFlag

          public polyglot.main.OptFlag.Switch flattenExpressionOptFlag

    - #### warnEmptySetSigsOptFlag

          public polyglot.main.OptFlag.Switch warnEmptySetSigsOptFlag

    - #### sigSrcPathOptFlag

          public polyglot.main.OptFlag.PathFlag<java.io.File> sigSrcPathOptFlag

  - ### Constructor Detail

    - #### AccrueOptionsHelper

          public AccrueOptionsHelper()

  - ### Method Detail

    - #### populateFlags

          public void populateFlags(java.util.Set<polyglot.main.OptFlag<?>> flags)

    - #### handleArg

          public boolean handleArg(polyglot.main.OptFlag.Arg<?> arg)
                            throws polyglot.main.UsageError

      Throws:
        `polyglot.main.UsageError`

    - #### createPointsToEngine

          public PointsToEngine createPointsToEngine()

      Create the PointsToEngine for performing pointer analysis. The field this.pointToEngineClass is the fully qualified name of a subclass of PointsToEngine. If the field this.heapAbstractionFactoryString is non-null, then it is passed as an argument to the constructor of the pointToEngineClass. (And thus, the pointToEngineClass must have a constructor that takes a single String argument.) If this.heapAbstractionFactoryString is null, then the constructor is passed a HeapAbstractionFactory. (And thus, the pointsToEngineClass must have a constructor that takes a single HeapAbstractionFactory argument.)
      Returns:
        a PointsToEngine for performing pointer analysis.

    - #### createHeapAbstractionFactory

          public HeapAbstractionFactory createHeapAbstractionFactory()

    - #### createHeapAbstractionFactory

          public static HeapAbstractionFactory createHeapAbstractionFactory(java.lang.String hafString)

      create a HeapAbstractionFactory from a string. The format for the string is

             facts ::= fact | "[" fact "|" fact "|" ... "]"
             fact  ::= classname ["(" arg "," arg "," ... ")"]
             arg   ::= int | string

      where classname is a fully qualified classname of a heap abstraction, and the optional "(arg1, arg2, ...)" are zero or more integer or string literal arguments, which will be passed to the constructor for the heap abstraction. For convenience, classname may be abbreviated for several of the pointer analyses that come with Accrue, described as follows. Abbreviation : Fully qualified class name/factory full : accrue.analysis.pointer.analyses.FullObjSensitiveAnalysis type : accrue.analysis.pointer.analyses.TypeSensitive_nTmH_Analysis 2t1h : accrue.analysis.pointer.analyses.TypeSensitive_nTmH_Analysis(2,1) scs : accrue.analysis.pointer.analyses.StaticCallSiteContextSensitiveAnalaysis cs : accrue.analysis.pointer.analyses.CallSiteContextSensitiveAnalaysis distinguish : accrue.analysis.pointer.analyses.DistinguishClass Some example strings that are acceptable include: "full" "full(5)" "type(2,1)" "2t1h" "accrue.analysis.pointer.analyses.FullObjSensitiveAnalysis(2)" The following strings will create Cross product analyses "[2t1h | scs(2)]" "[2t1h | scs(2) | distinguish(mypackage.Foo)]"
      Parameters:
        `hafString` -
      Returns: