java - 解析 Java 源代码

标签 java algorithm parsing compiler-construction logic

我被要求开发一个软件,该软件应该能够创建输入 Java 源代码的流程图/控制流。所以我开始研究它并得出以下解决方案:

要创建流程图/控制流,我必须识别给定源代码中的控制语句和函数调用现在我有两种识别方法:

  1. 通过编写我自己的语法来解析源代码(我认为这是一个复杂的解决方案)。我正在考虑为此使用 Antlr。
  2. 以文本形式读取输入源代码文件并搜索特定模式(可能会变得低效)

我在这儿吗?或者我错过了一些非常基本和简单的东西?哪种方法会花费更少的时间并有效地完成工作?在这方面的任何其他建议也将受到欢迎。任何其他有效的方法都会有所帮助,因为输入的源代码可能跨越多个文件并且可能相当复杂。

我擅长 .NET 语言,但这是我在 Java 中的第一个大项目。我具有编译器设计的基本知识,因此编写语法对我来说应该不是不可能的。

抱歉,如果我不清楚。请要求任何澄清。

最佳答案

我会选择 Antlr并使用现有的 Java 语法:https://github.com/antlr/grammars-v4

关于java - 解析 Java 源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5497210/

相关文章:

java.lang.UnsatisfiedLinkError : org. opencv.core.Mat.n_Mat(IIILjava/nio/ByteBuffer;)J

java - 我的 Collections.sort 有什么问题?

java - 使用 java 在 IE 中无法正确显示日语文件名

php - 使用php从数据库中检索值后如何使用其id获取div的值

使用 parsec 解析 sum 数据类型

java - 如何将 map 传递到 jsp 子结构中?

arrays - 从满足特定条件的数组中选择一组元素

python - 如何计算多项式概率值?

algorithm - 如何在矩形容器内分配不同宽度和高度的矩形列表,最大化项目之间的距离?

php - (PHP) 解析命令