aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorRenaud G <renaud@rolisteam.org>2019-07-10 11:50:52 +0200
committerRenaud G <renaud@rolisteam.org>2019-07-10 11:50:52 +0200
commit133e95bdac75e5793851fd4054689c339794eae3 (patch)
tree0510d4f48cd39c8c57e7fa7b0d27e9875f91b974
parent9317fc5571784bafdd6d5de88f2e86e55b646648 (diff)
downloadOneRoll-133e95bdac75e5793851fd4054689c339794eae3.tar.gz
OneRoll-133e95bdac75e5793851fd4054689c339794eae3.zip
Fix read validator
-rw-r--r--parsingtoolbox.cpp11
-rw-r--r--parsingtoolbox.h2
2 files changed, 6 insertions, 7 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
{
diff --git a/parsingtoolbox.h b/parsingtoolbox.h
index 7bb6059..b91db1a 100644
--- a/parsingtoolbox.h
+++ b/parsingtoolbox.h
@@ -111,7 +111,7 @@ public:
* @param str
* @return
*/
- Validator* readValidator(QString& str);
+ Validator* readValidator(QString& str, bool hasSquare=false);
/**
* @brief readCompositeValidator
* @param str