7

我已经能够使用 CDT 的 AST API 成功解析源代码。我的问题正好相反:如何以编程方式构建 C AST,然后告诉它自己写入文件?我已经看过 ASTWriter 类(但那是内部的)并且找不到任何关于构建实际 AST 的教程或文档。

我找到了一篇论文,涵盖了我想做的事情:生成可重写抽象语法树,如果我可以构造树并说“自己写”,那么生成代码看起来会很容易。这在 CDT 中是否可行,我该如何开始(最好没有弃用/内部方法?)

4

2 回答 2

2

您需要的是使用 ASTWriter:

ASTWriter writer = new ASTWriter()
String code = writer.write(myAST);

然后,您可以将字符串转储到 Eclipse 资源插件上下文中的文件中。

于 2015-01-21T13:52:52.687 回答
1

我建议您从探索CRefactoring及其子类(例如ExtractFunctionRefactoring)开始。

CDT 重构框架试图解决许多问题:

  1. 让用户在实际将更改提交到源代码之前预览更改。
  2. 对未保存的文件错误进行操作(例如在未保存的源代码编辑器中重构代码)
  3. 在新生成的代码中遵守用户代码格式设置。
  4. 跨越多个源文件的可撤销事务。

我很确定即使您不需要所有这些功能,这两个类也应该是一个很好的起点。

于 2013-01-08T17:57:03.140 回答