19 lines
542 B
Plaintext
19 lines
542 B
Plaintext
(* Grammatical EBNF *)
|
|
Ruleset = (COMMENT? Rule)* EOI ;
|
|
Rule = ident '=' Either? ';' ;
|
|
Either = Follow ('|' Follow)* ;
|
|
Follow = (Any | Many | Maybe | Not)+ ;
|
|
Any = Not '*' ;
|
|
Many = Not '+' ;
|
|
Maybe = Not '?' ;
|
|
Not = '!'? Prime ;
|
|
Prime = Group | chr | str | ident ;
|
|
Group = '(' Either ')' ;
|
|
|
|
ident = XID_START XID_CONTINUE* ;
|
|
str = '"' (!'"' ANY)* '"' ;
|
|
chr = "'" (!"'" ANY)* "'" ;
|
|
|
|
WHITESPACE = WHITE_SPACE ;
|
|
COMMENT = "(*" (COMMENT | !"*)" ANY)* "*)" ;
|