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

时间:2012-09-05 18:10:34

标签: eclipse syntax-error abstract-syntax-tree

我想知道是否有办法获取用户输入的不完整代码片段的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

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

1 个答案:

答案 0 :(得分:1)

我不明白你想要达到的目标,但根据你的语法和使用的工具,你可能得到一个不完整的AST。从您的代码中,这样的AST可以如下:

          __ = __
        /         \
decl length       fail