-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++
+Paragraph ::= { "\"\"" ws text } => "blockquote"
+ > { "---" "-"* } => "hr"
+ > { text } => "p"
+
+onums !::= nums (". "|") ")
+any !::= ~[]*
+
+uli ::= "* " (ws text &~ any (oli|uli)) => "li"
+oli ::= ("# "|onums) (ws text &~ any (oli|uli)) => "li"
+
+text ::= Item => text
+Itemx ::= ws Item
+ | ()
+Item ::= blockquote
+ > { uli+/ws => "ul" } Itemx => []
+ | { oli+/ws => "ol" } Itemx => []
+ > pre Itemx => []
+ > structured Itemx => []
+ > structuredx Itemx => []
+ > styled Itemx => []
+ > qtext Itemx => []
+ > (alphanum++ => stringify) Itemx => []
+ > symbol Itemx => []
+ > (sym++ => stringify) Itemx => []
+ > Paragraph Itemx => []