匙子AST在文本文件的

时间:2017-10-23 23:47:29

标签: inria-spoon

在勺子代码分析工具中,使用以下命令在GUI中显示AST:

$ java -cp spoon-core-5.9.0-jar-with-dependencies.jar spoon.Launcher -i MyClass.java --gui --noclasspath

我试图在没有-gui的情况下运行相同的命令但是,我没有得到任何输出。无论如何,我可以在文本文件中获取AST。

2 个答案:

答案 0 :(得分:0)

使用Spoon处理器。任何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");
  }
}

答案 1 :(得分:-2)

您可以使用名为showMeYourSpoon的JavaFX应用程序,专用于可视化某些Java代码的Spoon AST。 但是,此工具不能将项目的所有源(最多一个类,例如您的类MyClass.java)作为输入。

https://github.com/inspectorguidget/showMeYourSpoon

使用该应用程序,您可以在专用文本区域中编写或复制Java代码,然后将计算并显示相应的Spoon AST。

要将Spoon AST导出到文本文件中,可以单击save按钮。

此应用程序还具有其他功能,例如:

  • 显示/隐藏AST的隐式元素
  • 点击Java代码元素会自动在树形视图中选择相应的AST元素
  • 在树形视图中单击AST元素会在文本区域中选择相应的Java代码块
  • 指定您编写的Java代码的类型(类,类元素,语句或表达式)

Screenshot of showMeYourSpoon