diff options
| author | 2017-10-18 18:15:32 +0200 | |
|---|---|---|
| committer | 2017-10-18 18:15:32 +0200 | |
| commit | 53d4f802d3e9327c45c5e437bcfea474e6ad943a (patch) | |
| tree | f5f03420f6395f33a7bab76fd05b49bbed0090c5 /node | |
| parent | 91d8d763be0f1c2f0eef8bcb4a1b249b52bdb340 (diff) | |
| download | OneRoll-53d4f802d3e9327c45c5e437bcfea474e6ad943a.tar.gz OneRoll-53d4f802d3e9327c45c5e437bcfea474e6ad943a.zip | |
add group
Diffstat (limited to 'node')
| -rw-r--r-- | node/ifnode.cpp | 4 | ||||
| -rw-r--r-- | node/numbernode.cpp | 10 | ||||
| -rw-r--r-- | node/numbernode.h | 1 | ||||
| -rw-r--r-- | node/parenthesesnode.cpp | 43 | ||||
| -rw-r--r-- | node/parenthesesnode.h | 1 |
5 files changed, 57 insertions, 2 deletions
diff --git a/node/ifnode.cpp b/node/ifnode.cpp index 3df60de..c32a6a9 100644 --- a/node/ifnode.cpp +++ b/node/ifnode.cpp @@ -192,8 +192,8 @@ void IfNode::generateDotTree(QString& s) s.append(toString(false)); s.append(" -> "); s.append(m_true->toString(false)); - s.append("[label=\"true\"];\n"); -// s.append(" [label=\"nextNode\"];\n"); + s.append("[label=\"true"+m_validator->toString()+"\"];\n"); + m_true->generateDotTree(s); } if((NULL!=m_false)&&(m_false != m_nextNode)) diff --git a/node/numbernode.cpp b/node/numbernode.cpp index 7a2dcff..5815ad6 100644 --- a/node/numbernode.cpp +++ b/node/numbernode.cpp @@ -26,6 +26,16 @@ NumberNode::NumberNode() { m_result = m_scalarResult; } +NumberNode::~NumberNode() +{ + /// @todo make sure there is no copy of the internal result. + /*if( nullptr != m_scalarResult) + { + delete m_scalarResult; + m_scalarResult = nullptr; + }*/ +} + void NumberNode::run(ExecutionNode* previous) { m_previousNode = previous; diff --git a/node/numbernode.h b/node/numbernode.h index 9f1b751..80cbace 100644 --- a/node/numbernode.h +++ b/node/numbernode.h @@ -32,6 +32,7 @@ class NumberNode : public ExecutionNode { public: NumberNode(); + virtual ~NumberNode(); void run(ExecutionNode* previous); void setNumber(qint64); virtual QString toString(bool withLabel)const; diff --git a/node/parenthesesnode.cpp b/node/parenthesesnode.cpp index 2383226..96c0bb7 100644 --- a/node/parenthesesnode.cpp +++ b/node/parenthesesnode.cpp @@ -80,3 +80,46 @@ ExecutionNode* ParenthesesNode::getCopy() const return node; } + +void ParenthesesNode::generateDotTree(QString & s) +{ + s.append(toString(true)); + s.append(";\n"); + + if(nullptr != m_internalNode) + { + s.append(toString(false)); + s.append(" -> "); + s.append(m_internalNode->toString(false)); + s.append("[label=\"internal\"];\n"); + m_internalNode->generateDotTree(s); + + } + + if(NULL!=m_nextNode) + { + s.append(toString(false)); + s.append(" -> "); + s.append(m_nextNode->toString(false)); + s.append("[label=\"next\"];\n"); +// s.append(" [label=\"nextNode\"];\n"); + m_nextNode->generateDotTree(s); + } + else + { + s.append(toString(false)); + s.append(" -> "); + s.append("NULL;\n"); + if(NULL!=m_result) + { + + s.append(toString(false)); + s.append(" ->"); + s.append(m_result->toString(false)); + s.append(" [label=\"Result\"];\n"); + + + m_result->generateDotTree(s); + } + } +} diff --git a/node/parenthesesnode.h b/node/parenthesesnode.h index df3c32a..388f6db 100644 --- a/node/parenthesesnode.h +++ b/node/parenthesesnode.h @@ -37,6 +37,7 @@ public: virtual QString toString(bool)const; virtual qint64 getPriority() const; virtual ExecutionNode *getCopy() const; + virtual void generateDotTree(QString&); private: ExecutionNode* m_internalNode; }; |