From 399150be154c8d8498f1c5a4c8b60d9471cbb974 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sun, 8 Nov 2020 19:03:17 +0100 Subject: [PATCH] pratt: operators: unary minus loses to power This is to make it work in accordance with python which gives us: `assert -2 ** 2 == -4` --- src/operators.inc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/operators.inc b/src/operators.inc index 6efed95..5975829 100644 --- a/src/operators.inc +++ b/src/operators.inc @@ -12,9 +12,9 @@ OP( PLUS_PLUS, 130, 120, PREFIX_POSTFIX, ++, '+', '+', 0) OP(MINUS_MINUS, 130, 120, PREFIX_POSTFIX, --, '-', '-', 0) OP( NOT, 130, -1, PREFIX, !, '!', 0) OP( BIT_NOT, 130, -1, PREFIX, ~, '~', 0) -OP( PLUS, 120, 90, PREFIX_INFIX, +, '+', 0) -OP( MINUS, 120, 90, PREFIX_INFIX, -, '-', 0) -OP( POWER, -1, 110, POWER, PLACEHOLDER, '*', '*', 0) +OP( PLUS, 110, 90, PREFIX_INFIX, +, '+', 0) +OP( MINUS, 110, 90, PREFIX_INFIX, -, '-', 0) +OP( POWER, -1, 120, POWER, PLACEHOLDER, '*', '*', 0) OP( TIMES, -1, 100, INFIX, *, '*', 0) OP( DIVIDES, -1, 100, INFIX, /, '/', 0) OP( MODULO, -1, 100, INFIX, %, '%', 0)