使用CDT的抽象语法树API来生成/编写C代码?

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

我找到了一篇论述我想要做什么的论文:生成可重写的抽象语法树使得它看起来像生成代码很容易,如果我可以构造树并说'自己写'。 这在CDT中是否可行以及我可以如何开始(最好不要使用过时/内部方法?)


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

CDT重构框架试图解决的问题有很多:

  • 让用户在实际提交到源代码之前预览更改。
  • 操作未保存的文件错误(例如重构未保存的源代码编辑器中的代码)
  • 在新生成的代码中确认用户代码格式设置。
  • 可撤销的事务跨越几个源文件。
  • 我很确定,即使你不需要所有这些功能,这两个类也应该是一个很好的起点。


    你需要的是使用ASTWriter:

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

    然后,您可以将该字符串转储到一个位于eclipse资源插件上下文中的文件。

    链接地址: http://www.djcxy.com/p/11691.html

    上一篇: Using CDT's Abstract Syntax Tree API to generate/write C code?

    下一篇: How portable is JavaFX 2?