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/parenthesesnode.cpp | |
| parent | 8a3fa044ee7b74be3221717c3f949a10d4e8a178 (diff) | |
| download | OneRoll-e18f4a9936d03a112b1a05b24b0559e5be602e0e.tar.gz OneRoll-e18f4a9936d03a112b1a05b24b0559e5be602e0e.zip | |
[math]: operator priority fix issue.
Diffstat (limited to 'src/libparser/node/parenthesesnode.cpp')
| -rw-r--r-- | src/libparser/node/parenthesesnode.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/libparser/node/parenthesesnode.cpp b/src/libparser/node/parenthesesnode.cpp index d122fe2..17db85a 100644 --- a/src/libparser/node/parenthesesnode.cpp +++ b/src/libparser/node/parenthesesnode.cpp @@ -39,6 +39,21 @@ void ParenthesesNode::run(ExecutionNode* previous) temp= temp->getNextNode(); } m_result= temp->getResult(); + + if(!m_nextNode) + return; + + auto pNext= m_nextNode->getPriority(); + + if(!m_previousNode) + return; + + auto previousNextNode= m_previousNode->getNextNode(); + if(pNext < getPriority() && previousNextNode != this) + { + m_previousNode->setNextNode(m_nextNode); + m_nextNode= nullptr; + } } QString ParenthesesNode::toString(bool b) const { |