我正在寻找一个C / C ++库。它应该能够解析C ++源代码并生成抽象语法树。我还想从我的程序中探索/编辑AST,例如添加一个函数调用。这意味着,语法树不应该是某种文本格式,而应该是基于库本身的对象模型的C ++对象集合。
它还应该能够从AST生成C ++代码。
很明显,任何编译器都会这样做,并且可能有一些API。我听说过GCC暴露了一些功能,但它在幕后引人注目。
我知道Elsa,但该项目似乎在相当长的一段时间内处于非活动状态。
我想知道是否还有其他选择。任何跨平台的东西都是优势。
答案 0 :(得分:1)
clang和libtooling就是你要找的。它能够做你想做的一切,但缺点是它没有很好的记录(据我所知)。这是一篇包含有用示例的博文:http://eli.thegreenplace.net/2014/05/01/modern-source-to-source-transformation-with-clang-and-libtooling