checkpoint
[sbp.git] / src / edu / berkeley / sbp / misc / RegressionTests.java
index beb7110..8af63a2 100644 (file)
@@ -26,12 +26,11 @@ public class RegressionTests {
             //mg0.walk(MetaGrammar.meta);
             //System.out.println(mg0);
             Tree<String> res = new CharParser(MetaGrammar.make()).parse(new FileInputStream(s[0])).expand1();
-            MetaGrammar mg = (MetaGrammar)new MetaGrammar().walk(res);
             //System.out.println(mg);
-            Union meta = mg.done();
+            Union meta = MetaGrammar.make();
             SequenceInputStream sis = new SequenceInputStream(new FileInputStream(s[0]), new FileInputStream(s[1]));
             res = new CharParser(meta).parse(sis).expand1();
-            Union testcasegrammar = ((MetaGrammar)new MetaGrammar("ts").walk(res)).done("ts");
+            Union testcasegrammar = MetaGrammar.make(res, "ts");
             if (testcasegrammar==null) return;
             CharParser parser = new CharParser(testcasegrammar);
 
@@ -137,19 +136,18 @@ public class RegressionTests {
         }
     }
 
-    public static class TestCaseBuilder extends MetaGrammar {
+    public static class TestCaseBuilder extends StringWalker {
         public Object walk(Tree<String> tree) {
             try {
-                if ("grammar".equals(tree.head())) { walkChildren(tree); return done("s"); }
-                else if ("output".equals(tree.head())) return string(tree.children());
-                else if ("input".equals(tree.head())) return string(tree.children());
+                if ("grammar".equals(tree.head())) return MetaGrammar.make(tree, "s");
+                else if ("output".equals(tree.head())) return MetaGrammar.string(tree.children());
+                else if ("input".equals(tree.head())) return MetaGrammar.string(tree.children());
                 else if ("javacase".equals(tree.head()) || "tibcase".equals(tree.head()) || "testcase".equals(tree.head())) {
-                    String input = string(tree.child(0));
+                    String input = MetaGrammar.string(tree.child(0));
                     String[] output = tree.numChildren()>2 ? ((String[])walk(tree, 1)) : new String[0];
                     boolean tib = "tibcase".equals(tree.head());
                     boolean jav = "javacase".equals(tree.head());
-                    MetaGrammar gram = jav ? new JavaGrammar() : tib ? /*new Tib.Grammar()*/null : new MetaGrammar();
-                    Union grammar = (Union)((MetaGrammar)(gram.walk(tree, tree.numChildren()-1))).done("s");
+                    Union grammar = MetaGrammar.make(tree.child(tree.numChildren()-1), "s");
                     return new TestCase(input, output, grammar, tib, jav);
                 } else if ("ts".equals(tree.head())) return walk(tree, 0);
                 else return super.walk(tree);
@@ -158,7 +156,7 @@ public class RegressionTests {
             }
         }
     }
-
+    /*
     public static class JavaGrammar extends MetaGrammar {
         public Object convertLabel(String label) { return new ClassMark(label); }
         public Object convertFieldLabel(String label) { return new FieldMark(label); }
@@ -247,7 +245,7 @@ public class RegressionTests {
         }
 
     }
-
+    */
     private static String pad(int i,String s) { return s.length() >= i ? s : pad(i-1,s)+" "; }
 }