//////////////////////////////////////////////////////////////////////////////
-s ::= {Doc} => top
+s ::= Doc => top
-Doc ::= Header Body /ws => doc
-Header ::= "header" { kv */ ws } /ws => header
+Doc ::= {Header} Body /ws => doc
+Header ::= "header" { kv */ ws } /ws => header
Body ::= Section*/ws => body
-Section ::= SectionHeader Paragraph*/ws /ws => section
+Section ::= { SectionHeader Paragraph* /ws => section }
SectionHeader ::= "==" SectionHeaderBody "=="
SectionHeaderBody ::= "=" SectionHeaderBody "="
> ws text ws
+sp !::= " "**
+blank ::= sp "\n" sp "\n" ws
+
kv ::= word "=" text /ws => kv1
num !::= [0-9]++
-Paragraph ::= { "\"\"" ws text } => "blockquote"
- > { "*" " " ws text } => "ul"
- > { "#" " " ws text } => "ol"
- > { num " " ws text } => "ol"
- > { "---" "-"* } => "hr"
- > { text } => "p"
-
-text ::= item
-itemx ::= ws item | ()
-item ::= blockquote
- > pre itemx => []
- > structured itemx => []
- > structuredx itemx => []
- > styled itemx => []
- > qtext itemx => []
- > alphanum++ itemx => []
- > symbol itemx => []
-// > sym++ itemx => []
- > Paragraph itemx => []
+Paragraph ::= { "\"\"" ws text } => "blockquote"
+ > { "*" " " ws text } => "ul"
+ > { "#" " " ws text } => "ol"
+ > { num " " ws text } => "ol"
+ > { "---" "-"* } => "hr"
+ > { text } => "p"
+
+text ::= Item
+Itemx ::= ws Item | ()
+Item ::= blockquote
+ > pre Itemx => []
+ > structured Itemx => []
+ > structuredx Itemx => []
+ > styled Itemx => []
+ > qtext Itemx => []
+ > alphanum++ Itemx => []
+ > symbol Itemx => []
+// > sym++ Itemx => []
+ > Paragraph Itemx => []
symbol ::= sym++