-s ::= !ws Grammar ws => "gram"
-Grammar ::= NonTerminal +/ ws => "grammar"
-NonTerminal ::= word ^"::=" RHS /ws
-
-RHS ::= (Conjuncts +/ (!ws "|" !ws)) +/ (!ws ">" !ws)
-
-Conjuncts ::= Sequence
- | Sequence ^"&" Elements /ws
- | Sequence ^"&~" Elements /ws
-Elements ::= e*/ws
-
-psy ::= Elements => "ps"
- | psy !wp ^"/" !ws e
-psx ::= psy => "psy"
- | psy ^"->" e /ws
-Sequence ::= Quoted => "qprod"
- > psx => "psx"
- | psx "=>" ^"[]" /ws
- | psx ^"=>" ("()"|word|Quoted) /ws
-
-ec ::= ~[\-\]\\]
+s = ws gram:Grammar ws
+Grammar = grammar:: NonTerminal +/ ws
+NonTerminal = word !wp ^"=" !wp RHS
+
+RHS = (Sequence +/ (!ws "|" !ws)) +/ (!ws ">" !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 = ~[\-\]\\]