math-calc 0.1.0

A simple text-based arithmetic library.
Documentation
use std::str::FromStr;

grammar;

pub Grammar: Vec<i32> = {
    Exprs
}

Exprs: Vec<i32> = {
    <es:Exprs> "," <e:Expr> => {
        let mut expr_return = es;
        expr_return.push(e);
        expr_return
    },
    <e:Expr> => vec![e],
};

Expr: i32 = {
    <e:Expr> "+" <t:Factor> => e + t,
    <e:Expr> "-" <t:Factor> => e - t,
    Factor
};

Factor: i32 = {
    <f:Factor> "*" <i:Indicies> => f * i,
    <f:Factor> "/" <i:Indicies> => f / i,
    Indicies
};

Indicies: i32 = {
    <i:Indicies> "^" <t:Term> => i ^ t,
    Term
};

Term: i32 = { Num, "(" <Expr> ")" };
Num: i32 = r"(\-?)[0-9]+" => i32::from_str(<>).unwrap();