[][src]Function fmtcalc::expr

pub fn expr(input: &str) -> String

Returns the calculation result.

EBNF

expr    = mul ('+' mul | '-' mul)*;
mul     = unary ('*' unary | '/' unary | '%' unary)*;
unary   = ('+' | '-')? primary;
primary = num | '(' expr ')';
num     = (0x)?[0-9]+(.[0-9]+)?;

Examples

assert_eq!(expr("5+6*7"),   "47");
assert_eq!(expr("5*(9-6)"), "15");
assert_eq!(expr("(3+5)/2"),  "4");
assert_eq!(expr("0.12+3.4"), "3.52");
assert_eq!(expr("0x42"),    "66");