韩天峰
|
d919ee280c
|
fix(php): 修复抽象类方法调用和实例化错误检查
- 添加了抽象类不能被实例化的检查,在编译时抛出错误
- 修复了方法准备逻辑,确保抽象方法在非抽象类中的正确验证
- 更新了测试期望输出以匹配新的错误格式
- 优化了错误堆栈跟踪的显示格式
|
5 months ago |
韩天峰
|
3dc79d2074
|
fix(parser): 修复抽象类实例化和空语句处理问题
- 添加抽象类无法实例化的测试用例
- 修复doc注释解析器返回空数组的问题
- 添加对Stmt_Nop语句类型的处理支持
- 确保预处理器正确处理空语句类型
|
7 months ago |
韩天峰
|
43b9797df8
|
test(classes): 添加魔术方法相关测试用例
- 添加 __call 方法异常处理测试
- 添加 __set 和 __get 魔术方法功能测试
- 添加魔术方法签名检查测试
- 添加抽象类和抽象方法调用测试
- 添加对象转数组键名转换测试
- 添加赋值操作符属性测试
- 添加数据损坏相关测试
fix(compiler): 禁止在 echo 中使用赋值表达式
- 在 parseEcho 方法中检测赋值表达式并报错
- 修复属性赋值操作符解析逻辑
refactor(stub): 优化全局变量默认值处理
- 统一数组类型默认值处理方式
- 移除特殊空数组处理逻辑
feat(magic): 添加魔术方法参数数量检测机制
- 实现 MagicMethodDetector trait
- 集成到 Translator 类中使用
|
7 months ago |
韩天峰
|
66249916f5
|
fix(php): 修复$this变量重新赋值检查并添加类功能测试
- 添加对$this变量重新赋值的错误检查,防止Cannot re-assign $this错误
- 新增destructor异常处理测试用例验证析构函数中的异常捕获
- 添加工厂模式测试用例验证对象创建功能
- 新增final方法测试用例验证最终方法重写规则
- 添加abstract与final冲突测试用例验证编译时错误处理
- 新增__toString与__destruct交互测试用例验证字符串转换功能
|
7 months ago |
韩天峰
|
a6826d5fd0
|
feat(compiler): 添加PHP语法错误处理和类常量重复定义检查
- 在编译器中引入SyntaxError异常类用于处理PHP语法错误
- 修改预处理器捕获PHP解析错误并转换为SyntaxError异常
- 实现类常量重复定义的检测逻辑并抛出致命错误
- 添加多个测试用例验证类常量相关错误场景
- 更新编译器跳过包含语法错误的文件处理流程
|
7 months ago |
韩天峰
|
d90bf8a5fd
|
feat(compiler): 添加类常量支持和优化代码生成
- 引入 NodeAbstract 类型用于对象转换
- 移除 Stmt_Nop 语句的空注释生成
- 为 Foreach 循环体添加前置语句解析
- 简化对象类型检查逻辑
- 添加多个类常量测试用例
- 在预处理器和翻译器中处理 Stmt_Nop 语句类型
- 完善类常量声明、继承和访问功能
|
7 months ago |
韩天峰
|
25e567b3db
|
feat(php): 添加类定义功能支持
- 实现了 StaticPropertyFetch 类型检查方法
- 扩展了 ClassDef 构造函数以支持 flags 参数
- 添加了类继承时对 final 类的检查逻辑
- 更新了示例文件 call3.php 中的类结构
- 增加了多个类相关的测试用例文件
- 修改了后置操作解析逻辑以支持静态属性访问
- 在编译器基类中添加了类声明的错误处理
- 实现了对象包装器数组初始化
- 添加了对类可见性构造函数的支持测试
- 更新了接口定义的构造函数实现
|
7 months ago |
韩天峰
|
4ed56de30e
|
feat(php): 实现PHP编译器对引用参数的支持
- 修改CompilerBase.php以支持函数引用参数的正确处理
- 添加Reflection::isReferenceArg方法用于检查函数参数是否为引用类型
- 在处理函数调用时针对引用参数创建临时变量并正确传递引用
- 扩展支持对象属性获取作为引用参数的功能
- 添加iterators_006.phpt和iterators_007.phpt测试用例验证迭代器功能
- 添加ref_prop.php示例文件展示引用属性功能
- 重构多个算法示例文件以改进代码结构和可读性
|
7 months ago |
韩天峰
|
715abf458d
|
refactor(php): 重构 foreach 循环解析逻辑以支持对象迭代器
- 将原 parseForeach 方法拆分为 parseForeach 和 parseForeachArray 两个方法
- 添加对 Iterator 和 IteratorAggregate 接口的支持
- 实现对象属性遍历的备用方案,使用 get_object_vars 函数
- 添加新的测试用例 iterators_004.phpt 验证迭代器功能
- 添加新的测试用例 iterators_005.phpt 验证 Traversable 接口实现检查
- 为对象迭代创建临时变量并设置正确的类型标识
|
7 months ago |
韩天峰
|
749b4ec00d
|
修复迭代器实现,continue 时执行 next()
|
7 months ago |
韩天峰
|
c9d6e93f40
|
支持 Iterator/IteratorAggregate 对象 foreach 操作
|
7 months ago |
韩天峰
|
689b59bbda
|
处理继承或实现内置类和接口
|
7 months ago |
韩天峰
|
f8100988c4
|
update mixed
|
7 months ago |
韩天峰
|
bdea6f77cc
|
添加类的单元测试
|
7 months ago |