checkpoint harmony
[sbp.git] / tests / tibdoc.g
index 8b18175..81061e5 100644 (file)
@@ -20,38 +20,41 @@ nw       ::= ~[\r\n\ ]
 
 //////////////////////////////////////////////////////////////////////////////
 
-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 => "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"
+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++