⌨️ 命令大全(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 build | AOT 构建不依赖运行时的原生 exe | rex 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 / remove | rex 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 | 优化级别,默认 2;3 为激进优化 |
--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 相同,编译流水线调试 |
通用编译选项
run 与 build 共用同一套编译流水线,因此下列选项对两者均生效。
| 选项 | 作用 |
|---|---|
-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 中输入 quit、exit 或按 Ctrl-D 退出。
rex lsp:语言服务器
启动 Rex 语言服务器(LSP 3.17,stdio 通信),供 VSCode 等编辑器做补全、悬停提示、语义分析等能力。通常由编辑器插件自动调用,无需手动操作。
bash
rex lsprex dap:调试适配器
启动 Rex 调试适配器(DAP 1.x,stdio 通信),供 IDE 做断点调试、单步执行。通常由调试插件自动调用。
bash
rex daprex 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使用提示
- 加入 PATH:把解压目录加入系统 PATH 后,即可在任何目录直接使用
rex。 - 查看任意命令帮助:
rex help <command>或rex <command> -h。 - 源码编码:Rex 要求所有 .rex 源文件为 UTF-8 编码(自动兼容 BOM)。
- 调试首选:语法报错时可加
--debug-lexer/--debug-parser定位问题。 - IDE 支持:
rex lsp(补全/悬停)与rex dap(断点调试)供编辑器集成。