哪些库可用于解析c ++以提取类型信息

Gra*_*ers 11 c++ parsing types

我正在寻找一种方法来解析c ++代码以检索有关类的一些基本信息.我实际上并不需要代码本身的大量信息,但我确实需要它来处理宏和模板之类的东西.简而言之,我想提取代码的"结构",你将在UML图中显示.

对于代码库中的每个类/ struct/union/enum/typedef,我需要的所有内容(在处理模板和宏之后)是:

  • 他们的名字
  • 他们居住的名称空间
  • 包含在其中的字段(类型名称,字段名称和访问限制,例如private/mutable/etc)
  • 包含的函数(返回类型,名称,参数)
  • 声明文件
  • 此数据的定义开始的行/列号(或文件中的字节偏移量)

代码中的实际指令与我的目的无关.

我期待很多人说我应该使用正则表达式(甚至Flex&Bison),但这些并不是真正有效的,因为我需要正确处理预处理器和模板的东西.

Geo*_*che 5

听起来像gcc-xml的工作与c ++ xml-library或你选择的xml友好的脚本语言相结合.