aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorobiwankennedy <renaud@rolisteam.org>2014-03-18 11:27:49 +0100
committerobiwankennedy <renaud@rolisteam.org>2014-03-18 11:27:49 +0100
commitb94eced787742cf218dbc57f73dcbdfee26e500d (patch)
tree2dd87f0dbe411b82c16af03c62bff19b0aad65b6
parent4286112189c56bca4a17ccceb6d0991d1e339e9b (diff)
downloadOneRoll-b94eced787742cf218dbc57f73dcbdfee26e500d.tar.gz
OneRoll-b94eced787742cf218dbc57f73dcbdfee26e500d.zip
Update diceparser.cpp
adding support of default dice value: 4k3 ....
-rw-r--r--diceparser.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/diceparser.cpp b/diceparser.cpp
index f8fb477..6bec12d 100644
--- a/diceparser.cpp
+++ b/diceparser.cpp
@@ -14,6 +14,8 @@
#include "node/explosedicenode.h"
#include "node/parenthesesnode.h"
+#define DEFAULT_FACES_NUMBER 10
+
DiceParser::DiceParser()
{
m_parsingToolbox = new ParsingToolBox();
@@ -319,6 +321,24 @@ bool DiceParser::readOperator(QString& str,ExecutionNode* previous)
else
{
delete node;
+ ExecutionNode* nodeExec = new DiceRollerNode(DEFAULT_FACES_NUMBER);
+ ExecutionNode* nodeExec2 = nodeExec;
+ bool readOptionSuccessed=false;
+ while(readOption(str,nodeExec))
+ {
+ nodeExec = getLatestNode(nodeExec);
+ readOptionSuccessed = true;
+ }
+ if(readOptionSuccessed)
+ {
+ previous->setNextNode(nodeExec2);
+ }
+ else
+ {
+ delete nodeExec;
+ nodeExec = NULL;
+ nodeExec2 = NULL;
+ }
}
return false;
}