1 s ::= w* Grammar w* => "gram"
2 Grammar ::= R+ => "grammar"
3 R ::= word ^"::=" Alternatives
4 | word ^"!::=" Alternatives
6 ec ::= [~\]\\\-\~] | escaped
8 Alternatives ::= EquiAlt +/ ">"
9 EquiAlt ::= Conjuncts +/ "|" => "alternatives"
13 | Rewrite ^"&" Sequence
14 | Rewrite ^"&~" Sequence
16 Rewrite ::= Sequence => "rewrite"
18 | Sequence ^"=>" quoted
19 | Sequence "=>" "()" => "wrap"
21 range ::= ec => "range0" | ec ^"-" ec => "range0"
22 E ::= word => "nonTerminalY"
24 | ^"{" Alternatives "}"
25 | "[" [\~]? range* "]" => "range"
34 | "^" quoted => "care"
43 > ^"(" Alternatives ")"
50 word ::= an++ => "sify"
51 quoted ::= "\"" ([~\"\\] | escaped)* "\"" => "sify"
52 escaped ::= "\\n" => "\n"