import java.util.*;
import java.lang.reflect.*;
import edu.berkeley.sbp.*;
-import edu.berkeley.sbp.misc.*;
import edu.berkeley.sbp.meta.*;
-import edu.berkeley.sbp.tib.*;
import edu.berkeley.sbp.chr.*;
import edu.berkeley.sbp.util.*;
public static boolean yes = false;
public static boolean graph = false;
+ public static File[] includes = new File[] { new File("tests") };
public static void main() throws Exception {
main(new String[] { "tests/meta.g", "tests/testcase.g", "tests/regression.tc" });
System.err.println("parsing " + s[0]);
Tree<String> res = new CharParser(MetaGrammar.newInstance()).parse(new FileInputStream(s[0])).expand1();
- Union meta = Grammar.create(res, "s");
+ Union meta = GrammarBuilder.buildFromAST(res, "s", includes);
System.err.println("parsing " + s[1]);
res = new CharParser(meta).parse(new FileInputStream(s[1])).expand1();
- Union testcasegrammar = Grammar.create(res, "s");
+ Union testcasegrammar = GrammarBuilder.buildFromAST(res, "s", includes);
if (testcasegrammar==null) return;
CharParser parser = new CharParser(testcasegrammar);
}
System.err.println("expanding...");
- TestCase[] expanded = (TestCase[])new GrammarBuilder("tests/", "").walkChildren(r2.expand1());
+ TestCase[] expanded = (TestCase[])new GrammarBuilder(includes, "").walkChildren(r2.expand1());
for(TestCase tc : expanded)
tc.execute();
System.out.println(parser);
}
- HashSet<Tree<String>> results = new HashSet<Tree<String>>();
- if (res != null) res.expand(results);
+ Iterable<Tree<String>> results =
+ res==null ? new HashSet<Tree<String>>() : res.expand();
System.out.print("\r");
- if (results == null || (results.size() == 0 && (output!=null && output.length > 0))) {
+ if (results == null || (!results.iterator().hasNext() && (output!=null && output.length > 0))) {
System.out.print("\033[31m");
System.out.print("FAIL ");
System.out.println("\033[0m "+name);