我已经能够使用 CDT 的 AST API 成功解析源代码。我的问题正好相反:如何以编程方式构建 C AST,然后告诉它自己写入文件?我已经看过 ASTWriter 类(但那是内部的)并且找不到任何关于构建实际 AST 的教程或文档。
我找到了一篇论文,涵盖了我想做的事情:生成可重写抽象语法树,如果我可以构造树并说“自己写”,那么生成代码看起来会很容易。这在 CDT 中是否可行,我该如何开始(最好没有弃用/内部方法?)
我已经能够使用 CDT 的 AST API 成功解析源代码。我的问题正好相反:如何以编程方式构建 C AST,然后告诉它自己写入文件?我已经看过 ASTWriter 类(但那是内部的)并且找不到任何关于构建实际 AST 的教程或文档。
我找到了一篇论文,涵盖了我想做的事情:生成可重写抽象语法树,如果我可以构造树并说“自己写”,那么生成代码看起来会很容易。这在 CDT 中是否可行,我该如何开始(最好没有弃用/内部方法?)
您需要的是使用 ASTWriter:
ASTWriter writer = new ASTWriter()
String code = writer.write(myAST);
然后,您可以将字符串转储到 Eclipse 资源插件上下文中的文件中。
我建议您从探索CRefactoring及其子类(例如ExtractFunctionRefactoring)开始。
CDT 重构框架试图解决许多问题:
我很确定即使您不需要所有这些功能,这两个类也应该是一个很好的起点。