X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=tests%2Ftibdoc.g;h=a1414d0248177a60a3a583c0554a4142f3ec8db2;hp=80c8cefaa01077bc7d13787d028ecce72c29a3c3;hb=92d14ef4956f39a591363709ed95bfa2999dc319;hpb=59eead6bf0f2d9a7abeba03f3fdab04625521faf diff --git a/tests/tibdoc.g b/tests/tibdoc.g index 80c8cef..a1414d0 100644 --- a/tests/tibdoc.g +++ b/tests/tibdoc.g @@ -56,10 +56,10 @@ nw = ~[\r\n\ ] s = Doc -Doc = head:Header body:Body /ws -Header = H:: { "header" { KeyVal */ ws } /ws } -Body = B:: {Section}*/ws -Section = SectionHeader ws! (Paragraph Paragraph) +Doc = head:Header ws! body:Body +Header = { "\\header" { KeyVal */ ws } /ws } +Body = { Section } */ws +Section = SectionHeader ws! Paragraph* SectionHeader = "==" SectionHeaderBody "==" SectionHeaderBody = "=" SectionHeaderBody "=" > ws! alphanum++ ws! @@ -67,11 +67,11 @@ SectionHeaderBody = "=" SectionHeaderBody "=" sp = " "** blank = sp! "\n" sp! "\n" ws! -KeyVal = key:word "=" val:text /ws +KeyVal = key:bareword "=" val:text /ws wp = w++ num = [0-9]++ -Paragraph = Blockquote:: { "\"\" " text } +Paragraph = { Blockquote:: "\"\" " text } > HR:: { "---" "-"* } > P:: { text } @@ -87,19 +87,21 @@ Item*/ws = blockquote > { UL:: uli+/ws } | { OL:: oli+/ws } - > pre + > Verbatim > link > structured > styled > (Chars:: alphanum++) > "\"" text "\"" > (Symbol:: sym++) -// > { Block:: text } + > { Block:: text } + +word = Chars:: bareword blockquote = "adsfafewag" //blockquote = Blockquote:: "\"\"" (block | text "\"\"") -pre = Verbatim:: "[verbatim]" { ~[]+ } /ws // FIXME doesn't work +Verbatim = "[verbatim]" ws! { (~[])++ } styled = Underline:: "__" text "__" | Footnote:: "((" text "))" @@ -115,18 +117,22 @@ styled = Underline:: "__" text "__" block = { text } -link = LinkText:: text:({ text }) "->" href:(url|email) - > LinkChars:: text:alphanum++ ws! "->" href:(url|email) +link = text:({ text }|word) "->" href:(url|email) structured = command & "\\" ([a-zA-Z0-9]++)! block? > glyph > email > url -glyph = Euro:: "(e)" | "(r)" | "(c)" | "(tm)" | emdash:: "--" | "..." +glyph = euro:: "(e)" + | r:: "(r)" + | c:: "(c)" + | tm:: "(tm)" + | emdash:: "--" + | ellipses:: "..." + | cent:: "\\cent" -command = Today:: "\\today" - | LineBreak:: "\\br" +command = "\\" [a-z]++ // URLs ////////////////////////////////////////////////////////////////////////////// @@ -134,7 +140,7 @@ command = Today:: "\\today" // subtypes of url (ftp, etc) as conjunctions, but the "master pattern" // only gets parsed once -urlpath = urlchar* +urlpath = urlchar* -> ~urlv // this ~urlv should be handled by url! bug! username = [a-zA-Z0-9;/?:&=$\-_.+]++ password = [a-zA-Z0-9;/?:&=$\-_.+]++ urlc = [a-zA-Z0-9;/?:&=$\-_.+@] @@ -166,7 +172,7 @@ host = IP:: nums "." nums "." nums "." nums // Tokens /////////////////////////////////////////////////////////////////// -word = alphanum++ +bareword = alphanum++ | quoted quoted = "\"" ((~[\"\\] | escaped)+) "\"" @@ -181,5 +187,6 @@ escaped = lf:: "\\n" alpha = [a-zA-Z] alphanum = [a-zA-Z0-9] sym = ~[a-zA-Z0-9\ \r\n=\">] +//sym = [,()]