aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/parsingtoolbox.cpp
diff options
context:
space:
mode:
authorRenaud G <renaud@rolisteam.org>2017-03-10 01:15:30 +0100
committerRenaud G <renaud@rolisteam.org>2017-03-10 01:15:30 +0100
commit026ca5cb4829cd4c4ad6b945e27479303e96fe82 (patch)
tree6b9f4972ca71d9cfcd2ae26789103e501aa4e3c4 /parsingtoolbox.cpp
parent993a636818d237feaca1870a65b72ab1d4ead31d (diff)
parent6fdd7dad0a24cff8bd20907425a7b9f91e33fdd8 (diff)
downloadOneRoll-026ca5cb4829cd4c4ad6b945e27479303e96fe82.tar.gz
OneRoll-026ca5cb4829cd4c4ad6b945e27479303e96fe82.zip
Merge branch 'master' of github.com:Rolisteam/DiceParser
Diffstat (limited to 'parsingtoolbox.cpp')
-rw-r--r--parsingtoolbox.cpp24
1 files changed, 21 insertions, 3 deletions
diff --git a/parsingtoolbox.cpp b/parsingtoolbox.cpp
index 3d2d2c3..e04dcbe 100644
--- a/parsingtoolbox.cpp
+++ b/parsingtoolbox.cpp
@@ -213,6 +213,11 @@ IfNode::ConditionType ParsingToolBox::readConditionType(QString& str)
str=str.remove(0,1);
type = IfNode::AllOfThem;
}
+ else if(str.startsWith(':'))
+ {
+ str=str.remove(0,1);
+ type = IfNode::OnScalar;
+ }
return type;
}
@@ -311,7 +316,8 @@ bool ParsingToolBox::readNumber(QString& str, qint64& myNumber)
if(number.isEmpty())
{
- return readVariable(str,myNumber);
+ QString reason;
+ return readVariable(str,myNumber,reason);
}
bool ok;
@@ -376,7 +382,7 @@ bool ParsingToolBox::readString(QString &str, QString& strResult)
return false;
}
-bool ParsingToolBox::readVariable(QString &str, qint64 &myNumber)
+bool ParsingToolBox::readVariable(QString &str, qint64 &myNumber, QString& reasonFail)
{
if(str.isEmpty())
return false;
@@ -390,6 +396,7 @@ bool ParsingToolBox::readVariable(QString &str, qint64 &myNumber)
if(NULL!=m_variableHash)
{
+ qDebug() << m_variableHash->keys();
if(m_variableHash->contains(key))
{
QString value = m_variableHash->value(key);
@@ -401,10 +408,21 @@ bool ParsingToolBox::readVariable(QString &str, qint64 &myNumber)
str=str.remove(0,post+1);
return true;
}
+ else
+ {
+ reasonFail = QStringLiteral("Variable value is %1, not a number").arg(value);
+ }
}
+ else
+ {
+ reasonFail = QStringLiteral("Variable not found");
+ }
+ }
+ else
+ {
+ reasonFail = QStringLiteral("No Variables are defined");
}
-
return false;