aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/libparser/node/parenthesesnode.cpp
diff options
context:
space:
mode:
authorRenaud Guezennec <renaud@rolisteam.org>2025-03-30 03:56:37 +0200
committerRenaud Guezennec <renaud@rolisteam.org>2025-03-30 03:58:59 +0200
commite18f4a9936d03a112b1a05b24b0559e5be602e0e (patch)
treee5939fba4307e5b00e3444eb82b477f49d09b166 /src/libparser/node/parenthesesnode.cpp
parent8a3fa044ee7b74be3221717c3f949a10d4e8a178 (diff)
downloadOneRoll-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.cpp15
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
{