Library for C ++抽象语法树组成和代码生成

时间:2015-08-05 15:46:26

标签: c++ parsing code-generation abstract-syntax-tree

我正在寻找一个C / C ++库。它应该能够解析C ++源代码并生成抽象语法树。我还想从我的程序中探索/编辑AST,例如添加一个函数调用。这意味着,语法树不应该是某种文本格式,而应该是基于库本身的对象模型的C ++对象集合。

它还应该能够从AST生成C ++代码。

很明显,任何编译器都会这样做,并且可能有一些API。我听说过GCC暴露了一些功能,但它在幕后引人注目。

我知道Elsa,但该项目似乎在相当长的一段时间内处于非活动状态。

我想知道是否还有其他选择。任何跨平台的东西都是优势。

1 个答案:

答案 0 :(得分:1)

clang和libtooling就是你要找的。它能够做你想做的一切,但缺点是它没有很好的记录(据我所知)。这是一篇包含有用示例的博文:http://eli.thegreenplace.net/2014/05/01/modern-source-to-source-transformation-with-clang-and-libtooling