使用ANTLR4查找Java项目中的所有方法

使用ANTLR4查找Java项目中的所有方法,antlr,antlr4,Antlr,Antlr4,我正在尝试编写一个简短的程序,可以从Java项目中提取所有方法(我有源文件) 在做了一点研究之后,我意识到使用正则表达式是一个坏主意,因为Java是一种上下文无关的语言,而且正确匹配所有大括号会有问题。下一步是找到另一种方法,我知道使用ANTLR解析器将是最好的主意。我发现了很多例子(有些比其他的老),但是我找不到一个例子来说明如何提取项目中的所有方法(包括它们的主体) 有谁能写一个简短的例子,让我知道应该如何开始吗?您可以轻松地使用解析树和侦听器触发对代码的调用。你看过报纸了吗?它基本上有您的

我正在尝试编写一个简短的程序,可以从Java项目中提取所有方法(我有源文件)

在做了一点研究之后,我意识到使用正则表达式是一个坏主意,因为Java是一种上下文无关的语言,而且正确匹配所有大括号会有问题。下一步是找到另一种方法,我知道使用ANTLR解析器将是最好的主意。我发现了很多例子(有些比其他的老),但是我找不到一个例子来说明如何提取项目中的所有方法(包括它们的主体)


有谁能写一个简短的例子,让我知道应该如何开始吗?

您可以轻松地使用解析树和侦听器触发对代码的调用。你看过报纸了吗?它基本上有您的精确解决方案。

您可以扫描文件并使用此模式捕获所有函数声明,如果它有帮助([a-zA-Z0-9]*)\s*([^(.*)])]*)\s*{我阅读了文档,我无法从“重写侦听器方法”理解应该编写什么代码创建从生成的侦听器扩展的新类(此处为JavaListener)并重写打印带有签名的方法的
visitMethodDeclaration(..)
方法。您可以按照上面提到的文档对每个java源文件执行此操作。文档链接不可访问。文档稍后移到github。更新了链接。