{"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=未设置"}