2013-06-27 172 views
2

是否有某种类型的C++库,其中包含表示C++源代码的类? 它当然应该能够将源代码输出到流中。 我正在寻找支持大多数C++ 11功能的东西,并且还能够生成模板化构造。C++ 11源代码生成

当我为此谷歌,我没有得到我想要的结果。我确定,但有一些可用的东西。也许我只是使用错误的条款。

+0

检出libclang。 –

回答

5

查看Clang编译器,它使用library-based architecture来支持实现IDE和其他需要处理AST的工具。 Clang完全支持所有C++ 11功能(以及一些C++ 1y功能)

更多信息可在Clang documentation中找到。或者在this blog中描述使用clang::Rewriter的基本源到源转换。

+0

OP表示**“...能够将源代码输出到流**”,所以问题不在于在运行时生成AST或机器代码,而是在运行时生成** C++ **代码。 –

+0

谢谢!似乎它能够代表整个AST。但是我找不到任何有关生成源代码的信息。我不是说IR。 – Tim

+0

@Tim添加了更多关于源代码到源代码转换的信息 – Joe

0

这仍然处于一个非常实验阶段,但在我们的实验室中,我们正在开发一个工具(Clava),它基于Clang并使用Javascript类语言来查询和转换给定的C/C++代码。它将在2017年8月底开放。

例如,演示网站中当前的默认示例读取C/C++代码中的所有类和结构,并创建一个包含HDF5包装器的C++/H对对于这些类(但是,代码生成是AST和字符串文字的混合)。

Clava - Online Demo