1.9 KiB
1.9 KiB
可执行 Endor 示例
这些 UTF-8 文件由 compiler 和 CLI 集成测试直接使用;运行只在指定远端环境进行,本地不运行。
| 文件 | 输入模式与预期结果 |
|---|---|
| cases.json | CI 实际输出报告的用例清单;覆盖本目录每个 .endor 文件,指定 run/eval 和精确预期 stdout |
| hello.endor | run;main 返回“你好,Endor 🌱” |
| calls.endor | run;前向函数引用、参数和 let,返回“函数调用已接通” |
| shadowing.endor | run;参数遮蔽全局函数名并传递函数值,返回“局部名称优先” |
| number.endor | run;返回无损负十进制常量 -123456789012345678901234567890.00100 |
| literal.endor | eval;返回“表达式 → 字节码 → VM” |
lyra run crates/compiler/examples/hello.endor
lyra run crates/compiler/examples/calls.endor
lyra run crates/compiler/examples/shadowing.endor
lyra run crates/compiler/examples/number.endor
lyra eval crates/compiler/examples/literal.endor
run 默认调用无参数 main,可用 --entry name 选择另一个无参数入口;eval 解析一个完整表达式,二者都支持 - 读取 stdin 到 EOF。类型名称暂只保留语法,Callable 不要求预先注册语言类。例子不依赖 print 或其他默认标准库。编译器尚无算术运行语义;前端 basic.endor 含算术,只是解析示例,不能混作可执行示例。规则见 编译契约,返回 compiler。
本目录与 cases.json 继续作为引擎测试资料。独立 Lyra CLI 的 CI 使用固定 Aster 子模块中的同一份样例,实际执行 lyra run/eval 并保存 stdout/stderr、退出码及报告 artifact;报告脚本和进程入口检查位于 Lyra 仓库。Aster 不设置独立 CI/CD;Lyra CI 同时显式执行 Aster 引擎检查和 CLI 检查。