return new GrammarAST(includes, "").buildGrammar(grammarAST, startingNonterminal);
}
+ public static Union getMetaGrammar() {
+ return MetaGrammar.newInstance();
+ }
+
private static Object illegalTag = ""; // this is the tag that should never appear in the non-dropped output FIXME
// Instance //////////////////////////////////////////////////////////////////////////////
import java.lang.reflect.*;
import java.io.*;
-public class MetaGrammar {
+class MetaGrammar {
/** create a grammar corresponding to the SBP metagrammar (<tt>meta.g</tt>) */
public static Union newInstance() {
+
// DO NOT EDIT STUFF BELOW: IT IS AUTOMATICALLY GENERATED
new edu.berkeley.sbp.Tree(null, "Grammar", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "NonTerminal", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "Word", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "s", new edu.berkeley.sbp.Tree[] { })}),
new edu.berkeley.sbp.Tree(null, "RHS", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "|", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "Elements", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "NonTerminalReference", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "Word", new edu.berkeley.sbp.Tree[] { new edu.berkeley.sbp.Tree(null, "w", new edu.berkeley.sbp.Tree[] { }),
+
s[0] == null
? RegressionTests.class.getClassLoader().getResourceAsStream("edu/berkeley/sbp/meta/meta.g")
: new FileInputStream(s[0]);
- Tree<String> res = new CharParser(MetaGrammar.newInstance()).parse(metaGrammarStream).expand1();
+ Tree<String> res = new CharParser(GrammarAST.getMetaGrammar()).parse(metaGrammarStream).expand1();
Union meta = GrammarAST.buildFromAST(res, "s", includes);
System.err.println("parsing " + s[1]);