5c5ca8600a8a893ea1448129af21a1ea61469316
Aster
用 Rust 实现的脚本语言解释器。
项目结构
aster/
├── src/
│ ├── lexer/ # 词法分析器
│ ├── ast/ # 抽象语法树
│ ├── parser/ # 语法分析器
│ ├── interpreter/# 解释器
│ ├── error/ # 错误处理
│ └── main.rs
├── script.ast # 示例脚本
└── Cargo.toml
运行方式
# 运行脚本文件
cargo run -- script.ast
# 从标准输入读取
cargo run
语言特性
数据类型
- 数字(
Number) - 字符串(
String) - 布尔值(
true/false) - 空值(
nil)
变量与赋值
let x = 42;
let name = "aster";
控制流
- 条件分支:
if/else - 循环:
while
函数
fn fib(n) {
if (n <= 1) {
return n
}
return fib(n - 1) + fib(n - 2)
}
print(fib(10))
运算符
- 算术:
+-*/ - 比较:
<<=>>===!= - 逻辑:
&&|| - 一元:
!-
内置函数
print(value):打印值clock():返回当前时间戳(秒)
构建
cargo build --release
构建产物位于 target/release/aster,可直接执行:
./target/release/aster script.ast
依赖
无外部依赖,仅使用 Rust 标准库。
Description
Languages
Rust
100%