kv ::= word "=" text /ws => kv1
-num !::= [0-9]++
+num !::= [0-9]++ => "stringify"
Paragraph ::= { "\"\"" ws text } => "blockquote"
> { "*" " " ws text } => "ul"
> { "#" " " ws text } => "ol"
> structured
> styled
> "\"" text "\"" => quoted
- > [a-zA-Z0-9]++
+ > alphanum++ => "stringify"
> symbol
symbol ::= symbolx & sym++
// only gets parsed once
urlpath ::= urlchar*
-username ::= [a-zA-Z0-9;/?:&=$\-_.+]++
-password ::= [a-zA-Z0-9;/?:&=$\-_.+]++
+username ::= [a-zA-Z0-9;/?:&=$\-_.+]++ => "stringify"
+password ::= [a-zA-Z0-9;/?:&=$\-_.+]++ => "stringify"
urlchar ::= [a-zA-Z0-9;/?:&=$\-_.+@]
| "%" [0-9] [0-9] => "%"
url ::= "mailto" ":" email
port ::= [0-9]+
domain ::= part +/ "."
-part ::= [a-zA-Z0-9\-]++ // interesting use of boolean grammars
+part ::= [a-zA-Z0-9\-]++ => "stringify" // interesting use of boolean grammars
// &~ ([\-0-9] ~[]* | ~[]* [\-0-9])
email ::= username "@" host => email
// Tokens ///////////////////////////////////////////////////////////////////
-word ::= alphanum++
+word ::= alphanum++ => "stringify"
| quoted
quoted ::= "\"" ((~[\"\\] | escaped)+) "\""