aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/node/ifnode.cpp
diff options
context:
space:
mode:
authorRenaud G <renaud@rolisteam.org>2016-09-25 10:04:28 +0200
committerRenaud G <renaud@rolisteam.org>2016-09-25 10:04:28 +0200
commitfac053c3aacc0e2ede8a85ff41e27eed1c360f6f (patch)
treec91ff176e60f1f6e634107b4e7a7282e831975ee /node/ifnode.cpp
parentdbb57d52d351e340ce69fccaedbdf758b04ed8fe (diff)
parente225f2edfd365d1709df2cb5bb2f752ec8d82c1c (diff)
downloadOneRoll-fac053c3aacc0e2ede8a85ff41e27eed1c360f6f.tar.gz
OneRoll-fac053c3aacc0e2ede8a85ff41e27eed1c360f6f.zip
Merge branch 'master' of github.com:Rolisteam/DiceParser
Diffstat (limited to 'node/ifnode.cpp')
-rw-r--r--node/ifnode.cpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/node/ifnode.cpp b/node/ifnode.cpp
index bf07776..8605dcf 100644
--- a/node/ifnode.cpp
+++ b/node/ifnode.cpp
@@ -105,6 +105,54 @@ void IfNode::setInstructionFalse(ExecutionNode* node)
{
m_false = node;
}
+void IfNode::generateDotTree(QString& s)
+{
+ s.append(toString(true));
+ s.append(";\n");
+
+ if((NULL!=m_true)&&(m_true != m_nextNode))
+ {
+ s.append(toString(false));
+ s.append(" -> ");
+ s.append(m_true->toString(false));
+ s.append("[label=\"true\"];\n");
+// s.append(" [label=\"nextNode\"];\n");
+ m_true->generateDotTree(s);
+ }
+ if((NULL!=m_false)&&(m_false != m_nextNode))
+ {
+ s.append(toString(false));
+ s.append(" -> ");
+ s.append(m_false->toString(false));
+ s.append("[label=\"false\"];\n");
+ m_false->generateDotTree(s);
+ }
+
+ if(NULL!=m_nextNode)
+ {
+ s.append(toString(false));
+ s.append(" -> ");
+ s.append(m_nextNode->toString(false));
+ s.append("[label=\"next\"];\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);
+ }
+ }
+}
QString IfNode::toString(bool wl) const
{