2.0 KiB
2.0 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” |
cli run crates/compiler/examples/hello.endor
cli run crates/compiler/examples/calls.endor
cli run crates/compiler/examples/shadowing.endor
cli run crates/compiler/examples/number.endor
cli eval crates/compiler/examples/literal.endor
run 默认调用无参数 main,可用 --entry name 选择另一个无参数入口;eval 解析一个完整表达式,二者都支持 - 读取 stdin 到 EOF。类型名称暂只保留语法,Callable 不要求预先注册语言类。例子不依赖 print 或其他默认标准库。编译器尚无算术运行语义;前端 basic.endor 含算术,只是解析示例,不能混作可执行示例。规则见 编译契约,返回 compiler。
CI 使用 endor_examples.py 再次执行真实 CLI 并保存实际结果,不只显示 Rust 测试名称。对应 Actions run 的 endor-execution-output- artifact 包含源码、命令、预期/实际 stdout、stderr、退出码和状态;位置与失败规则见 验证报告。新增 .endor 示例时同步 cases.json,未覆盖文件会让报告步骤失败。