"""
LLVMCG 包 - LLVM 代码生成器模块

将 LlvmCodeGenerator.py 拆分为多个 Mixin 模块：
- BaseGen: 基础设施（__init__、平台解析、名称修饰、函数查找）
- TypeConvert: 类型转换（CType -> LLVM IR 类型）
- StructGen: 结构体生成（struct/vtable 定义与初始化）
- MemoryOps: 内存操作（alloca/Load/store/coerce）
- ExprGen: 表达式生成（常量、二元运算、返回、printf）
- FuncGen: 函数处理（参数调整、成员偏移、函数声明）
- VaArg: 变长参数处理（va_start/va_end/va_arg）
"""

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

__all__ = [
    'BaseGenMixin',
    'TypeConvertMixin',
    'StructGenMixin',
    'MemoryOpsMixin',
    'ExprGenMixin',
    'FuncGenMixin',
    'VaArgMixin',
    'VaArgInstruction',
]
