From 9f57feb3052ef74c9ee6aa08b39f04ee61f6839c Mon Sep 17 00:00:00 2001 From: Renaud G Date: Tue, 3 Mar 2015 22:57:16 +0100 Subject: -store pointeur to previous node. --- diceparser.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'diceparser.cpp') diff --git a/diceparser.cpp b/diceparser.cpp index 8dff994..2be2e08 100644 --- a/diceparser.cpp +++ b/diceparser.cpp @@ -53,6 +53,7 @@ DiceParser::DiceParser() m_OptionOp->insert(QObject::tr("r"),Reroll); m_OptionOp->insert(QObject::tr("e"),Explosing); m_OptionOp->insert(QObject::tr("a"),RerollAndAdd); + m_OptionOp->insert(QObject::tr("@"),JumpBackward); @@ -77,6 +78,17 @@ ExecutionNode* DiceParser::getLatestNode(ExecutionNode* node) } return next; } +QString DiceParser::convertAlias(QString str) +{ + foreach(QString cmd, m_aliasMap->keys()) + { + if(str.contains(cmd)) + { + str.replace(cmd,m_aliasMap->value(cmd)); + } + } + return str; +} bool DiceParser::parseLine(QString str) { @@ -85,6 +97,7 @@ bool DiceParser::parseLine(QString str) ExecutionNode* newNode = NULL; m_current = m_start; + str = convertAlias(str); bool keepParsing = readExpression(str,newNode); while(keepParsing) @@ -566,6 +579,10 @@ bool DiceParser::readOption(QString& str,ExecutionNode* previous, bool hasDice) isFine = true; } } + case JumpBackward: + { + + } } } @@ -573,6 +590,11 @@ bool DiceParser::readOption(QString& str,ExecutionNode* previous, bool hasDice) return isFine; } +QList DiceParser::getErrorList() +{ + return m_start->getErrorList(); +} + bool DiceParser::readOperand(QString& str,ExecutionNode* & node) { int myNumber=1; -- cgit v1.2.3-70-g09d2