Scala代码解析器(不是编译器)

Mat*_*usz 6 parsing scala

我需要创建从Scala到另一种语言的转换器.我正在寻找scala代码解析器,它可以在没有编译的情况下将代码转换为语法树.

Dan*_*ral 14

让我简单一点:单独使用解析器无法生成Scala程序的AST.运行typer是绝对必要的,这意味着类型推断和暗示.

在那之后,你可以做任何你想做的事.但是编译器的前几个阶段(最新版本中的四个,计算typer)是必要的.

巧合的是,这是由跑阶段呈现的编译器,它使用的斯卡拉IDE Eclipse的.在我看来,这可能是你的完美界面.

ENSIME使用它,它似乎是关于它的最佳信息来源,你可能也想看看Scala重构工具,因为它也使用编译器的AST.

最后,您可以尝试编译代码-Ybrowse:typer以查看typer之后的树.使用-Xshow-phases显示现有的相,或-Xprint:typer打印的"源"类型确定之后(或任何其它阶段).

  • 我认为您的基本答案具有误导性。如果你有语法,你可以生成一个AST;毕竟,文法和(语法)树是关于纯语法的。我同意,您经常需要类型信息来有用地解释 AST。(我不反对您对有用机器的指示)。 (2认同)