aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/parsingtoolbox.cpp
diff options
context:
space:
mode:
authorrenaud guezennec <renaud@rolisteam.org>2019-07-12 21:00:42 +0000
committerrenaud guezennec <renaud@rolisteam.org>2019-07-12 21:00:42 +0000
commit5c2fbf1edc7547333739d3d643c4abee5ce6f942 (patch)
tree6e9f4a709fd497fed1cf7f24bb2c3db421eb8711 /parsingtoolbox.cpp
parent4f495aaaecb3118b835504e9bc1347f934aa49d1 (diff)
parenta3c3551815845cbc4bdf891b5f01406414abd4d2 (diff)
downloadOneRoll-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.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
{