// FIXME: these have to go at the top so they have their dropAll bit set before PreSequence.build...
ws !::= w**
w !::= [\r\n\ ]
-nw ::= [~\r\n\ ]
+nw ::= ~[\r\n\ ]
//////////////////////////////////////////////////////////////////////////////
> { text } => "p"
text ::= item */ ws
-pre ::= "[verbatim]" { [~]+ } /ws => "verbatim" // FIXME doesn't work
+pre ::= "[verbatim]" { ~[]+ } /ws => "verbatim" // FIXME doesn't work
item ::= pre
> email
> structured
domain ::= part +/ "."
part ::= [a-zA-Z0-9\-]++ // interesting use of boolean grammars
-// &~ ([\-0-9] [~]* | [~]* [\-0-9])
+// &~ ([\-0-9] ~[]* | ~[]* [\-0-9])
email ::= username "@" host => email
host ::= [0-9]+ "." [0-9]+ "." [0-9]+ "." [0-9]+ => "ip"
word ::= alphanum++
| quoted
-quoted ::= "\"" (([~\"\\] | escaped)+) "\""
+quoted ::= "\"" ((~[\"\\] | escaped)+) "\""
| "\"\"" => ""
escaped ::= "\\n" => "\n"
| "\\r" => "\r"
- | "\\" [~nr]
+ | "\\" ~[nr]
// Chars ///////////////////////////////////////////////////////////////
alpha ::= [a-zA-Z]
num ::= [0-9]
alphanum ::= [a-zA-Z0-9]
-sym ::= [~a-zA-Z0-9\ \r\n]
+sym ::= ~[a-zA-Z0-9\ \r\n]