1 个不稳定版本

0.6.1 2022年11月13日

#690配置

自定义许可证

96KB
2K SLoC

Avid

Avid 是一种具有 Forth 语法风格的程序配置语言,旨在尽可能实现即插即用。

注意:该语言目前处于测试阶段

我会尽快修复这个问题,但请大家知道!

文档

要查看 Avid 的文档,请查看语法标准库

快速入门

要将它作为配置语言添加到您的程序中,请将其添加到 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!");

您可以使用任何具有正确签名的函数,包括闭包。

依赖项