SBP.hs / HaskellHelper cleanups
[sbp.git] / src / edu / berkeley / sbp / misc / HaskellHelper.java
index b8a6006..d4f43a7 100644 (file)
@@ -10,15 +10,27 @@ 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 Tree main(String grammarFile, String targetFile) throws Throwable {
+        try {
+            Tree<String> res = new CharParser(MetaGrammar.newInstance()).parse(new FileInputStream(grammarFile)).expand1();
+            Union meta = Grammar.create(res, "s",
+                                        new Grammar.Bindings() {
+                                            /*
+                                            public Sequence createSequence(Production p) {
+                                                Sequence ret = super.createSequence(p);
+                                                if (ret != null) return ret;
+                                                return Sequence.create(p.nonTerminal, p.elements, p.drops, false);
+                                            }
+                                            */
+                                        });
+            Tree ret = new CharParser(meta).parse(new FileInputStream(targetFile)).expand1();
+            if (ret==null) throw new NullPointerException("CharParser returned null");
+            return ret;
+        } catch (Throwable e) {
+            e.printStackTrace();
+            throw e;
+        }
     }
 
+
 }