From: adam Date: Wed, 30 May 2007 17:34:51 +0000 (-0700) Subject: get grammarfiles from classloader resources rather than files X-Git-Url: http://git.megacz.com/?p=wix.git;a=commitdiff_plain;h=c8eb19eb8ebd2556050ab08a6476c8413af64435;hp=0c91eca8f33ec53c701be60ba6d11461153466a8 get grammarfiles from classloader resources rather than files darcs-hash:20070530173451-5007d-7ef181ace732bb3015f3e9f9cae792009447b5ca.gz --- diff --git a/Makefile b/Makefile index 9966c34..79f6f49 100644 --- a/Makefile +++ b/Makefile @@ -11,10 +11,10 @@ ghc += -fglasgow-exts -cpp -hidir $(pwd)/build/hi -i$(pwd)/build/hi -odir $(p ghclibs = $(ghcroot)/rts/HSrts.jar:$(ghcroot)/libraries/base/HSbase.jar:$(ghcroot)/libraries/stm/HSstm.jar java = java -Xmx800m -java += $(profile) -cp $(ghclibs):$(sbp)/edu.berkeley.sbp.jar:build/class +java += $(profile) -cp src:$(ghclibs):$(sbp)/edu.berkeley.sbp.jar:build/class $(sbp): - darcs get --repo-name=$@ http://research.cs.berkeley.edu/project/sbp/edu.berkeley.sbp + darcs get --partial --repo-name=$@ http://research.cs.berkeley.edu/project/sbp/edu.berkeley.sbp $(sbp)/edu.berkeley.sbp.jar: $(sbp) cd $(sbp); make edu.berkeley.sbp.jar @@ -27,12 +27,12 @@ install: build/class/Main.class build/class/Tib.class install2: build/class/Main.class build/class/Tib.class # $(java) HaskellHelper xt/slipway/ ~/www/slipway/ -# $(java) HaskellHelper xt/research/ ~/www/research/ + $(java) HaskellHelper xt/research/ ~/www/research/ # $(java) HaskellHelper xt/research.cs.berkeley.edu/ ~/www/research.cs.berkeley.edu/ # $(java) HaskellHelper xt/random/ ~/www/random/ # $(java) HaskellHelper xt/otherpeople/ ~/www/otherpeople/ # $(java) HaskellHelper xt/sbp ~/www/sbp - $(java) HaskellHelper xt/software/wix ~/www/software/wix +# $(java) HaskellHelper xt/software/wix ~/www/software/wix # $(java) HaskellHelper xt/thoughts ~/www/thoughts # $(java) HaskellHelper xt2 ~/ @@ -45,9 +45,10 @@ debug: build/class/Main.class build/class/Tib.class wix.jar: build/class/Main.class build/class/Tib.class $(sbp)/edu.berkeley.sbp.jar rm -rf tmp mkdir tmp - cd build/class; for A in $(lambdavm_jars) ../../$(sbp)/edu.berkeley.sbp.jar; \ + cd build/class; for A in $(lambdavm_jars) $(sbp)/edu.berkeley.sbp.jar; \ do jar xvf $$A; done echo 'Main-Class: HaskellHelper' > build/manifest + cp src/*.g build/class/ cd build/class; jar cvmf ../manifest ../../wix.jar . build/class/Tib.class: $(shell find src -name \*.java) $(sbp)/edu.berkeley.sbp.jar @@ -55,7 +56,7 @@ build/class/Tib.class: $(shell find src -name \*.java) $(sbp)/edu.berkeley.sbp.j build/class/Main.class: $(shell find src -name \*.lhs) $(sbp)/edu.berkeley.sbp.jar mkdir -p build/class/Text/PrettyPrint - mkdir -p build/class/Edu/Berkeley/SBP/Haskell/ + mkdir -p build/class/edu/berkeley/sbp/haskell/ mkdir -p build/hi cd src; $(ghc) -c -java Util.lhs cd src; $(ghc) -c -java Text/PrettyPrint/Leijen.hs diff --git a/src/HaskellHelper.java b/src/HaskellHelper.java index 3ca1cae..daa4fe6 100644 --- a/src/HaskellHelper.java +++ b/src/HaskellHelper.java @@ -16,11 +16,13 @@ public class HaskellHelper { if (parser == null) { try { // FIXME: bundle this into the jarfile - File grammarFile = new File("src/wix.g"); - Tree 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 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) {