diff options
Diffstat (limited to 'node/scalaroperatornode.cpp')
| -rw-r--r-- | node/scalaroperatornode.cpp | 33 |
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); +} |