diff options
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); +} |