用于MS VC ++的gcc-xml等效/源解析工具

时间:2013-02-20 05:17:47

标签: c++ parsing visual-c++ compiler-construction code-generation

是否有 gcc-xml 等效或类似的Visual C ++编译器工具,它可以反映C ++源代码的内部结构?

我的目标是通过使用C ++(本机C ++)源或头文件作为输入来生成输出,以便:

  1. 处理所有预处理程序指令。 (这可以通过/ P,/ E或/ EP编译器开关实现。)
  2. 将所有typedef扩展为其基本类型。
  3. 获取所有变量/函数/类/成员名称及其签名的列表。
  4. 可选地,可以获得所有实例化的模板化类的列表。
  5. 作为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 ++完成”。

    任何可以解决至少一个后期功能或指导我完成目标的解决方案或解决方法都表示赞赏。

1 个答案:

答案 0 :(得分:1)

Semantic Designs(我的公司)提供DMS软件重组工具包,其中包含用于各种C ++方言的C ++解析器,包括MS Visual Studio。

DMS并非专门用于生成您想要的数据,但它可以很容易地生成它。 DMS by design是一个可自定义的实用工具,需要一些配置才能获得自定义答案。在您的情况下,几乎所有您想要的东西都可以在DMS的C ++符号表中找到,因此自定义将是“遍历符号表,格式化并提取您想要的内容”。有一套完整的API支持这样做(以及许多其他有用的程序分析/操作任务)。