checkpoint
[sbp.git] / tests / regression.tc
index c359fa8..c2206ee 100644 (file)
@@ -41,8 +41,8 @@ testcase {
     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]++
 }
@@ -107,11 +107,12 @@ testcase {
 }
 
 testcase {
-    input  "xbambambam";
+    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"
 }
 
@@ -262,62 +263,62 @@ testcase {
     idl  ::= [a-d]
 }
 
-testcase {
-
-    input "
-
-
- while x>0
-   while y>0
-    foo()
-     bar()
-
- while x>0
-   while y>0
-    foo()
-   bar()
-
-
-";
-    output "smt:{while:{>:{{x} {0}} while:{>:{{y} {0}} sbb:{{f o o} {b a r}}}}}";
-    output "smt:{while:{>:{{x} {0}} sbb:{while:{>:{{y} {0}} {f o o}} {b a r}}}}";
-
-indent  !::= ww
-outdent !::= " "  outdent " "
-           | " "  ([~]*)  "\n"
-
-any      !::= [~]*
-s         ::= any "\n\n" ww statement ww "\n\n" any => smt
-ww       !::= sp*
-ws       !::= sp**
-sp        ::= " "
-
-block     ::= "\n" indent  blockBody
-           &~ "\n" outdent [~\ ] [~]*
-
-blockBody ::= statement
-            > statement blockBody /ws => "sbb"
-
-statement ::= call
-            | ^"while" expr block /ws
-
-expr      ::= ident
-            | call
-            | expr ^">" expr   /ws
-            | num
-
-call      ::= expr "()"        /ws
-
-num       ::= [0-9]++
-
-ident     ::= [a-z]++ &~ keyword
-keyword   ::= "if" | "then" | "else" | "while"
-
-w         ::= " " | "\n" | "\r"
-ws        ::= w*
-
-
-}
+//testcase {
+//
+//    input "
+//
+//
+// while x>0
+//   while y>0
+//    foo()
+//     bar()
+//
+// while x>0
+//   while y>0
+//    foo()
+//   bar()
+//
+//
+//";
+//    output "smt:{while:{>:{{x} {0}} while:{>:{{y} {0}} sbb:{{f o o} {b a r}}}}}";
+//    output "smt:{while:{>:{{x} {0}} sbb:{while:{>:{{y} {0}} {f o o}} {b a r}}}}";
+//
+//indent  !::= ww
+//outdent !::= " "  outdent " "
+//           | " "  (~[]*)  "\n"
+//
+//any      !::= ~[]*
+//s         ::= any "\n\n" ww statement ww "\n\n" any => smt
+//ww       !::= sp*
+//ws       !::= sp**
+//sp        ::= " "
+//
+//block     ::= "\n" indent  blockBody
+//           &~ "\n" outdent ~[\ ] ~[]*
+//
+//blockBody ::= statement
+//            > statement blockBody /ws => "sbb"
+//
+//statement ::= call
+//            | ^"while" expr block /ws
+//
+//expr      ::= ident
+//            | call
+//            | expr ^">" expr   /ws
+//            | num
+//
+//call      ::= expr "()"        /ws
+//
+//num       ::= [0-9]++
+//
+//ident     ::= [a-z]++ &~ keyword
+//keyword   ::= "if" | "then" | "else" | "while"
+//
+//w         ::= " " | "\n" | "\r"
+//ws        ::= w*
+//
+//
+//}
 
 testcase {
   input "aa bb";
@@ -325,5 +326,5 @@ testcase {
 
   s  ::= q */ ws
   ws ::= " "*
-  q  ::= [a-z]+ !=> [a-z] => "q"
+  q  ::= [a-z]++ => "q"
 }
\ No newline at end of file