我想知道在正常的“在命令行上调用它来编译我的源代码”之外,有多少种方法可以与 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/