Arithmetic expression evaluator written in Rust.
It implements a butchered Shunting-yard algorithm.
To build the pupil executable, run cargo build
. Append the --release
switch as needed for optimized builds.
It has three different use cases:
-
Interactive mode.
Enter expressions and press enter to evaluate them.
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
-
Provide the expression to evaluate as command line arguments.
This allows to evaluate a single expression and then exit.
PATH/TO/CRATE/ROOT> cargo run -- 2 + 3 Welcome to pupil, the arithmetic expression evaluator. Ok: 5
-
Pipe input.
Evaluates every line as separate expressions and prints the result line by line.
PATH/TO/CRATE/ROOT> echo 2 + 3 | cargo run 5
This library can be found on crates.io.
In your Cargo.toml
put:
[dependencies]
pupil = "0.2"
A practical example can be found in src/bin/pupil.rs
.
Documentation can be found on docs.rs.
Simple usage:
// Create a basic environment with the default builtins
let mut env = pupil::BasicEnv::default();
// Evaluate expressions in this environment
let result = pupil::eval(&env, "2 + 3");
assert_eq!(result, Ok(5.0));
Licensed under MIT License, see license.txt.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, shall be licensed as above, without any additional terms or conditions.