用于 C++ 抽象语法树组合和代码生成的库 [关闭]

Posted

技术标签:

【中文标题】用于 C++ 抽象语法树组合和代码生成的库 [关闭]【英文标题】:Library for C++ abstract syntax trees composition and code generation [closed] 【发布时间】:2015-10-28 12:02:10 【问题描述】:

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

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

很明显,任何编译器都会这样做,并且可能有一些 API。我听说 GCC 公开了一些功能,但它在幕后是相当强大的。

我知道Elsa,但该项目似乎有一段时间没有活动了。

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

【问题讨论】:

你试过用谷歌搜索“C++ 解析器”吗? 您可以将您的请求发送至softwarerecs.stackexchange.com 见***.com/questions/17388771/… 【参考方案1】:

clang 和 libtooling 正是您所寻找的。它可以做任何你想做的事情,但缺点是它没有很好的文档记录(据我所知)。这是一篇包含有用示例的博客文章:http://eli.thegreenplace.net/2014/05/01/modern-source-to-source-transformation-with-clang-and-libtooling

【讨论】:

以上是关于用于 C++ 抽象语法树组合和代码生成的库 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

是什么让libadalang特别?

C++ 中的抽象语法树表示

精读《sqorn 源码》

java AST 抽象语法树

java AST 抽象语法树

java AST 抽象语法树