From 2d9fe10724dc1d5de86e63670536b9a1b6599ba1 Mon Sep 17 00:00:00 2001 From: Renaud G Date: Tue, 9 Jun 2015 08:44:49 +0200 Subject: -add method to read list with probability value. It sets range for all values in List node. --- diceparser.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'diceparser.cpp') diff --git a/diceparser.cpp b/diceparser.cpp index 570c96b..4f0645e 100644 --- a/diceparser.cpp +++ b/diceparser.cpp @@ -555,9 +555,16 @@ bool DiceParser::readDice(QString& str,ExecutionNode* & node) else if(currentOperator ==L) { QStringList list; - if(m_parsingToolbox->readList(str,list)) + QList listRange; + ParsingToolBox::LIST_OPERATOR op = m_parsingToolbox->readListOperator(str); + if(m_parsingToolbox->readList(str,list,listRange)) { ListSetRollNode* lsrNode = new ListSetRollNode(); + lsrNode->setRangeList(listRange); + if(op == ParsingToolBox::UNIQUE) + { + lsrNode->setUnique(true); + } lsrNode->setListValue(list); node = lsrNode; return true; -- cgit v1.2.3-70-g09d2 From 46568cbccfd0c60dc19cc27265afc983d71b4c58 Mon Sep 17 00:00:00 2001 From: Renaud G Date: Thu, 20 Aug 2015 00:30:45 +0200 Subject: number are qint64 --- diceparser.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'diceparser.cpp') diff --git a/diceparser.cpp b/diceparser.cpp index 1ab5e30..f695a42 100644 --- a/diceparser.cpp +++ b/diceparser.cpp @@ -519,8 +519,8 @@ bool DiceParser::readDice(QString& str,ExecutionNode* & node) if(readDiceOperator(str,currentOperator)) { - int num; - int end; + qint64 num; + qint64 end; if(currentOperator==D) { if(m_parsingToolbox->readNumber(str,num)) @@ -542,7 +542,7 @@ bool DiceParser::readDice(QString& str,ExecutionNode* & node) else if(m_parsingToolbox->readDiceRange(str,num,end)) { - int face = abs(num - end)+1; + qint64 face = abs(num - end)+1; DiceRollerNode* drNode = new DiceRollerNode(face,num); node = drNode; ExecutionNode* current = drNode; @@ -754,7 +754,7 @@ bool DiceParser::readOption(QString& str,ExecutionNode* previous, bool hasDice)/ { case Keep: { - int myNumber=0; + qint64 myNumber=0; bool ascending = m_parsingToolbox->readAscending(str); if(m_parsingToolbox->readNumber(str,myNumber)) { @@ -775,7 +775,7 @@ bool DiceParser::readOption(QString& str,ExecutionNode* previous, bool hasDice)/ break; case KeepAndExplose: { - int myNumber=0; + qint64 myNumber=0; bool ascending = m_parsingToolbox->readAscending(str); if(m_parsingToolbox->readNumber(str,myNumber)) { @@ -860,7 +860,7 @@ bool DiceParser::readOption(QString& str,ExecutionNode* previous, bool hasDice)/ break; case Explosing: { - Validator* validator = m_parsingToolbox->readValidator(str); + Validator* validator = m_parsingToolbox->readCompositeValidator(str); if(NULL!=validator) { if(!m_parsingToolbox->isValidValidator(previous,validator)) @@ -915,7 +915,7 @@ QString DiceParser::humanReadableError() bool DiceParser::readOperand(QString& str,ExecutionNode* & node) { - int myNumber=1; + qint64 myNumber=1; if(m_parsingToolbox->readNumber(str,myNumber)) { -- cgit v1.2.3-70-g09d2 From 8a1c33fb342a3609ec4d22e918c5f847c59c1b91 Mon Sep 17 00:00:00 2001 From: Renaud G Date: Thu, 20 Aug 2015 11:36:18 +0200 Subject: start fixing dot tree generation --- diceparser.cpp | 6 ++++-- node/countexecutenode.cpp | 11 ++++++++++- node/countexecutenode.h | 2 +- node/executionnode.h | 2 +- node/numbernode.cpp | 11 +++++++++-- node/numbernode.h | 2 +- node/rerolldicenode.cpp | 2 +- node/rerolldicenode.h | 2 +- node/scalaroperatornode.cpp | 5 ++++- node/scalaroperatornode.h | 2 +- node/sortresult.cpp | 6 +++++- node/sortresult.h | 2 +- node/startingnode.cpp | 7 ++++++- node/startingnode.h | 2 +- 14 files changed, 46 insertions(+), 16 deletions(-) (limited to 'diceparser.cpp') diff --git a/diceparser.cpp b/diceparser.cpp index f695a42..8f930a0 100644 --- a/diceparser.cpp +++ b/diceparser.cpp @@ -814,7 +814,8 @@ bool DiceParser::readOption(QString& str,ExecutionNode* previous, bool hasDice)/ break; case Count: { - Validator* validator = m_parsingToolbox->readValidator(str); + //Validator* validator = m_parsingToolbox->readValidator(str); + Validator* validator = m_parsingToolbox->readCompositeValidator(str); if(NULL!=validator) { /// @todo display warning here. @@ -836,7 +837,8 @@ bool DiceParser::readOption(QString& str,ExecutionNode* previous, bool hasDice)/ case Reroll: case RerollAndAdd: { - Validator* validator = m_parsingToolbox->readValidator(str); + //Validator* validator = m_parsingToolbox->readValidator(str); + Validator* validator = m_parsingToolbox->readCompositeValidator(str); if(NULL!=validator) { /// @todo display warning here. diff --git a/node/countexecutenode.cpp b/node/countexecutenode.cpp index ff3d67b..295fdad 100644 --- a/node/countexecutenode.cpp +++ b/node/countexecutenode.cpp @@ -46,10 +46,19 @@ void CountExecuteNode::run(ExecutionNode *previous) } } } -QString CountExecuteNode::toString() const +QString CountExecuteNode::toString(bool withlabel) const +{ +if(withlabel) { return "CountExecuteNode"+m_validator->toString(); } +else +{ + + return "CountExecuteNode"+m_validator->toString(); +} +} +} qint64 CountExecuteNode::getPriority() const { qint64 priority=0; diff --git a/node/countexecutenode.h b/node/countexecutenode.h index 519403b..167ee82 100644 --- a/node/countexecutenode.h +++ b/node/countexecutenode.h @@ -30,7 +30,7 @@ public: * @brief toString * @return */ - virtual QString toString()const; + virtual QString toString(bool withLabel)const; /** * @brief getPriority * @return diff --git a/node/executionnode.h b/node/executionnode.h index 39d714b..cca7903 100644 --- a/node/executionnode.h +++ b/node/executionnode.h @@ -46,7 +46,7 @@ public: * @brief toString * @return */ - virtual QString toString()const=0; + virtual QString toString(bool withLabel)const=0; /** * @brief getPriority * @return diff --git a/node/numbernode.cpp b/node/numbernode.cpp index c63aadf..55ee752 100644 --- a/node/numbernode.cpp +++ b/node/numbernode.cpp @@ -44,9 +44,16 @@ void NumberNode::setNumber(qint64 a) m_scalarResult->setValue(a); m_number = a; } -QString NumberNode::toString() const +QString NumberNode::toString(bool withLabel) const { - return QString("NumberNode [label=\"NumberNode %1\"]").arg(m_number); + if(withLabel) + { + return QString("NumberNode%2 [label=\"NumberNode %1\"]").arg(m_number).arg(m_number); + } + else + { + return QString("NumberNode%1").arg(m_number); + } } qint64 NumberNode::getPriority() const { diff --git a/node/numbernode.h b/node/numbernode.h index 3c43a51..50d29ad 100644 --- a/node/numbernode.h +++ b/node/numbernode.h @@ -34,7 +34,7 @@ public: NumberNode(); void run(ExecutionNode* previous); void setNumber(qint64); -virtual QString toString()const; + virtual QString toString(bool withLabel)const; virtual qint64 getPriority() const; private: qint64 m_number; diff --git a/node/rerolldicenode.cpp b/node/rerolldicenode.cpp index 038a3ec..7798f61 100644 --- a/node/rerolldicenode.cpp +++ b/node/rerolldicenode.cpp @@ -46,7 +46,7 @@ void RerollDiceNode::setValidator(Validator* val) { m_validator = val; } -QString RerollDiceNode::toString() const +QString RerollDiceNode::toString(bool wl) const { return QString("RerollDiceNode [label=\"RerollDiceNode validatior:%1\"").arg(m_validator->toString()); } diff --git a/node/rerolldicenode.h b/node/rerolldicenode.h index a97e448..f456bb3 100644 --- a/node/rerolldicenode.h +++ b/node/rerolldicenode.h @@ -39,7 +39,7 @@ public: * @brief toString * @return */ - virtual QString toString()const; + virtual QString toString(bool )const; /** diff --git a/node/scalaroperatornode.cpp b/node/scalaroperatornode.cpp index c5f91f9..dead500 100644 --- a/node/scalaroperatornode.cpp +++ b/node/scalaroperatornode.cpp @@ -138,7 +138,7 @@ qint64 ScalarOperatorNode::multiple(qint64 a,qint64 b) { return a*b; } -QString ScalarOperatorNode::toString() const +QString ScalarOperatorNode::toString(bool wl) const { QString op=""; switch(m_operator) @@ -159,7 +159,10 @@ QString ScalarOperatorNode::toString() const break; } +if(wl) return QString("ScalarOperatorNode [label=\"ScalarOperatorNode %1\"").arg(op); +else + return QString("ScalarOperatorNode"); } qint64 ScalarOperatorNode::getPriority() const { diff --git a/node/scalaroperatornode.h b/node/scalaroperatornode.h index e43f6f8..4aab39a 100644 --- a/node/scalaroperatornode.h +++ b/node/scalaroperatornode.h @@ -42,7 +42,7 @@ public: bool setOperatorChar(QChar c); void setInternalNode(ExecutionNode* node); - virtual QString toString()const; + virtual QString toString(bool wl)const; virtual qint64 getPriority() const; void generateDotTree(QString& s); diff --git a/node/sortresult.cpp b/node/sortresult.cpp index 44a25f0..727810e 100644 --- a/node/sortresult.cpp +++ b/node/sortresult.cpp @@ -110,9 +110,13 @@ void SortResultNode::setSortAscending(bool asc) { m_ascending = asc; } -QString SortResultNode::toString() const +QString SortResultNode::toString(bool wl) const { +if(wl) return QString("SortResultNode [label=\"SortResultNode %1\"").arg(m_ascending ? "Ascending":"Descending"); +else + return QString("SortResultNode"); + } qint64 SortResultNode::getPriority() const { diff --git a/node/sortresult.h b/node/sortresult.h index d505e4b..c4f96dc 100644 --- a/node/sortresult.h +++ b/node/sortresult.h @@ -49,7 +49,7 @@ public: * @brief toString * @return */ - virtual QString toString()const; + virtual QString toString(bool wl)const; /** * @brief getPriority * @return diff --git a/node/startingnode.cpp b/node/startingnode.cpp index b15101b..15ea053 100644 --- a/node/startingnode.cpp +++ b/node/startingnode.cpp @@ -13,9 +13,14 @@ void StartingNode::run(ExecutionNode*) m_nextNode->run(this); } } -QString StartingNode::toString() const +QString StartingNode::toString(bool withlabel) const { +if(withlabel) return "StartingNode [shape=box]"; +else + return "StartingNode"; +} + } qint64 StartingNode::getPriority() const { diff --git a/node/startingnode.h b/node/startingnode.h index ebe28c0..e9bc5a5 100644 --- a/node/startingnode.h +++ b/node/startingnode.h @@ -22,7 +22,7 @@ public: * @brief toString * @return */ - virtual QString toString()const; + virtual QString toString(bool withlabel)const; /** * @brief getPriority * @return -- cgit v1.2.3-70-g09d2 From 8a66f62a1f9226620d16af07c3afd580ddd5a65c Mon Sep 17 00:00:00 2001 From: Renaud G Date: Thu, 20 Aug 2015 12:57:29 +0200 Subject: Add new line at the end --- diceparser.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'diceparser.cpp') diff --git a/diceparser.cpp b/diceparser.cpp index 8f930a0..b3add42 100644 --- a/diceparser.cpp +++ b/diceparser.cpp @@ -942,6 +942,7 @@ void DiceParser::writeDownDotTree(QString filepath) QTextStream in(&file); in << str; } + in << "\n"; } void DiceParser::setPathToHelp(QString l) { -- cgit v1.2.3-70-g09d2 From 8a4a770104ba75b770671d3e69be6687736f7c8e Mon Sep 17 00:00:00 2001 From: Renaud G Date: Thu, 20 Aug 2015 12:57:57 +0200 Subject: change new line position --- diceparser.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'diceparser.cpp') diff --git a/diceparser.cpp b/diceparser.cpp index b3add42..6d043a1 100644 --- a/diceparser.cpp +++ b/diceparser.cpp @@ -933,7 +933,7 @@ void DiceParser::writeDownDotTree(QString filepath) { QString str("digraph ExecutionTree {\n"); m_start->generateDotTree(str); - str.append("}"); + str.append("}\n"); QFile file(filepath); @@ -942,7 +942,7 @@ void DiceParser::writeDownDotTree(QString filepath) QTextStream in(&file); in << str; } - in << "\n"; + } void DiceParser::setPathToHelp(QString l) { -- cgit v1.2.3-70-g09d2