【发布时间】:2012-08-01 19:49:39
【问题描述】:
我正在编写一个 C/C++ 头文件解析器,它将 .h 文件转换为特定的 XML 格式。
我的结构定义如下:
struct struct1
{
struct structchild1
{
float child2;
} child3;
unsigned int child3;
};
我希望将上述结构表示为:
<tag1= "struct1">
<name>struct1</name>
<input_type>byte</input_type>
<method></method>
<tag_ref = "structchild1">
<name>child3</name>
<tag2 = "child2">
<name>child2<name>
<size>4<size>
</tag2>
</tag_ref>
<tag2= "child3">
<name>child3</name>
<len>4</len>
<value> </value>
</tag2>
</tag1>
我的方法:我使用的是 2 阶段过程,我首先将头文件转换为 gccXML 格式,然后使用 xerces-C++ for Visual Studio 将结果打印到 XML 文件中.我能够成功解析除嵌套结构或联合之外的所有内容(枚举、typedef 等)。 somebpdy 可以请帮助我了解如何执行此操作吗?谢谢!
【问题讨论】:
-
所以你已经有了来自声明的 XML。大概您的“新形状”只是从 GCCXML 到您的映射。您实际上并没有描述您的问题,这可能是在定义该映射或实现它时。 (有一个问题的提示叫做“大小”;GCCXML 输出中是否提供了这个提示?GCCXML 应该输出程序结构信息,而不是实现细节)。
标签: c++ parsing header xml-parsing xerces-c