diff --git a/pymbolic/parser.py b/pymbolic/parser.py index 0e5cf6b425fef2f50b0d48736a98d17a445bb312..a12a100e2e0e33dbadfb58f11dfab79b632faf5f 100644 --- a/pymbolic/parser.py +++ b/pymbolic/parser.py @@ -74,8 +74,8 @@ def parse(expr_str): if pstate.is_next(_minus): pstate.advance() - return -parse_expression(pstate, _PREC_UNARY_MINUS) - if pstate.is_next(_openpar): + left_exp = -parse_expression(pstate, _PREC_UNARY_MINUS) + elif pstate.is_next(_openpar): pstate.advance() left_exp = parse_expression(pstate) pstate.expect(_closepar) @@ -88,7 +88,7 @@ def parse(expr_str): did_something = False if pstate.is_at_end(): return left_exp - + next_tag = pstate.next_tag() if next_tag is _openpar and _PREC_CALL > min_precedence: