Class Heuristics
java.lang.Object
org.checkerframework.framework.util.Heuristics
Utilities for determining tree-based heuristics.
For an example, see org.checkerframework.checker.interning.InterningVisitor.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classA base class for tree-matching algorithms.static classmatch()returns true if called on a path whose leaf has the given kind (supplied at object initialization).static classmatch()returns true if any of the given matchers returns true.static classstatic classmatch()returns true if called on a path, any element of which matches the given matcher (supplied at object initialization).static classmatch()returns true if called on a path whose leaf is within the "then" clause of an if whose condition matches the matcher (supplied at object initialization). -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic booleanmatchParents(TreePath path, Tree.Kind... kinds) Returns true if a tree has a particular set of direct parents, ignoring blocks and parentheses.
-
Constructor Details
-
Heuristics
public Heuristics()
-
-
Method Details
-
matchParents
Returns true if a tree has a particular set of direct parents, ignoring blocks and parentheses.For example, to test whether an expression (specified by
path) is immediately contained by an if statement which is immediately contained in a method, one would invoke:matchParents(path, Kind.IF, Tree.Kind.METHOD)
- Parameters:
path- the path to matchkinds- the tree kinds to match against, in ascending order starting from the desired kind of the parent- Returns:
- true if the tree path matches the desired kinds, skipping blocks and parentheses, for as many kinds as specified
-