From e7e79a8a74657ca6f8488a7cd3742bb2af734b0a Mon Sep 17 00:00:00 2001 From: Renaud G Date: Sat, 30 Jan 2016 17:52:32 +0100 Subject: -management of scalaroperation inside if block. --- parsingtoolbox.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'parsingtoolbox.cpp') 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(); m_conditionOperation->insert("%",OperationCondition::Modulo); + + + m_arithmeticOperation = new QHash(); + 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::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; -- cgit v1.2.3-70-g09d2