From 13b5f00c0a7314c166fa91d0b236ad9ca6d49a3b Mon Sep 17 00:00:00 2001 From: Alejandro Martinez Date: Mon, 17 Aug 2015 17:27:03 -0300 Subject: [PATCH] Fixed POW precedence and dangling else ambiguity Now 2*2^3+1 gives 17 instead of 65 expr1 ? expr2 ? expr3 : expr 4 : expr 5 is disambiguated to expr1 ? (expr2 ? expr3 : expr 4) : expr 5 Lowers shift/reduce conflitcs to 21 --- src/DataFilter.y | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/DataFilter.y b/src/DataFilter.y index 3855942fd..0d55d79e3 100644 --- a/src/DataFilter.y +++ b/src/DataFilter.y @@ -72,8 +72,10 @@ extern Leaf *root; // root node for parsed statement %type symbol value lexpr expr parms; -%left ADD SUBTRACT POW +%right '?' ':' +%left ADD SUBTRACT %left MULTIPLY DIVIDE +%right POW %right EQ NEQ LT LTE GT GTE MATCHES ENDSWITH CONTAINS %right AND OR