-text ::= item */ ws
-pre ::= "[verbatim]" { [~]+ } /ws => "verbatim" // FIXME doesn't work
-item ::= pre
- > email
- > structured
- > styled
- > "\"" text "\"" => quoted
- > [a-zA-Z0-9]++
- > symbol
-
-symbol ::= symbolx & sym++
-symbolx ::= "--" => emdash
- | ","
- | ":"
- | ";"
-
-styled ::= "**" text "**" => bold
- | "__" text "__" => ul
- | "~~" text "~~" => it // hard to type
- | "((" text "))" => footnote
-
-structured ::= glyph
-// | url
-
-glyph ::= "(r)" | "(c)" | "(tm)" // euro symbol?
+num !::= [0-9]++
+Paragraph ::= { "\"\"" ws text } => "blockquote"
+ > { "*" " " ws text } => "ul"
+ > { "#" " " ws text } => "ol"
+ > { num " " ws text } => "ol"
+ > { "---" "-"* } => "hr"
+ > { text } => "p"
+
+text ::= item => "t"
+itemx ::= ws item => "w" | ()
+item ::= blockquote => "b"
+ > pre itemx => "a"
+ > structured itemx => "1"
+ > structuredx itemx => "2"
+ > styled itemx => "3"
+ > qtext itemx => "4"
+ > alphanum++ itemx => "5"
+ > symbol itemx => "6"
+// > sym++ itemx => []
+ > Paragraph itemx => "7"
+
+symbol ::= sym++
+
+blockquote ::= "\"\"" text "\"\"" => "blockquote"
+ | "\"\"" block => "blockquote"
+
+qtext ::= "\"" text "\"" => "quoted"
+pre ::= "[verbatim]" { ~[]+ } /ws => "verbatim" // FIXME doesn't work
+
+styled ::= "__" text "__" => ul
+ | "((" 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
+ > email
+ > url
+
+glyph ::= "(r)" | "(c)" | "(tm)" | "--" // euro symbol?
+ | "\\today" -> ~[a-z] => today