2.1. Rule Naming
The name of a rule is ... a sequence of characters, beginning with an alphabetic character, and followed by a combination of alphabetics, digits, hyphens (dashes) and underscores.
The name of a rule may include the underscore _ character.
2.2. Rule Form
A rule is defined by the following sequence:
name = elements ;
The semi-colon ; is used to signal the end of a rule.
A hash starts a comment that continues to the end of line.
rule = elements # comment
The hash # rather than a semi-colon ; is used to start a comment.
4. ABNF Definition of ABNF
rulename = ALPHA *(ALPHA / DIGIT / "-" / "_") ;
rulename can include the underscore _ character.
element = rulename / group / option / char-val / num-val ;
prose-val is not supported.
B.1. Core Rules
No core rules are defined. All rules must be defined explicitly.
One grammar file can be read into another using the $include directive.
Relative and absolute paths may be used. When no path is declared, the directories searched for include files can be specified via the optional -includeDirs argument.