我需要识别所有类型的语句的Java源代码,并将它们存储在树形结构中以制作控制流程图!我不明白的是我应该如何阅读Java源代码,以便我的程序可以区分Java中所有不同类型的语句(如果是,用于类,方法等)。 我是否需要添加Java语言的整个语法?
我不明白的是,我应该如何阅读Java源代码,以便我的程序可以区分Java中所有不同类型的语句(如果是,用于类,方法等)
答案 0 :(得分:1)
阅读Java源代码(未编译)
file extension is .java
,因为它只是常规文本,所以这应该是一件微不足道的任务。
现在取决于您要解析和存储的内容。 最好的方法是掌握所有语法并检查文件。
有些工具正在执行词法分析,也称为语言识别,并且还会为您生成AST (abstract syntax tree)。
例如JavaCC或ANTLR。
但是也许您只想自定义解析(部分)。
因此,您可以将关键字存储在数据结构(if, for
)中,并相应地解析文件。
(以及一些指令模式,例如:if
。对于每条指令或DFA
,可能有更多的方法可以使automates _ regular expression
变得简单)
即使在这里也需要一些工作。
例如想要指令中的if
而不是文本中的if
。 String s="if"
。
或者/并且您确定每次都会解析一个有效的Java文件吗? )