aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/parsingtoolbox.cpp
diff options
context:
space:
mode:
authorRenaud G <renaud@rolisteam.org>2016-01-30 17:52:32 +0100
committerRenaud G <renaud@rolisteam.org>2016-01-30 17:52:32 +0100
commite7e79a8a74657ca6f8488a7cd3742bb2af734b0a (patch)
treeb520791931d0b7a9e7efeefa46e6652e251d56cd /parsingtoolbox.cpp
parent530c87f71366810549b718160bc59bda51f876b0 (diff)
downloadOneRoll-e7e79a8a74657ca6f8488a7cd3742bb2af734b0a.tar.gz
OneRoll-e7e79a8a74657ca6f8488a7cd3742bb2af734b0a.zip
-management of scalaroperation inside if block.
Diffstat (limited to 'parsingtoolbox.cpp')
-rw-r--r--parsingtoolbox.cpp27
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;