diff options
| author | 2019-07-12 21:00:42 +0000 | |
|---|---|---|
| committer | 2019-07-12 21:00:42 +0000 | |
| commit | 5c2fbf1edc7547333739d3d643c4abee5ce6f942 (patch) | |
| tree | 6e9f4a709fd497fed1cf7f24bb2c3db421eb8711 /parsingtoolbox.cpp | |
| parent | 4f495aaaecb3118b835504e9bc1347f934aa49d1 (diff) | |
| parent | a3c3551815845cbc4bdf891b5f01406414abd4d2 (diff) | |
| download | OneRoll-5c2fbf1edc7547333739d3d643c4abee5ce6f942.tar.gz OneRoll-5c2fbf1edc7547333739d3d643c4abee5ce6f942.zip | |
Merge branch 'new_operator_and_fix' into 'master'
Value list node and occurence improvements
See merge request kde/rolisteam-diceparser!1
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 { |