w !::= " "
| "\n"
| "\r"
-ws !::= w** | w** "//" (~[\n]*) "\n" ws
+ws !::= w** | w** "//" (~[\n]*) "\n" !ws
wp !::= w++
Grammar ::= r +/ ws => "grammar"
r ::= word ^"::=" alternatives /ws
| word ^"!::=" alternatives /ws
-alternatives ::= (Conjuncts +/ (ws "|" ws)) +/ (ws ">" ws)
+alternatives ::= (Conjuncts +/ (!ws "|" !ws)) +/ (!ws ">" !ws)
Conjuncts ::= Sequence
| Sequence ^"&" e*/ws /ws
| Sequence ^"&~" e*/ws /ws
ps ::= e*/ws => "ps"
- | (e+/ws ws)? "^" Quoted (ws e+/ws)? => "ps2"
+ | (e+/ws !ws)? "^" Quoted (!ws e+/ws)? => "ps2"
psy ::= ps
- | ps wp ^"/" ws e
+ | ps wp ^"/" !ws e
psx ::= psy => "psy"
// | e "<-" psy /ws => "psyl"
| psy "->" e /ws => "psyr"