Files
TransPyV/App/lib/core/LlvmCodeGenerator.py

46 lines
1.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 __future__ import annotations
from lib.core.LLVMCG.BaseGen import BaseGenMixin
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
class LlvmCodeGenerator(
BaseGenMixin,
TypeConvertMixin,
StructGenMixin,
MemoryOpsMixin,
ExprGenMixin,
FuncGenMixin,
VaArgMixin,
):
"""LLVM IR 代码生成器
通过 Mixin 模式组合各功能模块。
实际方法实现分布在 lib/core/LLVMCG/ 下的各模块中。
"""
#builder: ir.IRBuilder = None
#_Trans: LlvmGeneratorMixin = None
pass
# 向后兼容:重新导出常量和辅助类
__all__: list[str] = ['LlvmCodeGenerator', 'VaArgInstruction']