개인적으로는 허용 된 답변 임에도 불구하고 직접 Maven을 사용하지 않아도됩니다.다음은 간단한 Leiningen 프로젝트 정의입니다.
- 은 ANTLR4 문법 (보너스)에서 Java 소스를 생성합니다.
- 은 Java 소스를 컴파일합니다.
- 은 Scala 소스를 컴파일합니다 (생성 된 ANTLR4 Java 코드 위에 스칼라를 사용하는 편이 훨씬 더 간결하고 즐겁기 때문에 선호합니다).
- 이 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'는 lein-antlr4 플러그인을 사용합니다. 필요하지 않은 경우 프로젝트 정의에서 관련 줄을 제거하십시오.
내가
download에 필요한 스칼라 플러그인을 사용하여 플러그인의 project.clj에서
[org.scala-lang/scala-compiler "2.9.1"]
에
[org.scala-lang/scala-compiler "2.10.1"]
는 다음 로컬로 'lein 설치'로 변경합니다. 이전 버전의 종속성 버전에서는 Scala 컴파일러에서
java.lang.Error: typeConstructor inapplicable for <none>
이 발생했습니다.
상용구를 줄이기 위해 기존 라이브러리를 알지 못합니다. 그러나 Clojure 매크로와 Scala 암시 적 변환 사이에는 먼 길을 갈 수 있습니다. – leedm777
한 가지 질문에 두 가지 이상의 질문을하지 마십시오. 일부는 대답 할 수 있지만 다른 대답은 할 수없는 사람들에게는 불공평합니다. 허용 된 대답은 한 가지 측면에 대한 최선의 대답이 아닐 수도 있습니다. –
@ DanielC.Sobral 일반적으로 나는 그 상황을 피하려고 노력하고있다. 그런 이유로 나는 마지막 줄을 썼다. 본문에있는 질문은 내가 그 가이드에서보고 싶은 것을 설명합니다 (나는 어떤 게시물이나 어떤 것에 대한 링크를 기대했습니다). –