diff options
| author | 2019-07-10 11:50:52 +0200 | |
|---|---|---|
| committer | 2019-07-12 22:06:40 +0200 | |
| commit | 3003420a1efae5bb8f7baca7062c509a633fd977 (patch) | |
| tree | 8dafd872791c4b3999955ba5a82616c5d2b1af93 /parsingtoolbox.cpp | |
| parent | 9698a39a46f736cf37e31f8940e7c1a0a164185b (diff) | |
| download | OneRoll-3003420a1efae5bb8f7baca7062c509a633fd977.tar.gz OneRoll-3003420a1efae5bb8f7baca7062c509a633fd977.zip | |
Fix read validator
Diffstat (limited to 'parsingtoolbox.cpp')
| -rw-r--r-- | parsingtoolbox.cpp | 11 |
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 { |