個人的には、私は受け入れられた答えであるにもかかわらず、直接Mavenを使用することから離れています。以下は、Leiningenプロジェクトの簡単な定義です。
- はANTLR4文法(ボーナスとして)からJavaソースを生成します。
- はJavaソースをコンパイルします。
- は、Scalaのソースをコンパイルします(私は生成されたANTLR4 Javaコードの上にScalaを使用する方が好都合です)。
- はClojureに続きます。
(defproject polyglot "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:plugins [[lein-antlr4 "0.1.0-SNAPSHOT"]
[lein-scalac "0.1.0"]]
:dependencies [[org.clojure/clojure "1.5.1"]
[org.antlr/antlr4 "4.0"]
[org.scala-lang/scala-library "2.10.1"]]
:warn-on-reflection true
:antlr4-source-paths ["antlr4"]
:antlr4-options {:package "parser" :listener true}
:antlr4-compile-path "target/antlr4/parser"
:java-source-paths ["target/antlr4/parser" "src/java"]
:scala-source-path "src/scala"
:prep-tasks ["antlr4" "javac" "scalac" "compile"])
はANTLR4プラグインのダウンロードと 'インストールレイン' lein-antlr4プラグインを使用します。必要がない場合は、プロジェクト定義から関連する行を削除してください。
私はdownloadにそれを必要とScalaのプラグインを使用して
プラグインのproject.cljで
[org.scala-lang/scala-compiler "2.10.1"]
に
[org.scala-lang/scala-compiler "2.9.1"]
を変更するには、その後、それをローカルに 'レインインストール'。古い従属バージョンでは、Scalaコンパイラから
java.lang.Error: typeConstructor inapplicable for <none>
が得られました。
ボイラープレートを減らすために、私は既存のライブラリを知りません。しかし、ClojureマクロとScala暗黙の変換の間には、おそらく長い道のりがあります。 – leedm777
1つの質問に対して複数の質問をしないでください。パートには答えることができますが、他のパートには答えることができない人には不公平であり、受け入れられた回答は1つの側面では最良の答えではないかもしれません。 –
@ DanielC.Sobral一般的に、私はそのような状況を避けようとしています。その理由から私は最後の行を書きました。本文の質問は、私がそのガイドで見たいものを説明しています(私は何かの投稿へのリンクを期待しています)。 –