1 s = gram:: !ws Grammar ws
2 Grammar = grammar:: NonTerminal +/ ws
3 NonTerminal = word !wp ^"=" !wp RHS
5 RHS = (Conjuncts +/ (!ws "|" !ws)) +/ (!ws ">" !ws)
8 | Sequence ^"&" Elements /ws
9 | Sequence ^"&~" Elements /ws
12 PreSequence = ps:: Elements
13 | PreSequence !wp ^"/" !ws e
14 | PreSequence ^"->" e /ws
15 | (Quoted|word) ^"::" PreSequence /ws
16 | PreSequence ^"=>" ("[]"|"()"|word|Quoted) /ws
17 Sequence = psx:: PreSequence
25 e = (Quoted|word) ^":" e
29 | ^"{" Sequence "}" /ws
48 Quoted = "\"" ((~[\"\\] | escaped)+) "\""
50 escaped = "\n":: "\\n"
57 | w** "//" ~[\n]* "\n" ws => ()