diff options
| author | 2025-03-30 03:56:37 +0200 | |
|---|---|---|
| committer | 2025-03-30 03:58:59 +0200 | |
| commit | e18f4a9936d03a112b1a05b24b0559e5be602e0e (patch) | |
| tree | e5939fba4307e5b00e3444eb82b477f49d09b166 /src/libparser/node/scalaroperatornode.cpp | |
| parent | 8a3fa044ee7b74be3221717c3f949a10d4e8a178 (diff) | |
| download | OneRoll-e18f4a9936d03a112b1a05b24b0559e5be602e0e.tar.gz OneRoll-e18f4a9936d03a112b1a05b24b0559e5be602e0e.zip | |
[math]: operator priority fix issue.
Diffstat (limited to 'src/libparser/node/scalaroperatornode.cpp')
| -rw-r--r-- | src/libparser/node/scalaroperatornode.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
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 <QDebug> ScalarOperatorNode::ScalarOperatorNode() @@ -252,7 +252,7 @@ QMap<Dice::ERROR_CODE, QString> 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<Dice::ERROR_CODE, QString> 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); +} |