aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/node/scalaroperatornode.cpp
diff options
context:
space:
mode:
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);
+}