문제

이 두 언어로 PolyGlot 프로그래밍 가이드를 찾고 있습니다.

나는 사이의 인터 안이 이므로 동일한 Java VM에서 실행될 수 있기 때문에 둘 다 동일한 바이트 코드로 컴파일되었습니다. 그러나 몇 가지 coxersomes가 있습니다 :

  • SBT 질문 할 수 있습니다. ~을 빼앗아가는 것
  • LEININGEN 컴파일 스칼라 코드를 컴파일 할 수 있습니다. ?

( 그래, 그래, 나는 한 언어에서 항아리를 꽂아 다른 랭함에서 프로젝트를 꽂을 수 있다는 것을 알고있다.)

질문은 스칼라와 collot에서 polyglot 개발을 설정하는 방법입니까?

도움이 되었습니까?

해결책

나는 그것을 사용하지 않았지만, Leineen은 Scalac 지원 .

다른 팁

짧은 anser : maven3

ZI colluure 및 Maven-Scala-Plugin 에서 당신이 할 수있는 곳에서 멋지게 통합 된 폴리 글로트 프로젝트를 사용할 수 있습니다자바만큼 원하는 언어를 사용하십시오.)

Maven3의 큰 변화 중 하나는 여러 언어로 POM을 작성하는 기능을 포함하여 PolyGlot JVM 프로그래밍을 향한 PolyGlot JVM 프로그래밍였습니다.당신은이 경로를 복용 할 때 Leiningen의 광택을 잃어 버리지 만, 당신이 돌아 오는 것을 많이 얻을 수 있습니다.

개인적으로, 받아 들여지는 대답이되는 것에도 불구하고 Maven을 직접 사용하면됩니다. 다음은 간단한 Leiningen 프로젝트 정의입니다.

  • antlr4 문법 (보너스로)에서 Java 소스를 생성합니다.
  • 는 자바 소스를 컴파일합니다.
  • 는 Scala 소스를 컴파일합니다 (나는 훨씬 더 간결하고 즐겁게하기 위해 훨씬 더 간결하고 즐겁기 때문에, 생성 된 Antlr4 Java 코드 상단에 스칼라를 사용하는 것을 선호합니다).
  • 는 collure stoff와 계속됩니다.
(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 Install'을 사용하여 Lein-Antlr4 플러그인을 사용하십시오. 필요하지 않으면 프로젝트 정의에서 관련 줄을 제거하십시오.

Scala 플러그인을 사용하여 다운로드 it 및 변경

[org.scala-lang/scala-compiler "2.9.1"] 
.

~

[org.scala-lang/scala-compiler "2.10.1"]
.

플러그인의 project.clj, 그런 다음 'Lein 설치'를 로컬로 설정하십시오. 이전 의존성 버전이있는 경우

를 얻었습니다.
java.lang.Error: typeConstructor inapplicable for <none>
.

스칼라 컴파일러에서.

Maven 대안 : 졸업생 두 언어를 모두 컴파일 할 수 있습니다.

스칼라의 Dynamic 형질은 동적으로 입력 된 언어와 더 쉽게 통합 할 수 있도록 만들어졌지만 사용자가 자신의 전달자를 작성해야합니다.또한 Scala 2.10으로 다시 작성해야합니다.아마도 실제로 Scala 2.10을 사용해야 할 수도 있습니다. (Milestone 2는 사용할 수 있습니다.)Scala 2.10 Cat 지원은 또한 스칼라 측의 통합을 도울 수 있습니다.

SBT를 컴파일하기 위해 SBT를 사용합니다. SBT는 매우 유연하지만,보다 실용적으로 쉽게 사용할 수있는 클루 루어 컴파일 지원이 없습니다.이 플러그인 이 플러그인 이 플러그인 나는 스칼라와 collure 사이의 통합이 거의없는 것처럼 보이는 호기심을 찾는다.그들은 종종 비교되고, 당신은 종종 다른 사람들을 선택하는 사람들을 자주 볼 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top