韩天峰
|
68155d0793
|
feat(compiler): 添加参数类型检查和对象类型验证功能
- 在ArgInfo类中新增class属性用于存储类型信息
- 修改parseParameterType方法以传递ArgInfo对象并设置类名
- 添加对stdClass和ArrayObject类型的测试用例
- 实现参数类型验证逻辑,确保对象类型匹配
- 增强类型转换过程中对对象类型的检测和错误提示
- 优化数组维度赋值的处理逻辑
|
5 months ago |
韩天峰
|
096a92a62e
|
feat(php): 添加对内部类继承和可空参数的支持
- 在 ArgInfo 类中添加 nullable 属性用于标识参数是否可空
- 在 ClassDef 类中添加 inheritedFromInternalClass 属性用于标记是否继承自内部类
- 实现对继承自内部类的动态方法调用支持
- 添加 Reflection::isInternalClass 方法用于判断类是否为内部类
- 添加 Reflection::hasMethod 方法用于检查类是否存在指定方法
- 在参数解析时设置 nullable 标志
- 修改编译器基类以支持内部类继承的错误处理
- 更新翻译器以正确处理可空参数的调用逻辑
|
5 months ago |
韩天峰
|
9d5500250d
|
test(named_args): 添加命名参数功能测试用例
- 添加基本命名参数功能测试 (001.phpt)
- 添加跳过可选参数的命名参数测试 (002.phpt)
- 添加混合位置和命名参数的测试 (004.phpt, 005.phpt)
- 在ArgInfo类中添加默认值表达式存储字段
- 在编译器中实现命名参数空洞填充默认值逻辑
- 移除二进制文件名数字前缀处理逻辑
|
5 months ago |
韩天峰
|
35117d5c14
|
feat(compiler): 添加构造方法属性提升支持
- 在 ArgInfo 中添加 property 属性标识参数是否为属性提升
- 引入 PropertyPromotion trait 处理属性提升代码生成
- 在编译器中实现构造方法属性提升的解析和代码生成逻辑
- 支持将 promoted 参数转换为类属性定义
- 生成对应的 this_.setProperty 调用代码
- 更新函数信息解析以处理属性提升参数
|
6 months ago |
韩天峰
|
31a3275ecf
|
feat(compiler): 添加对PHP引用参数的支持
- 在ArgInfo类中新增byRef属性用于标识引用参数
- 重命名parseFunctionDeclaration方法为parseFunctionDecl
- 移除引用参数不支持的限制检查
- 在参数解析时添加对byRef的处理逻辑
- 为闭包函数添加引用参数的错误检查
- 在参数类型转换时添加引用参数的特殊处理
- 更新函数调用时参数获取的逻辑以支持引用参数
- 添加引用参数的测试用例
|
6 months ago |
韩天峰
|
aa6d81d2a7
|
feat(compiler): 添加可变参数支持功能
- 在 ArgInfo 类中添加 variadic 属性用于标识可变参数
- 实现编译器对可变参数的验证逻辑,确保可变参数位于最后位置
- 修改参数类型处理逻辑,将可变参数转换为数组类型
- 更新函数调用参数解析,支持可变参数的展开和传递
- 在翻译器中实现可变参数的 C++ 代码生成逻辑
- 添加遍历可变参数的循环处理机制
- 新增可变参数功能的测试用例和示例文件
- 完善参数列表生成时对可变参数的特殊处理
|
7 months ago |
韩天峰
|
38110f67d5
|
refactor(php): 重构PHP到C++编译器实现细节
- 更新PHP CS Fixer配置中的类属性分离规则
- 简化ArgInfo、ClassDef、ClassLikeDef等数据结构定义
- 重命名CLASS_ENTRY_MAP为CLASS_MAP并更新相关引用
- 移除多余变量声明并优化全局变量处理逻辑
- 实现超级全局变量检测和初始化功能
- 添加对$GLOBALS数组访问的支持
- 优化函数调用代码生成逻辑
- 添加全局变量测试用例验证功能
- 清理无用常量和变量声明简化代码结构
|
7 months ago |
韩天峰
|
2c90437a99
|
style(coding-standard): 移除严格类型声明并调整代码格式
- 将 .php-cs-fixer.dist.php 中的 declare_strict_types 设置为 false
- 从所有 PHP 类文件中移除 declare(strict_types=1) 声明
- 在 CompilerBase.php 中添加缺失的空行以改善代码可读性
- 恢复 Translator.php 中关于 noLiteralStrings 的原始配置逻辑
|
7 months ago |
韩天峰
|
13a5849584
|
代码格式化,命名空间处理
|
7 months ago |
韩天峰
|
3c89f98296
|
code-format
|
8 months ago |
韩天峰
|
f072f944b2
|
函数定义处理
|
8 months ago |
韩天峰
|
35e17771d7
|
fib
|
8 months ago |