From 774f9649da2087e3f9dc2efa6142c27fdc7cf3d0 Mon Sep 17 00:00:00 2001 From: Martin Michelsen Date: Thu, 4 Jul 2024 16:24:18 -0700 Subject: [PATCH] fix binary operator bind order --- src/IntegralExpression.cc | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/IntegralExpression.cc b/src/IntegralExpression.cc index 69506509..03ac448e 100644 --- a/src/IntegralExpression.cc +++ b/src/IntegralExpression.cc @@ -340,16 +340,16 @@ unique_ptr IntegralExpression::parse_expr(string // Check for binary operators at the root level using BinType = BinaryOperatorNode::Type; static const vector>> binary_operator_levels = { - {{make_pair("*", BinType::MULTIPLY)}, {make_pair("/", BinType::DIVIDE)}, {make_pair("%", BinType::MODULUS)}}, - {{make_pair("+", BinType::ADD)}, {make_pair("-", BinType::SUBTRACT)}}, - {{make_pair("<<", BinType::LEFT_SHIFT)}, {make_pair(">>", BinType::RIGHT_SHIFT)}}, - {{make_pair("<=", BinType::LESS_OR_EQUAL)}, {make_pair(">=", BinType::GREATER_OR_EQUAL)}, {make_pair("<", BinType::LESS_THAN)}, {make_pair(">", BinType::GREATER_THAN)}}, - {{make_pair("==", BinType::EQUAL)}, {make_pair("!=", BinType::NOT_EQUAL)}}, - {{make_pair("&", BinType::BITWISE_AND)}}, - {{make_pair("^", BinType::BITWISE_XOR)}}, - {{make_pair("|", BinType::BITWISE_OR)}}, - {{make_pair("&&", BinType::LOGICAL_AND)}}, {{make_pair("||", BinType::LOGICAL_OR)}}, + {{make_pair("&&", BinType::LOGICAL_AND)}}, + {{make_pair("|", BinType::BITWISE_OR)}}, + {{make_pair("^", BinType::BITWISE_XOR)}}, + {{make_pair("&", BinType::BITWISE_AND)}}, + {{make_pair("==", BinType::EQUAL)}, {make_pair("!=", BinType::NOT_EQUAL)}}, + {{make_pair("<=", BinType::LESS_OR_EQUAL)}, {make_pair(">=", BinType::GREATER_OR_EQUAL)}, {make_pair("<", BinType::LESS_THAN)}, {make_pair(">", BinType::GREATER_THAN)}}, + {{make_pair("<<", BinType::LEFT_SHIFT)}, {make_pair(">>", BinType::RIGHT_SHIFT)}}, + {{make_pair("+", BinType::ADD)}, {make_pair("-", BinType::SUBTRACT)}}, + {{make_pair("*", BinType::MULTIPLY)}, {make_pair("/", BinType::DIVIDE)}, {make_pair("%", BinType::MODULUS)}}, }; for (const auto& operators : binary_operator_levels) { size_t paren_level = 0;