No description
Find a file
xbazzi 0607d37d15 fix(neg-temp): reverse skill issues (#1)
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>
2026-05-09 22:53:34 +00:00
.vscode Helper method for getting canonical unit name 2025-10-06 14:26:42 -04:00
mathengine fix(neg-temp): reverse skill issues (#1) 2026-05-09 22:53:34 +00:00
mathengine-cli fix(neg-temp): reverse skill issues (#1) 2026-05-09 22:53:34 +00:00
mathengine-evaluator fix(neg-temp): reverse skill issues (#1) 2026-05-09 22:53:34 +00:00
mathengine-lexer Extra metadata and READMEs for all the individual crates 2025-10-06 13:33:23 -04:00
mathengine-parser Add version numbers to prepare for release 2025-10-06 19:24:18 -04:00
mathengine-units Major refactoring of units crate to reduce boilerplate 2025-10-06 18:21:00 -04:00
.envrc fix(neg-temp): reverse skill issues (#1) 2026-05-09 22:53:34 +00:00
.gitignore fix(neg-temp): reverse skill issues (#1) 2026-05-09 22:53:34 +00:00
Cargo.lock Unified mathengine crate 2025-10-06 13:50:41 -04:00
Cargo.toml WIP 2025-10-06 19:27:53 -04:00
CLAUDE.md Proper errors instead of panicking everywhere 2025-10-05 14:34:03 -04:00
devenv.lock fix(neg-temp): reverse skill issues (#1) 2026-05-09 22:53:34 +00:00
devenv.nix fix(neg-temp): reverse skill issues (#1) 2026-05-09 22:53:34 +00:00
devenv.yaml fix(neg-temp): reverse skill issues (#1) 2026-05-09 22:53:34 +00:00
Makefile Update makefile 2025-10-06 19:48:06 -04:00
README.md Added README and changed project name 2025-10-05 14:02:01 -04:00
release.toml Update makefile 2025-10-06 19:48:06 -04:00
shell.nix Small QOL updates 2025-10-06 15:16:50 -04:00

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