diff options
| author | 2015-03-05 14:30:18 +0100 | |
|---|---|---|
| committer | 2015-03-05 14:30:18 +0100 | |
| commit | 606001e99593372d0a71c566a5efdefd48175305 (patch) | |
| tree | 28f1fdee4a0afd5a8b425eebdb8a8d9e73a255d6 /node/scalaroperatornode.cpp | |
| parent | 30aaf7a35bc6e8224ad683148af28cedf81f03fd (diff) | |
| download | OneRoll-606001e99593372d0a71c566a5efdefd48175305.tar.gz OneRoll-606001e99593372d0a71c566a5efdefd48175305.zip | |
add generateTree
add jumpbackward node
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); +} |