【发布时间】:2012-04-13 21:53:28
【问题描述】:
我目前正在使用 eclipse AST 来生成源代码。除了大多数示例之外,我是在独立应用程序中从头开始生成源代码,而不是使用 Eclipse 插件。
从 ASTParser 读入时,您可以通过调用 recordModifications() 来激活修改,但这在 AST 是从头开始创建时不起作用,例如致电newCompilationUnit()。
因此,无法通过Document 和TextEdit 将源代码写入文件 - 有一个异常表明尚未启用修改记录。
从头开始生成 AST 并写入文件的任何经验?
谢谢!
【问题讨论】:
-
在为 Java 打印可编译的 AST 方面拥有丰富的经验,但在 Eclipse 方面却没有。您的问题需要 Eclipse 吗?
-
为什么要将“生成的 AST”写入文件?也许它只是措辞,但我得到的印象是您想将漂亮打印的源文本写入文件,该源文本是从 AST 生成的。
-
好吧,我正在使用 Eclipse,因为它被广泛使用,并且“Java 开发工具”(JDT) AST 实现允许往返工程,因此您可以从内存中生成代码AST,或者您可以通过进行最小的更改来修改现有的源代码。在这种情况下,“生成”意味着 AST 以编程方式构建在内存中。
-
你实际上并没有回答我的问题。
-
可能我没有理解正确。我没有严格绑定到 Eclipse,实际上我只使用 Eclipse 项目中的一个库。所以:不,Eclipse 不是必需的。是的,我想将漂亮打印的源文本写入文件,源文本是从 AST 生成的。然而,一个要求是 AST 以读/写方式工作,因此它允许修改现有源代码以及从头开始生成源代码。
标签: java eclipse abstract-syntax-tree eclipse-jdt