-qtext ::= "\"" text "\"" => "quoted"
-pre ::= "[verbatim]" { ~[]+ } /ws => "verbatim" // FIXME doesn't work
-
-styled ::= "__" text "__" => underline
- | "((" text "))" => footnote
- | ( "[[" text "]]" => tt
- > "[" word "]" => citation
- )
- | "!!" text "!!" => strikethrough
- | "^^" (word|block) => superscript
- | ",," (word|block) => subscript
- | "\\sc" block => smallcap
- | "**" text "**" => bold
- | "!" (word|block) => keyword
- > "*" text "*" => it
-
-block ::= { text }
-structured ::= { text } "->" (url|email) => link
- //> alphanum++ "->" (url|email) => link
-structuredx ::= glyph
+qtext = quoted:: "\"" text "\""
+pre = verbatim:: "[verbatim]" { ~[]+ } /ws // FIXME doesn't work
+
+styled = underline:: "__" text "__"
+ | footnote:: "((" text "))"
+ | tt:: "[[" text "]]"
+ | citation:: "[" word "]"
+ | strikethrough:: "!!" text "!!"
+ | superscript:: "^^" (word|block)
+ | subscript:: ",," (word|block)
+ | smallcap:: "\\sc" block
+ | bold:: "++" text "++"
+ | keyword:: "!" (word|block)
+ | Italic:: "**" text "**"
+
+block = { text }
+
+link = link:: text:({ text }) "->" href:(url|email)
+ > link:: text:alphanum++ !ws "->" href:(url|email)
+
+structured = command & "\\" [a-zA-Z0-9]++ block?
+ > glyph