[−][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");