c++ - 如何从 C++ 源代码中提取所有类型定义、结构和 union

标签 c++ struct extract typedef unions

我继承了一个包含数百个文件的 Visual Studio 项目。

我想从每个 .h/.cpp 文件中提取所有类型定义、结构和 union ,并将结果放入一个文件中。

每个 typdef/struct/union 都应该在结果文件中占一行。这将使排序变得容易得多。

typdef int myType;
struct myFirstStruct { char a; int b;...};
union Part_Number_Serial_Number_Part_2_Response_Message_Type {struct{Message_Response_Head_Type Head; Part_Num_Serial_Num_Part_2_Report_Array Part_2_Report; Message_Tail_Type 尾部;} 数据; BYTE byData[140];myUnion;
结构 { bool c; int d;...mySecondStruct;

我的问题是,我不知道使用正则表达式查找什么(typedef/structs/unions 的语法)。 我不敢相信以前没有人这样做过(我用谷歌搜索但没有找到任何相关信息)。

有人知道这些的正则表达式吗? (注意一些被注释掉使用//其他/* */)

或实现此目的的工具。

编辑:
我正在考虑自动生成源代码和/或用于修改使用底层 typedef/struct/union 的消息的对话框的想法。我打算使用输出生成一个可用于此原因的 XML 文件。

这些的源代码是用 C/C++ 编写的,几乎在我所有的项目中都用到了。这些项目通常不是 C/C++。通过使用 XML 版本,我只需要在一个地方更新/添加 typedef/struct/union,所有项目都能够自动生成源和/或对话框。

最佳答案

除了某种文档工作之外,我无法想象这样做的目的。如果那是您正在寻找的东西,我建议您使用 doxygen。

为了回答您的问题,我严重怀疑任何数量的正则表达式是否足够。您需要做的实际上是解析代码。我听说过那里有一个用于构建编译器和 C++ 工具的库,可以提供解析方面的功能,但很抱歉,我忘记了名字。我知道它在那里,所以我会开始搜索它。

关于c++ - 如何从 C++ 源代码中提取所有类型定义、结构和 union ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2730817/

相关文章:

c++ - 使用智能指针释放内存

android - 使用代码从 PDF 中提取文本

c - 无法从以指针作为参数的函数内的主方法引用指针

c++ - 循环指针数组

excel - 将字符串中的一个字符替换为另一个字符

c - 使用微 Controller 提取根

c++ - 将使用 "new"分配的内存传递给 C 库是否安全?

c++ - 命名空间中的分号。必要的?

c++ - Linux 中的 _wsystem 等价物是什么

c - 逐条记录地从二进制文件中读取数据