A rule is a named collection of alternative productions. There are three kinds of rules:
interleave. A text value conforms to a rule if it conforms to any one of the productions in the rule. If a text value conforms to more than one production in the rule, then the rule is ambiguous. The three different kinds of rules differ in how they treat ambiguity and how they handle their output.
RuleDeclaration: Attributesopt MemberModifiersopt Kind Name RuleParametersopt RuleBodyopt ; Kind: token syntax interleave MemberModifiers: MemberModifier MemberModifiers MemberModifer MemberModifier: final identifier RuleBody: = ProductionDeclarations ProductionDeclarations: ProductionDeclaration ProductionDeclarations | ProductionDeclaration ...