Expand description
This crate implements shell arithmetic expansion.
Arithmetic expansion evaluates an expression that may contain some operators that perform basic maths. The expression is given as a string and parsed like an expression in C. The expression can include variables that interact with the environment.
To evaluate an expression, you call the eval()
function with a string
and an environment.
use std::collections::HashMap;
use yash_arith::{eval, Value};
let mut env = HashMap::new();
env.insert("a".to_owned(), "2".to_owned());
let result = eval("1 + a", &mut env);
assert_eq!(result, Ok(Value::Integer(3)));
Structs§
- Error
- Description of an error that occurred during expansion
Enums§
- Error
Cause - Cause of an arithmetic expansion error
- Eval
Error - Cause of an evaluation error
- Syntax
Error - Cause of a syntax error
- Token
Error - Cause of a tokenization error
- Value
- Result of evaluating an expression
Traits§
- Env
- Interface for accessing variables during evaluation
Functions§
- eval
- Performs arithmetic expansion