2011-12-08 8 views
3

ANTLRファイルを(スカラーに)ビルドして、結果のコードをコンパイルするためにsbtを設定する方法の例があります。sbtとantlr、簡単な例がありますか?

マイファイルレイアウト

src/main/scala/Test.scala  // scala test rig 
src/main/scala/Test.g   // antlr grammar 

build/antlr/TestParser.scala // antlr output files 
build/antlr/TestLexer.scala 

私のSBTは何が含まれている必要がありますか?私は、ANTLRのルールを引き出すためのプラグインがあることは知っていますが、動作させることができませんでした。 (まだこの世界への初心者)

答えて

5

私は提供されたantlr文法ファイルからパーサとレクサーコードを生成するためにsbtプラグインを書いています。私のgithubページhttp://github.com/stefri/sbt-antlrでコードをダウンロードできます。また、sbtプラグインリストhttps://github.com/harrah/xsbt/wiki/sbt-0.10-plugins-listにもリストされています。最新のスナップショットはANTLR 3.3を使用し、sbt 0.11.xシリーズ用の私のgithub Mavenリポジトリから入手できます。別のANTLRバージョンが必要な場合は、変更と再構築が簡単ですが、私はまだ設定オプションに取り組んでいます。

使い方は非常に簡単です、ちょうどそのsrc/main/antlr3であなたのANTLR3文法ファイルを配置./project/plugins/build.sbt

resolvers += "stefri" at "http://stefri.github.com/repo/snapshots" 

addSbtPlugin("com.github.stefri" % "sbt-antlr" % "0.2-SNAPSHOT") 

でのプラグインと私のMavenのリポジトリが含まれます。次のビルドには が含まれます。

あなたはシンプルな構成のアプローチを使用している場合例えば、あなたはまた、プラグインの設定プロジェクトの設定でsbtantlr.SbtAntlrPlugin.antlrSettingsが含まれていることを確認しますが、あなたのbuild.sbtファイルに次の行

seq(sbtantlr.SbtAntlrPlugin.antlrSettings: _*) 

を追加します。注意:sbt-antlrは、文法ファイルが変更されていない限り、ソースコードを一度だけ生成します。 Javaソースファイルを再生成しません。

生成されたJavaファイルは、target/scala-2.9.1/src_managed/main/antlr3に吐き出されるので、IDEのビルドパスにそのパスを必ず挿入してください。プラグインはまだ進行中ですが、すでに文法ではうまくいきます。

+0

申し訳ありませんが、これを見つけるには時間がかかります。私はMakefileのアプローチから離れることを熱望しています...しかし、私はそれがsezにステップをgrokできません あなたのプロジェクト設定にプラグインの設定sbtantlr.SbtAntlrPlugin.antlrSettingsも含めることを確認してください 上記の例build.sbtがありますか? – wing

+0

ビルドファイルに設定を追加する方法について、私の答えにいくつかの情報を追加しました。フルビルド設定を使用している場合は、そこに追加する必要がありますが、方法は独自のビルドファイルに依存するため、一般的な方法で記述するのは難しいです。 – Steffen

+0

@SteffenありがとうございますJavaソース生成のターゲットディレクトリを変更する方法を教えてください私はいくつかのパッケージで生成されたファイルを生成したい –

関連する問題