gpt4 book ai didi

python - 使用 Clang 绑定(bind)提取类型字符串

转载 作者:行者123 更新时间:2023-11-28 18:49:21 25 4
gpt4 key购买 nike

我正在编写一个 python 脚本(使用 python clang 绑定(bind))来解析 C header 并提取有关函数的信息:名称、返回类型、参数类型。

我在提取函数名称方面没有问题,但我找不到将 clang.cindex.Type 转换为 C 类型字符串的方法。 (例如 clang.cindex.TypeKind.UINTunsigned int)

目前,作为临时解决方案,我有一个字典 clang.cindex.TypeKind -> C type string 和处理指针和 const 限定符的代码,但我没有找到提取方法结构名称。

是否有通用的方法来获取 clang.cindex.Type 的 C 定义?如果没有,如何获取 clang.cindex.TypeKind.RECORDclang.cindex.TypeKind.FUNCTIONPROTO 类型的 C 类型字符串?

最佳答案

对于RECORD,函数get_declaration()指向类型的声明(一个unionenum, struct, 或 typedef);获取节点的拼写返回其名称。 (显然,请注意区分 TYPEDEF_DECL 与底层声明类型。)

对于 FUNCTIONPROTO,您必须结合使用 get_result()get_arguments()

关于python - 使用 Clang 绑定(bind)提取类型字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15388961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com