如何解析groovy代码?

时间:2013-01-16 08:36:42

标签: parsing grails groovy

由于groovy擅长解析几乎所有内容,因此搜索如何解析groovy代码将无法显示任何好结果 - 所以我希望SO社区能够提供帮助: - )

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

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

一个问题是反射(以及AST也是如此)会丢弃所​​有注释和格式(格式化不是大问题,我可以打印文件)...

我可以在哪些想法中找到一个可以构建我的想法的常规解析器?

2 个答案:

答案 0 :(得分:8)

您应该仔细查看GroovyDocTool类来源。

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

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

答案 1 :(得分:2)

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

Groovy Code中的其他类可能包含ASM: -

一旦有了访问者,如果Groovy API中有内置适配器,它可能“或多或少”直截了当......

相关问题