From 23365529aa74eba14d8fa5eba1b7c970eef28153 Mon Sep 17 00:00:00 2001 From: schaeff Date: Thu, 9 Jul 2020 16:10:01 +0200 Subject: [PATCH] change precedence rules to follow python --- zokrates_core_test/tests/tests/precedence.zok | 2 ++ zokrates_pest_ast/src/lib.rs | 10 +++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/zokrates_core_test/tests/tests/precedence.zok b/zokrates_core_test/tests/tests/precedence.zok index 86404b44..96fc6142 100644 --- a/zokrates_core_test/tests/tests/precedence.zok +++ b/zokrates_core_test/tests/tests/precedence.zok @@ -11,6 +11,8 @@ def main(field g) -> (field): field e = if 2 >= 1 && 4 > 5 || 1 == 1 then 1 else 0 fi field f = if 1 < 2 && false || 4 < 5 && 2 >= 1 then 1 else 0 fi + 0x00 ^ 0x00 == 0x00 + //check if all statements have evalutated to true a * b * c * d * e * f == 1 return g diff --git a/zokrates_pest_ast/src/lib.rs b/zokrates_pest_ast/src/lib.rs index cba0188a..ca75bcdb 100644 --- a/zokrates_pest_ast/src/lib.rs +++ b/zokrates_pest_ast/src/lib.rs @@ -36,15 +36,15 @@ mod ast { PrecClimber::new(vec![ Operator::new(Rule::op_or, Assoc::Left), Operator::new(Rule::op_and, Assoc::Left), - Operator::new(Rule::op_bit_or, Assoc::Left), - Operator::new(Rule::op_bit_xor, Assoc::Left), - Operator::new(Rule::op_bit_and, Assoc::Left), Operator::new(Rule::op_equal, Assoc::Left) - | Operator::new(Rule::op_not_equal, Assoc::Left), - Operator::new(Rule::op_lte, Assoc::Left) + | Operator::new(Rule::op_not_equal, Assoc::Left) + | Operator::new(Rule::op_lte, Assoc::Left) | Operator::new(Rule::op_gte, Assoc::Left) | Operator::new(Rule::op_lt, Assoc::Left) | Operator::new(Rule::op_gt, Assoc::Left), + Operator::new(Rule::op_bit_or, Assoc::Left), + Operator::new(Rule::op_bit_xor, Assoc::Left), + Operator::new(Rule::op_bit_and, Assoc::Left), Operator::new(Rule::op_right_shift, Assoc::Left) | Operator::new(Rule::op_left_shift, Assoc::Left), Operator::new(Rule::op_add, Assoc::Left) | Operator::new(Rule::op_sub, Assoc::Left),