diff options
| author | 2015-03-03 22:57:16 +0100 | |
|---|---|---|
| committer | 2015-03-03 22:57:16 +0100 | |
| commit | 9f57feb3052ef74c9ee6aa08b39f04ee61f6839c (patch) | |
| tree | 7628e1e7138d8314f1d87dc939a991dd5cf039ad /diceparser.cpp | |
| parent | d51884f5c6ea38f3bf06b3a0ef185056fa0a7558 (diff) | |
| download | OneRoll-9f57feb3052ef74c9ee6aa08b39f04ee61f6839c.tar.gz OneRoll-9f57feb3052ef74c9ee6aa08b39f04ee61f6839c.zip | |
-store pointeur to previous node.
Diffstat (limited to 'diceparser.cpp')
| -rw-r--r-- | diceparser.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
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<ExecutionNode::ERROR_CODE> DiceParser::getErrorList() +{ + return m_start->getErrorList(); +} + bool DiceParser::readOperand(QString& str,ExecutionNode* & node) { int myNumber=1; |