韩天峰
|
c3f5aca1a8
|
feat(generator): 添加变量名参数支持PHP全局变量初始化
- 为initializeZval方法添加varName参数以支持全局变量赋值
- 在ZVAL初始化后添加php::global_vars映射设置
- 重置ZVAL类型标志确保正确的内存管理
- 更新函数调用以传递变量名称信息
|
7 months ago |
韩天峰
|
8b0c3d2b72
|
refactor(php): 重构PHP编译器基础功能并优化代码结构
- 移除不支持函数列表的硬编码定义
- 添加对不支持函数调用的运行时检查和错误报告
- 简化静态属性和类常量解析中的self关键字处理逻辑
- 修复类方法调用中self关键字的替换逻辑
- 将扩展模块入口声明从static改为全局作用域
- 重写gen_stub.php脚本的主函数结构和命令行参数处理
- 添加类信息和函数信息的独立生成选项
- 优化桩文件生成时的跳过提示输出
- 重构翻译器中的类解析方法实现
- 更新不支持函数列表包含更多动态函数
|
7 months ago |
韩天峰
|
ec106db274
|
refactor(compiler): 将全局变量生成改为扩展生成
- 修改编译器脚本中的文件名从 global_vars.cc 到 extension.cc
- 将 Translator 类中的 genGlobalVars 方法重命名为 genExtension
- 更新编译流程以生成扩展文件而不是全局变量文件
- 调整相关变量命名以反映功能变更
|
7 months ago |
韩天峰
|
9702529c0f
|
feat(compiler): 添加类常量获取支持并优化参数信息处理
- 在 CompilerBase.php 中添加对 Expr_ClassConstFetch 类型的支持
- 修改 getArgInfo 方法签名以接收 Node 参数并添加参数不存在时的错误处理
- 修复三元运算符解析逻辑以正确处理省略中间表达式的情况
- 将 null 常量映射从 nullptr 改为 php::null
- 扩展 hasVar 方法以支持更多变量类型包括静态属性和对象属性
- 添加 parseClassConstFetch 方法用于处理类常量获取表达式
- 在 gen_stub.php 中修复缺少可见性修饰符和参数类型的处理
- 跳过生成 ext_functions 条目当类名不存在时
- 在 Translator.php 中添加存根文件生成的状态检查和错误报告
|
7 months ago |
韩天峰
|
e1bb057420
|
feat(compiler): 添加缓存机制和强制编译选项
- 在Preprocessor类中添加enableCache属性控制缓存功能
- 实现getCppFile和getObjectFile方法用于文件路径处理
- 添加hasCppFileCache方法检查C++文件缓存是否存在
- 在prepare方法中集成缓存检查逻辑跳过已存在的缓存文件
- 在Translator类中添加force参数支持强制编译模式
- 移除原有的hasCache方法并优化convert方法的缓存处理
- 添加hasObjectFileCache方法检查对象文件缓存状态
- 更新compileFile方法集成对象文件缓存检查功能
- 在帮助信息中显示新的force选项说明
|
7 months ago |
韩天峰
|
f3944a5259
|
refactor(compiler): 重构PHP到C++编译器实现
- 修改编译流程,添加对象文件路径管理功能
- 实现缓存检查机制,跳过已存在的编译文件
- 重命名MethodDef中的def属性为functionDef
- 提取表达式类型转换逻辑到独立方法convertExprFromType
- 添加扩展模板文件extension.cc.php,使用模板渲染替代手动代码生成
- 修改main.cc文件结构,使用模块注册方式替代函数注册
- 更新编译参数,添加-Wall编译选项
- 实现方法调用参数传递的动态构建机制
- 优化全局变量初始化和清理函数的实现
|
7 months ago |
韩天峰
|
ecbb00542e
|
fix(compiler): 修复PHP到C++编译器中的类型解析问题
- 在循环中添加键值引用以支持数组元素删除操作
- 当遇到不支持的语法时从列表中移除对应文件
- 添加varTypes属性用于存储变量类型信息
- 为parseType方法添加返回类型声明
- 将未知类型默认处理为对象类型并记录到varTypes中
- 在示例代码中添加测试函数验证类型解析功能
|
8 months ago |
韩天峰
|
ca1ee88d5f
|
支持 class 处理,初步版本
|
8 months ago |
韩天峰
|
53a8e64b03
|
修改 gen_stub.php, 未设置类型默认为 mixed
|
8 months ago |
韩天峰
|
02ce29ba97
|
added gen_stub.php
|
8 months ago |
韩天峰
|
955a3b0e4f
|
refactor(compiler): 优化路径验证逻辑
- 将路径验证和赋值逻辑分离,提高代码可读性
- 使用临时变量存储realpath结果,避免重复调用
- 先验证路径存在性再进行赋值操作
|
8 months ago |
韩天峰
|
c601729ddc
|
feat(translator): 更新编译器生成全局变量和常量功能
- 修改编译器将函数声明生成到构建目录的 include/php_func_decl.h 文件
- 添加全局变量源文件生成功能,输出到构建目录的 global_vars.cc 文件
- 添加 main.cc 文件到源文件列表中
- 将全局常量注册到 PHP 环境中
- 修改链接器合并二进制文件的方式,使用动态对象文件列表
- 添加文件写入安全检查和目录自动创建功能
- 移除独立的链接器脚本文件
- 添加常量示例文件用于测试
|
8 months ago |
韩天峰
|
ba3ffd885f
|
支持 C++ Native 函数注入,stub 存根文件
|
8 months ago |
韩天峰
|
4162b79113
|
try/catch 语法支持
|
8 months ago |
韩天峰
|
ec836bcb31
|
nbody-php-3 算法
|
8 months ago |
韩天峰
|
1a1134d974
|
对象操作,方法调用、静态方法调用、属性读取
|
8 months ago |
韩天峰
|
7c5c716b36
|
支持目录处理
|
8 months ago |
韩天峰
|
a25fe02e09
|
更新
|
8 months ago |
韩天峰
|
f072f944b2
|
函数定义处理
|
8 months ago |
韩天峰
|
765eb75869
|
运算操作符 单元测试
|
8 months ago |
韩天峰
|
f1bbcfe64c
|
优化 Switch 脚本
|
8 months ago |
韩天峰
|
013addcafd
|
Update
|
8 months ago |
韩天峰
|
348641cf01
|
优化运算逻辑代码,左值和右值均为 var 类型时,直接用映射方法而不是转为整数
|
8 months ago |
韩天峰
|
f2d6ee2b63
|
update
|
8 months ago |
韩天峰
|
35e17771d7
|
fib
|
8 months ago |
韩天峰
|
ec25a3cbf0
|
update
|
8 months ago |
韩天峰
|
bf83ceee87
|
update
|
8 months ago |
韩天峰
|
4d75f54c0d
|
update
|
10 months ago |
韩天峰
|
f8830edb3b
|
更新
|
1 year ago |
韩天峰
|
dcb1f79e05
|
支持更多 PHP 语法
|
1 year ago |
韩天峰
|
9acc849e1b
|
php2cpp init
|
2 years ago |
韩天峰
|
5fb2fc1ac5
|
init
|
3 years ago |