韩天峰
|
d51b8411e2
|
refactor(php): 更新不支持函数列表
- 将 get_defined_vars 添加到 UNSUPPORTED_FUNCTIONS 数组中
- 保持代码常量定义的一致性
|
3 months ago |
韩天峰
|
fda0acc38f
|
refactor(php): 移除编译缓存机制并更新强制编译描述
- 移除了 Preprocessor 和 Translator 中的缓存检查逻辑
- 删除了 hasCppFileCache 和 hasObjectFileCache 方法
- 更新 force 参数描述为 "Force recompile phpx misc files (ignore cache)"
- 简化了编译流程,不再跳过已存在缓存的文件
- 保留了 misc 目录下源文件的缓存检查功能
- 从 Constants.php 和 Translator.php 中移除了相关的缓存控制代码
|
3 months ago |
韩天峰
|
3045259ae0
|
feat(compiler): 添加编译后运行功能支持
- 实现命令行参数解析功能,支持路径和选项参数
- 添加 --run/-r 选项用于编译完成后立即执行二进制文件
- 更新帮助信息显示新的运行选项
- 修改 build 方法返回目标文件路径而不是 void
- 实现 run 方法执行编译后的二进制文件
- 添加目标参数获取功能支持传递给执行程序
- 移除简单的文件参数检查逻辑
|
3 months ago |
韩天峰
|
95b1c89053
|
BitInt 支持位运算操作符
|
3 months ago |
韩天峰
|
6c74f1c8b5
|
refactor(php): 重构编译器常量和构建模式配置
- 移除多余的类型常量间的空行,统一代码风格
- 添加构建模式相关常量 BUILD_MODE_BIN、BUILD_MODE_EXT、ENTRY_FUNCTION 等
- 将硬编码的字符串替换为对应的常量引用
- 移除不再使用的 phpx_func.h 头文件引用
- 重命名 cxxflags 为 cxxFlags 以符合命名规范
- 将构建模式判断逻辑封装为 isBuildModeBin 和 isBuildModeExt 方法
- 更新配置文件中的默认值为常量引用
- 移除不再需要的 trait 解析方法
|
3 months ago |
韩天峰
|
460ec638df
|
refactor(php): 优化foreach循环中的迭代器变量使用并更新编译器常量
- 使用临时变量替代直接使用iteratorVar以避免命名冲突
- 为Windows平台移除clang-format格式化检查逻辑
- 添加多个新的编译器错误代码和警告信息定义
- 更新迭代器访问方式以提高代码安全性和可读性
|
4 months ago |
韩天峰
|
9186d04da4
|
refactor(backend): 将调试配置选项从 debug_info 统一更改为 debug
- 将所有编译器后端(GCC、Clang、MSVC)中的 debug_info 参数重命名为 debug
- 更新单元测试中相应的配置选项参数名称
- 修改命令行参数解析从 --debug-info 改为 --debug
- 调整文档中关于调试选项的描述和示例
- 修复链接阶段不应包含调试符号的逻辑错误
- 重构内部调试变量命名从 debugInfo 改为 debug
- 更新 YAML 配置文件中的调试选项键名
|
4 months ago |
韩天峰
|
67496f6bf6
|
feat(php): 添加MSVC编译器警告抑制功能
- 在Constants.php中新增未使用的局部变量和未引用标签的警告代码
- 实现MSVC后端对suppressed_warnings选项的支持
- 添加循环遍历警告代码并构建/wd参数的功能
- 集成警告抑制到编译命令中
|
4 months ago |
韩天峰
|
7ad7657e28
|
cs-fix
|
4 months ago |
韩天峰
|
2b088d71c5
|
feat(php): 添加 std::array 类型支持并优化编译器功能
- 新增 StdArrayParser trait 处理 std::array 类型解析
- 添加 std::array 类型检测和类型转换功能
- 实现 std::array 的维度检查和安全索引访问
- 添加 polyfills.php 文件提供类型定义和数组填充功能
- 更新 C++ 标准从 c++14 到 c++17
- 修复表达式解析中的类型检测逻辑
- 优化编译器的并发编译功能
- 添加数组循环性能测试示例
- 实现 std::array 的多维数组支持
|
4 months ago |
韩天峰
|
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 |
韩天峰
|
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 |
韩天峰
|
d78a43099d
|
refactor(php): 重构 PHP 编译器基础类以使用 phpx 库
- 移除硬编码的 phpx 目录路径,改用动态获取方法
- 将 phpx 目录设置方法从公共改为受保护,并返回 vendor 中的 phpx 路径
- 更新 include 和 lib 目录路径为从 phpx 库动态获取
- 在 composer.json 中添加 swoole/phpx 依赖
- 添加构建前检查 php-config 和必要库文件的验证逻辑
- 更新源文件路径为从 phpx 库目录中获取
- 为 debug-info 参数添加默认值配置
|
4 months ago |
韩天峰
|
12ff420d87
|
refactor(config): 将编译器选项配置迁移至常量类
- 移除独立的 compiler_options.php 配置文件
- 将编译器选项定义移至 Php/Constants.php 中的 COMPILER_OPTIONS 常量
- 更新 CompilerBase.php 中的 getNamespacedClassName 调用方式
- 修改 Constants.php 中的 UNSUPPORTED_FUNCTIONS 为数组类型
- 更新 Translator.php 中配置加载方式,使用 Constants::COMPILER_OPTIONS 替代 require
- 添加 objval 函数的相关测试用例
|
4 months ago |
韩天峰
|
ec98d1045d
|
fix(php): 修复异常处理和编译器逻辑问题
- 添加了 try-catch 异常处理的测试用例
- 实现了 isFullNameExpr 方法用于检查完全限定名称表达式
- 修复了编译器中的 break 语句缺失问题
- 重命名了 parseGlobal 方法参数以避免变量冲突
- 优化了 catch 类型检查逻辑,支持类名实例化检查
- 添加了 C++ 关键字到保留字常量列表
- 完善了项目配置文件 project.yml
- 添加了 instanceOf 符号方法
- 修复了多个 switch 语句中的 break 缺失问题
|
4 months ago |
韩天峰
|
8865796b43
|
feat(php): 实现 compact 函数支持并增强函数重定义检查
- 添加 compact 函数的功能实现和语法优化
- 移除 UNSUPPORTED_FUNCTIONS 列表中的 compact 条目
- 在 Preprocessor 中添加防止重定义内置函数的检查
- 实现 genCompact 方法来处理 compact 函数调用
- 添加测试用例验证 compact 函数功能正确性
- 增强错误处理机制以捕获非法变量使用情况
|
4 months ago |
韩天峰
|
59698b5319
|
fix(php): 解决类方法参数中使用$this的问题并优化静态属性访问
- 添加对类方法中使用$this作为参数名的错误检查
- 修复静态属性被当作动态属性访问时返回null的逻辑
- 在关键词列表中添加this_作为phpx保留关键字
|
5 months ago |
韩天峰
|
eb2eacc69a
|
feat(compiler): 添加对PHP内置函数func_get_arg和func_get_args的支持
- 在CompilerBase中添加isScalarInt方法用于判断表达式是否为标量整数
- 为parseScalar方法添加返回类型声明string
- 从常量列表中移除func_get_arg和func_get_args的不支持标记
- 在FuncCallOptimizer中实现func_get_arg、func_get_args和func_num_args的代码生成
- 添加详细的测试用例验证func_get_arg和func_get_args的功能
- 实现可变参数函数中对这些内置函数的正确处理
|
5 months ago |
韩天峰
|
898cbe2553
|
feat(php): 支持 func_num_args 函数优化
- 从 UNSUPPORTED_FUNCTIONS 列表中移除 func_num_args
- 添加 func_num_args 函数的运行时测试用例
- 实现 func_num_args 函数调用优化逻辑
- 支持通过 argInfoList 计算函数参数数量
- 添加对可变参数函数的支持
|
5 months ago |
韩天峰
|
2838053e4f
|
feat(php): 添加命名空间常量并改进魔术方法检测器
- 在关键字列表中添加 'namespace' 常量
- 将魔术方法名称转换为小写进行比较以提高匹配准确性
- 更新 __toString 方法返回类型检查逻辑
- 更新 __serialize 方法返回类型检查逻辑
- 改进魔术方法参数和返回类型的验证机制
- 增强魔术方法检测的大小写不敏感性
|
5 months ago |
韩天峰
|
9eb781464a
|
大重构,新增 FunctionContext 类
|
5 months ago |
韩天峰
|
afa770bcab
|
feat(php): 添加模板关键字支持
- 在常量列表中新增 template 关键字
- 扩展 PHP 语法解析器支持 template 作为保留关键字
- 更新相关文档说明新的关键字支持
|
5 months ago |
韩天峰
|
a72752828f
|
feat(php): 添加对 match 表达式的支持
- 实现了 match 表达式的解析和编译功能
- 添加了多个测试用例验证 match 表达式的基本功能
- 包括基本匹配、默认情况、多条件匹配等功能测试
- 实现了 match 表达式的错误处理机制
- 添加了对重复条件和尾随逗号的支持测试
- 更新了 AST 节点类型检查以支持 Match_ 表达式
- 在常量列表中添加 bool 类型支持
|
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 |
韩天峰
|
8c20fd18c8
|
refactor(core): 优化代码结构和性能
- 调整 import 语句顺序,将 Node 相关引入规范化
- 规范化字符串拼接操作,统一使用点号连接
- 统一比较运算符写法,调整变量与常量的比较顺序
- 移除多余空行和分号,精简代码结构
- 标准化缩进和代码格式,提升可读性
- 优化循环和条件判断逻辑,使用前置递增递减
- 修复类定义和方法定义的格式一致性
- 更新依赖管理方式,优化编译器配置加载
|
7 months ago |
韩天峰
|
cf5e889a75
|
refactor(php): 重构PHP编译器函数声明解析和包装生成逻辑
- 修改parseFunctionDeclaration方法移除name参数,直接从节点获取函数名
- 修复错误消息中的变量引用,使用$v->name替代传入的$name参数
- 统一FunctionDef创建时的名称解析,使用parseIdentifier处理节点名称
- 更新parseFunctionDeclaration调用处,传递节点对象而非名称字符串
- 重命名genMethodWrapper为genWrapperFunctionArgs并重构参数处理逻辑
- 添加对方法和函数的不同参数处理逻辑,区分是否包含this_参数
- 重构genMethodWrapper方法以复用新的genWrapperFunctionArgs功能
- 在Constants.php中添加char关键字到保留字列表
|
7 months ago |
韩天峰
|
11828d3b5a
|
feat(compiler): 添加对 any 函数的支持
- 在编译器中实现 any 函数的解析和处理逻辑
- 添加对 var 类型常量的支持
- 扩展测试用例以验证 any 函数的功能
|
7 months ago |
韩天峰
|
16787142d6
|
修复错误,增加单测
|
8 months ago |