s ::= ws grammar ws => "gram"
ws !::= w**
grammar ::= r+/ws => "grammar"
-r ::= word ^"::=" Alternatives /ws
- | word ^"!::=" Alternatives /ws
+r ::= word ^"::=" alternatives /ws
+ | word ^"!::=" alternatives /ws
ec ::= [~\]\\\-\~] | escaped
-Alternatives ::= EquiAlt +/ ">"
+alternatives ::= EquiAlt +/ (ws ">" ws)
EquiAlt ::= Conjuncts +/ "|" => "alternatives"
sequence ::= Es
range ::= ec => "range0" | ec ^"-" ec => "range0"
E ::= word => "nonTerminalY"
| [(][)] => "epsilon"
- | ^"{" Alternatives "}"
+ | ^"{" alternatives "}"
| "[" [\~]? range* "]" => "range"
| E ^"*/" E
| E ^"+/" E
| (E ^"++" > E ^"+")
| "(" word ^")"
- > ^"(" Alternatives ")"
+ > ^"(" alternatives ")"
w !::= " "
| "//" [~\n]* "\n"