1 个不稳定版本
0.6.1 | 2022年11月13日 |
---|
#690 在 配置
96KB
2K SLoC
Avid
Avid 是一种具有 Forth 语法风格的程序配置语言,旨在尽可能实现即插即用。
注意:该语言目前处于测试阶段
我会尽快修复这个问题,但请大家知道!
文档
快速入门
要将它作为配置语言添加到您的程序中,请将其添加到 Cargo.toml 中的依赖项中,如下所示
[dependencies]
avid = {version = "*", git = "https://www.gitlab.com/daisyflare/avid"}
如果您只想使用该语言本身,可以这样操作
$ git clone "https://www.gitlab.com/daisyflare/avid"
$ cd avid
$ cargo build --release && cp target/release/avid .
$ ./avid
lib.rs
:
即插即用配置语言。
提供简单 API 以将此配置语言插入到您的项目中。该语言易于学习,并在编译时检查许多常见错误,包括未知变量和格式错误的语句。
可以通过使用 [Builder] 结构的不同方法轻松调整或修改可用的 API 和其他设置。
示例
use avid::{Builder, Stack};
let src = "1 2 + print \"Hello, World!\" print-to-log";
let mut log = String::new();
let avid = Builder::new(src)
// Add a new function that pops one item from the top of the stack
// and prints it to the log
.register_fn("print-to-log", |stack: &mut Stack| {
let [to_print] = stack.pop()?;
log.push_str(&to_print.to_string());
Ok(())
})
.build().unwrap();
// Prints `3` to standard output
avid.run(None).unwrap();
assert_eq!(&log, "Hello, World!");
您可以使用任何具有正确签名的函数,包括闭包。