# il2lua **Repository Path**: wuchunlin_admin/il2lua ## Basic Information - **Project Name**: il2lua - **Description**: No description available - **Primary Language**: C# - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-04-18 - **Last Updated**: 2022-12-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README il2lua === > 「 .net平台的IL代码转lua代码的编译器 」 ## How to test - Pre-requirements: 1. Windows 7 or later, 64-bit system; 2. Visual Studio **2017**, C# and C++ desktop dev environments; - Open ``il2cpp.sln``; - Set ``test`` as startup project; - Run. - You can add your test code into ``CodeGenTests.cs`` like this: ```CSharp [CodeGen] static class MyTest { // return 0 means PASS, otherwise means FAIL public static int Entry() { int a = 1, b = 2; if (a + b != 3) return 1; return 0; } } ``` - Run ``test`` project to test your code. ## 交流群 - ``QQ:548409690`` ## 已实现的特性 - [x] 类型/方法/字段的引用分析, 提取最小依赖子集 - [x] 虚方法调用与虚表绑定 - [x] 接口与基类方法的显式重写 - [x] 协变/逆变分析 - [x] 内嵌保守式垃圾回收器 - [x] 静态构造函数 - [x] try/catch/finally/fault 异常块的解析与代码生成 - [x] 一维数组/多维数组的代码生成 - [x] 枚举类型处理 - [x] 字符串常量代码生成 - [x] 可空类型代码生成 - [x] 显式字段布局和结构体长度 - [x] 方法委托 - [x] C++ 代码编译工具 - [x] 数组读写指令 - [x] 栈操作指令 - [x] 常量载入指令 - [x] 方法调用指令 - [x] 变量/参数/字段读写指令 - [x] 条件与分支指令 - [x] 比较指令 - [x] 数值转换指令 - [x] 数值运算指令 - [x] 引用和值类型对象操作指令 - [x] 指针读写指令 - [x] 异常处理指令 - [x] 装箱/拆箱指令 - [x] 溢出检查指令 ## 明确不支持的特性 - [x] 运行时创建新类型 (TypeBuilder.CreateType) - [x] 运行时生成并执行机器码 (Emit/Expression Trees) - [x] 运行时加载 .NET DLL 并实例化其中的类型 - [x] 运行时实例化不存在的泛型展开 (只支持编译期存在的泛型展开) - [x] 运行时增加/删除/修改反射信息 - [x] 递归的泛型参数类型展开 - [x] 封送非静态方法委托 **正在如火如荼地开发中...**
**求 star 求测试~**