scala - 如何在 Scala 代码本身中与编译器交互?

标签 scala compiler-construction programming-languages compilation abstract-syntax-tree

我想知道在正常的“在命令行上调用它来编译我的源代码”之外,有多少种方法可以与 Scala 编译器进行交互。

有没有办法在运行时解析代码、构建抽象语法树或使用库来编译代码?

最佳答案

前段时间我使用了(现已弃用)scala.tools.nsc.Interpreter类加载,修改和 - 惊喜! -- 在运行时解释 Scala 代码。如果您想在您的代码和解释代码之间交换值,请查看它的 bind方法。它还有一个 compileSources和一个 compileString方法,但到目前为止我还没有使用其中的一种。此外,我对如何使用它(或其他东西)来获取 AST 一无所知。

另见:What is the purpose of the scala.tools.nsc package?nsc package scaladoc .

更新:这应该回答 AST 问题(从 2009 年开始,可能已经过时):Scala AST in Scala

关于scala - 如何在 Scala 代码本身中与编译器交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8439964/

相关文章:

c - 如果没有使用头文件中包含的函数,编译器是否仍然编译这个文件?

c# - C++ 和 .NET 是否在银行、医疗保健和电信等领域一起使用

java - 垃圾回收仅用于回收堆对象还是同时回收堆和堆栈中的对象?

scala - 如何在 slick 中做 "OR"过滤器

scala - 什么是List [String〜Int]?

c - 如何在二进制代码中找到函数边界

c - sizeof (long) 与 sizeof (*lp)

programming-languages - 有助于编写 quines(自打印程序)的语言功能?

git - 如何从我的 sbt 自动增加版本号并上传到 git

java - 自定义协议(protocol)处理程序未在 OSX 上传递参数