我尝试做我的工作,即“Java应用程序中的源代码分析”,我分析未编译的.java或.txt文件。
我创建this主题,在那里我了解到我走错了路。从我所听到的,我认为处理使用ANTLR或JavaCC的最佳方法,但我无法弄清楚它是如何工作的以及如何使用它(JavaCC我不能介入)。我想找到一些可以编写我使用的Netbeans中的“经典”的东西。
是否可以使用java.lang.reflect(在我的主题中有人写道它可以使用只在编译代码中)?有没有办法可以在没有任何“补充”或仅使用Java库的情况下编写所有这些内容?
感谢您提供任何有价值的建议。我很困惑,不知道如何开始。
以下是对我工作的描述:1。选择主语言分析器,
2。构建扫描仪(词法分析器),3。构建解析器(语法分析器),4。保存以XML格式获得的信息,5。分析项目的UML图形表示。
主要目标是创建UML,XML是一个补充。
答案 0 :(得分:1)
更简单的解决方案是获得支持导入Java源代码并为您生成图表的UML工具。
你的方式充满了困难。你被困在输入端,但你还没有考虑过图形方面。即使您成功地弄清楚如何创建抽象语法树,绘制图表也不容易。
答案 1 :(得分:0)
从广义上讲,你有两个选择。
如果您想使用源代码,则必须构建可以解释这些文件的内容,并在其中构建编程结构的模型。这是非常重要的 - 你基本上构建了编译器的一个重要子集,你必须处理大量的内务管理 - 加载文件,计算对.jar文件的引用等,并处理代码可能的事实实际上没有编译。如果选择这条路线,最好的选择是ANTLR;去阅读维基和书籍,然后陷入其中。
另一种方法是使用已编译的文件 - 罐子等 - 您可以使用反射工具来解释代码。这简化了问题 - 至少你知道代码编译,而其他人已经完成了大量的内务管理。它仍然不是微不足道的。
答案 2 :(得分:0)
topcased对您有用, HTH