aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--cli/main.cpp12
-rw-r--r--diceParser.pro2
-rw-r--r--irc/CMakeLists.txt22
-rw-r--r--irc/botircdiceparser.cpp1
-rw-r--r--node/executionnode.cpp16
-rw-r--r--node/ifnode.cpp48
-rw-r--r--node/ifnode.h7
-rw-r--r--node/jumpbackwardnode.cpp44
-rw-r--r--node/jumpbackwardnode.h4
9 files changed, 128 insertions, 28 deletions
diff --git a/cli/main.cpp b/cli/main.cpp
index 21bb1ca..64f01ab 100644
--- a/cli/main.cpp
+++ b/cli/main.cpp
@@ -116,8 +116,7 @@ void startDiceParsing(QString& cmd,QString& treeFile,bool highlight)
if(parser->parseLine(cmd))
{
//
- if(treeFile.isEmpty())
- {
+
parser->Start();
if(!parser->getErrorMap().isEmpty())
{
@@ -150,11 +149,10 @@ void startDiceParsing(QString& cmd,QString& treeFile,bool highlight)
str = parser->getStringResult();
}
out << str << "\n";
- }
- else
- {
- parser->writeDownDotTree(treeFile);
- }
+ if(!treeFile.isEmpty())
+ {
+ parser->writeDownDotTree(treeFile);
+ }
}
else
{
diff --git a/diceParser.pro b/diceParser.pro
index 3a95496..6a1072d 100644
--- a/diceParser.pro
+++ b/diceParser.pro
@@ -21,7 +21,7 @@ TEMPLATE = app
CONFIG+= CLI
CLI {
DEFINES += CLI
-include(cli/cli.pri)cd
+include(cli/cli.pri)
}
IRC {
include(irc/irc.pri)
diff --git a/irc/CMakeLists.txt b/irc/CMakeLists.txt
index d43ffed..af77dfb 100644
--- a/irc/CMakeLists.txt
+++ b/irc/CMakeLists.txt
@@ -10,23 +10,23 @@ set(CMAKE_AUTOMOC ON)
# Find the QtWidgets library
find_package(Qt5Core)
-find_package(Qt5Gui)
-find_package(Qt5Widgets)
+#fsind_package(Qt5Gui)
+#find_package(Qt5Widgets)
find_package(Qt5Network)
-SET(mainwindow_SOURCES mainwindow.cpp)
-SET(mainwindow_HEADERS mainwindow.h)
-SET(mainwindow_FORMS mainwindow.ui)
+#SET(mainwindow_SOURCES mainwindow.cpp)
+#SET(mainwindow_HEADERS mainwindow.h)
+#SET(mainwindow_FORMS mainwindow.ui)
set(EXECUTABLE_OUTPUT_PATH bin/)
-include_directories(${Qt5Core_INCLUDES} ${Qt5Gui_INCLUDES} ${Qt5Widgets_INCLUDES} ${Qt5Network_INCLUDES} ../)
-add_definitions(${Qt5Core_DEFINITIONS} ${Qt5Gui_DEFINITIONS} ${Qt5Widgets_DEFINITIONS} ${Qt5Network_DEFINITIONS})
+include_directories(${Qt5Core_INCLUDES} ${Qt5Network_INCLUDES} ../)
+add_definitions(${Qt5Core_DEFINITIONS} ${Qt5Network_DEFINITIONS})
-qt5_wrap_ui(UI_HEADERS mainwindow.ui)
-#set(MODE "cli")
+#qt5_wrap_ui(UI_HEADERS mainwindow.ui)
+set(MODE "cli")
ADD_DEFINITIONS(
@@ -68,13 +68,11 @@ add_executable(
../node/sortresult.cpp
../node/startingnode.cpp
../node/ifnode.cpp
- ${UI_HEADERS}
botircdiceparser.cpp
main.cpp)
-target_link_libraries(irc ${Qt5Core_LIBRARIES} ${Qt5Gui_LIBRARIES} ${Qt5Widgets_LIBRARIES} ${Qt5Network_LIBRARIES})
+target_link_libraries(irc ${Qt5Core_LIBRARIES} ${Qt5Network_LIBRARIES})
INSTALL_TARGETS(/bin irc)
-
#qt5_use_modules()
diff --git a/irc/botircdiceparser.cpp b/irc/botircdiceparser.cpp
index 87d47ff..eb2e3c1 100644
--- a/irc/botircdiceparser.cpp
+++ b/irc/botircdiceparser.cpp
@@ -37,6 +37,7 @@ BotIrcDiceParser::BotIrcDiceParser(QObject *parent) :
// Connect signals and slots!
connect(m_socket, SIGNAL(readyRead()), this, SLOT(readData()));
connect(m_socket,SIGNAL(connected()),this,SLOT(authentificationProcess()));
+ connect(m_socket,SIGNAL(disconnected()),this,SLOT(connectToServer()));
connect(m_socket,SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(errorOccurs(QAbstractSocket::SocketError)));
}
diff --git a/node/executionnode.cpp b/node/executionnode.cpp
index d2f291b..a419bec 100644
--- a/node/executionnode.cpp
+++ b/node/executionnode.cpp
@@ -62,7 +62,7 @@ void ExecutionNode::generateDotTree(QString& s)
s.append(toString(false));
s.append(" -> ");
s.append(m_nextNode->toString(false));
- s.append(";\n");
+ s.append("[label=\"next\"];\n");
// s.append(" [label=\"nextNode\"];\n");
m_nextNode->generateDotTree(s);
}
@@ -71,13 +71,17 @@ void ExecutionNode::generateDotTree(QString& s)
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");
- s.append(toString(false));
- s.append(" ->");
- s.append(m_result->toString(false));
- s.append(" [label=\"Result\"];\n");
- m_result->generateDotTree(s);
+ m_result->generateDotTree(s);
+ }
}
+
}
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
{
diff --git a/node/ifnode.h b/node/ifnode.h
index 5872f79..ed9e8de 100644
--- a/node/ifnode.h
+++ b/node/ifnode.h
@@ -40,6 +40,13 @@ public:
virtual QString toString(bool )const;
virtual qint64 getPriority() const;
+
+ /**
+ * @brief generateDotTree
+ */
+ virtual void generateDotTree(QString&);
+
+
protected:
ExecutionNode *getLeafNode(ExecutionNode *node);
diff --git a/node/jumpbackwardnode.cpp b/node/jumpbackwardnode.cpp
index 25056b1..b1e7889 100644
--- a/node/jumpbackwardnode.cpp
+++ b/node/jumpbackwardnode.cpp
@@ -24,6 +24,7 @@
JumpBackwardNode::JumpBackwardNode()
{
m_previousNode=NULL;
+ m_backwardNode = NULL;
m_diceResult =new DiceResult();
m_result = m_diceResult;
}
@@ -45,6 +46,46 @@ QString JumpBackwardNode::toString(bool wl) const
return m_id;
}
}
+void JumpBackwardNode::generateDotTree(QString& s)
+{
+ s.append(toString(true));
+ s.append(";\n");
+
+ if(NULL!=m_backwardNode)
+ {
+ s.append(toString(false));
+ s.append(" -> ");
+ s.append(m_backwardNode->toString(false));
+ s.append("[label=\"backward\"];\n");
+ //m_backwardNode->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);
+ }
+ }
+
+}
+
void JumpBackwardNode::run(ExecutionNode* previous)
{
m_previousNode = previous;
@@ -62,6 +103,7 @@ void JumpBackwardNode::run(ExecutionNode* previous)
if((i==0)&&(result->hasResultOfType(Result::DICE_LIST)))
{
found =true;
+ m_backwardNode = parent;
}
}
if(!found)
@@ -88,7 +130,7 @@ void JumpBackwardNode::run(ExecutionNode* previous)
}
}
- m_result->setPrevious(parent->getResult());
+ m_result->setPrevious(previous->getResult());
if(NULL!=m_nextNode)
{
diff --git a/node/jumpbackwardnode.h b/node/jumpbackwardnode.h
index a89d0d3..dd70b11 100644
--- a/node/jumpbackwardnode.h
+++ b/node/jumpbackwardnode.h
@@ -48,9 +48,11 @@ public:
* @brief getPriority
* @return
*/
- virtual qint64 getPriority() const;
+ virtual qint64 getPriority() const;
+ virtual void generateDotTree(QString &s);
private:
DiceResult* m_diceResult;
+ ExecutionNode* m_backwardNode;
};