X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=tests%2Ftibdoc.g;h=592619476cced71e7fa9f09b1757c78f42861b65;hp=918e80cccf12995c8b0e60a55954253a6c0a2dd1;hb=f13be78d4291906d2f4c7588567cb114f0cc3b54;hpb=a172395c46dac0c9fe82b6aa236abcd4f422fc08 diff --git a/tests/tibdoc.g b/tests/tibdoc.g index 918e80c..5926194 100644 --- a/tests/tibdoc.g +++ b/tests/tibdoc.g @@ -1,3 +1,4 @@ +x::="x" // indentation styling... // literal blocks [[need to ignore bracing]] double-colon style? // definition -- by prior line indentation, like headings in the original structured text @@ -30,11 +31,11 @@ // 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\ ] ////////////////////////////////////////////////////////////////////////////// -s ::= {Doc} => top +s ::= { Doc } => "top" Doc ::= Header Body /ws => doc Header ::= "header" { kv */ ws } /ws => header @@ -46,7 +47,7 @@ SectionHeaderBody ::= "=" SectionHeaderBody "=" kv ::= word "=" text /ws => kv1 -num !::= [0-9]++ +num !::= [0-9]++ => "stringify" Paragraph ::= { "\"\"" ws text } => "blockquote" > { "*" " " ws text } => "ul" > { "#" " " ws text } => "ol" @@ -55,13 +56,13 @@ Paragraph ::= { "\"\"" ws text } => "blockquote" > { 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++ @@ -88,8 +89,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 @@ -99,8 +100,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" @@ -110,14 +111,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 /////////////////////////////////////////////////////////////// @@ -125,6 +126,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]