diff options
| author | 2016-01-30 17:52:32 +0100 | |
|---|---|---|
| committer | 2016-01-30 17:52:32 +0100 | |
| commit | e7e79a8a74657ca6f8488a7cd3742bb2af734b0a (patch) | |
| tree | b520791931d0b7a9e7efeefa46e6652e251d56cd /parsingtoolbox.cpp | |
| parent | 530c87f71366810549b718160bc59bda51f876b0 (diff) | |
| download | OneRoll-e7e79a8a74657ca6f8488a7cd3742bb2af734b0a.tar.gz OneRoll-e7e79a8a74657ca6f8488a7cd3742bb2af734b0a.zip | |
-management of scalaroperation inside if block.
Diffstat (limited to 'parsingtoolbox.cpp')
| -rw-r--r-- | parsingtoolbox.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/parsingtoolbox.cpp b/parsingtoolbox.cpp index 23e35ba..d396d9c 100644 --- a/parsingtoolbox.cpp +++ b/parsingtoolbox.cpp @@ -42,6 +42,16 @@ ParsingToolBox::ParsingToolBox() m_conditionOperation = new QMap<QString,OperationCondition::ConditionOperator>(); m_conditionOperation->insert("%",OperationCondition::Modulo); + + + m_arithmeticOperation = new QHash<QString,ScalarOperatorNode::ArithmeticOperator>(); + m_arithmeticOperation->insert(QStringLiteral("+"),ScalarOperatorNode::PLUS); + m_arithmeticOperation->insert(QStringLiteral("-"),ScalarOperatorNode::MINUS); + m_arithmeticOperation->insert(QStringLiteral("*"),ScalarOperatorNode::MULTIPLICATION); + m_arithmeticOperation->insert(QStringLiteral("x"),ScalarOperatorNode::MULTIPLICATION); + m_arithmeticOperation->insert(QStringLiteral("/"),ScalarOperatorNode::DIVIDE); + m_arithmeticOperation->insert(QStringLiteral("÷"),ScalarOperatorNode::DIVIDE); + } ExecutionNode* ParsingToolBox::addSort(ExecutionNode* e,bool b) { @@ -73,6 +83,23 @@ bool ParsingToolBox::readDiceLogicOperator(QString& str,OperationCondition::Cond return false; } +bool ParsingToolBox::readArithmeticOperator(QString &str, ScalarOperatorNode::ArithmeticOperator &op) +{ + bool found = false; + //QHash<QString,ScalarOperatorNode::ArithmeticOperator>::Iterator + auto i = m_arithmeticOperation->begin(); + for(; i !=m_arithmeticOperation->end() && !found; ++i) + { + if(str.startsWith(i.key())) + { + op = i.value(); + str=str.remove(0,i.key().size()); + found=true; + } + } + return found; +} + bool ParsingToolBox::readLogicOperator(QString& str,BooleanCondition::LogicOperator& op) { QString longKey; |