Class Matcher<T extends ASTNode>
java.lang.Object
io.github.douira.glsl_transformer.ast.transform.Matcher<T>
Instances of the matcher can match a node against a stored pattern. This
avoids a separate equality implementation for each node type.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionMatcher(String input, Function<io.github.douira.glsl_transformer.GLSLParser, RuleType> parseMethod, BiFunction<ASTBuilder, RuleType, T> visitMethod) Matcher(String input, Function<io.github.douira.glsl_transformer.GLSLParser, RuleType> parseMethod, BiFunction<ASTBuilder, RuleType, T> visitMethod, String wildcardIdentifier) -
Method Summary
Modifier and TypeMethodDescriptiongetDataMatch(String name) getNodeMatch(String name) <R extends ASTNode>
RgetNodeMatch(String name, Class<R> clazz) getStringDataMatch(String name) voidmarkAnyWildcard(String name, ASTNode patternNode) <R extends ASTNode>
voidmarkClassedPredicateWildcard(String name, ASTNode patternNode, Class<R> clazz, Predicate<R> predicate) voidmarkClassWildcard(String name, ASTNode patternNode) voidmarkClassWildcard(String name, ASTNode patternNode, Class<? extends ASTNode> clazz) voidmarkPredicatedWildcard(String name, ASTNode patternNode, Predicate<ASTNode> matchPredicate) booleanTraverse the given tree and the pattern at the same time and make sure they are the same at each visit step.booleanmatchesExtract(T tree) booleanbooleanmatchesExtractWide(ASTNode tree) booleanbooleanmatchesWide(ASTNode tree) void
-
Field Details
-
pattern
-
-
Constructor Details
-
Matcher
-
Matcher
-
Matcher
public Matcher(String input, Function<io.github.douira.glsl_transformer.GLSLParser, RuleType> parseMethod, BiFunction<ASTBuilder, RuleType, T> visitMethod, String wildcardIdentifier) -
Matcher
public Matcher(String input, Function<io.github.douira.glsl_transformer.GLSLParser, RuleType> parseMethod, BiFunction<ASTBuilder, RuleType, T> visitMethod)
-
-
Method Details
-
preparePatternItems
public void preparePatternItems() -
matches
Traverse the given tree and the pattern at the same time and make sure they are the same at each visit step. -
matchesExtract
-
matchesExtract
-
matchesWide
-
matchesExtractWide
-
matchesExtractWide
-
getDataMatches
-
getNodeMatches
-
getDataMatch
-
getStringDataMatch
-
getNodeMatch
-
getNodeMatch
-
markAnyWildcard
-
markPredicatedWildcard
-
markClassWildcard
-
markClassWildcard
-
markClassedPredicateWildcard
-