# LLVM 代码生成器主类 # 通过 Mixin 模式组合各功能模块,保持向后兼容的导入路径 # # 拆分后的模块位于 lib/core/LLVMCG/ 目录下: # - BaseGen.py: __init__、平台解析、名称修饰、函数查找 # - TypeConvert.py: 类型转换(CType -> LLVM IR) # - StructGen.py: 结构体生成(struct/vtable) # - MemoryOps.py: 内存操作(alloca/Load/store) # - ExprGen.py: 表达式生成(常量、二元运算、返回) # - FuncGen.py: 函数处理(参数调整、成员偏移) # - VaArg.py: 变长参数处理 from lib.core.LLVMCG.BaseGen import BaseGenMixin, VaArgInstruction from lib.core.LLVMCG.TypeConvert import TypeConvertMixin from lib.core.LLVMCG.StructGen import StructGenMixin from lib.core.LLVMCG.MemoryOps import MemoryOpsMixin from lib.core.LLVMCG.ExprGen import ExprGenMixin from lib.core.LLVMCG.FuncGen import FuncGenMixin from lib.core.LLVMCG.VaArg import VaArgMixin # from lib.core.Translator.LlvmGenerator import LlvmGeneratorMixin import llvmlite.ir as ir class LlvmCodeGenerator( BaseGenMixin, TypeConvertMixin, StructGenMixin, MemoryOpsMixin, ExprGenMixin, FuncGenMixin, VaArgMixin, ): """LLVM IR 代码生成器 通过 Mixin 模式组合各功能模块。 实际方法实现分布在 lib/core/LLVMCG/ 下的各模块中。 """ #builder: ir.IRBuilder = None #_Trans: LlvmGeneratorMixin = None pass # 向后兼容:重新导出常量和辅助类 __all__ = ['LlvmCodeGenerator', 'VaArgInstruction']