Grammar Documentation
Grammar Reference
ebnf_grammar
entry pointsyntax = syntax rule, { syntax rule } ;
Grammar definition
ebnf_grammar
: rule_def+ EOF
;
Railroad diagram
References
rule_def
syntax rule = meta identifier, '=', definitions list, ';' ;
Grammar definition
rule_def
: rule_name EQUALS definitions_list SEMICOLON
;
Railroad diagram
Referenced by
References
rule_name
meta identifier
Grammar definition
rule_name
: META_IDENTIFIER
;
Railroad diagram
Referenced by
definitions_list
definitions list = single definition, { '|', single definition } ;
Grammar definition
definitions_list
: single_definition (PIPE single_definition)*
;
Railroad diagram
Referenced by
References
single_definition
single definition = term, { ',', term } ;
Grammar definition
single_definition
: term (COMMA term)*
| // empty sequence
;
Railroad diagram
Referenced by
References
term
term = factor, [ '-', exclusion ] ;
Grammar definition
term
: factor (MINUS exclusion)?
;
Railroad diagram
Referenced by
References
exclusion
exclusion = factor ;
Grammar definition
exclusion
: factor
;
Railroad diagram
Referenced by
References
factor
factor = [ integer, '*' ], primary ;
Grammar definition
factor
: (INTEGER ASTERISK)? primary
;
Railroad diagram
Referenced by
References
primary
primary = optional sequence
| repeated sequence
| special sequence
| grouped sequence
| meta identifier
| terminal string
| empty sequence ;
| repeated sequence
| special sequence
| grouped sequence
| meta identifier
| terminal string
| empty sequence ;
Grammar definition
primary
: optional_sequence
| repeated_sequence
| special_sequence
| grouped_sequence
| meta_identifier
| terminal_string
;
Railroad diagram
Referenced by
References
optional_sequence
optional sequence = '[', definitions list, ']' ;
Grammar definition
optional_sequence
: LBRACKET definitions_list RBRACKET
;
Railroad diagram
Referenced by
References
repeated_sequence
repeated sequence = '{', definitions list, '}' ;
Grammar definition
repeated_sequence
: LBRACE definitions_list RBRACE
;
Railroad diagram
Referenced by
References
grouped_sequence
grouped sequence = '(', definitions list, ')' ;
Grammar definition
grouped_sequence
: LPAREN definitions_list RPAREN
;
Railroad diagram
Referenced by
References
special_sequence
special sequence = '?', { special sequence character }, '?' ;
Grammar definition
special_sequence
: SPECIAL_SEQUENCE
;
Railroad diagram
Referenced by
meta_identifier
meta identifier = letter, { letter | digit | ' ' } ;
Grammar definition
meta_identifier
: META_IDENTIFIER
;
Railroad diagram
Referenced by
terminal_string
terminal string = "'", { character }, "'"
| '"', { character }, '"' ;
| '"', { character }, '"' ;
Grammar definition
terminal_string
: SINGLE_QUOTED_STRING
| DOUBLE_QUOTED_STRING
;
Railroad diagram
Referenced by