f98c3cf145a839a84a360872ba96b88567da96af
[sbp.git] / src / edu / berkeley / sbp / misc / HaskellHelper.java
1 // Copyright 2006 all rights reserved; see LICENSE file for BSD-style license
2
3 package edu.berkeley.sbp.misc;
4
5 import edu.berkeley.sbp.*;
6 import edu.berkeley.sbp.misc.*;
7 import edu.berkeley.sbp.meta.*;
8 import edu.berkeley.sbp.chr.*;
9 import edu.berkeley.sbp.tib.*;
10 import java.io.*;
11
12 public class HaskellHelper {
13     public static void main(String[] argv) throws Throwable { help(argv[0], argv[1]); }
14     public static boolean isNull(Object o) { return o==null; }
15     public static Tree help(String grammarFile, String targetFile) throws Throwable {
16         try {
17             Tree<String> res = new CharParser(MetaGrammar.newInstance()).parse(new FileInputStream(grammarFile)).expand1();
18             Union meta = GrammarBuilder.buildFromAST(res, "s", new File[0]);
19             Input input = new Tib(new FileInputStream(targetFile));
20             Tree ret = new CharParser(meta).parse(input).expand1();
21             if (ret==null) throw new NullPointerException("CharParser returned null");
22             return ret;
23         } catch (Throwable e) {
24             e.printStackTrace();
25             throw e;
26         }
27     }
28 }