【问题标题】:Is there an API for running Scala REPL programmatically? [closed]是否有用于以编程方式运行 Scala REPL 的 API? [关闭]
【发布时间】:2011-09-02 18:47:52
【问题描述】:

基于a threadScala interpreter sources 看起来并不难获得等价物

def runLine(line: String): String

但是有人已经写过这个了吗?

【问题讨论】:

  • 这个答案提供了更多细节:stackoverflow.com/questions/2160355/…。请注意,自 Scala 2.9 起,该库的接口已更改(重构)。此外,您可能会遇到嵌入式 REPL 的类路径与父进程不同的问题;这里有一些解决方案:stackoverflow.com/questions/4121567/…
  • @Daniel 正在尝试做一件完全不同的事情,即中断 scala 程序以启动通常的 REPL。我正在尝试在非 REPL 中复制 REPL 的行为。
  • @Owen This one,然后呢?
  • @Daniel 非常接近,虽然它使用了interpreter.main(settings),所以它仍然使用标准 REPL 的主循环。

标签: api scala read-eval-print-loop


【解决方案1】:

那里有很多例子,但它们可能很难找到。这是我不久前写的:

http://code.google.com/p/simplex3d/source/browse/trunk/Simplex3dConsole/src/simplex3d/console/SimpleInterpreter.scala?r=790

棘手的部分是让解释器加载 Scala jar。我已手动加载 jar 以使其与 web-start 一起使用,但在您的情况下,简单的 settings.usejavacp.value = true 可能就足够了。

您可以在此处查看正在运行的解释器:http://www.simplex3d.org/console/

【讨论】:

    猜你喜欢
    • 2012-06-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-21
    • 1970-01-01
    相关资源
    最近更新 更多