diff options
| -rw-r--r-- | cli/main.cpp | 12 | ||||
| -rw-r--r-- | diceParser.pro | 2 | ||||
| -rw-r--r-- | irc/CMakeLists.txt | 22 | ||||
| -rw-r--r-- | irc/botircdiceparser.cpp | 1 | ||||
| -rw-r--r-- | node/executionnode.cpp | 16 | ||||
| -rw-r--r-- | node/ifnode.cpp | 48 | ||||
| -rw-r--r-- | node/ifnode.h | 7 | ||||
| -rw-r--r-- | node/jumpbackwardnode.cpp | 44 | ||||
| -rw-r--r-- | node/jumpbackwardnode.h | 4 |
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; }; |