У меня проблема с scala.tools.sbt
scala файлом
Здесь я использовал функциональность парсера для создания абстрактного синтаксического дерева кода 2 + 3
import scala.tools.nsc._
object Main extends App {
var i = new Interpreter
println(i.parse("2 + 3"))
}
SBT конфигурация
name := "scalaSample"
version := "1.0-SNAPSHOT"
scalaVersion := "2.9.1"
libraryDependencies += "org.scalatest" %% "scalatest" % "1.7.1" % "test"
libraryDependencies += "org.scala-lang" % "scala-compiler" % "2.9.1"
Ошибка
Failed to initialize compiler: object scala not found. ** Обратите внимание, что начиная с версии 2.8 scala не предполагает использование java classpath. ** Для старого поведения передайте -usejavacp в scala, или, если используете объект Settings. ** объекта Settings программно, settings.usejavacp.value = true.
[ошибка] (run-main) java.lang.NullPointerException java.lang.NullPointerException at scala.tools.nsc.CompilationUnits$CompilationUnit. (CompilationUnits.scala:16) at scala.tools.nsc.interpreter.ExprTyper$codeParser$.applyRule(ExprTyper.scala:22) at scala.tools.nsc.interpreter.ExprTyper$codeParser$.stmts(ExprTyper.scala:36) at scala.tools.nsc.interpreter.ExprTyper$$anonfun$parse$2.apply(ExprTyper.scala:47) at scala.tools.nsc.interpreter.ExprTyper$$anonfun$parse$2.apply(ExprTyper.scala:46) at scala.tools.nsc.reporters.Reporter.withIncompleteHandler(Reporter.scala:46) at scala.tools.nsc.interpreter.ExprTyper$class.parse(ExprTyper.scala:46) at scala.tools.nsc.interpreter.IMain$exprTyper$.parse(IMain.scala:1012) at scala.tools.nsc.interpreter.IMain.parse(IMain.scala:1013) at eu.semantiq.scalaToJS.Main$delayedInit$body.apply(Main.scala:7) at scala.Function0$class.apply$mcV$sp(Function0.scala:34) at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12) at scala.App$$anonfun$main$1.apply(App.scala:60) at scala.App$$anonfun$main$1.apply(App.scala:60) at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59) at scala.collection.immutable.List.foreach(List.scala:45) at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:30) at scala.App$class.main(App.scala:60) at eu.semantiq.scalaToJS.Main$.main(Main.scala:5) at eu.semantiq.scalaToJS.Main.main(Main.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) java.lang.RuntimeException: Ненулевой код выхода: 1 at scala.sys.package$.error(package.scala:27)
В scala REPL все работает
Добро пожаловать в Scala версии 2.9.0.1 (OpenJDK 64-Bit Server VM, Java 1.6.0_23). Введите выражения, чтобы они были оценены. Введите :help для получения дополнительной информации.
scala> import scala.tools.nsc._
import scala.tools.nsc._
scala> var i = new Interpreter
warning: there were 4 deprecation предупреждения; повторный запуск с параметром -deprecation для получения подробной информации warning: there were 1 deprecation warnings; re-run with -deprecation for details
i: scala.tools.nsc.Interpreter = scala.tools.nsc.Interpreter@786bfd73
scala> println(i.parse("2 + 3"))
Some(List(2.$plus(3)))
I feel really sorry for my bad English