if (parser == null) {
try {
// FIXME: bundle this into the jarfile
- File grammarFile = new File("src/wix.g");
- Tree<String> res = new CharParser(MetaGrammar.newInstance())
- .parse(new FileInputStream(grammarFile)).expand1();
- Union grammar = GrammarAST.buildFromAST(res, "s", new File[] {
- new File(grammarFile.getParent())
+ InputStream grammarFile = HaskellHelper.class.getClassLoader().getResourceAsStream("wix.g");
+ Tree<String> res = new CharParser(GrammarAST.getMetaGrammar())
+ .parse(grammarFile).expand1();
+ Union grammar = GrammarAST.buildFromAST(res, "s", new GrammarAST.ImportResolver() {
+ public InputStream getImportStream(String filename) {
+ return this.getClass().getClassLoader().getResourceAsStream(filename);
+ }
});
parser = new CharParser(grammar);
} catch (Exception e) {