4 个版本
使用旧的 Rust 2015
0.1.3 | 2016年8月25日 |
---|---|
0.1.2 | 2016年6月17日 |
0.1.1 | 2016年4月22日 |
0.1.0 | 2016年4月21日 |
#929 in 数学
38KB
874 行
Pupil
用 Rust 编写的算术表达式求值器。
它实现了一种经过修改的 Shunting-yard 算法。
Pupil
要构建 pupil 可执行文件,运行 cargo build
。如果需要优化构建,请附加 --release
开关。
它有三个不同的用途
-
交互模式。
输入表达式并按回车键求值。
PATH/TO/CRATE/ROOT> cargo run Welcome to pupil, the arithmetic expression evaluator. Enter an expression, eg. 2 + 3, and press enter. Press ctrl-C to exit. >>> 2 + 3 5 >>> ^C
-
提供要评估的表达式作为命令行参数。
这允许评估单个表达式然后退出。
PATH/TO/CRATE/ROOT> cargo run -- 2 + 3 Welcome to pupil, the arithmetic expression evaluator. Ok: 5
-
管道输入。
将每一行评估为单独的表达式,并逐行打印结果。
PATH/TO/CRATE/ROOT> echo 2 + 3 | cargo run 5
库
此库可在 crates.io 上找到。在您的 Cargo.toml
中放置
[dependencies]
pupil = "0.1"
一个实用示例可以在 src/bin/pupil.rs
中找到。
文档可在网上找到 此处。
首先创建其环境,该环境将包含可用的内置函数和最后一个答案。
extern crate pupil;
// Creates an empty environment.
let empty = pupil::Env::new();
// Creates an environment initialized with the default builtins.
let env = pupil::Env::default();
创建一个表达式并将其绑定到其环境。
let mut expr = pupil::Expr::new(&env);
// Feed it input, note that you cannot give it partial tokens.
expr.feed("2 +").unwrap();
expr.feed("3").unwrap();
// Calculate the final result.
let result = expr.result().unwrap();
您可以在一步中执行表达式评估。
let result = pupil::Expr::new(&env).eval("2 + 3").unwrap();
就是这样。
许可证
MIT - 请参阅 license.txt
依赖项
~43KB