1

我尝试完成我的工作,即“分析 Java 应用程序中的源代码”,我分析未编译的 .java 或 .txt 文件。

我创建了这个主题,在那里我了解到我走错了路。据我所知,我认为最好的处理方式是使用 ANTLR 或 JavaCC,但我无法弄清楚它是如何工作的以及如何使用它(JavaCC 我无法闯入)。我想找到一些可以在我使用的 Netbeans 中编写“经典”的东西。

是否可以使用 java.lang.reflect (在我的主题中有人写道它只能在编译代码中使用)?有没有一种方法可以让我在没有任何“补充”或仅使用 Java 库的情况下编写所有这些内容?

感谢您提供任何宝贵的建议。我很困惑,不知道如何开始。

下面是我的工作描述:
1.选择宿主语言分析器,
2.构建扫描器(词法分析器),
3.构建解析器(语法分析器),
4.以XML的形式保存获取的信息,
5.已分析项目的 UML 图形表示。
主要目标是创建UML,XML是一个补充。

4

3 回答 3

1

一个更简单的解决方案是获取一个支持导入 Java 源代码并为您生成图表的 UML 工具。

你的道路充满了困难。你被困在输入端,但你甚至还没有考虑到图形端。即使您成功地弄清楚如何创建抽象语法树,绘制图表也并不容易。

于 2012-04-21T12:31:23.590 回答
0

从广义上讲,您有两种选择。

如果你想使用源代码,你必须构建一些可以解释这些文件的东西,并形成其中的编程结构的模型。这很重要——你基本上是在构建一个编译器的一个重要子集,你必须处理很多家务——加载文件、计算对 .jar 文件的引用等,并处理代码可能没有实际编译。如果你选择这条路线,你最好的选择是ANTLR;去阅读维基和书籍,然后陷入困境。

另一种方法是使用已编译的文件 - jar 等 - 您可以使用反射工具来解释代码。这简化了事情 - 至少您知道代码可以编译,并且其他人已经做了很多家务。这仍然不是微不足道的。

于 2012-04-21T10:24:39.430 回答
0

顶盖可能对你有用,HTH

于 2012-04-21T16:51:03.653 回答