cleanups, reorg, and commenting
[sbp.git] / src / edu / berkeley / sbp / misc / HaskellHelper.java
index b8a6006..f98c3cf 100644 (file)
@@ -6,19 +6,23 @@ import edu.berkeley.sbp.*;
 import edu.berkeley.sbp.misc.*;
 import edu.berkeley.sbp.meta.*;
 import edu.berkeley.sbp.chr.*;
+import edu.berkeley.sbp.tib.*;
 import java.io.*;
 
 public class HaskellHelper {
-
-    public static Tree main(String grammarFile, String targetFile) throws Exception {
-
-        System.err.println("parsing " + grammarFile);
-        Tree<String> res = new CharParser(MetaGrammar.newInstance()).parse(new FileInputStream(grammarFile)).expand1();
-        Union meta = Grammar.create(res, "s", new MetaGrammarBindings());
-        
-        System.err.println("parsing " + targetFile);
-        return new CharParser(meta).parse(new FileInputStream(targetFile)).expand1();
-        
+    public static void main(String[] argv) throws Throwable { help(argv[0], argv[1]); }
+    public static boolean isNull(Object o) { return o==null; }
+    public static Tree help(String grammarFile, String targetFile) throws Throwable {
+        try {
+            Tree<String> res = new CharParser(MetaGrammar.newInstance()).parse(new FileInputStream(grammarFile)).expand1();
+            Union meta = GrammarBuilder.buildFromAST(res, "s", new File[0]);
+            Input input = new Tib(new FileInputStream(targetFile));
+            Tree ret = new CharParser(meta).parse(input).expand1();
+            if (ret==null) throw new NullPointerException("CharParser returned null");
+            return ret;
+        } catch (Throwable e) {
+            e.printStackTrace();
+            throw e;
+        }
     }
-
 }