From 24d48effb863e458c00dcb1bea1ad5aa82309599 Mon Sep 17 00:00:00 2001 From: Renaud G Date: Fri, 6 Mar 2015 00:27:37 +0100 Subject: -Add new node to roll die as value of list. --- diceparser.cpp | 41 +++++++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 12 deletions(-) (limited to 'diceparser.cpp') diff --git a/diceparser.cpp b/diceparser.cpp index 3f1c21c..ea6dcc9 100644 --- a/diceparser.cpp +++ b/diceparser.cpp @@ -36,6 +36,7 @@ #include "node/parenthesesnode.h" #include "node/helpnode.h" #include "node/jumpbackwardnode.h" +#include "node/listsetrollnode.h" #define DEFAULT_FACES_NUMBER 10 @@ -316,26 +317,42 @@ QString DiceParser::displayResult() bool DiceParser::readDice(QString& str,ExecutionNode* & node) { - DiceOperator myOperator; + DiceOperator currentOperator; - if(readDiceOperator(str,myOperator)) + if(readDiceOperator(str,currentOperator)) { int num; - if(m_parsingToolbox->readNumber(str,num)) + if(currentOperator==D) { - DiceRollerNode* drNode = new DiceRollerNode(num); - // dice.m_diceOp = myOperator; - // dice.m_faces = num; - node = drNode; - ExecutionNode* current = drNode; - while(readOption(str,current)) + if(m_parsingToolbox->readNumber(str,num)) { - current = getLatestNode(current); - } + DiceRollerNode* drNode = new DiceRollerNode(num); + // dice.m_diceOp = myOperator; + // dice.m_faces = num; + node = drNode; + ExecutionNode* current = drNode; + while(readOption(str,current)) + { + current = getLatestNode(current); + } - return true; + return true; + } } + else if(currentOperator ==L) + { + QStringList list; + if(m_parsingToolbox->readList(str,list)) + { + qDebug() << list; + ListSetRollNode* lsrNode = new ListSetRollNode(); + lsrNode->setListValue(list); + node = lsrNode; + return true; + } + } + } return false; -- cgit v1.2.3-70-g09d2