diff options
Diffstat (limited to 'node/parenthesesnode.cpp')
| -rw-r--r-- | node/parenthesesnode.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/node/parenthesesnode.cpp b/node/parenthesesnode.cpp index 5e2d0e0..9e6bcec 100644 --- a/node/parenthesesnode.cpp +++ b/node/parenthesesnode.cpp @@ -30,18 +30,28 @@ void ParenthesesNode::setInternelNode(ExecutionNode* node) { m_internalNode = node; } -void ParenthesesNode::run(ExecutionNode* /*previous*/) +void ParenthesesNode::run(ExecutionNode* previous) { - //m_previousNode = previous; + m_previousNode = previous; if(nullptr!=m_internalNode) { - m_internalNode->run(this); - ExecutionNode* temp=m_internalNode; + m_internalNode->run(this); + ExecutionNode* temp=m_internalNode; while(nullptr!=temp->getNextNode()) { temp=temp->getNextNode(); } m_result = temp->getResult(); + //m_result->setPrevious(internalResult); + if(nullptr!=previous) + { + auto previousResult = previous->getResult(); + if(nullptr!=m_internalNode->getResult()) + { + m_internalNode->getResult()->setPrevious(previousResult); + } + } + //m_result = temp->getResult(); } if(nullptr!=m_nextNode) |