Package daikon
Class VarInfoName.QuantifierVisitor
- Object
-
- VarInfoName.AbstractVisitor<VarInfoName.NoReturnValue>
-
- QuantifierVisitor
-
- All Implemented Interfaces:
VarInfoName.Visitor<VarInfoName.NoReturnValue>
- Enclosing class:
- VarInfoName
public static class VarInfoName.QuantifierVisitor extends VarInfoName.AbstractVisitor<VarInfoName.NoReturnValue>
A quantifier visitor can be used to search a tree and return all unquantified sequences (e.g. a[] or a[i..j]).
-
-
Constructor Summary
Constructors Constructor Description QuantifierVisitor(VarInfoName root)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Set<VarInfoName>
unquants()
Returns a collection of the nodes under the root that need quantification.VarInfoName.NoReturnValue
visitElements(VarInfoName.Elements o)
VarInfoName.NoReturnValue
visitFunctionOf(VarInfoName.FunctionOf o)
VarInfoName.NoReturnValue
visitFunctionOfN(VarInfoName.FunctionOfN o)
We do *not* want to pull out array members of FunctionOfN because a FunctionOfN creates a black-box array with respect to quantification.VarInfoName.NoReturnValue
visitSimple(VarInfoName.Simple o)
VarInfoName.NoReturnValue
visitSizeOf(VarInfoName.SizeOf o)
VarInfoName.NoReturnValue
visitSlice(VarInfoName.Slice o)
VarInfoName.NoReturnValue
visitSubscript(VarInfoName.Subscript o)
-
Methods inherited from class VarInfoName.AbstractVisitor
visitAdd, visitField, visitPoststate, visitPrestate, visitTypeOf
-
-
-
-
Constructor Detail
-
QuantifierVisitor
public QuantifierVisitor(VarInfoName root)
-
-
Method Detail
-
unquants
public Set<VarInfoName> unquants()
Returns a collection of the nodes under the root that need quantification. Each node represents an array; in particular, the values are either of type Elements or Slice.- Returns:
- the nodes under the root that need quantification
-
visitSimple
public VarInfoName.NoReturnValue visitSimple(VarInfoName.Simple o)
- Specified by:
visitSimple
in interfaceVarInfoName.Visitor<VarInfoName.NoReturnValue>
- Overrides:
visitSimple
in classVarInfoName.AbstractVisitor<VarInfoName.NoReturnValue>
-
visitElements
public VarInfoName.NoReturnValue visitElements(VarInfoName.Elements o)
- Specified by:
visitElements
in interfaceVarInfoName.Visitor<VarInfoName.NoReturnValue>
- Overrides:
visitElements
in classVarInfoName.AbstractVisitor<VarInfoName.NoReturnValue>
-
visitFunctionOf
public VarInfoName.NoReturnValue visitFunctionOf(VarInfoName.FunctionOf o)
- Specified by:
visitFunctionOf
in interfaceVarInfoName.Visitor<VarInfoName.NoReturnValue>
- Overrides:
visitFunctionOf
in classVarInfoName.AbstractVisitor<VarInfoName.NoReturnValue>
-
visitFunctionOfN
public VarInfoName.NoReturnValue visitFunctionOfN(VarInfoName.FunctionOfN o)
We do *not* want to pull out array members of FunctionOfN because a FunctionOfN creates a black-box array with respect to quantification. (Also, otherwise, there may be two or more arrays that are returned, making the quantification engine think it's working with 2-d arrays.)- Specified by:
visitFunctionOfN
in interfaceVarInfoName.Visitor<VarInfoName.NoReturnValue>
- Overrides:
visitFunctionOfN
in classVarInfoName.AbstractVisitor<VarInfoName.NoReturnValue>
-
visitSizeOf
public VarInfoName.NoReturnValue visitSizeOf(VarInfoName.SizeOf o)
- Specified by:
visitSizeOf
in interfaceVarInfoName.Visitor<VarInfoName.NoReturnValue>
- Overrides:
visitSizeOf
in classVarInfoName.AbstractVisitor<VarInfoName.NoReturnValue>
-
visitSubscript
public VarInfoName.NoReturnValue visitSubscript(VarInfoName.Subscript o)
- Specified by:
visitSubscript
in interfaceVarInfoName.Visitor<VarInfoName.NoReturnValue>
- Specified by:
visitSubscript
in classVarInfoName.AbstractVisitor<VarInfoName.NoReturnValue>
-
visitSlice
public VarInfoName.NoReturnValue visitSlice(VarInfoName.Slice o)
- Specified by:
visitSlice
in interfaceVarInfoName.Visitor<VarInfoName.NoReturnValue>
- Specified by:
visitSlice
in classVarInfoName.AbstractVisitor<VarInfoName.NoReturnValue>
-
-