X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=tests%2Fregression.tc;h=33510182e1d2dcc8e10c45aafebbc3f63db2f897;hp=025f56e2e7a23e21054ffbb89a4053902f403b5d;hb=a8478f5ddfbfbc8d910d09f27163cbd55752d3b6;hpb=628b3a8eaafdbe8507e841076051bff42aadf5ee diff --git a/tests/regression.tc b/tests/regression.tc index 025f56e..3351018 100644 --- a/tests/regression.tc +++ b/tests/regression.tc @@ -1,6 +1,6 @@ //testcase { // input "x"; -// output "a1:{x}"; +// output "a:{x}"; // // s = a1:: a // a = s1:: s @@ -40,8 +40,8 @@ testcase { output "1:{{a b} {c}}"; s = ids - ids = "1":: id (" " ids &~ id !((~[])*)) - | "2":: id ( ids &~ id !((~[])*)) + ids = "1":: id (" " ids &~ id ((~[])*)!) + | "2":: id ( ids &~ id ((~[])*)!) | id id = [a-z]++ } @@ -292,10 +292,10 @@ ww = sp* sp = " " any = (~[])* -s = smt:: !ws statement !ws statement !ws +s = smt:: ws! statement ws! statement ws! -block = !"\n" !indent blockBody - &~ !"\n" (" " !outdent " ") !(~[\ ]) !((~[])*) +block = "\n"! indent! blockBody + &~ "\n"! (" " outdent! " ") (~[\ ])! ((~[])*)! blockBody = statement > sbb:: statement ws blockBody @@ -326,7 +326,7 @@ testcase { s = s2:: q " "* q = a3:: [a-z] [a-z] [a-z] - &~ !(~[]) "b" !((~[])*) + &~ (~[])! "b" ((~[])*)! } testcase { @@ -364,7 +364,7 @@ testcase { Expr = if:: "if" "(" Expr ")" IfBody /ws | ident:: [a-z]++ IfBody = else:: Expr "else" Expr /ws - | then:: Expr &~ ((~[])* "else" !Expr /ws) + | then:: Expr &~ ((~[])* "else" Expr! /ws) ws = [ ]** } @@ -390,3 +390,52 @@ testcase { x = [123] } + +//testcase { +// input "ab"; +// +// s = a:"a" b:"b" +//} + + +testcase { + input "a c"; + s = first:: A WSA B? WSB C + A = "a" + B = "b" + C = "c" + WSA = WSA:: " "** + WSB = () -> ~" " + | WSB:: " "++ +} + +//testcase { +// input "aaaaaXaaaa"; +// output ""; +// s = ManyA &~ EndsWithZ +// EndsWithZ = Anything "Z" +// ManyA = () | "a" ManyA +// Anything = () | ("a" | "X" | "Z") Anything +//} + +testcase { + input "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; + output ""; + s = ManyA + ManyA = () + | A ManyA! & ManyAB + A = "a" + ManyAB = () + | "a" ManyAB + | "b" ManyAB +} + +testcase { + input "aaaaaaaa"; + output ""; + s = As & AAs + As = () | As "a" + AAs = () | AAs "aa" +} + +