如何解析groovy代码?

rdm*_*ler 16 grails groovy parsing

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

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

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

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

任何想法,我可以找到一个groovy解析器,我可以在其上构建我的想法?

And*_*ess 9

您应该仔细查看GroovyDocTool类源.

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

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