From eb68f73ea76aae99336078cf978fec2fbffc65a1 Mon Sep 17 00:00:00 2001 From: Piotr Mitros Date: Tue, 3 Jan 2012 19:23:54 -0500 Subject: [PATCH] Bug where -(7+5) didn't work --- courseware/calc.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/courseware/calc.py b/courseware/calc.py index d46f7718de..6bab1a7ba0 100644 --- a/courseware/calc.py +++ b/courseware/calc.py @@ -102,7 +102,7 @@ def evaluator(variables, functions, string): paritem=paritem.setParseAction(parallel) term = paritem + ZeroOrMore((times|div)+paritem) term = term.setParseAction(prod_parse_action) - expr << term + ZeroOrMore((plus|minus)+term) + expr << Optional((plus|minus)) + term + ZeroOrMore((plus|minus)+term) expr=expr.setParseAction(sum_parse_action) return expr.parseString(string)[0] @@ -115,3 +115,4 @@ if __name__=='__main__': # print evaluator({'a': 2.2997471478310274, 'k': 9, 'm': 8, 'x': 0.66009498411213041}, {}, "5") print evaluator({},{}, "-1") + print evaluator({},{}, "-(7+5)")