嵌入式Scala REPL 2.10的解释器示例

栏目: Scala · 发布时间: 8年前

内容简介:请给出一个代码示例,说明如何在Scala 2.10中以编程方式创建一个嵌入式Scala REPL解释器. (我花了几个小时梳理各种代码废料后,补充了这个问答,以获得一个有效的口译员)http://stackoverflow.com/questions/18628516/embedded-scala-repl-interpreter-example-for-2-10

请给出一个代码示例,说明如何在Scala 2.10中以编程方式创建一个嵌入式Scala REPL解释器. (我花了几个小时梳理各种代码废料后,补充了这个问答,以获得一个有效的口译员)

示例Repl.scala:

import scala.tools.nsc.interpreter._
import scala.tools.nsc.Settings


object Repl extends App {
  def repl = new ILoop {
    override def loop(): Unit = {
      intp.bind("e", "Double", 2.71828)
      super.loop()
    }
  }

  val settings = new Settings
  settings.Yreplsync.value = true


  //use when launching normally outside SBT
  settings.usejavacp.value = true      

  //an alternative to 'usejavacp' setting, when launching from within SBT
  //settings.embeddedDefaults[Repl.type]

  repl.process(settings)
}

一些笔记

>我选择显示JLineReader(默认)而不是SimpleReader,因为它工作得更好,正确处理箭头键,删除等.JLine确实添加了一个jar依赖.

>该示例显示如何将值绑定到repl(上面的变量e).

>当我省略settings.Yreplsync.value = true时,REPL挂起并没有用.

>从我的测试,如果usejavacp和embeddedDefaults设置都组合在一起,则会导致错误

我发现这最容易通过SBT测试;一个示例build.sbt:

name := "Repl"

organization := "ExamplesRUs"

scalaVersion := "2.10.2"

libraryDependencies ++= Seq(
 "org.scala-lang" % "scala-compiler" % "2.10.2",
 "org.scala-lang" % "jline" % "2.10.2"
)

SBT会议示例

> run-main Repl
[info] Running Repl
Welcome to Scala version 2.10.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_37).
Type in expressions to have them evaluated.
Type :help for more information.
e: Double = 2.71828

scala> 2 * e
res1: Double = 5.43656

scala>

http://stackoverflow.com/questions/18628516/embedded-scala-repl-interpreter-example-for-2-10


以上所述就是小编给大家介绍的《嵌入式Scala REPL 2.10的解释器示例》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

走进搜索引擎

走进搜索引擎

梁斌 / 电子工业出版社 / 2007-1 / 49.80元

《走进搜索引擎》由搜索引擎开发研究领域年轻而有活力的科学家精心编写,作者将自己对搜索引擎的深刻理解和实际应用巧妙地结合,使得从未接触过搜索引擎原理的读者也能够轻松地在搜索引擎的大厦中邀游一番。《走进搜索引擎》作为搜索引擎原理与技术的入门书籍,面向那些有志从事搜索引擎行业的青年学生、需要完整理解并优化搜索引擎的专业技术人员、搜索引擎的营销人员,以及网站的负责人等。《走进搜索引擎》是从事搜索引擎开发的......一起来看看 《走进搜索引擎》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具