From: adam Date: Wed, 14 Dec 2005 06:08:29 +0000 (-0500) Subject: checkpoint X-Git-Tag: tag_for_25-Mar~558 X-Git-Url: http://git.megacz.com/?p=sbp.git;a=commitdiff_plain;h=baee74cbe9714c0bdaa2f39b4523647090cf7ef5 checkpoint darcs-hash:20051214060829-5007d-24666eadad9fb5a0d9e236fcd98b82e80422a4c6.gz --- diff --git a/src/edu/berkeley/sbp/misc/RegressionTests.java b/src/edu/berkeley/sbp/misc/RegressionTests.java index ebe29c4..96c2075 100644 --- a/src/edu/berkeley/sbp/misc/RegressionTests.java +++ b/src/edu/berkeley/sbp/misc/RegressionTests.java @@ -97,7 +97,7 @@ public class RegressionTests { System.out.println("\r \r"); } HashSet outs = new HashSet(); - for(String s : output) outs.add(s.trim()); + if (output != null) for(String s : output) outs.add(s.trim()); boolean bad = false; for (Tree r : results) { String s = r.toString().trim(); @@ -123,13 +123,11 @@ public class RegressionTests { public static class TestCaseBuilder extends MetaGrammar { public TestCase[] ts(Object o1, TestCase[] ts, Object o2) { return ts; } public TestCase[] ts(TestCase[] ts) { return ts; } - public TestCase testcase(String input, String[] output, Union grammar) { return new TestCase(input, output, grammar); } + public TestCase testcase(String input, String[] output, Union grammar) { return new TestCase(input, output, grammar); } + public TestCase testcase(String input, Union grammar) { return new TestCase(input, new String[0], grammar); } public MetaGrammar grammar(Object[] o) { return this; } public Object walk(String tag, Object[] args) { - if ("testcase".equals(tag)) { - if (args.length==2) return testcase((String)args[0], new String[0], (Union)args[1]); - return testcase((String)args[0], (String[])args[1], (Union)args[2]); } - else if ("grammar".equals(tag)) return done("s"); + if ("grammar".equals(tag)) return done("s"); else return super.walk(tag, args); } } diff --git a/tests/meta.g b/tests/meta.g index e4a2518..e41b770 100644 --- a/tests/meta.g +++ b/tests/meta.g @@ -57,7 +57,8 @@ w !::= " " | "\r" an ::= [a-zA-Z0-9_] word ::= an++ -quoted ::= "\"" (([~\"\\] | escaped)*) "\"" => "sify" +quoted ::= "\"" (([~\"\\] | escaped)+) "\"" + | "\"\"" => "" escaped ::= "\\n" => "\n" | "\\r" => "\r" | "\\" [~nr]