Eclipse文本编辑器获取不完整的代码AST

Eclipse文本编辑器获取不完整的代码AST,eclipse,syntax-error,abstract-syntax-tree,Eclipse,Syntax Error,Abstract Syntax Tree,我想知道是否有办法获得用户输入的不完整代码片段的AST。例如,让我们假设代码如下所示: String str = "This is some string"; int length = str.length + 我能得到这种代码的AST吗?这在语法上是不正确的,但我仍然需要AST 此外,我是否能够将此类代码注入文本编辑器?理想情况下,我会将其添加为字符串,但AST格式也可以 更新1: 准确地说,我是否能够以某种方式使用ASTParser,以便在最后一行中获得类似以下AST的内容:

我想知道是否有办法获得用户输入的不完整代码片段的AST。例如,让我们假设代码如下所示:

String str = "This is some string";
int length = str.length +
我能得到这种代码的AST吗?这在语法上是不正确的,但我仍然需要AST

此外,我是否能够将此类代码注入文本编辑器?理想情况下,我会将其添加为字符串,但AST格式也可以

更新1:

准确地说,我是否能够以某种方式使用ASTParser,以便在最后一行中获得类似以下AST的内容:

          =
      /       \
decl length    +
             /
        str.length
部分答覆:

JDT的ASTParser可以与setStatementsRecovery一起使用,这将产生以下AST:

         =
      /       \
decl length    str.length

这并不完全是理想的解决方案,但有人可能会发现它很有用,就像我一样。

我不知道您到底想实现什么,但根据您的语法和使用的工具,您可能会得到一个不完整的AST。根据您的代码,此类AST可以如下所示:

          __ = __
        /         \
decl length       fail

我不明白你到底想实现什么,但是根据你的语法和使用的工具,你可能会得到一个不完整的AST。根据您的代码,此类AST可以如下所示:

          __ = __
        /         \
decl length       fail

如何获取语法不正确的代码的AST?根据定义,你不能。我知道这一点,但我很好奇Eclipse的内置自动完成是如何工作的。你想如何获得语法不正确的代码的AST?根据定义,你不能。我知道这一点,但我很好奇Eclipse的内置自动完成是如何工作的。