Annotation Interface RuleDependency


@Retention(RUNTIME) @Target({TYPE,CONSTRUCTOR,METHOD,FIELD}) public @interface RuleDependency
Declares a dependency upon a grammar rule, along with a set of zero or more dependent rules.

Version numbers within a grammar should be assigned on a monotonically increasing basis to allow for accurate tracking of dependent rules.

  • Required Element Summary

    Required Elements
    Modifier and Type
    Required Element
    Description
    Class<? extends Recognizer<?,?>>
     
    int
     
    int
     
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    Specifies the set of grammar rules related to rule() which the annotated element depends on.
  • Element Details

    • recognizer

      Class<? extends Recognizer<?,?>> recognizer
    • rule

      int rule
    • version

      int version
    • dependents

      Dependents[] dependents
      Specifies the set of grammar rules related to rule() which the annotated element depends on. Even when absent from this set, the annotated element is implicitly dependent upon the explicitly specified rule(), which corresponds to the Dependents.SELF element.

      By default, the annotated element is dependent upon the specified rule() and its Dependents.PARENTS, i.e. the rule within one level of context information. The parents are included since the most frequent assumption about a rule is where it's used in the grammar.

      Default:
      {SELF, PARENTS}