From f17fca21d99030d325624f839efcd17bc93f1548 Mon Sep 17 00:00:00 2001 From: adam Date: Sun, 27 May 2007 16:20:05 -0400 Subject: [PATCH 1/1] rename GrammarBuilder -> GrammarAST darcs-hash:20070527202005-5007d-2875e8c5b9218d64c2dd1ce7ea2f7994dc0155c6.gz --- .../meta/{GrammarBuilder.java => GrammarAST.java} | 23 ++++++++++---------- src/edu/berkeley/sbp/misc/RegressionTests.java | 6 ++--- 2 files changed, 15 insertions(+), 14 deletions(-) rename src/edu/berkeley/sbp/meta/{GrammarBuilder.java => GrammarAST.java} (97%) diff --git a/src/edu/berkeley/sbp/meta/GrammarBuilder.java b/src/edu/berkeley/sbp/meta/GrammarAST.java similarity index 97% rename from src/edu/berkeley/sbp/meta/GrammarBuilder.java rename to src/edu/berkeley/sbp/meta/GrammarAST.java index ec734f7..63c4392 100644 --- a/src/edu/berkeley/sbp/meta/GrammarBuilder.java +++ b/src/edu/berkeley/sbp/meta/GrammarAST.java @@ -39,7 +39,7 @@ public class GrammarBuilder { * @param gbr a GrammarBindingResolver that resolves grammatical reductions into tree-node-heads */ public static Union buildFromAST(Tree grammarAST, String startingNonterminal, File[] includes) { - return new GrammarBuilder(includes, "").buildGrammar(grammarAST, startingNonterminal); + return new GrammarAST(includes, "").buildGrammar(grammarAST, startingNonterminal); } public static Object illegalTag = ""; // this is the tag that should never appear in the non-dropped output FIXME @@ -47,17 +47,16 @@ public class GrammarBuilder { private final String prefix; private final File[] includes; - //public GrammarBuilder(String path) { this(path, ""); } - public GrammarBuilder(File[] includes, String prefix) { + public GrammarAST(File[] includes, String prefix) { this.prefix = prefix; this.includes = includes; } - public Union buildGrammar(Tree t, String rootNonTerminal) { - return ((GrammarBuilder.GrammarNode)walk(t)).build(rootNonTerminal); - } + // Methods ////////////////////////////////////////////////////////////////////////////// - private ElementNode epsilon = new LiteralNode(""); + private Union buildGrammar(Tree t, String rootNonTerminal) { + return ((GrammarAST.GrammarNode)walk(t)).build(rootNonTerminal); + } public Object[] walkChildren(Tree t) { Object[] ret = new Object[t.size()]; @@ -152,8 +151,8 @@ public class GrammarBuilder { return new NonTerminalNode(tag, seqs, false, null, false); } if (head.equals("TestCase")) - return new RegressionTests.TestCase((String)walk(t.child(0)), - (String)walk(t.child(1)), + return new RegressionTests.TestCase(walkString(t.child(0)), + walkString(t.child(1)), (String[])Reflection.coerce(walkChildren(t.child(2)), String[].class), (Union)walk(t.child(3)), false, @@ -177,8 +176,10 @@ public class GrammarBuilder { throw new RuntimeException("unknown head: \"" + head + "\" => " + (head.equals("..."))); } - /** A grammar (a set of nonterminals) */ - public class GrammarNode extends HashMap { + // Nodes ////////////////////////////////////////////////////////////////////////////// + + /** Root node of a grammar's AST; a set of named nonterminals */ + private class GrammarNode extends HashMap { public GrammarNode(NonTerminalNode[] nonterminals) { for(NonTerminalNode nt : nonterminals) { if (nt==null) continue; diff --git a/src/edu/berkeley/sbp/misc/RegressionTests.java b/src/edu/berkeley/sbp/misc/RegressionTests.java index 6fd3dd0..13be93f 100644 --- a/src/edu/berkeley/sbp/misc/RegressionTests.java +++ b/src/edu/berkeley/sbp/misc/RegressionTests.java @@ -37,12 +37,12 @@ public class RegressionTests { System.err.println("parsing " + s[0]); Tree res = new CharParser(MetaGrammar.newInstance()).parse(new FileInputStream(s[0])).expand1(); - Union meta = GrammarBuilder.buildFromAST(res, "s", includes); + Union meta = GrammarAST.buildFromAST(res, "s", includes); System.err.println("parsing " + s[1]); res = new CharParser(meta).parse(new FileInputStream(s[1])).expand1(); - Union testcasegrammar = GrammarBuilder.buildFromAST(res, "s", includes); + Union testcasegrammar = GrammarAST.buildFromAST(res, "s", includes); if (testcasegrammar==null) return; CharParser parser = new CharParser(testcasegrammar); @@ -63,7 +63,7 @@ public class RegressionTests { } System.err.println("expanding..."); - TestCase[] expanded = (TestCase[])new GrammarBuilder(includes, "").walkChildren(r2.expand1()); + TestCase[] expanded = (TestCase[])new GrammarAST(includes, "").walkChildren(r2.expand1()); for(TestCase tc : expanded) tc.execute(); -- 1.7.10.4