| Word "*" ws ^"=" ws RHS
| Word "*/" Word ws ^"=" ws RHS
-RHS:: = ("|":: Sequence +/ (ws "|" ws)) +/ (ws ">" ws)
+RHS:: = ("|":: Sequence +/ (ws "|" ws)) +/ (ws (">" -> ~">") ws)
Elements:: = e*/ws
Sequence = PreSequence
| Sequence ^"&" Elements /ws
+ | ^"~~" Elements /ws
| Sequence ^"&~" Elements /ws
e = e ^"!"
| ^"..."
| "(" Word ^")"
> ^"(" RHS ")" /ws
- | ^"~" e
+ | "~":: ("~" -> ~"~")! e
| ^"\\{"
| ^"\\}"
+ | ^">>"
+ | ^"<<"
Word:: = [.a-zA-Z0-9_]++ &~ "."+
Quoted:: = "\"" (~[\"\\] | escaped)+ "\""
Range:: = ec
| ec "-" ec
+ | "<<":: [<][<]
+ | ">>":: [>][>]
-ec = ~[\-\]\\]
+ec = ~[\-\]\\<>]
+ | [>] -> ~[>]
+ | [<] -> ~[<]
| escaped
escaped = "\n":: "\\n"
| "\r":: "\\r"