韩天峰
|
334594c659
|
feat(compiler): 实现 C++ 标准独立配置功能
- 将 C++ 标准从 cxxflags 中分离,支持 --cxx-std 参数配置
- 添加 project.yml 中的 cxx_std 配置项,支持独立设置标准版本
- 实现 Windows 和 Unix 平台的差异化默认标准(Windows 使用 c++17,Unix 使用 c++14)
- 添加 /NODEFAULTLIB 选项解决 Windows CRT 库冲突问题
- 增加 --debug-info 参数支持,自动禁用优化并生成调试信息
- 更新配置优先级规则文档,明确命令行参数、YAML 配置和默认值的覆盖关系
- 添加 C++ 标准配置指南和调试模式使用说明
- 修复 cxxflags 中标准标志被忽略的问题
|
4 months ago |
韩天峰
|
20436c5e41
|
refactor(php): 重构 MSVC 警告屏蔽机制
- 将硬编码的警告屏蔽改为从 Constants 配置中动态读取
- 添加 MSVC_SUPPRESSED_WARNINGS 常量数组管理所有警告代码
- 扩展警告屏蔽范围,涵盖 Windows SDK 和 PHP SDK 的常见警告
- 在示例项目中添加 MSVC 警告屏蔽说明文档链接
|
4 months ago |
韩天峰
|
b4b735644d
|
feat(php): 添加PHP编译器基础类实现
- 实现了PHP到C++的代码转换核心功能
- 添加了AST节点解析和类型系统映射
- 实现了变量、函数、类的声明和调用处理
- 集成了PHPParser进行语法树解析
- 添加了跨平台编译支持(Windows、Linux、macOS)
- 实现了字面量字符串管理和内存优化
- 添加了全局变量和超全局变量处理
- 实现了魔术方法检测和闭包生成器
- 集成了CLImate库提供命令行界面支持
- 添加了错误处理和调试信息生成功能
- 实现了代码格式化和文件保存功能
|
4 months ago |
韩天峰
|
b1272f47e7
|
feat(php): 添加PHP编译器基础类实现
- 实现PHP到C++的代码转换功能
- 添加表达式解析和类型系统支持
- 集成AST节点处理和代码生成逻辑
- 实现跨平台编译器检测和配置
- 添加PHP版本兼容性检查
- 实现字面量字符串和变量管理
- 添加函数和类定义映射机制
- 实现命名空间和类型声明处理
|
4 months ago |
韩天峰
|
8994813b8b
|
feat(compiler): 添加 Windows GUI 模式编译支持
- 新增 --no-console 参数用于隐藏控制台窗口
- 实现 Windows 子系统编译选项 (/SUBSYSTEM:WINDOWS)
- 添加 mainCRTStartup 入口点配置
- 更新编译器常量定义和参数解析
- 创建 GUI 模式示例程序 hello-gui.php
- 创建控制台模式示例程序 hello-console.php
- 完善 Windows GUI 程序开发文档
- 更新项目 README 说明和使用指南
|
4 months ago |
韩天峰
|
09ea347c11
|
feat(win32-hello): 添加中国时区支持并更新最佳实践指南
- 在 hello-win.php 中添加 date_default_timezone_set('Asia/Shanghai')
- 在 main.php 中添加 date_default_timezone_set('Asia/Shanghai')
- 在 CHINESE_SUPPORT_GUIDE.md 中添加时区设置说明
- 更新最佳实践列表,添加时区设置建议
- 更新 .gitignore 添加 *.obj 文件忽略规则
|
4 months ago |
韩天峰
|
d50aa88504
|
docs(examples): 添加 Win32 Hello World 示例项目和相关文档
- 添加 Windows 中文支持指南文档
- 添加 PHPX 编译器 C++ 函数导出规范文档
- 添加编码指南文档
- 创建 hello-win.php 主程序文件
- 创建 main.php 简单消息框示例文件
- 创建 window.php 完整窗口示例文件
- 添加项目配置文件 project.yml
- 创建 README.md 项目说明文档
- 添加 C++ Windows API 封装实现文件 winapi.cc
- 添加 C++ 函数声明桩文件 winapi.stub.php
|
4 months ago |
韩天峰
|
b1df315299
|
feat(compiler): 支持 PHP 嵌入模式并改进 Windows 编译配置
- 添加 php8embed.lib 支持作为嵌入模式首选库文件
- 更新 Windows 库文件查找顺序以支持嵌入模式
- 区分 C 和 C++ 文件的编译选项处理
- 将宏定义应用限制在编译阶段而非链接阶段
- 更新 Windows 链接器使用 link.exe 替代编译器
- 添加 .dll 和 .exe 文件到 .gitignore
- 修复 PHP ZTS 检测逻辑移除严格比较
- 移除示例中的环境变量输出以减少冗余信息
- 添加 C++ 异常处理支持和标准版本指定
|
4 months ago |
韩天峰
|
15f9d35c69
|
refactor(examples): 优化基准测试和协程示例代码
- 在 simplecall 函数中添加计算总和并打印结果
- 统一函数定义的大括号格式
- 修复 matrix 和 sieve 函数的参数类型声明
- 调整 return 语句的括号格式
- 使用 Swoole\Coroutine\run 函数别名简化调用
|
4 months ago |
韩天峰
|
c4b7e3022a
|
fix(php): 修复函数use语句解析问题
- 修正useFunctions映射返回值,确保函数名正确拼接
- 修复use语句类型判断逻辑,处理未知类型情况
- 添加any函数polyfill支持
- 新增函数use测试用例验证功能正确性
|
4 months ago |
韩天峰
|
935aeb8b1b
|
refactor(php): 重构变量赋值类型检查逻辑
- 将复杂的类型检查条件判断提取到独立的 checkVarAssignExpr 方法中
- 移除 CompilerBase.php 中的冗长条件判断逻辑
- 在 MagicMethodDetector.php 的 __toString 检查中添加严格类型参数
- 添加 str.php 示例文件用于测试字符串类型转换
- 更新 myext/test.php 添加环境变量访问示例
- 在 Translator.php 中添加 clang-format 版本检测逻辑
|
4 months ago |
韩天峰
|
eba8964d34
|
fix(php): 解决方法调用时的类型检查和反射问题
- 在方法调用前添加变量类型检查,防止对非对象类型调用方法
- 修复反射中获取方法返回类型的逻辑,改进变量命名避免冲突
- 添加对字符串类型参数调用对象方法的错误检测和提示
|
4 months ago |
韩天峰
|
2d0baeaea9
|
feat(examples): 添加 Swoole 相关示例代码
- 新增 Swoole 协程运行示例文件 co.php
- 添加错误常量引用示例文件 const-ref.php
- 创建 Swoole HTTP 服务器示例文件 http.php
- 实现基本的协程运行功能
- 集成 HTTP 服务器请求处理逻辑
- 添加异常处理和响应状态管理
|
4 months ago |
韩天峰
|
0293b28148
|
feat(compiler): 添加环境变量支持并优化打包流程
- 在编译器中添加 _ENV 全局变量数组支持
- 更新示例程序以演示环境变量访问功能
- 新增 package.sh 脚本实现自动化打包流程
- 集成 UPX 压缩优化二进制文件大小
- 完善打包脚本中的文件检查和错误处理机制
|
4 months ago |
韩天峰
|
0e319c48de
|
fix(php): 修复原生类型变量和对象属性的 unset 操作问题
- 修改对象属性 unset 警告消息为更准确的描述
- 添加对原生类型变量的 unset 操作检查和警告
- 阻止原生类型变量执行 unset 操作
- 新增 unset 原生类型变量的测试用例
- 完善变量类型检查逻辑以区分原生类型
|
4 months ago |
韩天峰
|
fbeac08f20
|
feat(php): 添加对象属性变量管理和取消设置检查功能
- 新增 getObjectPropVarName 方法用于生成对象属性变量名
- 新增 getObjectPropVarInfo 方法用于获取对象属性变量信息
- 新增 hasObjectPropVar 方法用于检查对象属性变量是否存在
- 将警告颜色从黄色更改为洋红色以提高可读性
- 在取消设置对象属性时添加不允许操作的警告提示
- 添加对整数类型属性取消设置的特殊处理逻辑
- 新增 unset-int-prop.php 示例文件演示属性取消设置行为
|
4 months ago |
韩天峰
|
9ed73be36f
|
refactor(examples): 更新PHP示例中的类型声明和代码结构
- 为Foo类的属性$b添加int类型声明
- 为read_prop和write_prop方法的参数$n添加int类型声明
- 移除python/sys.php文件开头的注释和无用函数定义
- 重新组织sys.php文件中的代码顺序,将main函数移到合适位置
- 保持原有的系统API调用功能不变
|
4 months ago |
韩天峰
|
2912b40b0f
|
feat(compiler): 添加原生类型支持和属性获取功能
- 在编译器基础类中添加了 Expr_PropertyFetch 表达式处理逻辑
- 实现了原生属性变量检测和类型推断功能
- 新增了属性获取表达式的原生属性变量标记机制
- 更新了多个示例文件以使用 native_types 命名空间
- 添加了默认数组属性测试用例验证功能
- 集成了 polyfills 支持并在主入口点传递命令行参数
|
4 months ago |
韩天峰
|
5bf12a10ed
|
feat(php): 添加对 trait 魔术常量 __TRAIT__ 的支持
- 在 CompilerBase 中添加 Scalar_MagicConst_Trait 的解析支持
- 为 __TRAIT__ 常量实现作用域检查逻辑
- 为 __CLASS__ 常量添加 trait 环境下的返回逻辑
- 在 Preprocessor 中添加类属性钩子不支持的错误提示
- 添加 trait 魔术常量的功能测试用例
- 更新 trait 示例代码以展示魔术常量使用
|
4 months ago |
韩天峰
|
d8a828558d
|
refactor(generator): 将模板渲染改为直接代码生成
- 将 extension.cc.php 模板文件删除,改为在 PHP 代码中直接生成 C++ 代码
- 修改 equalsApartFromNameAndRefcount 方法可见性为 public
- 在函数查找逻辑中添加 TODO 注释说明必须为 public 方法的原因
- 添加 scope.php 示例文件用于测试作用域相关功能
- 删除 simple.php 中的冗余注释代码
- 移除模板渲染方法 render 的实现
|
4 months ago |
韩天峰
|
ee3dbc9717
|
feat(compiler): 添加项目配置和扩展忽略功能
- 在 Translator 类中新增 ignoreExtensions 属性用于存储忽略的扩展
- 修改构造函数逻辑,将 main 函数从内部函数列表中移除
- 更新属性初始化代码,修复命名空间获取方式
- 在项目配置解析中添加对 ext-* 格式扩展的识别和忽略处理
- 添加测试用例验证对象构造器数组属性默认值功能
- 添加引用操作相关测试用例
- 新增项目配置文件示例
|
4 months ago |
韩天峰
|
69a1c24610
|
refactor(bootstrap): 调整函数文件加载方式并更新依赖
- 将 src/functions.php 从 composer autoloader 移至 bootstrap 文件直接引入
- 更新 composer.json 配置移除 functions.php 的文件自动加载配置
- 升级多个依赖包版本包括 league/climate、symfony 相关组件等
- 新增 ergebnis/agent-detector 依赖用于代理检测功能
- 更新 phpunit 和相关开发依赖到最新稳定版本
|
4 months ago |
韩天峰
|
9744cc9e86
|
feat(build): 添加编译器构建功能并更新项目配置
- 新增 src/compiler-build.php 作为编译器入口文件
- 在 extension.cc.php 中添加 zend 异常处理保护机制
- 更新 project.yml 将项目类型从 ext 改为 bin,版本升级到 0.1.0
- 添加新的依赖文件路径到项目配置中
- 在 Php/Symbol.php 中添加 getClassEntrySafe 方法
- 修改 Php/Translator.php 使用安全的类入口获取方法
- 修复 __toString 方法的返回类型声明
- 添加 examples/error/impl.php 示例文件
|
4 months ago |
韩天峰
|
eaa598a48e
|
fix(php): 解决字符串连接操作符的void类型检查和引用参数处理问题
- 在parseBinaryOpConcat方法中添加了对左右操作数的类型检查,防止void类型的连接操作
- 为concat操作添加了专门的符号函数php::concat
- 修复了引用参数传递时的变量类型验证逻辑
- 更新了常量定义方法的返回类型从string改为void
- 修正了预处理器中函数声明的换行符处理
- 将Iterator方法调用从exec改为call以统一接口调用方式
- 添加了concat_void.php示例文件用于测试void类型连接错误
- 新增了ref相关的测试用例文件
|
4 months ago |
韩天峰
|
6426046857
|
fix(generator): 解决接口中trait使用解析问题并完善trait别名处理
- 在gen_stub.php中添加对Interface_类型的检查,避免接口中使用trait时报错
- 移除Translator.php中generateStubFile的异常捕获逻辑,直接抛出异常
- 重构parseTraitUseForStub方法,支持完整的trait别名和冲突解决语法
- 添加getFullMethodName和parseTraitUseOptions辅助方法处理trait方法映射
- 完善trait属性、常量和方法的合并逻辑,支持insteadof和as关键字
- 更新parseTraitUse方法以正确处理trait别名映射关系
- 修复trait方法名称映射和代码生成中的多个边界情况
|
4 months ago |
韩天峰
|
d85353f8eb
|
feat(compiler): 实现常量值解析和类型安全的值生成
- 在 ConstantDef 中添加 valueExpr 属性以支持表达式解析
- 将 gen_stub.php 移动到 src 目录并重构为可重用函数
- 实现 getClassConstValue 和 getConstValue 方法处理类常量和全局常量
- 添加 genCValue 工具方法支持不同类型的 C 值生成
- 修改预处理器存储常量表达式节点信息
- 更新编译器基础类 getRelativePath 方法为公共访问
- 优化 stub 文件生成逻辑使用内部函数替代 shell 执行
- 添加错误处理机制替换原有的直接退出方式
|
4 months ago |
韩天峰
|
d37c979031
|
重构:在预处理阶段获取所有类、函数、常量、属性定义,解决循环依赖的问题
|
5 months ago |
韩天峰
|
27060d9b87
|
refactor(php): 重构变量声明和全局变量处理逻辑
- 将 localVarDecl 重命名为 scopeVarDecl 并更新所有相关调用
- 移除旧的 getStaticVarName 方法,使用新的 escapeStaticVar 方法
- 添加 parseSuperGlobalVar 方法来处理超全局变量
- 添加 hasArgument 和 addScopeGlobalVar 等辅助方法
- 更新 hasVar 方法以支持作用域全局变量检查
- 实现对 $GLOBALS 数组访问的支持,将其转换为相应变量
- 重构全局变量初始化和清理逻辑,使用新的命名规则
- 添加函数上下文中的全局变量数组存储
- 更新模板文件中的全局变量引用方式
|
5 months ago |
韩天峰
|
cc1131f455
|
feat(php): 优化全局变量访问和基准测试函数类型声明
- 在CompilerBase.php中添加标量字符串维度检查,直接返回全局变量名称而不是调用php::global
- 为micro_bench.php中的read_global_var、read_hash、read_str_offset和issetor函数添加int类型声明
- 改进全局变量处理逻辑,避免不必要的php::global调用
- 提升代码类型安全性和性能表现
|
5 months ago |
韩天峰
|
b8516b6ac0
|
fix(php): 修复存根文件函数返回类型检查和类方法处理逻辑
- 修复存根文件中魔术方法(__construct/__destruct/__clone)不需要声明返回类型的问题
- 在FunctionDef构造函数中添加stub参数传递
- 修正main函数参数类型检查逻辑,添加逻辑非运算符
- 移除类方法中重复的'this_'参数添加,在stub函数处理后重新添加
- 添加stub函数的特殊处理逻辑,无具体实现时重置函数定义
- 修复类方法名称处理中的变量引用问题
|
5 months ago |
韩天峰
|
8312de6c73
|
feat(compiler): 添加原生类型支持和标准库函数
- 引入 native_types 类常量定义基本类型
- 添加 std 类提供 int、float、bool 类型转换方法
- 实现 objval 函数进行对象类型验证
- 在 CompilerBase 中添加 nativeTypes 属性控制类型行为
- 修改 getNativeType 方法使用 nativeTypes 判断
- 更新 use 语句解析支持 native_types 导入
- 在 micro_bench 示例中启用严格类型声明
- 添加 str_byte 示例文件测试字符串字节操作
|
5 months ago |
韩天峰
|
26a0439f42
|
feat(php): 优化函数调用并添加类存在性检查支持
- 实现 class_exists 函数的静态分析优化,直接返回已知类的存在性
- 添加 get_class 函数支持,为类型化对象生成字符指针
- 优化 function_exists 函数检查逻辑,提前处理原生函数
- 添加 get_class 测试用例验证功能
- 更新基准测试代码,添加 class_exists 性能测试
- 移除未使用的宏定义,优化常量定义方式
|
5 months ago |
韩天峰
|
67bbfb8852
|
fix(php): 修复AOT编译器中isset操作和属性获取问题
- 添加变量存在性检查,防止AOT编译器操作未定义变量
- 优化单属性读取逻辑,支持原生属性访问
- 移除不必要的数组反转操作提升性能
- 修复属性映射偏移量计算错误,统一加减1024补偿值
- 更新示例代码中的静态变量初始值
|
5 months ago |
韩天峰
|
8eb944312a
|
refactor(compiler): 重构编译器基础类以改善表达式解析
- 统一使用 Expr 命名空间替代 Node\Expr 提高代码一致性
- 添加 OP_NOT_EMPTY 常量用于非空检查操作
- 实现值选择操作的统一处理方法 parseValueSelection
- 优化三元运算符解析逻辑,支持 ?: 操作符的正确处理
- 更新测试用例验证 ?: 操作符功能
- 添加示例文件演示赋值比较功能
- 修复多个表达式解析方法的类型声明一致性问题
- 重构链式操作解析逻辑,改进 isset 和 empty 处理
- 优化数组维度获取、函数调用等表达式的解析实现
|
5 months ago |
韩天峰
|
096a92a62e
|
feat(php): 添加对内部类继承和可空参数的支持
- 在 ArgInfo 类中添加 nullable 属性用于标识参数是否可空
- 在 ClassDef 类中添加 inheritedFromInternalClass 属性用于标记是否继承自内部类
- 实现对继承自内部类的动态方法调用支持
- 添加 Reflection::isInternalClass 方法用于判断类是否为内部类
- 添加 Reflection::hasMethod 方法用于检查类是否存在指定方法
- 在参数解析时设置 nullable 标志
- 修改编译器基类以支持内部类继承的错误处理
- 更新翻译器以正确处理可空参数的调用逻辑
|
5 months ago |
韩天峰
|
52319ccd03
|
refactor(php): 重构函数调用和错误抑制处理逻辑
- 将 isExitExpr 方法中的 Node\Stmt 类型检查更改为 Node\Stmt\Expression
- 移除 getFuncPtr 方法中的 macro 参数及相关逻辑
- 移除 parseFuncCall 方法中的 silent 参数及静默调用相关代码
- 统一函数调用都使用 php::call 方式
- 重写 parseErrorSuppress 方法,使用 error_reporting 函数控制错误报告级别
- 简化调试信息相关的代码生成逻辑
- 删除 cpp_aot_helper.h 中的 CALL 和 CALL_SILENT 内联函数定义
- 更新所有 getFuncPtr 调用移除第二个参数
|
5 months ago |
韩天峰
|
d0d66a0982
|
feat(compiler): 实现对 static 关键字的支持
- 修改 getNativeStaticMethod 方法为 getNativeMethod,增加继承链方法查找逻辑
- 添加对 static::class 和 self::class 的差异化处理
- 实现静态编译时对 static 调用的正确解析和转换
- 增加对 late static binding 的支持
- 添加相关辅助函数 php_get_called_class 和 php_get_called_ce
- 更新测试用例验证 static 关键字功能正确性
|
6 months ago |
韩天峰
|
70eccf59fc
|
feat(closure): 添加闭包生成功能并支持占位符调用
- 实现 ClosureGenerator trait 来统一处理闭包生成逻辑
- 添加 ArrowFunction 和 Closure 表达式的解析方法
- 引入 PlaceHolder 异常用于处理可调用占位符场景
- 添加 PlaceHolderGenerator trait 处理占位符闭包生成
- 实现 genCharPtr 和 genArray 工具函数
- 更新 FuncCall 和 StaticCall 处理以支持占位符语法
- 修复变参占位符的错误处理机制
|
6 months ago |
韩天峰
|
28d12102a4
|
fix(php): 修复对象类型推断中的类名解析问题
- 在类型推断过程中使用 getNamespacedClassName 方法处理类名
- 确保对象存储时使用完整的命名空间类名
- 添加了 Swoole 服务器示例代码
- 修复了 PHP 请求信息中的路径翻译设置
- 更新了 Python 示例中的打印方法调用
|
6 months ago |
韩天峰
|
ac3351b5f4
|
feat(compiler): 支持PHP变长参数展开语法
- 修改parseCallArgs方法以支持...操作符参数展开
- 添加对变长参数展开位置限制的验证逻辑
- 实现变长参数展开的临时变量生成机制
- 更新函数调用参数解析以兼容数组参数传递
- 添加parseArrayArg辅助方法处理数组参数解析
- 为变长参数展开功能增加单元测试用例
- 修复多处函数调用参数格式化问题
|
6 months ago |
韩天峰
|
54c43dc691
|
feat(php): 支持 PHP 命名参数功能
- 实现命名参数解析和重排逻辑
- 添加函数定义参数信息获取功能
- 支持命名参数与位置参数混合使用
- 确保参数按正确顺序传递给原生函数
- 添加命名参数测试用例
- 提供命名参数使用示例
|
6 months ago |
韩天峰
|
aa6d81d2a7
|
feat(compiler): 添加可变参数支持功能
- 在 ArgInfo 类中添加 variadic 属性用于标识可变参数
- 实现编译器对可变参数的验证逻辑,确保可变参数位于最后位置
- 修改参数类型处理逻辑,将可变参数转换为数组类型
- 更新函数调用参数解析,支持可变参数的展开和传递
- 在翻译器中实现可变参数的 C++ 代码生成逻辑
- 添加遍历可变参数的循环处理机制
- 新增可变参数功能的测试用例和示例文件
- 完善参数列表生成时对可变参数的特殊处理
|
6 months ago |
韩天峰
|
aa6be88c6c
|
feat(php): 添加对PHP枚举类型的支持
- 在ClassDef实体中添加enum属性用于标识枚举类
- 修改编译器基类以支持枚举常量访问的特殊处理
- 移除旧的枚举示例文件并添加新的测试用例
- 更新翻译器以识别和标记枚举类型的类定义
|
7 months ago |
韩天峰
|
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 |
韩天峰
|
8bc3c66499
|
feat(examples): 添加PHP扩展示例和曼德布罗特集计算功能
- 新增 myext/test.php 文件,包含基本的PHP函数示例
- 添加 bench/test1.cc 文件,实现曼德布罗特集图像生成功能
- 实现复数迭代算法用于绘制曼德布罗特分形图像
- 添加文件输出和内存流处理功能
- 集成PHPX库进行原生C++与PHP交互
- 实现命令行参数解析和图像尺寸控制
- 添加二进制和文本格式输出支持
|
7 months ago |
韩天峰
|
f2e7b70043
|
feat(compiler): 添加闭包表达式支持
- 在 CompilerBase.php 中添加对 Expr_Closure 节点类型的解析处理
- 实现 parseClosure 方法来编译 PHP 闭包为 C++ 代码
- 添加临时变量生成和缩进级别管理逻辑
- 处理闭包参数和 use 子句中的变量捕获
- 验证闭包中使用的变量是否已定义
- 添加闭包示例文件 closure.php 和对应测试文件
- 修复 fcall.php 中的调试输出注释问题
|
7 months ago |
韩天峰
|
ca4a34204c
|
feat(compiler): 添加对 main 函数的特殊支持和参数验证
- 在编译器中实现 main 函数的特殊处理逻辑
- 验证 main 函数的参数必须为 (int $argc, array $argv) 格式
- 确保 main 函数返回类型为 void
- 在扩展模板中添加 main 函数调用支持
- 根据构建模式条件编译模块入口点
- 移除旧的静态 main 函数调用方式
- 更新示例项目以使用正确的 main 函数签名
|
7 months ago |
韩天峰
|
288021d16c
|
feat(compiler): 添加对孤立代码的检测和错误处理
- 在 CompilerBase 中添加 foundStrayCode 方法用于报告孤立代码错误
- 在 Preprocessor 中为 Stmt_Expression 类型添加孤立代码检测
- 防止在扩展模式下生成名为 main 的函数
- 添加 empty-2.phpt 测试用例验证空值合并操作符功能
|
7 months ago |
韩天峰
|
8fd83ae8b0
|
feat(trie): 添加字典树数据结构实现
- 实现了Node和Trie类的基本结构
- 添加了insert方法用于插入单词
- 添加了search方法用于搜索完整单词
- 添加了startsWith方法用于前缀匹配
- 实现了字典树的完整功能逻辑
fix(compiler): 修复变量声明和数组访问的代码生成问题
- 为int、float、bool类型变量添加默认初始化值0
- 修复数组维度解析中的括号处理逻辑
- 解决赋值表达式上下文中的数组访问问题
example(prime): 添加素数计算性能测试示例
- 实现了NthPrime函数计算第n个素数
- 添加了时间测量功能
- 提供了30000个素数计算的性能测试用例
|
7 months ago |
韩天峰
|
75a9309801
|
feat(php): 添加标量类型检查和yield表达式支持
- 新增AstNodeType::isScalar方法用于检查标量类型
- 在CompilerBase中添加对Expr_Yield和Expr_YieldFrom表达式的错误处理
- 修改变量表达式判断逻辑,排除标量类型的情况
- 添加digit_count示例程序用于数字位数计算性能测试
|
7 months ago |