如何使几行代码的抽象语法树不是完整的文件或java中的class?

How to make Abstract Syntax Tree of few line of code not a complete file or class in java?

我正在尝试使用 AST 比较来比较 CFG。我试过 Eclipse AST Parser,它很棒。但是我正在使用 IntelliJ IDE 所以不能使用它。我探索了 Java 解析器,但它 returns 编译单元并处理完整的 Java 文件。请建议一种方法或 API 来获取基本块的抽象语法树(几行代码),进一步我应该能够比较生成的 AST。

我从来没有这样做过,但是获取基本块的文本并在其周围放置一个简单的包装器怎么样:

class AST {
    void method() {
        // basic block here
    }
}

并将其传递给解析器?它会给你比你想要的更多的东西,但你可以在 AST 中向下导航几个节点,下面的整个子树将是你想要的 AST。