Files
endorphin-aster-vm/crates/compiler/examples/README.md
T
2026-10-20 01:08:51 +08:00

1.9 KiB
Raw Blame History

可执行 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 只验证引擎,不构建 CLI。