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 SummaryNested 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 SummaryConstructors
- 
Method SummaryModifier 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- 
Heuristicspublic Heuristics()
 
- 
- 
Method Details- 
matchParentsReturns 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 match
- kinds- 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
 
 
-