checkpoint
[sbp.git] / src / edu / berkeley / sbp / misc / RegressionTests.java
index 943c611..a88c8a4 100644 (file)
@@ -8,20 +8,6 @@ import edu.berkeley.sbp.tib.*;
 public class RegressionTests {
 
     public static boolean yes = false;
-    public static class MyWalker extends ReflectiveWalker {
-        public String top(Object[] o) { return "top("+join(o)+")"; }
-        public String str(String[] s) { String ret = ""; for(String st : s) ret += st; return ret; }
-        public String join(Object[] o) { String ret = ""; for(Object st : o) ret += st; return ret; }
-        public String whilex(Object s, Object y) { return "while("+s+") " + y; }
-        public String seq(Object[] statements) {
-            String ret = "";
-            for(Object s : statements) ret += s + ";\n";
-            return ret;
-        }
-        /*
-        public String bl(String s) { return "{" + s + "}"; }
-        */
-    };
 
     public static void main(String[] s) throws Exception {
         try {
@@ -131,8 +117,10 @@ public class RegressionTests {
                 else if ("tibcase".equals(tree.head()) || "testcase".equals(tree.head())) {
                     String input = string(tree.child(0));
                     String[] output = tree.numChildren()>2 ? ((String[])walk(tree, 1)) : new String[0];
-                    Union grammar = (Union)walk(tree, tree.numChildren()-1);
-                    return new TestCase(input, output, grammar, "tibcase".equals(tree.head()));
+                    boolean tib = "tibcase".equals(tree.head());
+                    MetaGrammar gram = tib ? new Tib.Grammar() : new MetaGrammar();
+                    Union grammar = (Union)((MetaGrammar)(gram.walk(tree, tree.numChildren()-1))).done("s");
+                    return new TestCase(input, output, grammar, tib);
                 } else if ("ts".equals(tree.head())) return walk(tree, 0);
                 else return super.walk(tree);
             } catch (Exception e) {