7个版本
0.3.1 | 2020年5月11日 |
---|---|
0.3.0 | 2020年4月10日 |
0.2.2 | 2020年1月18日 |
0.2.0 | 2019年12月27日 |
0.1.1 | 2019年9月21日 |
#444 in 编程语言
在 2 crates 中使用
410KB
7.5K SLoC
molt -- Rust嵌入式Tcl解释器
Molt 0.3.1新功能
查看Molt手册中的变更日志,获取每个版本的新功能完整列表。
描述
Molt是一个嵌入式Tcl解释器,适用于Rust。应用程序可以在Rust中定义新的Tcl命令并执行Tcl脚本和字符串。例如,
use molt::Interp;
let mut interp = Interp::new();
let four = interp.eval("expr {2 + 2}")?;
assert_eq!(four.as_int(), 4);
一个新命令的定义如下
use molt::check_args;
use molt::MoltResult;
use molt::Value;
use molt::Interp;
use molt::molt_ok;
/// # square *x*
///
/// Computes the square of a value
pub fn cmd_square(_interp: &mut Interp, _: ContextID, argv: &[Value]) -> MoltResult {
// Correct number of arguments?
check_args(1, argv, 2, 2, "x")?;
// Get x, if it's an integer
let x = argv[1].as_int()?;
// Return the result.
molt_ok!(x * x)
}
并安装如下
use molt::Interp;
let mut interp = Interp::new();
interp.add_command("square", cmd_square);
let num = interp.eval("square 5")?;
assert_eq!(num.as_int(), 25);
值由Value
类型表示,它可以转换为与值的字符串表示形式一致的所有类型:整数、浮点数、列表以及定义了MoltAny
特质的任何类型。
Molt仍在开发中。基本Tcl语言已就位,但许多Tcl命令尚未实现。有关详细信息,请参阅Molt手册。
molt-sample
仓库包含一个示例Molt扩展,包括shell应用程序和库创建,它们都定义了新的Molt命令。
依赖
~1MB
~16K SLoC