aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/node
diff options
context:
space:
mode:
authorRenaud G <renaud@rolisteam.org>2017-10-18 18:19:36 +0200
committerRenaud G <renaud@rolisteam.org>2017-10-18 18:19:36 +0200
commit82141918f49cccdc7d7845dfb86a3b3999652d71 (patch)
tree833bff0fac823f625835be5e56ace73ea9650e9d /node
parent06fffb804b7ba80eedad966d2205bd2ca6f4c6ee (diff)
parent53d4f802d3e9327c45c5e437bcfea474e6ad943a (diff)
downloadOneRoll-82141918f49cccdc7d7845dfb86a3b3999652d71.tar.gz
OneRoll-82141918f49cccdc7d7845dfb86a3b3999652d71.zip
Merge branch 'group'
Diffstat (limited to 'node')
-rw-r--r--node/ifnode.cpp4
-rw-r--r--node/numbernode.cpp10
-rw-r--r--node/numbernode.h1
-rw-r--r--node/parenthesesnode.cpp43
-rw-r--r--node/parenthesesnode.h1
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;
};