add edu.berkeley.sbp.misc.TestAstGenerator
authoradam <adam@megacz.com>
Sun, 11 Jan 2009 05:17:12 +0000 (00:17 -0500)
committeradam <adam@megacz.com>
Sun, 11 Jan 2009 05:17:12 +0000 (00:17 -0500)
darcs-hash:20090111051712-5007d-4d8ff8077006c7c6b8b6ccc04f3541dd35fce9e5.gz

Makefile
src/edu/berkeley/sbp/misc/TestAstGenerator.java [new file with mode: 0644]

index 55c7365..c3642cf 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -21,6 +21,9 @@ demo: edu.berkeley.sbp.jar
 demo2: edu.berkeley.sbp.jar
        $(java) -cp $< edu.berkeley.sbp.misc.Demo2
 
 demo2: edu.berkeley.sbp.jar
        $(java) -cp $< edu.berkeley.sbp.misc.Demo2
 
+ast: edu.berkeley.sbp.jar
+       $(java) -cp $< edu.berkeley.sbp.misc.TestAstGenerator tests/math.g
+
 regress:
        make boot
        rm edu.berkeley.sbp.jar
 regress:
        make boot
        rm edu.berkeley.sbp.jar
diff --git a/src/edu/berkeley/sbp/misc/TestAstGenerator.java b/src/edu/berkeley/sbp/misc/TestAstGenerator.java
new file mode 100644 (file)
index 0000000..4ccbdc7
--- /dev/null
@@ -0,0 +1,34 @@
+// Copyright 2006-2007 all rights reserved; see LICENSE file for BSD-style license
+
+package edu.berkeley.sbp.misc;
+
+import edu.berkeley.sbp.*;
+import edu.berkeley.sbp.chr.*;
+import edu.berkeley.sbp.misc.*;
+import edu.berkeley.sbp.meta.*;
+import edu.berkeley.sbp.util.*;
+import java.util.*;
+import java.io.*;
+
+public class TestAstGenerator {
+
+    public static GrammarAST.ImportResolver resolver = new GrammarAST.ImportResolver() {
+            public InputStream getImportStream(String importname) {
+                try {
+                    return new FileInputStream("tests/"+importname);
+                } catch (IOException e) {
+                    throw new RuntimeException(e);
+                }
+            }
+        };
+
+    public static void main(String[] s) throws Exception {
+
+        Parser metaGrammarParser   = new CharParser(GrammarAST.getMetaGrammar());
+        Tree<String> parsedGrammar = metaGrammarParser.parse(new CharInput(new FileInputStream(s[0]))).expand1();
+        PrintWriter pw = new PrintWriter(System.out);
+        GrammarAST.emitCode(pw, parsedGrammar, "Expr", resolver);
+        pw.flush();
+    }
+
+}