18个稳定版本
1.5.3 | 2024年6月29日 |
---|---|
1.5.2 | 2024年6月28日 |
1.4.0 | 2024年3月26日 |
1.3.2 | 2023年11月4日 |
0.1.1 | 2023年8月9日 |
#88 在 编程语言
1,178 每月下载量
245KB
5K SLoC
Phoenix
编程语言
基于书籍 Crafting Interpreters 和 此仓库
功能
- 动态类型
- 自动内存管理
- 垃圾回收
- 一等函数
- 闭包
- 词法作用域
- 尾递归
- 模式匹配
- 代数数据类型
- 继承
- Rust原生函数的API
用法
- 要启动程序,运行
cargo run -- --help
- 要安装phoenix,运行
cargo install --path .
然后你可以使用以下命令运行phoenix
phoenix --help
示例
二分查找
fun binary_search(list, item) {
var low = 0;
var high = list.len() - 1;
while low <= high {
var mid = (low + high) / 2;
var guess = list[mid];
printf("low: {}, high: {}, mid: {}, guess: {}", low, high, mid, guess);
if guess == item {
return mid;
} else if guess > item {
high = mid - 1;
} else {
low = mid + 1;
}
}
return nil;
}
var elements = [1, 3, 5, 7, 9];
var search = 7;
printf("element {} is at index: {}", search, binary_search([1, 3, 5, 7, 9], 7));
TODO
- 添加更多示例
- 添加更多测试
- 添加更多文档
- 添加更多错误处理
- 修复列表(不工作:在类中访问列表,例如:
c.l[0] = 1;
) - 修复REPL
- 修复模块(不工作:类)
- 实现
[+-*/]=
,i++
和i--
- 更好的原生函数"api"
- 添加LLVM支持
依赖项
~5–16MB
~158K SLoC