aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/node/scalaroperatornode.cpp
diff options
context:
space:
mode:
authorRenaud G <renaud@rolisteam.org>2015-03-05 14:30:18 +0100
committerRenaud G <renaud@rolisteam.org>2015-03-05 14:30:18 +0100
commit606001e99593372d0a71c566a5efdefd48175305 (patch)
tree28f1fdee4a0afd5a8b425eebdb8a8d9e73a255d6 /node/scalaroperatornode.cpp
parent30aaf7a35bc6e8224ad683148af28cedf81f03fd (diff)
downloadOneRoll-606001e99593372d0a71c566a5efdefd48175305.tar.gz
OneRoll-606001e99593372d0a71c566a5efdefd48175305.zip
add generateTree
add jumpbackward node
Diffstat (limited to 'node/scalaroperatornode.cpp')
-rw-r--r--node/scalaroperatornode.cpp33
1 files changed, 32 insertions, 1 deletions
diff --git a/node/scalaroperatornode.cpp b/node/scalaroperatornode.cpp
index 6cef1a9..67fc344 100644
--- a/node/scalaroperatornode.cpp
+++ b/node/scalaroperatornode.cpp
@@ -38,7 +38,10 @@ void ScalarOperatorNode::run(ExecutionNode* previous)
Result* internalResult = internal->getResult();
m_result->setPrevious(internalResult);
- m_internalNode->getResult()->setPrevious(previousResult);
+ if(NULL!=m_internalNode->getResult())
+ {
+ m_internalNode->getResult()->setPrevious(previousResult);
+ }
switch(m_myOperator)
{
@@ -112,3 +115,31 @@ qint64 ScalarOperatorNode::getPriority() const
else
return 2;
}
+void ScalarOperatorNode::generateDotTree(QString& s)
+{
+ s.append(toString());
+ if(NULL!=m_nextNode)
+ {
+ s.append(" -> ");
+ s.append(m_nextNode->toString());
+ s.append(" [label=\"nextNode\"];\n");
+ m_nextNode->generateDotTree(s);
+ }
+ else
+ {
+ s.append(" -> ");
+ s.append("NULL");
+ s.append(" [label=\"nextNode\"];\n");
+ }
+ QString str;
+ str.append("\n");
+ if(NULL!=m_internalNode)
+ {
+ str.append(toString());
+ str.append(" -> ");
+ str.append(m_internalNode->toString());
+ str.append(" [label=\"internalNode\"];\n");
+ m_internalNode->generateDotTree(str);
+ }
+ s.append(str);
+}