首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Scala中的Scala AST

Scala中的Scala AST
EN

Stack Overflow用户
提问于 2009-11-24 08:22:49
回答 6查看 13.2K关注 0票数 15

有没有分析Scala并创建抽象语法树(AST)的Scala库?

理想情况下,我对Scala库感兴趣。B计划将是一个Java库。

(我知道我可以利用Scala语法摘要的EBNF。)

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-11-24 09:01:54

我认为访问AST的最好方法是使用编译器插件。您应该在软游戏介绍之前阅读深潜

票数 9
EN

Stack Overflow用户

发布于 2009-11-24 18:02:22

一些现有的解析器:

  • 官方Scala编译器
  • IntelliJ IDEA Scala插件有一个针对IntelliJ的PsiBuilder API用Scala编写的解析器
  • Scala插件使用了在大鼠中实现的解析器!(它生成Java代码),但是“用Scala的本地编译器替换了这些解析器和分析器”
  • 用Scala编写的Scala-规则项目。

如果使用规范中的EBNF,请小心,显然有:

“附录与内联语法之间的不匹配,以及由scalac编译的语言(并在scala源代码中使用)与语法声称的语言之间的不匹配”-- Scala Trac bug #1826

票数 4
EN

Stack Overflow用户

发布于 2009-11-24 14:23:33

不能仅从语法为Scala构建AST。有必要考虑,也有需要考虑的类型。

但是,您可以调用编译器本身--毕竟,它只是一个jar文件。特别是Scala 2.8,有相当多的钩子可供其他程序锁定-- Miles Sabin的工作,他这样做正是为了让Scala的Eclipse插件能够以这样的方式利用编译器。

我建议您访问Scala工具邮件列表,并与那里的人保持联系。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1788627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档