在 spoon 代码分析工具中,AST 使用以下命令在 GUI 中可视化:
$ java -cp 勺子核心-5.9.0-jar-with-dependencies.jar 勺子.Launcher -i MyClass.java --gui --noclasspath
我试图在没有 -gui 的情况下运行相同的命令,但是我没有得到任何输出。无论如何我可以在文本文件中获取 AST。
在 spoon 代码分析工具中,AST 使用以下命令在 GUI 中可视化:
$ java -cp 勺子核心-5.9.0-jar-with-dependencies.jar 勺子.Launcher -i MyClass.java --gui --noclasspath
我试图在没有 -gui 的情况下运行相同的命令,但是我没有得到任何输出。无论如何我可以在文本文件中获取 AST。
使用勺子处理器。任何 Spoon 处理器都会预先访问 AST 的所有元素,因此您可以简单地创建一个 CtElement 处理器并打印正在访问的元素:
@Override
public void process(CtElement element) {
//Find the level in the Syntax Tree of the element
int n = 0;
CtElement parent = element.getParent();
while (parent != null) {
n++;
parent = parent.getParent();
}
// Print the element
try {
String s = "";
if (n > 0) s = String.format("%0" + n + "d", 0).replace("0","-");
System.out.println(s + element.getClass().getSimpleName());
} catch (NullPointerException ex) {
System.out.println("Unknown Element");
}
}
您可以使用名为showMeYourSpoon
专用于可视化某些 Java 代码的 Spoon AST 的 JavaFX 应用程序。但是,此工具不能将项目的所有源(最多一个类,例如您的类MyClass.java
)作为输入。
https://github.com/inspectorguidget/showMeYourSpoon
使用该应用程序,您可以在专用文本区域中编写或复制粘贴您的 Java 代码,然后将计算并显示相应的 Spoon AST。
要将 Spoon AST 导出为文本文件,您可以单击save
按钮。
此应用程序具有其他功能,例如: