一尘不染

解析Java源代码

algorithm

我被要求开发一种软​​件,该软件应该能够创建输入Java源代码的流程图/控制流。因此,我开始对其进行研究,并得出以下解决方案:

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

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

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

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

对不起,如果我不清楚。请要求任何澄清。


阅读 327

收藏
2020-07-28

共1个答案

一尘不染

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

2020-07-28