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 Sequence = psx:: PreSequence
24 e = (Quoted|word) ^":" e
28 | ^"{" Sequence "}" /ws
47 Quoted = "\"" ((~[\"\\] | escaped)+) "\""
49 escaped = "\n":: "\\n"
56 | "()":: w** "//" ~[\n]* "\n" ws