我的目标是将Scala 3代码作为字符串获取,并在运行时将其解析为Scala 3的抽象语法树。在此过程中,如果代码存在编译错误,则应将其作为一部分异常返回。
更大的目标是,如果Scala代码有效,则以Expr [T]结束,并通过拼接正确的位来执行它(我已经覆盖了这个部分)。
使用scala-reflect在Scala 2.*中可以实现这一点,详情请参见此处。
更大的目标是,如果Scala代码有效,则以Expr [T]结束,并通过拼接正确的位来执行它(我已经覆盖了这个部分)。
使用scala-reflect在Scala 2.*中可以实现这一点,详情请参见此处。
val source =
"""
|object HelloWorld {
| def main(args: Array[String]): Unit = {
| println("Hello, world!")
| }
|}
|
|HelloWorld.main(Array())
|""".stripMargin
val tree = toolbox.parse(source)
val binary = toolbox.compile(tree)
binary()
就我所了解的,Scala 3 不会移植 scala-reflect 工具包。在 Scala 3 中该如何实现相同功能?