Crate pupil

Crate pupil 

Source
Expand description

Arithmetic expression evaluator.

Start things off by creating its environment which will hold the available builtins and the last answer.

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();

Create an expression and bind it to its environment.

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();

You can perform the expression evaluation in a single step.

let result = pupil::Expr::new(&env).eval("2 + 3").unwrap();

Re-exports§

pub use expr::Expr;
pub use env::Env;

Modules§

builtins
Builtins.
env
Environment.
expr
Expressions.
lexer
Lexing.
op
Operators.