aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/diceparser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'diceparser.cpp')
-rw-r--r--diceparser.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/diceparser.cpp b/diceparser.cpp
index c2191ce..d9871e2 100644
--- a/diceparser.cpp
+++ b/diceparser.cpp
@@ -247,6 +247,11 @@ bool DiceParser::readExpression(QString& str,ExecutionNode* & node)
node = operandNode;
return true;
}
+ else if(readOptionFromNull(str,operandNode))
+ {
+ node = operandNode;
+ return true;
+ }
else
{
ExecutionNode* diceNode=nullptr;
@@ -254,7 +259,7 @@ bool DiceParser::readExpression(QString& str,ExecutionNode* & node)
{
NumberNode* numberNode=new NumberNode();
numberNode->setNumber(1);
- ExecutionNode* previous = diceNode->getPreviousNode();
+ ExecutionNode* previous = diceNode->getPreviousNode();
numberNode->setPreviousNode(previous);
numberNode->setNextNode(diceNode);
node = numberNode;
@@ -271,6 +276,17 @@ bool DiceParser::readExpression(QString& str,ExecutionNode* & node)
}
return true;
}
+bool DiceParser::readOptionFromNull(QString& str,ExecutionNode* & node)
+{
+ StartingNode nodePrevious;
+ if(readOption(str,&nodePrevious))
+ {
+ auto nodeNext = nodePrevious.getNextNode();
+ node = nodeNext;
+ return true;
+ }
+ return false;
+}
bool DiceParser::readNode(QString& str,ExecutionNode* & node)
{
QString key= str.left(1);