checkpoint
[sbp.git] / tests / regression.tc
index 69dc06f..a713405 100644 (file)
@@ -25,9 +25,9 @@ tibcase {
   hello 
     there
     how
-      are
+      { are }
 ";
-    output "yep";
+    output "yep:{are}";
 
     s        ::= { Hello } => "yep"
     w        ::= " " | "\n"
@@ -35,13 +35,14 @@ tibcase {
     Hello    ::= "hello" ws { "there" "how" { "are" } }
 }
 
+
 testcase {
     input "ab c";
     output "1:{{a b} {c}}";
 
     s   ::= ids
-    ids ::= id (" " ids &~ id [~]*) => "1"
-          | id (    ids &~ id [~]*) => "2"
+    ids ::= id (" " ids &~ id ~[]*) => "1"
+          | id (    ids &~ id ~[]*) => "2"
           | id
     id  ::= [a-z]++
 }
@@ -61,11 +62,11 @@ testcase {
 
 testcase {
     input "aaabbbccc";
-    output "";
+    output "ab";
 
     s   ::= ab & dc
-    ab  ::= a b
-    dc  ::= d c
+    ab  ::= a b       => ab
+    dc  ::= d c       => dc
     a   ::= "a" a     | ()
     b   ::= "b" b "c" | ()
     c   ::= "c" c     | ()
@@ -76,8 +77,8 @@ testcase {
     input "aaabbbbccc";
 
     s   ::= ab & dc
-    ab !::= a b
-    dc !::= d c
+    ab !::= a b       => ab
+    dc !::= d c       => dc
     a   ::= "a" a     | ()
     b   ::= "b" b "c" | ()
     c   ::= "c" c     | ()
@@ -106,11 +107,12 @@ testcase {
 }
 
 testcase {
-    input  "xbambambam";
-    output "bam:{a bam:{a bam:{a x}}}";
+    input  "qxbambambam";
+    output "bam:{a bam:{a bam:{a x:{x}}}}";
 
-    s ::= a s ^"bam"
-    s ::= ^"x"
+    s ::= "q" z
+    z ::= a z ^"bam"
+    z ::= ^"x"
     a ::= ()       => "a"
 }
 
@@ -283,16 +285,16 @@ testcase {
 
 indent  !::= ww
 outdent !::= " "  outdent " "
-           | " "  ([~]*)  "\n"
+           | " "  (~[]*)  "\n"
 
-any      !::= [~]*
+any      !::= ~[]*
 s         ::= any "\n\n" ww statement ww "\n\n" any => smt
 ww       !::= sp*
 ws       !::= sp**
 sp        ::= " "
 
 block     ::= "\n" indent  blockBody
-           &~ "\n" outdent [~\ ] [~]*
+           &~ "\n" outdent ~[\ ] ~[]*
 
 blockBody ::= statement
             > statement blockBody /ws => "sbb"
@@ -317,3 +319,12 @@ ws        ::= w*
 
 
 }
+
+testcase {
+  input "aa bb";
+  output "{q:{{a a}} q:{{b b}}}";
+
+  s  ::= q */ ws
+  ws ::= " "*
+  q  ::= [a-z]++ => "q"
+}
\ No newline at end of file