【发布时间】:2015-06-18 03:56:39
【问题描述】:
我正在做一个 Scala 项目。
我可以从一个简单的编译器插件访问 Scala 编译器中的 AST。
而且我还可以编写一个简单的 Scala 类并从 Java 中调用这个 Scala 类。
有没有办法直接从 Java 访问这个 AST?
【问题讨论】:
标签: java scala compiler-construction
我正在做一个 Scala 项目。
我可以从一个简单的编译器插件访问 Scala 编译器中的 AST。
而且我还可以编写一个简单的 Scala 类并从 Java 中调用这个 Scala 类。
有没有办法直接从 Java 访问这个 AST?
【问题讨论】:
标签: java scala compiler-construction
不,因为 Scala 编译器没有 Java API(而且,考虑到它的编写风格,基本上不可能有)。解析 Scala 的任何其他库也可能是用 Scala 编写的。如果您需要初始 AST(在所有脱糖、打字等之前),您可以使用例如ANTLR 来生成解析器,但是从以下阶段获得任何东西基本上都需要用 Java 重新构建 Scala 编译器的某些部分。
【讨论】: