使用javax.lang.model或ANTLR JavaParser获取Java源代码信息的示例/教程

4
我想创建一个自动的类似流程图的可视化来显示简单Java逻辑,为此我需要解析Java源代码。我有两个候选方案,ANTLRjavax.lang.model,但两者都不容易。我还没有找到一个能够完全符合我的要求的工作示例。我想查找简单的变量声明、赋值和流程控制语句(如if、for、switch、布尔条件等)。是否有简单的示例或教程可以参考?我发现ANTLR实例很少(没有一个可以直接使用而不需要大量“功课”的),而javax.lang.model则完全没有。

好的观点,谢谢。如果你把这个作为答案,它可能会被接受...顺便说一下,第一个谷歌搜索结果是ANTLR ;) http://www.google.com/search?q=get+ast+java+source - Eran Medan
下一个有用的谷歌搜索结果是这个(来自SO,当然):https://dev59.com/R3I-5IYBdhLWcg3wNle1 - Eran Medan
我扩展了一下我的评论,并将其发布为答案。 - Bart Kiers
3个回答

2
您想自己生成解析器的特定原因是什么?在我看来,让现有的解析器为您创建AST会更容易,然后您只需遍历AST以收集有关源文件的数据。使用您喜欢的搜索引擎和关键字“get ast java source”将产生许多相关结果。
乍一看,这些看起来像是合适的候选者: 当然,您也可以使用ANTLR,为Java提供了许多可用的ANTLR语法分析器,但是如果选择此工具(或其他语法分析器生成器),则需要相当大的学习曲线。如果您选择ANTLR,我很乐意回答任何有关它的问题。
祝你好运!

1

1

我建议使用Eclipse Xtext,它在底层使用ANTLR,而且相对容易与Eclipse GMF一起使用进行可视化。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接