3 个版本

0.0.3 2020年5月12日
0.0.2 2020年5月11日
0.0.1 2020年5月10日

#24 in #lox

MIT 许可证

125KB
3.5K SLoC

lox-lang:Lox 运行时库

Lox 是 Bob Nystrom 为他的书 Crafting Interpreters 设计的一种(主要)玩具脚本语言。这个库(以及包含的包装二进制文件)实现了为它设计的虚拟机运行时,可以独立使用或嵌入到更大的应用程序中。有关使用信息,请参阅 crate 文档。


lib.rs:

Lox 编程语言的实现。

关于 Lox

Lox 是一种动态类型的解释型脚本语言。它由 Bob Nystrom 为他的书 Crafting Interpreters 设计。

关于这个实现

这个库旨在忠实于书中提出的近似规范实现 Lox,以及作为读者练习建议的一些语言扩展。它大致基于书的第三部分,即用 C 实现解释器的指南。

用法

本包中包含一个小型的包装可执行文件(可以通过 cargo install lox_lang 安装)名为 loxi。这是尝试 Lox 语言的简单途径。

如果您想在更大的 Rust 项目中嵌入 Lox,您需要创建一个 VM 实例,并使用它的 interpret 方法来运行您的代码。

let mut my_vm = lox_lang::VM::default();
my_vm.interpret(r#" print "hello " + "world"; "#).unwrap();

依赖关系

~5.5MB
~108K SLoC