5b2e0d782b9d6ea3e49e73b369d76d69bc4a83da
[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 java.io.*;
10
11 public class HaskellHelper {
12
13     public static Tree main(String grammarFile, String targetFile) throws Throwable {
14         try {
15             Tree<String> res = new CharParser(MetaGrammar.newInstance()).parse(new FileInputStream(grammarFile)).expand1();
16             Union meta = Grammar.create(res, "s",
17                                         new Grammar.Bindings() {
18                                             /*
19                                             public Sequence createSequence(Production p) {
20                                                 Sequence ret = super.createSequence(p);
21                                                 if (ret != null) return ret;
22                                                 return Sequence.create(p.nonTerminal, p.elements, p.drops, false);
23                                             }
24                                             */
25                                         });
26             System.out.println();
27             System.out.println();
28             System.out.println();
29             CharInput input = new CharInput(new FileInputStream(targetFile), "", true);
30             Tree ret = new CharParser(meta).parse(input).expand1();
31             if (ret==null) throw new NullPointerException("CharParser returned null");
32             return ret;
33         } catch (Throwable e) {
34             e.printStackTrace();
35             throw e;
36         }
37     }
38
39
40 }