由于groovy擅长解析几乎所有内容,因此搜索如何解析groovy代码将无法显示任何好结果 - 所以我希望SO社区能够提供帮助: - )
我想为grails域类编写一些(图形)编辑器,但不想重新发明轮子。
通过反射检查域类很容易,但我想更进一步 - 我想修改代码并将其写回域类文件。
一个问题是反射(以及AST也是如此)会丢弃所有注释和格式(格式化不是大问题,我可以打印文件)...
我可以在哪些想法中找到一个可以构建我的想法的常规解析器?
答案 0 :(得分:8)
您应该仔细查看GroovyDocTool类来源。
GroovyDoc使用GroovyLexer和GroovyRecognizer来解析类文本(生成GroovyDoc HTML文档文件,类似于JavaDoc HTML文件),并利用这些类从给定的源文本创建AST。
生成的AST和源代码文本用于遍历类结构(请参阅SimpleGroovyClassDocAssembler),提取注释和各种其他元数据以填充GroovyDoc特定的数据结构。
答案 1 :(得分:2)
ASM应该为你完成大部分工作....
Groovy Code中的其他类可能包含ASM: -
一旦有了访问者,如果Groovy API中有内置适配器,它可能“或多或少”直截了当......