1 // Copyright 2006 all rights reserved; see LICENSE file for BSD-style license
3 package edu.berkeley.sbp.misc;
5 import edu.berkeley.sbp.*;
6 import edu.berkeley.sbp.misc.*;
7 import edu.berkeley.sbp.meta.*;
8 import edu.berkeley.sbp.chr.*;
11 public class HaskellHelper {
13 public static void main(String[] argv) throws Throwable {
14 help(argv[0], argv[1]);
16 public static boolean isNull(Object o) { return o==null; }
17 public static Tree help(String grammarFile, String targetFile) throws Throwable {
19 Tree<String> res = new CharParser(MetaGrammar.newInstance()).parse(new FileInputStream(grammarFile)).expand1();
20 Union meta = Grammar.create(res, "s",
21 new Grammar.Bindings() {
23 public Sequence createSequence(Production p) {
24 Sequence ret = super.createSequence(p);
25 if (ret != null) return ret;
26 return Sequence.create(p.nonTerminal, p.elements, p.drops, false);
33 CharInput input = new CharInput(new FileInputStream(targetFile), "", true);
34 Tree ret = new CharParser(meta).parse(input).expand1();
35 if (ret==null) throw new NullPointerException("CharParser returned null");
37 } catch (Throwable e) {