18

由于 groovy 擅长解析几乎任何东西,因此搜索如何解析 groovy 代码不会显示任何好的结果 - 所以我希望 SO 社区能够提供帮助 :-)

我想为 grails 域类编写某种(图形)编辑器,但不想重新发明轮子。

通过反射检查域类很容易,但我想更进一步——我想修改代码并将其作为域类文件写回。

一个问题是反射(以及 AST 也是)会丢弃所​​有评论和格式(格式不是大问题,我可以很好地打印文件)......

有什么想法可以找到我可以构建我的想法的 groovy 解析器吗?

4

2 回答 2

9

您应该仔细查看GroovyDocTool类源代码。

GroovyDoc 使用 GroovyLexer 和 GroovyRecognizer 解析类文本(生成 GroovyDoc HTML 文档文件,类似于 JavaDoc HTML 文件)并利用这些类从给定的源文本创建 AST。

生成的 AST 和源代码文本用于遍历类结构(请参阅SimpleGroovyClassDocAssembler),提取注释和各种其他元数据以填充 GroovyDoc 特定的数据结构。

于 2013-01-17T16:26:39.053 回答
2

ASM应该为您完成大部分工作......

Groovy 代码中的其他类可能围绕 ASM:-

一旦你有了访问者,如果 Groovy API 中有一个内置的适配器,它可能“或多或少”很简单......

于 2013-01-17T01:27:20.913 回答