No description
ty pls Resolves #1 Reviewed-on: #1 Reviewed-by: javif89 <me@javierfeliz.com> Co-authored-by: xbazzi <xander@xbazzi.com> Co-committed-by: xbazzi <xander@xbazzi.com> |
||
|---|---|---|
| .vscode | ||
| mathengine | ||
| mathengine-cli | ||
| mathengine-evaluator | ||
| mathengine-lexer | ||
| mathengine-parser | ||
| mathengine-units | ||
| .envrc | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CLAUDE.md | ||
| devenv.lock | ||
| devenv.nix | ||
| devenv.yaml | ||
| Makefile | ||
| README.md | ||
| release.toml | ||
| shell.nix | ||
MathEngine
A Rust mathematical expression evaluator with unit conversion support.
Features
- Mathematical expressions:
2 + 3 * (100.50 - 4) - Unit conversions:
10m to feet,23C to F - Mixed operations:
1m to cm + 10 - Power operations:
2^10
Examples
use mathengine::{lexer::Lexer, Parser, evaluate};
let expression = "23C to F";
let lexer = Lexer::new(expression);
let tokens = lexer.tokenize();
let mut parser = Parser::new(tokens);
let ast = parser.parse().unwrap();
let result = evaluate(&ast);
println!("{}", result); // 73.4F
Supported Units
- Length: meters, centimeters, feet, inches, yards, miles
- Temperature: Celsius, Fahrenheit, Kelvin
Building
cargo build
cargo run