aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/diceparser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'diceparser.cpp')
-rw-r--r--diceparser.cpp22
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;