韩天峰
|
46e15ca247
|
feat(compiler): 添加对 Match 表达式和枚举的支持
- 在 CompilerBase 中添加了对 Expr_Match 节点的解析支持
- 修改 parseTernary 方法参数类型为 Node\Expr\Ternary
- 添加了 parseMatch 方法用于处理 Match 表达式
- 在 Preprocessor 中添加对 Stmt_Enum 和 Stmt_EnumCase 的预处理支持
- 扩展 prepareClass 方法以支持枚举类型的处理
- 在 Translator 中添加对 Stmt_Enum 的翻译支持
- 修改 parseClass 方法以正确处理枚举定义
- 添加测试文件 closure_016.phpt 和 closure_017.phpt 验证闭包功能
- 添加枚举示例文件 enum1.php 展示枚举用法
|
7 months ago |
韩天峰
|
bd06dcf0a5
|
fix(compiler): 修复返回语句缺少分号及未定义变量错误提示问题
- 修复了编译器中return语句缺少分号的问题
- 修正了未定义变量错误提示中的变量名显示格式
- 统一使用errorUndefinedVariable方法处理闭包中未定义变量的情况
- 添加了对closure_011和closure_013测试用例的支持
|
7 months ago |
韩天峰
|
67427f342d
|
feat(closure): 添加闭包功能支持并完善相关测试用例
- 添加了嵌套lambda表达式的支持,实现类中的闭包嵌套功能
- 实现了preg_replace_callback中lambda表达式的使用场景
- 支持在lambda内部使用静态变量的功能
- 完善了闭包自调用的实现逻辑
- 添加了四个新的闭包测试用例(closure_007-010)
- 在编译器基类中增加了inClosure状态标识
- 修复了return语句在闭包中的处理逻辑
- 更新了闭包函数体的返回值处理方式
|
7 months ago |
韩天峰
|
288f1dddef
|
feat(closure): 实现闭包功能支持类内部方法访问$this
- 添加closure_005.phpt和closure_006.phpt测试用例验证闭包功能
- 修改CompilerBase.php中函数定义相关属性为可空类型并添加methodDef
- 实现resetMethod方法重置方法定义状态
- 优化函数参数和局部变量处理逻辑
- 添加genLocalVarDecl和genReturnCode方法生成变量声明和返回代码
- 改进闭包解析逻辑支持返回类型声明
- 更新newClosure调用传递this_参数支持类内闭包访问实例
- 重构MethodDef构造函数移除FunctionDef参数依赖
|
7 months ago |
韩天峰
|
51939af82f
|
test(closures): 添加闭包词法变量测试用例并修复引用转换逻辑
- 添加 closure_003.phpt 测试本地作用域词法变量的闭包功能
- 添加 closure_004.phpt 测试作用域生命周期词法变量的闭包功能
- 修改 convertToRef 方法修复原生类型变量引用转换检查逻辑
- 更新编译器基类中的引用转换实现以正确处理变量类型检查
|
7 months ago |
韩天峰
|
b3dc15a55f
|
feat(closures): 实现闭包功能支持
- 添加了闭包类型常量 php::Args
- 实现了原生类型检查方法 isNativeType
- 添加了引用转换方法 convertToRef 处理变量引用
- 修改闭包函数签名使用 php::Args 类型
- 实现了闭包 use 子句中引用传递的支持
- 添加了两个闭包测试用例验证基本功能和引用传递
|
7 months ago |