kalc_kman/
lib.rs

1mod executor;
2mod lexer;
3#[cfg(test)]
4mod tests;
5mod token;
6
7pub use executor::Executor;
8pub use lexer::Lexer;
9pub use token::Token;
10
11pub fn kalc(formula: &str) -> Result<Executor, String> {
12    let mut lexer = Lexer::default();
13    lexer.parse(formula)?;
14    let mut executor = Executor::new(lexer);
15    executor.execute();
16    Ok(executor)
17}
18
19pub fn kalc_i64(formula: &str) -> Result<i64, String> {
20    Ok(kalc(formula)?.get_i64())
21}
22
23pub fn kalc_f64(formula: &str) -> Result<f64, String> {
24    Ok(kalc(formula)?.get_f64())
25}