aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/diceparser.cpp
diff options
context:
space:
mode:
authorRenaud G <renaud@rolisteam.org>2019-03-23 18:03:35 +0100
committerGitHub <noreply@github.com>2019-03-23 18:03:35 +0100
commitd1b2ac03a90fe00ee3b09e60584f895b40e2e9df (patch)
treedf5a5653f0978e700fe7ba6450230789b5e9be34 /diceparser.cpp
parent607b8284672c75f134616a826e3475be4cf8e277 (diff)
parente672047be7bb9e4e1b163a04a55b98b52d39e16a (diff)
downloadOneRoll-d1b2ac03a90fe00ee3b09e60584f895b40e2e9df.tar.gz
OneRoll-d1b2ac03a90fe00ee3b09e60584f895b40e2e9df.zip
Merge pull request #39 from Rolisteam/occurence
Occurence
Diffstat (limited to 'diceparser.cpp')
-rw-r--r--diceparser.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/diceparser.cpp b/diceparser.cpp
index 5ec7122..8efa83e 100644
--- a/diceparser.cpp
+++ b/diceparser.cpp
@@ -39,6 +39,7 @@
#include "node/listsetrollnode.h"
#include "node/mergenode.h"
#include "node/numbernode.h"
+#include "node/occurencecountnode.h"
#include "node/paintnode.h"
#include "node/parenthesesnode.h"
#include "node/rerolldicenode.h"
@@ -78,6 +79,7 @@ DiceParser::DiceParser()
m_OptionOp->insert(QStringLiteral("u"), Split);
m_OptionOp->insert(QStringLiteral("g"), Group);
m_OptionOp->insert(QStringLiteral("b"), Bind);
+ m_OptionOp->insert(QStringLiteral("o"), Occurences);
m_aliasList= new QList<DiceAlias*>();
@@ -1113,6 +1115,31 @@ bool DiceParser::readOption(QString& str, ExecutionNode* previous) //,
found= true;
}
break;
+ case Occurences:
+ {
+ qint64 number= 0;
+ auto occNode= new OccurenceCountNode();
+ if(m_parsingToolbox->readNumber(str, number))
+ {
+ occNode->setWidth(number);
+ Validator* validator= m_parsingToolbox->readCompositeValidator(str);
+ if(validator)
+ {
+ occNode->setValidator(validator);
+ }
+ else if(m_parsingToolbox->readComma(str))
+ {
+ if(m_parsingToolbox->readNumber(str, number))
+ {
+ occNode->setHeight(number);
+ }
+ }
+ }
+ previous->setNextNode(occNode);
+ node= occNode;
+ found= true;
+ }
+ break;
case Painter:
{
PainterNode* painter= new PainterNode();