{"reset_visible_structs": "重置可见性状态(每个文件翻译前调用)\n\n pool: 内存分配器(严格模式下创建 HashTable)\n strict: 1=严格模式(用户文件),0=宽松模式(includes 文件)\n ", "add_visible_struct": "添加可见结构体名(类定义时和 from-import 时调用)", "is_struct_visible": "检查结构体是否可见,返回 1=可见 / 0=不可见", "init_struct_table": "初始化结构体注册表,返回 1 成功", "_get_struct_entry": "获取第 i 个结构体条目", "_get_field_entry": "获取结构体中第 i 个字段条目", "register_struct": "注册结构体类型,返回 StructEntry 指针\n\n 用类型指针去重(is 比较),不用类名去重。\n 这样跨模块同名类可以共存,各自有独立的字段定义。\n sha1 参数在注册时直接设置 ModuleSha1(避免 set_struct_sha1 找错 entry)。\n ", "set_struct_sha1": "设置结构体所属模块的 SHA1,返回 1=成功 / 0=失败", "get_struct_sha1": "获取结构体所属模块的 SHA1,返回 None=无 SHA1", "add_field": "向结构体添加字段,返回字段索引(-1 失败)\n\n default_val: 字段默认值 AST 节点(可选,None=无默认值)\n annot_class_name: 原始类型注解的类名(可选,用于联合类型字段的方法调用解析)\n ", "find_struct": "按类名查找结构体,返回 StructEntry 或 None", "find_struct_by_module": "按类名 + SHA1 查找结构体,返回 StructEntry 或 None\n\n SHA1 非 None 时:精确匹配 name+sha1,未找到返回 None(不回退,避免跨模块同名找错)\n SHA1 为 None 时:回退到 find_struct(name) 按类名查找第一个\n ", "find_struct_by_type": "按类型指针查找结构体(is 比较),返回 StructEntry 或 None", "lookup_field": "按结构体类型和字段名查找字段信息\n\n 两遍查找策略(跨模块同名类冲突的根本修复):\n 第一遍: 类型指针 is 身份比较(最高优先级,类型唯一确定 entry)\n 第二遍: 名称回退(is 未匹配时,按类名/strstr 匹配,字段未找到时 continue)\n ", "lookup_field_by_class": "按类名和字段名查找字段信息\n\n 优先用 SHA1 匹配(跨模块同名类区分),无 SHA1 时按类名查找第一个\n ", "get_struct_type": "按类名获取结构体的 LLVM 类型", "get_field_by_index": "按类名和字段索引获取字段信息", "struct_has_defaults": "检查结构体是否有任何带默认值的字段,返回 1=有 / 0=无", "_is_struct_type": "检查 ty 是否是 Struct 类型(独立函数,规避嵌套 match 编译器 BUG)", "get_struct_type_from_value": "从 Value 的类型推断结构体类型", "mark_as_union": "标记已注册的结构体为联合体,返回 1=成功 / 0=失败", "is_union_by_name": "按类名检查是否为联合体,返回 1=是 / 0=否", "is_union_by_type": "按类型指针检查是否为联合体,返回 1=是 / 0=否\n\n 先尝试类型指针 == 比较,失败时回退到名称匹配\n ", "mark_as_oop": "标记已注册的结构体为 OOP,返回 1=成功 / 0=失败", "is_oop_by_name": "按类名检查是否为 OOP 结构体,返回 1=是 / 0=否", "mark_has_init": "标记结构体拥有 __init__ 方法,返回 1=成功 / 0=失败", "has_init_by_name": "按类名检查是否有 __init__ 方法,返回 1=有 / 0=无", "mark_has_new": "标记结构体拥有 __new__ 方法,返回 1=成功 / 0=失败", "has_new_by_name": "按类名检查是否有 __new__ 方法,返回 1=有 / 0=无", "get_class_name_by_type": "按类型指针查找类名,返回类名字符串或 None", "_extract_struct_name": "从 LLVMType 提取 Struct 变体的 Name 字段,返回 None 非 Struct", "mark_has_vtable": "标记结构体拥有虚表,返回 1=成功 / 0=失败", "has_vtable_by_name": "按类名检查是否有虚表,返回 1=有 / 0=无", "mark_novtable": "标记结构体为 NoVTable,返回 1=成功 / 0=失败", "is_novtable_by_name": "按类名检查是否为 NoVTable,返回 1=是 / 0=否", "set_parent_name": "设置结构体的父类名,返回 1=成功 / 0=失败", "get_parent_name": "获取结构体的父类名,返回 None=无父类", "set_vtable_methods": "设置虚表方法名数组,返回 1=成功 / 0=失败", "get_vtable_method_index": "获取方法在虚表中的索引,返回 -1=未找到", "get_vtable_method_count": "获取虚表方法数量", "get_vtable_method_name": "获取虚表中第 idx 个方法名,返回 None=越界", "get_field_count": "获取结构体字段数量,返回 -1=未找到", "get_field_name_ptr": "获取 FieldEntry 的字段名,返回 None=未设置", "get_field_type_ptr": "获取 FieldEntry 的字段类型,返回 None=未设置", "get_field_default_ptr": "获取 FieldEntry 的默认值 AST 节点,返回 None=无默认值", "get_field_annot_class_name": "获取 FieldEntry 的原始类型注解类名,返回 None=未设置"}