#解释器 #monkey #repl

bin+lib oris

Monkey语言的解释器

3个不稳定版本

0.2.1 2023年3月21日
0.2.0 2023年3月20日
0.1.0 2023年2月11日

786编程语言 中排名

每月下载量 26

MIT 协议

92KB
3K SLoC

crates.io documentation

oris

Monkey语言的解释器

安装

cargo install oris

REPL

$ oris
>> 1 + 1
2
>>

脚本

$ cat dt.oris
let answer = 2 * 3 * 7;
print(answer);

$ oris dt.oris
42

嵌入式

let code = b"
let is_composite = fn(n) {
    let f = fn(d) {
        if n <= d {
            false
        } else {
            let q = n / d;
            if q * d == n {
                true
            } else {
                f(d + 1)
            }
        }
    }

    f(2)
}

let sum = fn(m) {
    let f = fn(n) {
        if n == m {
            0
        } else {
            if is_composite(n) {
                0
            } else {
                n
            } + f(n + 1)
        }
    };

    f(1)
}

sum(limit)
";

let mut env = oris::Env::builder().with_int("limit", 14).build();

let result = oris::entry(&mut env, code).unwrap();

assert_eq!(result.as_int().unwrap(), 42);

无运行时依赖