我需要解析整个Java代码并将语句保存在树形结构中以制作Control流程图

时间:2019-06-29 20:47:36

标签: java parsing

我需要识别所有类型的语句的Java源代码,并将它们存储在树形结构中以制作控制流程图!我不明白的是我应该如何阅读Java源代码,以便我的程序可以区分Java中所有不同类型的语句(如果是,用于类,方法等)。 我是否需要添加Java语言的整个语法?

我不明白的是,我应该如何阅读Java源代码,以便我的程序可以区分Java中所有不同类型的语句(如果是,用于类,方法等)

1 个答案:

答案 0 :(得分:1)

  1. 阅读Java源代码(未编译)
    file extension is .java,因为它只是常规文本,所以这应该是一件微不足道的任务。

  2. 现在取决于您要解析和存储的内容。 最好的方法是掌握所有语法并检查文件。

有些工具正在执行词法分析,也称为语言识别,并且还会为您生成AST (abstract syntax tree)
例如JavaCCANTLR

但是也许您只想自定义解析(部分)。 因此,您可以将关键字存储在数据结构(if, for)中,并相应地解析文件。 (以及一些指令模式,例如:if。对于每条指令或DFA,可能有更多的方法可以使automates _ regular expression变得简单)

即使在这里也需要一些工作。
例如想要指令中的if而不是文本中的ifString s="if"
或者/并且您确定每次都会解析一个有效的Java文件吗? )