From 65c34527fd80b51f17a16e12f306649ce03398dc Mon Sep 17 00:00:00 2001 From: Li Jin Date: Thu, 29 Jan 2026 08:44:29 +0800 Subject: Fixed lib path. --- SPEC_SUMMARY.md | 308 ----------------------------------------------- TEST_RESULTS.md | 227 ---------------------------------- yuescript-dev-1.rockspec | 4 +- 3 files changed, 2 insertions(+), 537 deletions(-) delete mode 100644 SPEC_SUMMARY.md delete mode 100644 TEST_RESULTS.md diff --git a/SPEC_SUMMARY.md b/SPEC_SUMMARY.md deleted file mode 100644 index a5cfe23..0000000 --- a/SPEC_SUMMARY.md +++ /dev/null @@ -1,308 +0,0 @@ -# YueScript 测试案例补充说明 - -## 概述 -本文档记录了为YueScript项目补充的新增测试案例文件,这些测试基于YueScript官方文档中描述的语言特性。 - -## 新增测试文件列表 - -### 1. 核心语言特性 -- **chaining_comparison_spec.yue** - 链式比较操作符测试 - - 简单链式比较 (1 < 2 < 3) - - 复杂链式比较 - - 变量链式比较 - - 字符串比较 - - != 操作符支持 - -- **table_append_spec.yue** - 表追加操作符([]=)测试 - - 单值追加 - - 多值追加 - - 使用展开操作符追加 - - 循环中的追加 - - 混合类型追加 - -- **reverse_index_spec.yue** - 反向索引(#)测试 - - 获取最后一个元素 - - 获取倒数第N个元素 - - 设置反向索引值 - - 字符串反向索引 - - 嵌套访问 - -- **if_assignment_spec.yue** - if赋值(:=)测试 - - 基本if赋值 - - elseif支持 - - 多返回值解构 - - 变量作用域 - - 与os.getenv配合 - -- **while_assignment_spec.yue** - while赋值测试 - - 基本while赋值 - - 表迭代 - - 字符串迭代 - - break支持 - - 解构支持 - -- **varargs_assignment_spec.yue** - 可变参数赋值测试 - - 基本可变参数赋值 - - 访问可变参数元素 - - pcall配合 - - 保留nil值 - - 嵌套函数 - -### 2. 函数特性 -- **prefixed_return_spec.yue** - 前缀返回表达式测试 - - 无显式返回时的默认值 - - 嵌套循环中的返回 - - 多种返回路径 - - fat arrow支持 - - 条件前缀 - -- **named_varargs_spec.yue** - 命名可变参数测试 - - 存储可变参数到命名表 - - 处理nil值 - - 循环访问 - - 传递给其他函数 - - 默认参数配合 - -- **param_destructure_spec.yue** - 参数解构测试 - - 简单对象解构 - - 默认值支持 - - 嵌套解构 - - 数组参数 - - fat arrow配合 - -- **multiline_args_spec.yue** - 多行参数测试 - - 跨行参数 - - 嵌套函数调用 - - 表字面量中 - - 条件语句中 - - 深层缩进 - -### 3. 字符串和字面量 -- **yaml_string_spec.yue** - YAML多行字符串测试 - - 基本YAML字符串 - - 保留缩进 - - 插值支持 - - 特殊字符转义 - - 函数中使用 - -### 4. 数据结构 -- **table_comprehension_spec.yue** - 表推导式测试 - - 简单表拷贝 - - when子句过滤 - - 值转换 - - 键转换 - - ipairs支持 - - 嵌套推导式 - -- **slicing_spec.yue** - 切片操作测试 - - 基本切片语法 - - 负索引 - - 单元素切片 - - 字符串切片 - - 嵌套数组 - -- **implicit_object_spec.yue** - 隐式对象测试 - - * 符号列表 - - - 符号列表 - - 函数调用中的隐式对象 - - return语句 - - 嵌套结构 - - 混合内容 - -- **tables_advanced_spec.yue** - 高级表特性测试 - - 隐式键语法 - - 计算键 - - 关键字键 - - 数组语法混合内容 - - 表展开 - - 元表创建 - -### 5. 操作符 -- **operator_advanced_spec.yue** - 高级操作符测试 - - 复合赋值 (+=, -=, *=, /=, %=, etc.) - - nil合并赋值 (??=) - - 位运算复合赋值 - - 链式赋值 - - :: 方法链 - -- **whitespace_spec.yue** - 空格和分隔符测试 - - 分号语句分隔符 - - 多行链式调用 - - 一行多条语句 - - 一致缩进 - - 管道操作符配合 - -### 6. 语句和结构 -- **in_expression_spec.yue** - in表达式测试 - - 表成员检查 - - 字符串成员 - - 键检查 - - 混合类型 - - 取反 - - 推导式中使用 - -- **with_statement_spec.yue** - with语句测试 - - 点号属性访问 - - 链式访问 - - 方法调用 - - 嵌套with - - 表达式中使用 - -- **do_statement_spec.yue** - do语句块测试 - - 创建新作用域 - - 返回值 - - 嵌套do块 - - 循环支持 - - 表操作 - -- **stub_spec.yue** - 函数占位符测试 - - 空函数创建 - - 表中的stub - - 回调函数 - - 条件中的stub - - 链式调用 - -### 7. 宏和属性 -- **advanced_macro_spec.yue** - 高级宏测试 - - 编译时求值 - - 带参数的宏 - - 条件编译 - - Lua代码插入 - - 宏导出 - - 内置宏 ($FILE, $LINE) - - 参数验证 - - 宏生成宏 - -- **const_attribute_spec.yue** - const属性测试 - - 基本const声明 - - 防止重新赋值 - - 解构支持 - - 全局const - - 函数作用域 - - 表推导式中使用 - -- **close_attribute_spec.yue** - close属性测试 - - 基本close变量 - - 元表语法 - - 多个close作用域 - - 资源管理 - - 函数中使用 - - 嵌套close - - 错误处理 - -### 8. 高级函数特性 -- **functions_advanced_spec.yue** - 高级函数测试 - - fat箭头(self) - - 参数默认值 - - 多行参数 - - 隐式返回 - - 多返回值 - - 函数作为参数 - - 返回函数的函数 - - 可变参数 - - 参数解构 - -## 测试覆盖的主要语言特性 - -### 运算符 -- ✅ 链式比较 (1 < 2 < 3) -- ✅ 表追加 ([]=) -- ✅ 表展开 (...) -- ✅ 反向索引 (#) -- ✅ nil合并 (??) -- ✅ 管道 (|>) -- ✅ 存在性操作符 (?) -- ✅ 复合赋值 - -### 控制流 -- ✅ if赋值 (:=) -- ✅ while赋值 -- ✅ in表达式 -- ✅ with语句 -- ✅ do语句块 -- ✅ try-catch (已有测试) -- ✅ switch (已有测试) - -### 数据结构 -- ✅ 表推导式 -- ✅ 列表推导式 (已有测试) -- ✅ 隐式对象 (*, -) -- ✅ 表解构 (已有测试) -- ✅ 切片操作 - -### 函数 -- ✅ fat箭头 -- ✅ 参数默认值 -- ✅ 多行参数 -- ✅ 命名可变参数 (...t) -- ✅ 参数解构 -- ✅ 前缀返回表达式 -- ✅ backcalls (已有测试) - -### 宏 -- ✅ 基本宏 -- ✅ 条件编译 -- ✅ Lua代码插入 -- ✅ 宏导出/导入 -- ✅ 内置宏 -- ✅ 宏验证 - -### 属性 -- ✅ const属性 -- ✅ close属性 -- ✅ 元表操作 - -### 字符串 -- ✅ YAML多行字符串 -- ✅ 字符串插值 (已有测试) -- ✅ 转义序列 (已有测试) - -### 模块系统 -- ✅ import (已有测试) -- ✅ export (已有测试) -- ✅ import global (已有测试) - -## 测试文件统计 - -- 新增测试文件: 23个 -- 总测试用例: 约500+个 -- 覆盖的语言特性: 40+个主要特性 - -## 运行测试 - -使用以下命令运行测试: - -```bash -make test -``` - -或直接使用busted: - -```bash -busted spec/inputs/test/ -``` - -## 测试文件位置 - -所有测试文件位于: `spec/inputs/test/` - -生成的Lua文件位于: `spec/outputs/test/` - -## 贡献者 - -本测试补充基于YueScript官方文档 (doc/docs/doc/README.md) 中描述的所有语言特性。 - -## 注意事项 - -1. 部分测试可能需要特定的Lua版本支持 -2. 宏相关的测试需要YueScript编译器支持宏功能 -3. const和close属性在不同Lua版本行为可能不同 -4. 某些高级特性可能需要额外的依赖 - -## 未来改进方向 - -- [ ] 添加更多边缘情况测试 -- [ ] 增加性能基准测试 -- [ ] 添加错误处理测试 -- [ ] 覆盖更多元表特性 -- [ ] 测试与其他Lua库的互操作性 diff --git a/TEST_RESULTS.md b/TEST_RESULTS.md deleted file mode 100644 index 76903d1..0000000 --- a/TEST_RESULTS.md +++ /dev/null @@ -1,227 +0,0 @@ -# YueScript 测试运行结果报告 - -## 测试执行时间 -2026-01-26 - -## 编译和测试结果 - -### ✅ 完全通过的测试 (6个) - -| 测试文件 | 测试数量 | 通过 | 失败 | 错误 | 待定 | -|---------|---------|------|------|------|------| -| chaining_comparison_spec.lua | 12 | 12 | 0 | 0 | 0 | -| if_assignment_spec.lua | 13 | 13 | 0 | 0 | 0 | -| prefixed_return_spec.lua | 5 | 5 | 0 | 0 | 0 | -| while_assignment_spec.lua | 4 | 4 | 0 | 0 | 0 | -| (总计) | **34** | **34** | **0** | **0** | **0** | - -### ⚠️ 部分通过的测试 (2个) - -| 测试文件 | 测试数量 | 通过 | 失败 | 错误 | 待定 | 备注 | -|---------|---------|------|------|------|------|------| -| in_expression_spec.lua | 16 | 12 | 4 | 0 | 0 | in表达式部分语法需要调整 | -| yaml_string_spec.lua | 15 | 2 | 13 | 0 | 0 | YAML字符串语法兼容性问题 | - -### ❌ 编译失败的测试 - -以下测试由于YueScript语法限制或编译器限制暂时无法编译: - -1. **param_destructure_spec.yue** - 参数解构语法在某些情况下不被支持 -2. **slicing_spec.yue** - 切片语法实现细节问题 -3. **operator_advanced_spec.yue** - 部分高级操作符语法 -4. **functions_advanced_spec.yue** - 某些高级函数特性 -5. **varargs_assignment_spec.yue** - 可变参数赋值的部分语法 -6. **table_append_spec.yue** - 表追加操作符的实现细节 -7. **reverse_index_spec.yue** - 反向索引语法问题 -8. **implicit_object_spec.yue** - 隐式对象语法细节 -9. **table_comprehension_spec.yue** - 表推导式语法问题 -10. **tables_advanced_spec.yue** - 高级表特性 -11. **advanced_macro_spec.yue** - 宏功能编译问题 -12. **const_attribute_spec.yue** - const属性支持 -13. **close_attribute_spec.yue** - close属性支持 -14. **multiline_args_spec.yue** - 多行参数语法 -15. **with_statement_spec.yue** - with语句实现 -16. **do_statement_spec.yue** - do语句块 -17. **stub_spec.yue** - 函数占位符 -18. **whitespace_spec.yue** - 空格和分隔符 - -## 成功测试的覆盖特性 - -### 1. chaining_comparison_spec.lua (12/12 ✅) -- ✅ 简单链式比较 (1 < 2 < 3) -- ✅ 复杂链式比较 -- ✅ 变量链式比较 -- ✅ 混合比较 -- ✅ 字符串比较 -- ✅ != 操作符支持 -- ✅ 边界情况 -- ✅ 布尔结果 -- ✅ 函数调用中的链式比较 -- ✅ 取反操作 -- ✅ 混合操作符 -- ✅ 复杂表达式 - -### 2. if_assignment_spec.lua (13/13 ✅) -- ✅ 基本if赋值 (:=) -- ✅ elseif支持 -- ✅ 多返回值解构 -- ✅ 变量作用域 -- ✅ 表解构 -- ✅ 数组解构 -- ✅ 链式赋值 -- ✅ 表达式上下文 -- ✅ os.getenv配合 -- ✅ 表访问 -- ✅ 函数调用结果 -- ✅ 嵌套赋值 -- ✅ false值处理 - -### 3. prefixed_return_spec.lua (5/5 ✅) -- ✅ 前缀返回值(无显式return) -- ✅ 前缀nil返回 -- ✅ 前缀字符串返回 -- ✅ 前缀数字返回 -- ✅ 嵌套逻辑中的前缀返回 - -### 4. while_assignment_spec.lua (4/4 ✅) -- ✅ while循环中的赋值 -- ✅ 函数结果处理 -- ✅ nil退出循环 -- ✅ break支持 - -### 5. in_expression_spec.lua (12/16 ✅) -- ✅ 值在表中检查 -- ✅ 字符串检查 -- ✅ 表键检查 -- ✅ 空表处理 -- ✅ 条件中使用 -- ✅ 取反支持 -- ✅ 循环中使用 -- ✅ 复杂表达式 -- ✅ 表访问 -- ✅ 函数结果 -- ✅ nil值处理 -- ✅ 字符串键 -- ⚠️ 嵌套表 (4个失败) -- ⚠️ 布尔值 -- ⚠️ 推导式使用 -- ⚠️ 表作为值 - -### 6. yaml_string_spec.lua (2/15 ⚠️) -- ✅ 基本YAML字符串 -- ✅ 保留缩进 -- ⚠️ 插值支持 (语法兼容性问题) -- ⚠️ 复杂插值 -- ⚠️ 表达式 -- ⚠️ 函数中使用 -- ⚠️ 特殊字符转义 -- ⚠️ 空行处理 -- ⚠️ 多个插值 -- ⚠️ 引号处理 -- ⚠️ 换行符保留 -- ⚠️ 表访问插值 -- ⚠️ 函数调用插值 -- ⚠️ 嵌套结构 - -## 总体统计 - -### 编译成功的测试文件 -- **数量**: 6个 -- **测试用例总数**: 84个 -- **通过**: 69个 (82.1%) -- **失败**: 15个 (17.9%) -- **错误**: 0个 -- **待定**: 0个 - -### 完全通过的测试文件 -- **数量**: 4个 -- **测试用例**: 34个 -- **通过率**: 100% - -## 语言特性验证 - -### 已验证可用的特性 ✅ - -1. **运算符** - - ✅ 链式比较 (1 < 2 < 3) - - ✅ != 作为 ~= 的别名 - - ✅ 复杂链式表达式 - -2. **控制流** - - ✅ if赋值 (:=) - - ✅ elseif与if赋值配合 - - ✅ while赋值 - - ✅ in表达式(部分) - -3. **函数** - - ✅ 前缀返回表达式 - - ✅ 多返回值 - - ✅ 参数解构(部分) - - ✅ 函数赋值 - -4. **字符串** - - ✅ YAML多行字符串(基础) - - ⚠️ YAML字符串插值(兼容性问题) - -### 需要进一步调查的特性 ⚠️ - -1. **表和数组** - - ⚠️ 表追加操作符 `[]=` - - ⚠️ 反向索引 `#` - - ⚠️ 切片操作 - - ⚠️ 表推导式 - - ⚠️ 隐式对象 - -2. **高级特性** - - ⚠️ 参数解构(完整支持) - - ⚠️ 宏功能 - - ⚠️ const/close属性 - - ⚠️ 多行参数 - - ⚠️ with语句 - - ⚠️ do语句块 - -3. **操作符** - - ⚠️ 复合赋值完整支持 - - ⚠️ :: 方法链 - - ⚠️ 空格和分隔符规则 - -## 建议和后续工作 - -### 短期改进 -1. 修复已编译测试中的失败用例 -2. 调整YAML字符串语法以匹配编译器实现 -3. 完善in表达式的测试用例 -4. 修复varargs_assignment_spec的编译问题 - -### 中期目标 -1. 调查编译失败测试的根本原因 -2. 与YueScript编译器实现进行对比 -3. 更新测试用例以匹配实际语法支持 -4. 添加更多边缘情况测试 - -### 长期规划 -1. 建立完整的语言特性测试套件 -2. 自动化测试流程 -3. 性能基准测试 -4. 兼容性测试(不同Lua版本) - -## 结论 - -本次测试补充成功为YueScript项目添加了**23个新测试文件**,其中: -- **4个测试文件完全通过** (34个测试用例) -- **2个测试文件部分通过** (28个测试用例,15个失败) -- **17个测试文件需要进一步调整** - -测试验证了以下核心YueScript特性: -- ✅ 链式比较操作符 -- ✅ if/while赋值 -- ✅ 前缀返回表达式 -- ✅ 基础in表达式 -- ✅ YAML多行字符串(部分) - -这些测试为YueScript语言特性提供了良好的验证基础,并为未来的改进和开发提供了参考。 - ---- -**生成时间**: 2026-01-26 -**测试环境**: Linux, YueScript编译器 (debug build) -**测试框架**: busted 2.3.0 diff --git a/yuescript-dev-1.rockspec b/yuescript-dev-1.rockspec index 6d61afd..1d69998 100644 --- a/yuescript-dev-1.rockspec +++ b/yuescript-dev-1.rockspec @@ -36,10 +36,10 @@ build = { windows = { install = { lib = { - "build.luarocks/yue.dll" + "build.luarocks/Release/yue.dll" }, bin = { - "build.luarocks/yue.exe" + "build.luarocks/Release/yue.exe" } } } -- cgit v1.2.3-55-g6feb