aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/parsingtoolbox.cpp
diff options
context:
space:
mode:
authorRenaud G <renaud@rolisteam.org>2019-07-10 11:50:52 +0200
committerRenaud G <renaud@rolisteam.org>2019-07-12 22:06:40 +0200
commit3003420a1efae5bb8f7baca7062c509a633fd977 (patch)
tree8dafd872791c4b3999955ba5a82616c5d2b1af93 /parsingtoolbox.cpp
parent9698a39a46f736cf37e31f8940e7c1a0a164185b (diff)
downloadOneRoll-3003420a1efae5bb8f7baca7062c509a633fd977.tar.gz
OneRoll-3003420a1efae5bb8f7baca7062c509a633fd977.zip
Fix read validator
Diffstat (limited to 'parsingtoolbox.cpp')
-rw-r--r--parsingtoolbox.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/parsingtoolbox.cpp b/parsingtoolbox.cpp
index 4fbbd6c..702019d 100644
--- a/parsingtoolbox.cpp
+++ b/parsingtoolbox.cpp
@@ -189,7 +189,7 @@ bool ParsingToolBox::readOperand(QString& str, ExecutionNode*& node)
return false;
}
-Validator* ParsingToolBox::readValidator(QString& str)
+Validator* ParsingToolBox::readValidator(QString& str, bool hasSquare)
{
Validator* returnVal= nullptr;
BooleanCondition::LogicOperator myLogicOp= BooleanCondition::Equal;
@@ -204,7 +204,7 @@ Validator* ParsingToolBox::readValidator(QString& str)
{
OperationCondition* condition= new OperationCondition();
condition->setValueNode(operandNode);
- Validator* valid= readValidator(str);
+ Validator* valid= readValidator(str,hasSquare);
BooleanCondition* boolC= dynamic_cast<BooleanCondition*>(valid);
if(nullptr != boolC)
{
@@ -216,7 +216,7 @@ Validator* ParsingToolBox::readValidator(QString& str)
else if(readOperand(str, operandNode))
{
bool isRange= false;
- if(str.startsWith("-"))
+ if(str.startsWith("-") && hasSquare)
{
str= str.remove(0, 1);
qint64 end= 0;
@@ -274,8 +274,7 @@ Validator* ParsingToolBox::readCompositeValidator(QString& str)
str= str.remove(0, 1);
expectSquareBrasket= true;
}
-
- Validator* tmp= readValidator(str);
+ Validator* tmp= readValidator(str, expectSquareBrasket);
CompositeValidator::LogicOperation opLogic;
QVector<CompositeValidator::LogicOperation>* operators= new QVector<CompositeValidator::LogicOperation>();
@@ -288,7 +287,7 @@ Validator* ParsingToolBox::readCompositeValidator(QString& str)
{
operators->append(opLogic);
validatorList->append(tmp);
- tmp= readValidator(str);
+ tmp= readValidator(str, expectSquareBrasket);
}
else
{