有没有分析Scala并创建抽象语法树(AST)的Scala库?
理想情况下,我对Scala库感兴趣。B计划将是一个Java库。
(我知道我可以利用Scala语法摘要的EBNF。)
发布于 2009-11-24 09:01:54
我认为访问AST的最好方法是使用编译器插件。您应该在软游戏介绍之前阅读深潜。
发布于 2009-11-24 18:02:22
一些现有的解析器:
PsiBuilder API用Scala编写的解析器。如果使用规范中的EBNF,请小心,显然有:
“附录与内联语法之间的不匹配,以及由scalac编译的语言(并在scala源代码中使用)与语法声称的语言之间的不匹配”-- Scala Trac bug #1826。
发布于 2009-11-24 14:23:33
不能仅从语法为Scala构建AST。有必要考虑,也有需要考虑的类型。
但是,您可以调用编译器本身--毕竟,它只是一个jar文件。特别是Scala 2.8,有相当多的钩子可供其他程序锁定-- Miles Sabin的工作,他这样做正是为了让Scala的Eclipse插件能够以这样的方式利用编译器。
我建议您访问Scala工具邮件列表,并与那里的人保持联系。
https://stackoverflow.com/questions/1788627
复制相似问题