#string #expressions #variables #token #calculate #calc

bin+lib m_calc

A library to calculate math expressions

5 releases

0.1.4 Dec 5, 2023
0.1.3 Nov 24, 2023
0.1.2 Nov 22, 2023
0.1.1 Nov 21, 2023
0.1.0 Nov 21, 2023

#724 in Math

29 downloads per month

MIT license

61KB
1K SLoC

m_calc

!!! this crate is under development and future updates will include breaking changes !!!

m_calc is a Rust crate for calculating mathematical expressions in strings.

For instance, a string like "2*3^(4-2)+14%3" should be calculated to 20

It also supports mathematical functions like: \sqrt(3.14159) is approximately 0

And variables: "a=10;5+a" -> 15

Usage

Add to cargo project

cargo add m_calc

Parse a string into a vector of tokens, and calculate the vector of tokens.

use m_calc::{tokenize, calculate};
use std::collections::HashMap;

let tokens = tokenize("2*3^(4-2)+14%3").unwrap();

let mut context = HashMap::new(); // The `context` is where variable assignments are stored

let res = calculate(&tokens, &mut context).unwrap();

println!("{}", res.display()); // `display` is a method of `Token`s that displays it as a simple expression (like `10`, or `a`)

assert_eq!("20", res.display());

Dependencies

~2.9–4MB
~70K SLoC