我正在编写一个python脚本(使用python-clang绑定),它解析C头并提取有关函数的信息:名称、返回类型、参数类型。在
我在提取函数名方面没有问题,但是我找不到一种将clang.cindex.Type
转换为C类型字符串的方法。(例如clang.cindex.TypeKind.UINT
到{
目前,作为一个临时解决方案,我有一个字典clang.cindex.TypeKind -> C type string
和处理指针和常量限定符的代码,但我没有找到一种方法来提取结构名。在
有没有一种通用的方法来获得clang.cindex.Type
的C定义?如果没有,我如何获得clang.cindex.TypeKind.RECORD
和clang.cindex.TypeKind.FUNCTIONPROTO
类型的C类型字符串?在
对于
RECORD
,函数get_declaration()
指向类型的声明(aunion
,enum
,struct
,或typedef
);获取节点的拼写将返回其名称。(显然,要注意区分TYPEDEF_DECL
与底层声明类型之间的区别。)对于}的组合。在
FUNCTIONPROTO
,必须使用get_result()
和{相关问题 更多 >
编程相关推荐