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
Modifier and TypeClassDescriptionstatic class
A base class for tree-matching algorithms.static class
match()
returns true if called on a path whose leaf has the given kind (supplied at object initialization).static class
match()
returns true if any of the given matchers returns true.static class
static class
match()
returns true if called on a path, any element of which matches the given matcher (supplied at object initialization).static class
match()
returns true if called on a path whose leaf is within the "then" clause of an if whose conditon matches the matcher (supplied at object initialization). -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
matchParents
(TreePath path, Tree.Kind... kinds) Determines whether a tree has a particular set of direct parents, ignoring blocks and parentheses.
-
Constructor Details
-
Heuristics
public Heuristics()
-
-
Method Details
-
matchParents
Determines whether 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
-