韩天峰
|
c3eb2d2f3f
|
refactor(php): 重构 isset 和 empty 表达式解析逻辑
- 将 parseIsset 方法重构为只支持单个变量检查
- 添加 parseVarCheckExpr 通用方法处理 isset 和 empty 操作
- 移除 parseEmpty 方法中的重复代码逻辑
- 支持静态属性获取表达式的 isset 和 empty 检查
- 更新错误消息模板以反映正确的操作符名称
- 添加 isset-test.phpt 测试文件验证功能
- 扩展 empty-test.phpt 包含静态属性测试用例
|
7 months ago |
韩天峰
|
423c10fe47
|
feat(compiler): 实现空值检查表达式解析功能
- 添加了对复杂嵌套表达式的 empty() 函数支持
- 实现了数组维度获取和属性访问的解析逻辑
- 添加了 SkipException 类用于跳过错误节点处理
- 优化了全局变量访问的错误处理机制
- 增强了类型转换和函数调用的参数处理
- 更新了测试用例验证空值检查功能正确性
- 修复了编译器在处理未定义类时的错误判断
|
7 months ago |
韩天峰
|
57e1790639
|
feat(compiler): 实现对静态属性和常量的原生支持
- 添加 hasConstant、getMethod 和 getConstant 方法到 ClassDef 类
- 在 CompilerBase 中实现静态属性和常量的原生解析功能
- 添加 parseNativeStaticPropertyFetch 和 findNativeStaticProperty 方法
- 修改 getFuncPtr 方法以支持宏参数
- 实现对类常量和静态属性的直接访问优化
- 添加对后置操作符中属性获取的支持
- 更新 examples/micro_bench.php 测试用例以验证功能
- 在 PropertyDef 中添加 isStatic 方法判断静态属性
- 重构预处理器对常量定义的处理逻辑
|
7 months ago |
韩天峰
|
38110f67d5
|
refactor(php): 重构PHP到C++编译器实现细节
- 更新PHP CS Fixer配置中的类属性分离规则
- 简化ArgInfo、ClassDef、ClassLikeDef等数据结构定义
- 重命名CLASS_ENTRY_MAP为CLASS_MAP并更新相关引用
- 移除多余变量声明并优化全局变量处理逻辑
- 实现超级全局变量检测和初始化功能
- 添加对$GLOBALS数组访问的支持
- 优化函数调用代码生成逻辑
- 添加全局变量测试用例验证功能
- 清理无用常量和变量声明简化代码结构
|
7 months ago |
韩天峰
|
1c074d140e
|
feat(php): 实现PHP右结合赋值操作符支持
- 添加isArrayDimFetch方法用于检查数组维度获取表达式
- 实现parseRightAssociativeAssign方法处理右结合赋值链
- 重构parseAssign方法以支持嵌套赋值表达式解析
- 更新parseArrayDimStore方法处理空维度读取错误
- 添加右结合赋值功能的测试用例和示例文件
|
7 months ago |
韩天峰
|
9465caea14
|
feat(php): 添加属性访问控制和对象类型检查功能
- 在 ClassDef 中添加 hasProperty 和 getProperty 方法用于属性访问
- 在 CompilerBase 中添加 isTypedObject 方法检查对象类型
- 将 offsetGetIndirect 替换为 item 方法统一访问接口
- 实现 getPropertyIdentifier 方法支持属性标识符解析
- 添加对私有/受保护属性访问权限的检查和错误处理
- 将 getPropertyIndirect 替换为 attr 方法进行属性访问
- 添加属性引用访问支持通过 attrRef 方法实现
- 更新 identifierToStr 参数类型为 NodeAbstract
- 在 PropertyDef 中添加访问修饰符检查方法(isPrivate/isProtected/isPublic)
- 添加属性引用测试用例验证功能正确性
|
7 months ago |
韩天峰
|
d3360d2f38
|
fix(php): 修复数组类型返回和include表达式处理
- 将 Expr_Array 的类型返回从 'php::Array' 改为 self::TYPE_ARRAY
- 将字符串 'array' 的类型映射从 'php::Array' 改为 self::TYPE_ARRAY
- 更新 parseInclude 方法参数类型为 Node\Expr\Include_
- 添加对不同 include 类型 (include, require, include_once, require_once) 的支持
- 在 include 表达式中传递正确的类型参数
- 添加 include 测试用例和相关测试文件
|
7 months ago |
韩天峰
|
f38098523f
|
refactor(compiler): 重构PHP编译器参数类型解析逻辑
- 移除未使用的 $varTypes 属性
- 将 parseType 方法重命名为 parseParameterType 并添加参数支持
- 修复 void 类型作为参数类型的错误处理
- 更新模块注册方式从临时模块到持久模块
- 添加目标名称中特殊字符的替换处理
- 为参数类型解析添加更准确的对象类型映射
|
7 months ago |
韩天峰
|
11828d3b5a
|
feat(compiler): 添加对 any 函数的支持
- 在编译器中实现 any 函数的解析和处理逻辑
- 添加对 var 类型常量的支持
- 扩展测试用例以验证 any 函数的功能
|
7 months ago |
韩天峰
|
e824c5d7c0
|
fix(compiler): 修复变量赋值和属性访问的类型检查问题
- 添加了对属性赋值操作的类型检测支持
- 实现了模运算符的类型安全处理
- 添加了布尔值转义函数 escapeBool
- 修改 parsePropertyFetch 方法以支持赋值操作标识
- 优化 foreach 循环中的变量检查逻辑
- 添加引用赋值的类型验证
- 将 writeFile 方法改为公有以便外部调用
- 添加 checkVar 方法进行变量类型安全检查
- 更新测试文件中的变量命名以避免冲突
- 修复对象链接测试中的属性访问问题
|
7 months ago |
韩天峰
|
58f9cb4c28
|
fix(php): 修复PHP引用类型处理问题
- 将TYPE_REF常量值从'php::Var'更改为'php::Ref'
- 修改引用参数传递逻辑,使用'&'操作符而不是解引用
- 将post-increment操作符错误处理从parsePostOp改为fatalError
- 修复变量赋值时的引用处理逻辑
- 添加引用操作符测试用例
|
7 months ago |
韩天峰
|
abb5dbc6d8
|
fix(php): 修复后置递增递减操作符解析问题
- 使用 str_repeat($op, 2) 正确生成后置操作符代码
- 修复非变量表达式的错误处理逻辑
- 添加后置递增递减操作符的测试用例
|
7 months ago |
韩天峰
|
f48b1f4781
|
refactor(php): 重构PHP编译器中的赋值表达式处理逻辑
- 添加 inAssignExpr 属性来跟踪赋值表达式状态
- 修改 parseAssign 和 parseAssignRef 方法以设置赋值表达式标志
- 将 parseAssign 中的数组维度赋值逻辑提取到 parseAssignArrayDim 方法
- 将属性获取逻辑从 offsetGet 更改为 offsetGetIndirect
- 移除不正确的静态属性获取处理代码
- 添加 object link 和 property assign op 测试用例
|
8 months ago |
韩天峰
|
f8100988c4
|
update mixed
|
8 months ago |
韩天峰
|
0033a243d0
|
添加更多测试,php std 标准库测试,支持 list 语法
|
8 months ago |
韩天峰
|
73f84217db
|
支持静态类属性读写语法
|
8 months ago |
韩天峰
|
5f14139ace
|
Native 常量处理
|
8 months ago |
韩天峰
|
fb10132b6c
|
动态函数调用语法
|
8 months ago |
韩天峰
|
739152ba14
|
支持语法 **=
|
8 months ago |
韩天峰
|
4162b79113
|
try/catch 语法支持
|
8 months ago |
韩天峰
|
d2f02f4922
|
文件操作测试
|
8 months ago |
韩天峰
|
1a1134d974
|
对象操作,方法调用、静态方法调用、属性读取
|
8 months ago |
韩天峰
|
c9c558103c
|
数组操作处理
|
8 months ago |
韩天峰
|
bf69a539a1
|
字面量字符串优化,增加字面量表
|
8 months ago |
韩天峰
|
a25fe02e09
|
更新
|
8 months ago |
韩天峰
|
f072f944b2
|
函数定义处理
|
8 months ago |
韩天峰
|
72b7ebdfae
|
单测
|
8 months ago |
韩天峰
|
6ac8494173
|
update
|
8 months ago |