【问题标题】:AST of spoon in text file文本文件中勺子的 AST
【发布时间】:2017-10-23 23:47:29
【问题描述】:

在spoon代码分析工具中,AST在GUI中使用以下命令进行可视化:

$ java -cpspoon-core-5.9.0-jar-with-dependencies.jarspoon.Launcher -i MyClass.java --gui --noclasspath

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

【问题讨论】:

    标签: inria-spoon


    【解决方案1】:

    使用 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");
      }
    }
    

    【讨论】:

      【解决方案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

      【讨论】:

        猜你喜欢
        • 2018-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多