diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/diagram/BranchStatement.hpp | 35 | ||||
-rw-r--r-- | src/diagram/IteratorStatement.hpp | 32 | ||||
-rw-r--r-- | src/diagram/Scope.hpp | 59 | ||||
-rw-r--r-- | src/diagram/Statement.hpp | 67 | ||||
-rw-r--r-- | src/diagram/Structogram.hpp | 17 | ||||
-rw-r--r-- | src/diagram/branchstatement.cpp (renamed from src/diagram/BranchStatement.cpp) | 9 | ||||
-rw-r--r-- | src/diagram/iteratorstatement.cpp (renamed from src/diagram/IteratorStatement.cpp) | 9 | ||||
-rw-r--r-- | src/diagram/scope.cpp (renamed from src/diagram/Scope.cpp) | 7 | ||||
-rw-r--r-- | src/diagram/statement.cpp (renamed from src/diagram/Statement.cpp) | 9 | ||||
-rw-r--r-- | src/main.cpp | 28 | ||||
-rw-r--r-- | src/ui/Window.cpp | 33 | ||||
-rw-r--r-- | src/ui/Window.hpp | 28 | ||||
-rw-r--r-- | src/ui/mainwindow.cpp | 14 |
13 files changed, 25 insertions, 322 deletions
diff --git a/src/diagram/BranchStatement.hpp b/src/diagram/BranchStatement.hpp deleted file mode 100644 index b7cc495..0000000 --- a/src/diagram/BranchStatement.hpp +++ /dev/null @@ -1,35 +0,0 @@ -/* - * BranchStatement.hpp - * - * Created on: Nov 28, 2017 - * Author: naopross - */ - -#ifndef SRC_DIAGRAM_BRANCHSTATEMENT_HPP_ -#define SRC_DIAGRAM_BRANCHSTATEMENT_HPP_ - -#include "Statement.hpp" - -#include <map> - -namespace samb { - -class BranchStatement: public Statement { -public: - BranchStatement(Type t, const std::string& condition, pointer next); - - /* accessors */ - const std::map<std::string, pointer>& branches() const { return m_branches; } - std::size_t branchesCount() const { return m_branchesCount; } - - inline const std::string& condition() const { return text(); } - inline void condition(const std::string& condition) { return text(condition); } - -private: - std::map<std::string, pointer> m_branches; - std::size_t m_branchesCount = 0; -}; - -} /* namespace samb */ - -#endif /* SRC_DIAGRAM_BRANCHSTATEMENT_HPP_ */ diff --git a/src/diagram/IteratorStatement.hpp b/src/diagram/IteratorStatement.hpp deleted file mode 100644 index a14d78d..0000000 --- a/src/diagram/IteratorStatement.hpp +++ /dev/null @@ -1,32 +0,0 @@ -/* - * IteratorStatement.hpp - * - * Created on: Nov 28, 2017 - * Author: naopross - */ - -#ifndef SRC_DIAGRAM_ITERATORSTATEMENT_HPP_ -#define SRC_DIAGRAM_ITERATORSTATEMENT_HPP_ - -#include "Statement.hpp" -#include "Scope.hpp" - -namespace samb { - -class IteratorStatement: public Statement { -public: - IteratorStatement(Type t, const std::string& condition, pointer next); - - /* accessors */ - const Scope& inner() const { return m_inner; } - - inline const std::string& condition() const { return text(); } - inline void condition(const std::string& condition) { return text(condition); } - -private: - Scope m_inner; -}; - -} /* namespace samb */ - -#endif /* SRC_DIAGRAM_ITERATORSTATEMENT_HPP_ */ diff --git a/src/diagram/Scope.hpp b/src/diagram/Scope.hpp deleted file mode 100644 index bf85759..0000000 --- a/src/diagram/Scope.hpp +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Created on: Nov 28, 2017 - * Author: naopross - */ - -#ifndef SRC_DIAGRAM_SCOPE_HPP_ -#define SRC_DIAGRAM_SCOPE_HPP_ - -#include "Statement.hpp" - -namespace samb { - -/* The Scope is a forward-iterable object that contains statements. - * A scope is also a valid type of statement. - * - * The Scope object is used inside other complex types of statements such as - * BranchStatement or a IteratorStatement, to hold the statements within their - * scope. - */ -class Scope : public Statement { -public: - class iterator { - public: - explicit iterator(pointer statement); - ~iterator(); - - iterator& operator++(); - iterator& operator++(int); - - Statement& operator*() const; - Statement::pointer operator->() const; - - private: - Statement::pointer m_current; - }; - - explicit Scope(std::string label); - Scope(std::string label, Statement::pointer first); - ~Scope(); - - iterator insert_after(iterator it, Statement::pointer statement); - iterator erase_after(iterator it); - - /* accessors */ - std::size_t size() const { return m_size; } - - /* iterator */ - iterator begin() { return iterator(m_head); } - iterator end() { return iterator(m_tail); } - -private: - Statement::pointer m_head; - Statement::pointer m_tail; - std::size_t m_size = 0; -}; - -} /* namespace samb */ - -#endif /* SRC_DIAGRAM_SCOPE_HPP_ */ diff --git a/src/diagram/Statement.hpp b/src/diagram/Statement.hpp deleted file mode 100644 index ab8c5b7..0000000 --- a/src/diagram/Statement.hpp +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Statement.h - * - * Created on: Nov 23, 2017 - * Author: naopross - */ - -#ifndef SRC_DIAGRAM_STATEMENT_H_ -#define SRC_DIAGRAM_STATEMENT_H_ - -#include <string> -#include <memory> - -namespace samb { - -/* Possible types of statement, according to the NS diagram paper - * - * PROCESS : a statement that does something - * SCOPE : simple scope to isolate variables - * DECISION : splits the program in 2 branches based on a condition - * SWITCH : splits the program in n branches depending on a value - * WHILE : check first loop - * UNTIL : check last loop - * PARALLEL : parallel operations - */ - -/* This struct is a statement (link) of the iterable object Scope - * (linked list), that is also a common interface for the various types of - * statements. - */ -class Statement { -public: - using pointer = std::shared_ptr<Statement>; - - enum Type { - PROCESS, - SCOPE, - DECISION, - SWITCH, - WHILE, - UNTIL, - PARALLEL, - }; - - const Type type; - - Statement(Type t, const std::string& text); - Statement(Type t, const std::string& text, pointer next); - virtual ~Statement(); - - bool operator==(const Statement& other) const; - - /* accessors */ - void next(pointer next) { m_next = next; } - pointer next() const { return m_next; } - - void text(const std::string& text) { m_text = text; } - const std::string& text() const { return m_text; } - -private: - std::string m_text; - pointer m_next; -}; - -} /* namespace samb */ - -#endif /* SRC_DIAGRAM_STATEMENT_H_ */ diff --git a/src/diagram/Structogram.hpp b/src/diagram/Structogram.hpp deleted file mode 100644 index 84a4b84..0000000 --- a/src/diagram/Structogram.hpp +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Structogram.hpp - * - * Created on: Nov 28, 2017 - * Author: naopross - */ - -#ifndef SRC_DIAGRAM_STRUCTOGRAM_HPP_ -#define SRC_DIAGRAM_STRUCTOGRAM_HPP_ - -#include "Scope.hpp" - -namespace samb { - typedef Scope Structogram; -} - -#endif /* SRC_DIAGRAM_STRUCTOGRAM_HPP_ */ diff --git a/src/diagram/BranchStatement.cpp b/src/diagram/branchstatement.cpp index 6345c1b..2835f35 100644 --- a/src/diagram/BranchStatement.cpp +++ b/src/diagram/branchstatement.cpp @@ -1,11 +1,4 @@ -/* - * BranchStatement.cpp - * - * Created on: Nov 28, 2017 - * Author: naopross - */ - -#include "BranchStatement.hpp" +#include "diagram/BranchStatement.hpp" using namespace samb; diff --git a/src/diagram/IteratorStatement.cpp b/src/diagram/iteratorstatement.cpp index 02a7318..675d8eb 100644 --- a/src/diagram/IteratorStatement.cpp +++ b/src/diagram/iteratorstatement.cpp @@ -1,11 +1,4 @@ -/* - * IteratorStatement.cpp - * - * Created on: Nov 28, 2017 - * Author: naopross - */ - -#include "IteratorStatement.hpp" +#include "diagram/IteratorStatement.hpp" using namespace samb; diff --git a/src/diagram/Scope.cpp b/src/diagram/scope.cpp index 721ee4b..a1074a3 100644 --- a/src/diagram/Scope.cpp +++ b/src/diagram/scope.cpp @@ -1,9 +1,4 @@ -/* - * Created on: Nov 28, 2017 - * Author: naopross - */ - -#include "Scope.hpp" +#include "diagram/Scope.hpp" using namespace samb; diff --git a/src/diagram/Statement.cpp b/src/diagram/statement.cpp index 711bcf4..9cbcdb4 100644 --- a/src/diagram/Statement.cpp +++ b/src/diagram/statement.cpp @@ -1,11 +1,4 @@ -/* - * Statement.cpp - * - * Created on: Nov 23, 2017 - * Author: naopross - */ - -#include "Statement.hpp" +#include "diagram/Statement.hpp" using namespace samb; diff --git a/src/main.cpp b/src/main.cpp index b4a143b..a425e2f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,26 +1,12 @@ -#include "diagram/Structogram.hpp" -#include "ui/Window.hpp" - -#include <iostream> -#include <memory> - +#include "ui/mainwindow.h" #include <QApplication> +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); -using namespace samb; - -int main(int argc, char *argv[]) { - - QApplication app(argc, argv); - - Window window; - window.show(); + MainWindow w; + w.show(); - Structogram st("Example"); - - return app.exec(); + return a.exec(); } - - - - diff --git a/src/ui/Window.cpp b/src/ui/Window.cpp deleted file mode 100644 index 7f28ffe..0000000 --- a/src/ui/Window.cpp +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Window.cpp - * - * Created on: Nov 26, 2017 - * Author: naopross - */ - -#include "Window.hpp" - -#include <QVBoxLayout> -#include <QHBoxLayout> -#include <QApplication> - - -using namespace samb; - -Window::Window(QWidget *parent): QWidget(parent) { - setWindowTitle("OrbitingYeti"); - - QVBoxLayout *vBox = new QVBoxLayout(this); - QHBoxLayout *hBox = new QHBoxLayout(); - - m_quitBtn = new QPushButton("Quit", this); - connect(m_quitBtn, SIGNAL(clicked()), qApp, SLOT(quit())); - - hBox->addWidget(m_quitBtn, 0, Qt::AlignRight); - vBox->addStretch(1); - vBox->addLayout(hBox); -} - -Window::~Window() { - -} diff --git a/src/ui/Window.hpp b/src/ui/Window.hpp deleted file mode 100644 index 9f48f12..0000000 --- a/src/ui/Window.hpp +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Window.hpp - * - * Created on: Nov 26, 2017 - * Author: naopross - */ - -#ifndef SRC_UI_WINDOW_HPP_ -#define SRC_UI_WINDOW_HPP_ - -#include <QWidget> -#include <QPushButton> - -namespace samb { - -class Window : public QWidget { -Q_OBJECT -public: - explicit Window(QWidget *parent = 0); - ~Window(); - -private: - QPushButton *m_quitBtn; -}; - -} /* namespace samb */ - -#endif /* SRC_UI_WINDOW_HPP_ */ diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp new file mode 100644 index 0000000..7e4ca77 --- /dev/null +++ b/src/ui/mainwindow.cpp @@ -0,0 +1,14 @@ +#include "ui/mainwindow.h" +#include "ui_mainwindow.h" + +MainWindow::MainWindow(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::MainWindow) +{ + ui->setupUi(this); +} + +MainWindow::~MainWindow() +{ + delete ui; +} |