Files
aster/README.md

91 lines
1.3 KiB
Markdown
Raw Blame History

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