aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/diceparser.cpp
diff options
context:
space:
mode:
authorRenaud G <renaud@rolisteam.org>2015-04-06 14:26:23 +0200
committerRenaud G <renaud@rolisteam.org>2015-04-06 14:26:23 +0200
commit379ffeb21fd4f067ea542e6b45967bab1ca004d5 (patch)
tree1f609e31581954c0597698b5aa74635c09870434 /diceparser.cpp
parent3ac6eea8269ee5b28c88fd0736c8963c0b8c2906 (diff)
downloadOneRoll-379ffeb21fd4f067ea542e6b45967bab1ca004d5.tar.gz
OneRoll-379ffeb21fd4f067ea542e6b45967bab1ca004d5.zip
-Creation of dedicated class for alias management
Diffstat (limited to 'diceparser.cpp')
-rw-r--r--diceparser.cpp24
1 files changed, 12 insertions, 12 deletions
diff --git a/diceparser.cpp b/diceparser.cpp
index 2c533dc..08decde 100644
--- a/diceparser.cpp
+++ b/diceparser.cpp
@@ -60,12 +60,11 @@ DiceParser::DiceParser()
//m_OptionOp->insert(QObject::tr("@"),JumpBackward);
-
- m_aliasMap = new QMap<QString,QString>;
- m_aliasMap->insert("l5r","D10k");
- m_aliasMap->insert("l5R","D10K");
- m_aliasMap->insert("nwod","D10e10c[>7]");
- m_aliasMap->insert("nwod","D10e10c[>7]");
+ m_aliasList = new QList<DiceAlias*>();
+ m_aliasList->append(new DiceAlias("l5r","D10k"));
+ m_aliasList->append(new DiceAlias("l5R","D10K"));
+ m_aliasList->append(new DiceAlias("nwod","D10e10c[>7]"));
+ m_aliasList->append(new DiceAlias("(.*)wod(.*)","\\1d10e[=10]c[>=\\2]-@c[=1]",false));
m_nodeActionMap = new QMap<QString,NodeAction>();
m_nodeActionMap->insert("@",JumpBackward);
@@ -88,15 +87,16 @@ ExecutionNode* DiceParser::getLatestNode(ExecutionNode* node)
}
QString DiceParser::convertAlias(QString str)
{
- foreach(QString cmd, m_aliasMap->keys())
+ foreach(DiceAlias* cmd, *m_aliasList)
{
- if(str.contains(cmd))
- {
- str.replace(cmd,m_aliasMap->value(cmd));
- }
+ cmd->resolved(str);
}
return str;
}
+QList<DiceAlias*>* DiceParser::getAliases()
+{
+ return m_aliasList;
+}
bool DiceParser::parseLine(QString str)
{
@@ -539,7 +539,7 @@ bool DiceParser::readCommand(QString& str,ExecutionNode* & node)
}
else if(str=="la")
{
- node = new ListAliasNode(m_aliasMap);
+ node = new ListAliasNode(m_aliasList);
}
return true;
}