X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=tests%2Ftibdoc.g;h=9cff5567ea03b41a8190ed14f829cec7afab764d;hp=df52b1006bb9b69ce40f15c2ddb1d2faebbea511;hb=c263c1e02119917a9d63ab14db9711c7d1cb4d9d;hpb=56319e11eb20cb67c4221b0d7a2567ec3b2df002 diff --git a/tests/tibdoc.g b/tests/tibdoc.g index df52b10..9cff556 100644 --- a/tests/tibdoc.g +++ b/tests/tibdoc.g @@ -1,10 +1,14 @@ +// indentation styling... +// literal blocks [[need to ignore bracing]] double-colon style? +// definition -- by prior line indentation, like headings in the original structured text +// tables +// dropcap +// output formats: latex, contex, ps, pdf, html, man, txt, rfc // URGENT: why does swapping [a-zA-Z0-9] for alphanum in "item" cause severe breakage? // URGENT: why does enabling "url" cause severe breakage? (probably same cause) // ... something to do with unit productions - - // output formats: latex, contex, ps, pdf, html, man, txt, rfc // bullet list // numbered list @@ -26,7 +30,7 @@ // FIXME: these have to go at the top so they have their dropAll bit set before PreSequence.build... ws !::= w** w !::= [\r\n\ ] -nw ::= [~\r\n\ ] +nw ::= ~[\r\n\ ] ////////////////////////////////////////////////////////////////////////////// @@ -35,21 +39,29 @@ s ::= {Doc} => top Doc ::= Header Body /ws => doc Header ::= "header" { kv */ ws } /ws => header Body ::= Section*/ws => body -Section ::= SectionHeader ({text}*/ws) /ws => section +Section ::= SectionHeader Paragraph*/ws /ws => section SectionHeader ::= "==" SectionHeaderBody "==" SectionHeaderBody ::= "=" SectionHeaderBody "=" > ws text ws kv ::= word "=" text /ws => kv1 +num !::= [0-9]++ => "stringify" +Paragraph ::= { "\"\"" ws text } => "blockquote" + > { "*" " " ws text } => "ul" + > { "#" " " ws text } => "ol" + > { num " " ws text } => "ol" + > { "---" "-"* } => "hr" + > { text } => "p" + text ::= item */ ws -pre ::= "[verbatim]" { [~]+ } /ws => "verbatim" // FIXME doesn't work +pre ::= "[verbatim]" { ~[]+ } /ws => "verbatim" // FIXME doesn't work item ::= pre > email > structured > styled > "\"" text "\"" => quoted - > [a-zA-Z0-9]++ + > alphanum++ => "stringify" > symbol symbol ::= symbolx & sym++ @@ -76,8 +88,8 @@ glyph ::= "(r)" | "(c)" | "(tm)" // euro symbol? // only gets parsed once urlpath ::= urlchar* -username ::= [a-zA-Z0-9;/?:&=$\-_.+]++ -password ::= [a-zA-Z0-9;/?:&=$\-_.+]++ +username ::= [a-zA-Z0-9;/?:&=$\-_.+]++ => "stringify" +password ::= [a-zA-Z0-9;/?:&=$\-_.+]++ => "stringify" urlchar ::= [a-zA-Z0-9;/?:&=$\-_.+@] | "%" [0-9] [0-9] => "%" url ::= "mailto" ":" email @@ -87,8 +99,8 @@ method ::= [+\-.a-z0-9]+ port ::= [0-9]+ domain ::= part +/ "." -part ::= [a-zA-Z0-9\-]++ // interesting use of boolean grammars -// &~ ([\-0-9] [~]* | [~]* [\-0-9]) +part ::= [a-zA-Z0-9\-]++ => "stringify" // interesting use of boolean grammars +// &~ ([\-0-9] ~[]* | ~[]* [\-0-9]) email ::= username "@" host => email host ::= [0-9]+ "." [0-9]+ "." [0-9]+ "." [0-9]+ => "ip" @@ -98,14 +110,14 @@ host ::= [0-9]+ "." [0-9]+ "." [0-9]+ "." [0-9]+ => "ip" // Tokens /////////////////////////////////////////////////////////////////// -word ::= alphanum++ +word ::= alphanum++ => "stringify" | quoted -quoted ::= "\"" (([~\"\\] | escaped)+) "\"" +quoted ::= "\"" ((~[\"\\] | escaped)+) "\"" | "\"\"" => "" escaped ::= "\\n" => "\n" | "\\r" => "\r" - | "\\" [~nr] + | "\\" ~[nr] // Chars /////////////////////////////////////////////////////////////// @@ -113,6 +125,6 @@ escaped ::= "\\n" => "\n" alpha ::= [a-zA-Z] num ::= [0-9] alphanum ::= [a-zA-Z0-9] -sym ::= [~a-zA-Z0-9\ \r\n] +sym ::= ~[a-zA-Z0-9\ \r\n]