aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/node/scalaroperatornode.cpp
diff options
context:
space:
mode:
authorRenaud G <renaud@rolisteam.org>2018-04-11 00:17:37 +0200
committerRenaud G <renaud@rolisteam.org>2018-04-11 00:18:05 +0200
commit4980023197d0797aae212cb79b0becdc6c830e11 (patch)
treee7faeeffdd1c03d8e9839e10f477d3c87247c927 /node/scalaroperatornode.cpp
parentdc3ff817844a38acc24dcf0c87704da8ec86daca (diff)
downloadOneRoll-4980023197d0797aae212cb79b0becdc6c830e11.tar.gz
OneRoll-4980023197d0797aae212cb79b0becdc6c830e11.zip
-fix bug and format file.
Diffstat (limited to 'node/scalaroperatornode.cpp')
-rw-r--r--node/scalaroperatornode.cpp107
1 files changed, 50 insertions, 57 deletions
diff --git a/node/scalaroperatornode.cpp b/node/scalaroperatornode.cpp
index 17ddecb..1c8ce4e 100644
--- a/node/scalaroperatornode.cpp
+++ b/node/scalaroperatornode.cpp
@@ -28,21 +28,15 @@
ScalarOperatorNode::ScalarOperatorNode()
: m_internalNode(nullptr),m_scalarResult(new ScalarResult()),m_arithmeticOperator(Die::PLUS)
{
- /*m_scalarOperationList.insert('+',PLUS);
- m_scalarOperationList.insert('-',MINUS);
- m_scalarOperationList.insert('x',MULTIPLICATION);
- m_scalarOperationList.insert('*',MULTIPLICATION);
- m_scalarOperationList.insert('/',DIVIDE);*/
-
m_result = m_scalarResult;
}
ScalarOperatorNode::~ScalarOperatorNode()
{
- if(nullptr!=m_internalNode)
- {
- delete m_internalNode;
- m_internalNode = nullptr;
- }
+ if(nullptr!=m_internalNode)
+ {
+ delete m_internalNode;
+ m_internalNode = nullptr;
+ }
}
void ScalarOperatorNode::run(ExecutionNode* previous)
@@ -50,32 +44,31 @@ void ScalarOperatorNode::run(ExecutionNode* previous)
m_previousNode = previous;
if(nullptr!=m_internalNode)
{
- m_internalNode->run(this);
+ m_internalNode->run(this);
}
if(nullptr!=previous)
{
- DiceResult* previousResult = dynamic_cast<DiceResult*>(previous->getResult());
+ auto previousResult = previous->getResult();
if(nullptr!=previousResult)
{
ExecutionNode* internal = m_internalNode;
if(nullptr != internal)
{
- while(nullptr != internal->getNextNode() )
- {
+ while(nullptr != internal->getNextNode() )
+ {
internal = internal->getNextNode();
- }
+ }
+ Result* internalResult = internal->getResult();
+ m_result->setPrevious(internalResult);
+ if(nullptr!=m_internalNode->getResult())
+ {
+ m_internalNode->getResult()->setPrevious(previousResult);
+ }
- Result* internalResult = internal->getResult();
- m_result->setPrevious(internalResult);
- if(nullptr!=m_internalNode->getResult())
- {
- m_internalNode->getResult()->setPrevious(previousResult);
- }
-
- switch(m_arithmeticOperator)
- {
+ switch(m_arithmeticOperator)
+ {
case Die::PLUS:
m_scalarResult->setValue(add(previousResult->getResult(Result::SCALAR).toReal(),internalResult->getResult(Result::SCALAR).toReal()));
break;
@@ -91,7 +84,7 @@ void ScalarOperatorNode::run(ExecutionNode* previous)
default:
break;
- }
+ }
}
if(nullptr!=m_nextNode)
@@ -106,7 +99,7 @@ void ScalarOperatorNode::run(ExecutionNode* previous)
{
if(m_scalarOperationList.contains(c))
{
- m_operator = m_scalarOperationList.value(c);
+ m_operator = m_scalarOperationList.value(c);
return true;
}
return false;
@@ -157,64 +150,64 @@ QString ScalarOperatorNode::toString(bool wl) const
break;
case Die::MINUS:
op="-";
- break;
- case Die::MULTIPLICATION:
- op="*";
- break;
- case Die::DIVIDE:
- op="/";
- break;
- default:
- break;
+ break;
+ case Die::MULTIPLICATION:
+ op="*";
+ break;
+ case Die::DIVIDE:
+ op="/";
+ break;
+ default:
+ break;
}
- if(wl)
- {
- return QString("%1 [label=\"ScalarOperatorNode %2\"]").arg(m_id).arg(op);
- }
- else
- {
- return m_id;
- }
+ if(wl)
+ {
+ return QString("%1 [label=\"ScalarOperatorNode %2\"]").arg(m_id).arg(op);
+ }
+ else
+ {
+ return m_id;
+ }
}
qint64 ScalarOperatorNode::getPriority() const
{
if((m_arithmeticOperator==Die::PLUS)||(m_arithmeticOperator==Die::MINUS))
- {
+ {
return 1;
- }
+ }
else
- {
+ {
return 2;
- }
+ }
}
void ScalarOperatorNode::generateDotTree(QString& s)
{
- s.append(toString(true));
- s.append(";\n");
+ s.append(toString(true));
+ s.append(";\n");
if(nullptr!=m_nextNode)
{
- s.append(toString(false));
+ s.append(toString(false));
s.append(" -> ");
- s.append(m_nextNode->toString(false));
+ s.append(m_nextNode->toString(false));
s.append("[label=\"nextNode\"];\n");
m_nextNode->generateDotTree(s);
}
else
{
- s.append(toString(false));
+ s.append(toString(false));
s.append(" -> ");
- s.append("nullptr");
- s.append(" [label=\"nextNode\"];\n");
+ s.append("nullptr");
+ s.append(" [label=\"nextNode\"];\n");
}
QString str;
str.append("\n");
if(nullptr!=m_internalNode)
{
- str.append(toString(false));
+ str.append(toString(false));
str.append(" -> ");
- str.append(m_internalNode->toString(false));
+ str.append(m_internalNode->toString(false));
str.append(" [label=\"internalNode\"];\n");
m_internalNode->generateDotTree(str);
}