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

时间:2011-10-19 21:06:09

标签: parsing scala

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

1 个答案:

答案 0 :(得分:14)

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

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

巧合的是,这是presentation compiler所运行的阶段,Scala IDE for Eclipse使用了这些阶段。在我看来,这可能是你的完美界面。

ENSIMEuses it,它似乎是有关它的最佳信息来源,您可能还想看一下Scala Refactoring工具,因为它使用了编译器AST也是。

最后,您可以尝试使用-Ybrowse:typer编译代码以查看typer之后的树。使用-Xshow-phases显示现有阶段,或-Xprint:typer在typer(或任何其他阶段)之后打印“source”。