Package org.antlr.v4.runtime.misc
Class RuleDependencyProcessor
java.lang.Object
javax.annotation.processing.AbstractProcessor
org.antlr.v4.runtime.misc.RuleDependencyProcessor
- All Implemented Interfaces:
Processor
@SupportedAnnotationTypes({"org.antlr.v4.runtime.RuleDependency","org.antlr.v4.runtime.RuleDependencies","org.antlr.v4.runtime.RuleVersion"})
public class RuleDependencyProcessor
extends AbstractProcessor
A compile-time validator for rule dependencies.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumprivate static final class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final Set<Dependents>static final Stringstatic final Stringstatic final StringFields inherited from class javax.annotation.processing.AbstractProcessor
processingEnv -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate booleancheckClassNameConstant(String className, Class<?> clazz) private booleanprivate voidcheckDependencies(List<Tuple2<RuleDependency, Element>> dependencies, TypeMirror recognizerType) private intcheckDependencyVersion(Tuple2<RuleDependency, Element> dependency, String[] ruleNames, int[] ruleVersions, int relatedRule, String relation) extractRuleRelations(TypeMirror recognizer) private AnnotationValuefindRuleDependencyProperty(Tuple2<RuleDependency, Element> dependency, AnnotationMirror annotationMirror, RuleDependencyProcessor.RuleDependencyProperty property) private Tuple2<AnnotationMirror,AnnotationValue> findRuleDependencyProperty(Tuple2<RuleDependency, Element> dependency, RuleDependencyProcessor.RuleDependencyProperty property) static List<Tuple2<RuleDependency,Element>> getDependencies(RoundEnvironment roundEnv) private static TypeMirrorgetRecognizerType(RuleDependency dependency) private ExecutableElementgetRuleMethod(TypeMirror recognizerClass, String name) private String[]getRuleNames(TypeMirror recognizerClass) private int[]getRuleVersions(TypeMirror recognizerClass, String[] ruleNames) private StringgetSerializedATN(TypeMirror recognizerClass) private booleanbooleanprocess(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) private voidreportUnimplementedDependents(Tuple2<RuleDependency, Element> dependency, EnumSet<Dependents> dependents) Methods inherited from class javax.annotation.processing.AbstractProcessor
getCompletions, getSupportedAnnotationTypes, getSupportedOptions, init, isInitialized
-
Field Details
-
RuleDependencyClassName
- See Also:
-
RuleDependenciesClassName
- See Also:
-
RuleVersionClassName
- See Also:
-
IMPLEMENTED_DEPENDENTS
-
-
Constructor Details
-
RuleDependencyProcessor
public RuleDependencyProcessor()
-
-
Method Details
-
getSupportedSourceVersion
- Specified by:
getSupportedSourceVersionin interfaceProcessor- Overrides:
getSupportedSourceVersionin classAbstractProcessor
-
process
- Specified by:
processin interfaceProcessor- Specified by:
processin classAbstractProcessor
-
checkClassNameConstants
private boolean checkClassNameConstants() -
checkClassNameConstant
-
getRecognizerType
-
checkDependencies
private void checkDependencies(List<Tuple2<RuleDependency, Element>> dependencies, TypeMirror recognizerType) -
reportUnimplementedDependents
private void reportUnimplementedDependents(Tuple2<RuleDependency, Element> dependency, EnumSet<Dependents> dependents) -
checkDependencyVersion
private int checkDependencyVersion(Tuple2<RuleDependency, Element> dependency, String[] ruleNames, int[] ruleVersions, int relatedRule, String relation) -
getRuleVersions
-
getRuleMethod
-
hasRuleVersionAnnotation
-
getRuleNames
-
getDependencies
-
findRuleDependencyProperty
@Nullable private Tuple2<AnnotationMirror,AnnotationValue> findRuleDependencyProperty(@NotNull Tuple2<RuleDependency, Element> dependency, @NotNull RuleDependencyProcessor.RuleDependencyProperty property) -
findRuleDependencyProperty
@Nullable private AnnotationValue findRuleDependencyProperty(@NotNull Tuple2<RuleDependency, Element> dependency, @NotNull AnnotationMirror annotationMirror, @NotNull RuleDependencyProcessor.RuleDependencyProperty property) -
extractRuleRelations
-
getSerializedATN
-