From e18f4a9936d03a112b1a05b24b0559e5be602e0e Mon Sep 17 00:00:00 2001 From: Renaud Guezennec Date: Sun, 30 Mar 2025 03:56:37 +0200 Subject: [math]: operator priority fix issue. --- src/libparser/node/scalaroperatornode.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'src/libparser/node/scalaroperatornode.cpp') diff --git a/src/libparser/node/scalaroperatornode.cpp b/src/libparser/node/scalaroperatornode.cpp index 40f725d..5a5e60b 100644 --- a/src/libparser/node/scalaroperatornode.cpp +++ b/src/libparser/node/scalaroperatornode.cpp @@ -21,7 +21,7 @@ ***************************************************************************/ #include "scalaroperatornode.h" -#include "result/diceresult.h" +#include "include/diceparser/parsingtoolbox.h" #include ScalarOperatorNode::ScalarOperatorNode() @@ -252,7 +252,7 @@ QMap ScalarOperatorNode::getExecutionErrorMap() if(nullptr != m_internalNode) { auto keys= m_internalNode->getExecutionErrorMap().keys(); - for(const auto& key : keys) + for(const auto& key : std::as_const(keys)) { m_errors.insert(key, m_internalNode->getExecutionErrorMap().value(key)); } @@ -260,7 +260,7 @@ QMap ScalarOperatorNode::getExecutionErrorMap() if(nullptr != m_nextNode) { auto keys= m_nextNode->getExecutionErrorMap().keys(); - for(auto const& key : keys) + for(auto const& key : std::as_const(keys)) { m_errors.insert(key, m_nextNode->getExecutionErrorMap().value(key)); } @@ -278,3 +278,15 @@ ExecutionNode* ScalarOperatorNode::getCopy() const } return node; } + +void ScalarOperatorNode::setNextNode(ExecutionNode* node) +{ + if(node && node->getPriority() > getPriority()) + { + auto temp= m_internalNode; + temp= ParsingToolBox::getLeafNode(temp); + temp->setNextNode(node); + } + else + ExecutionNode::setNextNode(node); +} -- cgit v1.2.3-70-g09d2