diff options
| author | 2019-03-23 18:03:35 +0100 | |
|---|---|---|
| committer | 2019-03-23 18:03:35 +0100 | |
| commit | d1b2ac03a90fe00ee3b09e60584f895b40e2e9df (patch) | |
| tree | df5a5653f0978e700fe7ba6450230789b5e9be34 /diceparser.cpp | |
| parent | 607b8284672c75f134616a826e3475be4cf8e277 (diff) | |
| parent | e672047be7bb9e4e1b163a04a55b98b52d39e16a (diff) | |
| download | OneRoll-d1b2ac03a90fe00ee3b09e60584f895b40e2e9df.tar.gz OneRoll-d1b2ac03a90fe00ee3b09e60584f895b40e2e9df.zip | |
Merge pull request #39 from Rolisteam/occurence
Occurence
Diffstat (limited to 'diceparser.cpp')
| -rw-r--r-- | diceparser.cpp | 27 |
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(); |