我想知道有没有办法获得用户输入的不完整代码片段的 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
这并不完全是理想的解决方案,但有人可能会发现它很有用,就像我一样。