alternatives ::= equiAlt +/ (ws ">" ws)
equiAlt ::= conjuncts +/ (ws "|" ws)
-conjuncts ::= rewrite
- | rewrite ^"&" e*/ws /ws
- | rewrite ^"&~" e*/ws /ws
+conjuncts ::= sequence
+ | sequence ^"&" e*/ws /ws
+ | sequence ^"&~" e*/ws /ws
sequence ::= e*/ws
(ws "/" e)?
(ws "=>" ws (word|quoted))? => "seq"
-rewrite ::= sequence
-
ec ::= [~\-\]\\\~]
| escaped
range ::= ec => "range"
| ec ^"-" ec
-e ::= word => "nonTerminal"
- | [(][)] => "epsilon"
+e ::= word => "nonTerminal"
+ | quoted => "literal"
+ | ^"()"
| ^"{" alternatives "}" /ws
| ^"[" (range*) "]"
| ^"[~" (range*) "]"
| e ^"+/" e /ws
| e ^"?" /ws
- | quoted => "literal"
-
- | "(" word ^")" /ws
- > ^"(" alternatives ")" /ws
+ | "(" word ^")" /ws
+ > ^"(" alternatives ")" /ws
w !::= " "
| "//" ([~\n]*) "\n"