【发布时间】:2013-02-05 00:52:35
【问题描述】:
是否有gcc-xml等效或类似的Visual C++编译器工具,可以反映C++源代码的内部结构?
我的目标是通过使用 C++(本机 C++)源或头文件作为输入来生成输出,这样:
- 处理所有预处理器指令。 (这已经可以通过 /P、/E 或 /EP 编译器开关实现。)
- 所有
typedefs 都扩展为它们的基本类型。 - 获取所有变量/函数/类/成员名称及其签名的列表。
- 可以选择获取所有实例化模板类的列表。
以typedef 为例,这段代码:
typedef string my_type;
my_type s1;
扩展为:
std::basic_string<char, std::char_traits<char>, std::allocator<char> > s1;
或者可以让我做到这一点的东西。
我知道这可以通过使用 gcc-xml(使用 gcc 作为中间编译器)或a number of non-MSVC options 来实现。但是重要的要求是“编译全部由VC++完成”。
任何可以解决至少一个后续功能或指导我完成目标的解决方案或解决方法都值得赞赏。
【问题讨论】:
-
Visual C++ 编译器不通过任何公共接口公开其内部数据结构。
-
/Zgcl.exe 的开关提供了一个非常有用的扩展函数原型列表。但不幸的是,它仅适用于 C 源文件,因此忽略了类和成员函数。我找不到任何为类和/或typedefs 生成此类列表的类似开关。
标签: c++ parsing visual-c++ compiler-construction code-generation