aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/diceparser.cpp
diff options
context:
space:
mode:
authorRenaud G <renaud@rolisteam.org>2017-03-10 01:15:13 +0100
committerRenaud G <renaud@rolisteam.org>2017-03-10 01:15:13 +0100
commit993a636818d237feaca1870a65b72ab1d4ead31d (patch)
tree129b90b4e4c467e745ac0d583afbce4c8a2d9461 /diceparser.cpp
parent527011e141ea8022a2bb41a52ef64fbb6cac0cfe (diff)
downloadOneRoll-993a636818d237feaca1870a65b72ab1d4ead31d.tar.gz
OneRoll-993a636818d237feaca1870a65b72ab1d4ead31d.zip
-fix @ operator.
Diffstat (limited to 'diceparser.cpp')
-rw-r--r--diceparser.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/diceparser.cpp b/diceparser.cpp
index 4c51d55..b40d5e9 100644
--- a/diceparser.cpp
+++ b/diceparser.cpp
@@ -770,10 +770,15 @@ bool DiceParser::readOperator(QString& str,ExecutionNode* previous)
nodeExecOrChild = nodeExecOrChild->getNextNode();
}
- if((nullptr != nodeExecOrChild)&&(nodeExec != nodeExecOrChild))
+ // management of operator priority
+ if((nullptr != nodeExecOrChild)&&(nodeExec != nodeExecOrChild))
{
- node->setNextNode(nodeExecOrChild);
- parent->setNextNode(NULL);
+ // good 1 1 2 ; bad 1 0 4
+ if(nodeExecOrChild->getPriority()>=node->getPriority())
+ {
+ node->setNextNode(nodeExecOrChild);
+ parent->setNextNode(NULL);
+ }
}
else if(node->getPriority()>=nodeExec->getPriority())
{