🍋 Rex 编程语言

⌨️ 命令大全(CLI 参考)

Rex 使用子命令风格的命令行接口。安装包解压后,在终端中直接使用 rex 即可。 以下全部命令均可在解压目录(或加入 PATH 后)直接运行。

总览rex run 快速运行(JIT)、rex build 生成原生 exe(AOT)、 rex repl 交互式练习、rex pkg 管理第三方包, rex lsp / rex dap 供 IDE 集成。

命令概览

命令作用常用示例
rex run编译并执行 .rex 源文件(JIT 即时编译)rex run hello.rex
rex buildAOT 构建不依赖运行时的原生 exerex build app.rex -o app.exe
rex repl启动交互式 REPL 终端rex repl
rex lsp启动语言服务器(LSP 3.17,供 IDE)rex lsp
rex dap启动调试适配器(DAP 1.x,供 IDE)rex dap
rex pkg包管理:init / install / list / show / removerex pkg list
rex version打印版本与开发者信息rex version
rex help打印帮助,可指定子命令rex help run

全局选项

以下选项可在任意命令前使用,作用于顶层解析器。

选项说明
-V / --version打印版本号并退出(Rex v0.1
-h / --help打印顶层帮助信息

rex run:编译并运行(JIT)

将 .rex 源文件编译为 LLVM IR 并即时执行。这是日常开发最常用的命令。

bash
rex run <file> [options]
参数 / 选项说明
<file>必填。要编译执行的 .rex 源文件路径
-O 0|1|2|3优化级别,默认 23 为激进优化
--no-run只编译不执行(用于检查代码是否可编译)
--emit-llvm把 LLVM IR 输出到源文件旁的 .ll 文件
--dump-ir编译时将 LLVM IR 打印到控制台
--debug-lexer启用词法分析调试输出
--debug-parser启用语法分析调试输出(AST 写入 debug/ast.json
--debug-compiler启用编译调试输出(IR 写入 debug/ir.ll

rex build:AOT 构建原生 exe

把 .rex 源文件编译为不依赖 JIT / Python / LLVM 的原生可执行文件(Windows x64)。构建产物可直接分发运行。

bash
rex build <file> [options]
参数 / 选项说明
<file>必填。要构建的 .rex 源文件路径
-o, --output <path>输出 exe 路径,默认 <源文件名>.exe
-O 0|1|2|3优化级别,默认 2
--emit-llvm / --dump-ir与 run 相同,输出 LLVM IR
--debug-lexer / --debug-parser / --debug-compiler与 run 相同,编译流水线调试

通用编译选项

runbuild 共用同一套编译流水线,因此下列选项对两者均生效。

选项作用
-O 0不做优化,编译最快,适合调试
-O 1基础优化
-O 2标准优化(默认),兼顾速度与性能
-O 3激进优化,性能最好,编译更慢
--emit-llvm生成 <源名>.ll 文件,便于查看底层 IR
--dump-ir编译过程中把 IR 打印到控制台
--debug-lexer打印词法分析(Token)结果,用于排查语法问题
--debug-parser导出 AST 到 debug/ast.json
--debug-compiler导出 LLVM IR 到 debug/ir.ll

rex repl:交互式终端

启动交互式 REPL,逐行输入并立即执行 Rex 代码,适合快速验证语法与表达式。

bash
rex repl

在 REPL 中输入 quitexit 或按 Ctrl-D 退出。

rex lsp:语言服务器

启动 Rex 语言服务器(LSP 3.17,stdio 通信),供 VSCode 等编辑器做补全、悬停提示、语义分析等能力。通常由编辑器插件自动调用,无需手动操作。

bash
rex lsp

rex dap:调试适配器

启动 Rex 调试适配器(DAP 1.x,stdio 通信),供 IDE 做断点调试、单步执行。通常由调试插件自动调用。

bash
rex dap

rex pkg:包管理

管理本地包:把带 rex.toml 清单的包目录安装到缓存,随后即可用 import "包名/模块" 导入。

包缓存目录:~/.rex/packages/<包名>/

子命令一览

子命令说明
rex pkg init [目录]初始化包,生成 rex.toml 清单
rex pkg install <包目录>安装本地包目录到包缓存
rex pkg list列出已安装的包
rex pkg show <包名>查看某个包的版本、位置、依赖
rex pkg remove <包名>卸载包(别名 uninstall

pkg init 选项

选项说明
[目录]包目录,默认当前目录
--name NAME包名,默认取目录名
--version VERSION版本号,默认 1.0.0
--description DESC包描述

pkg install 选项

选项说明
<包目录>须包含 rex.toml 的包目录路径
--force覆盖已安装的同名包

rex version / rex help

命令说明
rex version打印版本号、开发者与标语信息
rex help打印顶层帮助(等价于 rex -h
rex help run打印 run 子命令的详细帮助
rex help build打印 build 子命令的详细帮助
rex help pkg打印 pkg 子命令的详细帮助

常用示例

运行第一个程序

bash
# 创建 hello.rex 并运行(JIT)
echo 'print("Hello, Rex")' > hello.rex
rex run hello.rex

最高优化级别运行 / 构建

bash
rex run -O 3 app.rex
rex build -O 3 app.rex

构建并指定输出名

bash
rex build app.rex -o myapp.exe
./myapp.exe          # 不依赖任何运行时,直接分发

只编译检查,不执行

bash
rex run app.rex --no-run

导出 LLVM IR 学习底层

bash
rex build app.rex --emit-llvm   # 生成 app.ll
rex run app.rex --dump-ir       # 打印 IR 到终端

打包:创建并安装一个包

bash
mkdir mypkg && cd mypkg
rex pkg init --name mypkg --version 1.0.0 --description "示例包"
# 在包目录内编写 greet.rex 模块...
cd ..
rex pkg install mypkg
rex pkg list

使用提示