-s = gram:: !ws Grammar ws
+s = ws gram:Grammar ws
Grammar = grammar:: NonTerminal +/ ws
NonTerminal = word !wp ^"=" !wp RHS
-RHS = (Conjuncts +/ (!ws "|" !ws)) +/ (!ws ">" !ws)
+RHS = (Sequence +/ (!ws "|" !ws)) +/ (!ws ">" !ws)
-Conjuncts = Sequence
- | Sequence ^"&" Elements /ws
- | Sequence ^"&~" Elements /ws
Elements = e*/ws
PreSequence = ps:: Elements
| PreSequence !wp ^"/" !ws e
| PreSequence ^"->" e /ws
| (Quoted|word) ^"::" PreSequence /ws
+
Sequence = psx:: PreSequence
+ | Sequence !ws ^"&" !ws Elements
+ | Sequence !ws ^"&~" !ws Elements
ec = ~[\-\]\\]
| escaped