From 92dbe41ee424a78a87ec836d4a5f801b087edee4 Mon Sep 17 00:00:00 2001
From: Martin Zak <zakmart1@fit.cvut.cz>
Date: Wed, 1 Jan 2014 20:14:54 +0100
Subject: [PATCH] Grammar movement and update

---
 acat/src/acat.cpp                             |  1 -
 alib/src/GrammarFactory.h                     | 15 +++++------
 .../{ => ContextFree}/ContextFreeGrammar.cpp  |  0
 .../{ => ContextFree}/ContextFreeGrammar.h    |  2 +-
 .../ContextSensitiveGrammar.cpp               |  0
 .../ContextSensitiveGrammar.h                 |  2 +-
 .../{ => Linear}/LeftLinearGrammar.cpp        |  4 +--
 .../grammar/{ => Linear}/LeftLinearGrammar.h  |  4 +--
 alib/src/grammar/Linear/LinearGrammar.cpp     | 20 ++++++++++++++
 alib/src/grammar/Linear/LinearGrammar.h       | 26 +++++++++++++++++++
 .../{ => Linear}/RightLinearGrammar.cpp       |  4 +--
 .../grammar/{ => Linear}/RightLinearGrammar.h |  4 +--
 .../{ => Regular}/LeftRegularGrammar.cpp      |  0
 .../{ => Regular}/LeftRegularGrammar.h        |  0
 .../grammar/{ => Regular}/RegularGrammar.cpp  |  0
 .../grammar/{ => Regular}/RegularGrammar.h    |  5 +++-
 .../{ => Regular}/RightRegularGrammar.cpp     |  0
 .../{ => Regular}/RightRegularGrammar.h       |  0
 .../UnrestrictedGrammar.cpp                   |  0
 .../{ => Unrestricted}/UnrestrictedGrammar.h  |  2 +-
 20 files changed, 68 insertions(+), 21 deletions(-)
 rename alib/src/grammar/{ => ContextFree}/ContextFreeGrammar.cpp (100%)
 rename alib/src/grammar/{ => ContextFree}/ContextFreeGrammar.h (98%)
 rename alib/src/grammar/{ => ContextSensitive}/ContextSensitiveGrammar.cpp (100%)
 rename alib/src/grammar/{ => ContextSensitive}/ContextSensitiveGrammar.h (98%)
 rename alib/src/grammar/{ => Linear}/LeftLinearGrammar.cpp (94%)
 rename alib/src/grammar/{ => Linear}/LeftLinearGrammar.h (93%)
 create mode 100644 alib/src/grammar/Linear/LinearGrammar.cpp
 create mode 100644 alib/src/grammar/Linear/LinearGrammar.h
 rename alib/src/grammar/{ => Linear}/RightLinearGrammar.cpp (95%)
 rename alib/src/grammar/{ => Linear}/RightLinearGrammar.h (93%)
 rename alib/src/grammar/{ => Regular}/LeftRegularGrammar.cpp (100%)
 rename alib/src/grammar/{ => Regular}/LeftRegularGrammar.h (100%)
 rename alib/src/grammar/{ => Regular}/RegularGrammar.cpp (100%)
 rename alib/src/grammar/{ => Regular}/RegularGrammar.h (94%)
 rename alib/src/grammar/{ => Regular}/RightRegularGrammar.cpp (100%)
 rename alib/src/grammar/{ => Regular}/RightRegularGrammar.h (100%)
 rename alib/src/grammar/{ => Unrestricted}/UnrestrictedGrammar.cpp (100%)
 rename alib/src/grammar/{ => Unrestricted}/UnrestrictedGrammar.h (97%)

diff --git a/acat/src/acat.cpp b/acat/src/acat.cpp
index e15151df24..e2b2cac849 100644
--- a/acat/src/acat.cpp
+++ b/acat/src/acat.cpp
@@ -15,7 +15,6 @@
 #include "regexp/RegExpParser.h"
 #include "automaton/AutomatonParser.h"
 #include "grammar/GrammarParser.h"
-#include "grammar/RightRegularGrammar.h"
 #include "sax/SaxInterface.h"
 #include "sax/ParserException.h"
 
diff --git a/alib/src/GrammarFactory.h b/alib/src/GrammarFactory.h
index 3eb5e1e7cb..d622843f5e 100644
--- a/alib/src/GrammarFactory.h
+++ b/alib/src/GrammarFactory.h
@@ -10,14 +10,13 @@
 
 #include "sax/Token.h"
 #include "grammar/UnknownGrammar.h"
-#include "grammar/RightRegularGrammar.h"
-#include "grammar/LeftRegularGrammar.h"
-#include "grammar/RightLinearGrammar.h"
-#include "grammar/LeftLinearGrammar.h"
-#include "grammar/ContextFreeGrammar.h"
-#include "grammar/ContextSensitiveGrammar.h"
-
-#include "grammar/UnrestrictedGrammar.h"
+#include "grammar/Regular/RightRegularGrammar.h"
+#include "grammar/Regular/LeftRegularGrammar.h"
+#include "grammar/Linear/RightLinearGrammar.h"
+#include "grammar/Linear/LeftLinearGrammar.h"
+#include "grammar/ContextFree/ContextFreeGrammar.h"
+#include "grammar/ContextSensitive/ContextSensitiveGrammar.h"
+#include "grammar/Unrestricted/UnrestrictedGrammar.h"
 
 namespace grammar {
 
diff --git a/alib/src/grammar/ContextFreeGrammar.cpp b/alib/src/grammar/ContextFree/ContextFreeGrammar.cpp
similarity index 100%
rename from alib/src/grammar/ContextFreeGrammar.cpp
rename to alib/src/grammar/ContextFree/ContextFreeGrammar.cpp
diff --git a/alib/src/grammar/ContextFreeGrammar.h b/alib/src/grammar/ContextFree/ContextFreeGrammar.h
similarity index 98%
rename from alib/src/grammar/ContextFreeGrammar.h
rename to alib/src/grammar/ContextFree/ContextFreeGrammar.h
index febbb040c6..5c481e1b05 100644
--- a/alib/src/grammar/ContextFreeGrammar.h
+++ b/alib/src/grammar/ContextFree/ContextFreeGrammar.h
@@ -8,7 +8,7 @@
 #ifndef CONTEXTFREEGRAMMAR_H_
 #define CONTEXTFREEGRAMMAR_H_
 
-#include "Grammar.h"
+#include "../Grammar.h"
 
 namespace grammar {
 
diff --git a/alib/src/grammar/ContextSensitiveGrammar.cpp b/alib/src/grammar/ContextSensitive/ContextSensitiveGrammar.cpp
similarity index 100%
rename from alib/src/grammar/ContextSensitiveGrammar.cpp
rename to alib/src/grammar/ContextSensitive/ContextSensitiveGrammar.cpp
diff --git a/alib/src/grammar/ContextSensitiveGrammar.h b/alib/src/grammar/ContextSensitive/ContextSensitiveGrammar.h
similarity index 98%
rename from alib/src/grammar/ContextSensitiveGrammar.h
rename to alib/src/grammar/ContextSensitive/ContextSensitiveGrammar.h
index d41d68f272..4b6d8d62c4 100644
--- a/alib/src/grammar/ContextSensitiveGrammar.h
+++ b/alib/src/grammar/ContextSensitive/ContextSensitiveGrammar.h
@@ -8,7 +8,7 @@
 #ifndef CONTEXTSENSITIVEGRAMMAR_H_
 #define CONTEXTSENSITIVEGRAMMAR_H_
 
-#include "Grammar.h"
+#include "../Grammar.h"
 
 namespace grammar {
 
diff --git a/alib/src/grammar/LeftLinearGrammar.cpp b/alib/src/grammar/Linear/LeftLinearGrammar.cpp
similarity index 94%
rename from alib/src/grammar/LeftLinearGrammar.cpp
rename to alib/src/grammar/Linear/LeftLinearGrammar.cpp
index f64fd515e2..325b652b33 100644
--- a/alib/src/grammar/LeftLinearGrammar.cpp
+++ b/alib/src/grammar/Linear/LeftLinearGrammar.cpp
@@ -10,12 +10,12 @@
 namespace grammar {
 
 LeftLinearGrammar::LeftLinearGrammar() :
-		Grammar() {
+		LinearGrammar() {
 }
 
 LeftLinearGrammar::LeftLinearGrammar(const set<Symbol>& nonTerminalSymbols, const set<Symbol>& terminalSymbols,
 		const Symbol& startSymbol) :
-		Grammar(nonTerminalSymbols, terminalSymbols, startSymbol) {
+		LinearGrammar(nonTerminalSymbols, terminalSymbols, startSymbol) {
 }
 
 bool LeftLinearGrammar::isValidRule(const Rule& rule) const {
diff --git a/alib/src/grammar/LeftLinearGrammar.h b/alib/src/grammar/Linear/LeftLinearGrammar.h
similarity index 93%
rename from alib/src/grammar/LeftLinearGrammar.h
rename to alib/src/grammar/Linear/LeftLinearGrammar.h
index c82113d3d3..c81f09d022 100644
--- a/alib/src/grammar/LeftLinearGrammar.h
+++ b/alib/src/grammar/Linear/LeftLinearGrammar.h
@@ -8,14 +8,14 @@
 #ifndef LEFTLINEARGRAMMAR_H_
 #define LEFTLINEARGRAMMAR_H_
 
-#include "Grammar.h"
+#include "LinearGrammar.h"
 
 namespace grammar {
 
 /**
  * Left linear grammar. Produces regular language.
  */
-class LeftLinearGrammar: public Grammar {
+class LeftLinearGrammar: public LinearGrammar {
 private:
 	/**
 	 * Checks that left side of the Rule contains one symbol which is nonterminal.
diff --git a/alib/src/grammar/Linear/LinearGrammar.cpp b/alib/src/grammar/Linear/LinearGrammar.cpp
new file mode 100644
index 0000000000..21e534224e
--- /dev/null
+++ b/alib/src/grammar/Linear/LinearGrammar.cpp
@@ -0,0 +1,20 @@
+/*
+ * LinearGrammar.cpp
+ *
+ *  Created on: Jan 1, 2014
+ *      Author: martin
+ */
+
+#include "LinearGrammar.h"
+
+namespace grammar {
+
+LinearGrammar::LinearGrammar() :
+		Grammar() {
+}
+
+LinearGrammar::LinearGrammar(const set<Symbol>& nonTerminalSymbols, const set<Symbol>& terminalSymbols,
+		const Symbol& startSymbol) :
+		Grammar(nonTerminalSymbols, terminalSymbols, startSymbol) {
+}
+} /* namespace grammar */
diff --git a/alib/src/grammar/Linear/LinearGrammar.h b/alib/src/grammar/Linear/LinearGrammar.h
new file mode 100644
index 0000000000..9c3a95f736
--- /dev/null
+++ b/alib/src/grammar/Linear/LinearGrammar.h
@@ -0,0 +1,26 @@
+/*
+ * LinearGrammar.h
+ *
+ *  Created on: Jan 1, 2014
+ *      Author: Martin Zak
+ */
+
+#ifndef LINEARGRAMMAR_H_
+#define LINEARGRAMMAR_H_
+
+#include "../Grammar.h"
+
+namespace grammar {
+
+/**
+ * Abstract class for linear grammars.
+ */
+class LinearGrammar: public Grammar {
+public:
+	LinearGrammar();
+	LinearGrammar(const set<Symbol>& nonTerminalSymbols, const set<Symbol>& terminalSymbols,
+			const Symbol& startSymbol);
+};
+
+} /* namespace grammar */
+#endif /* LINEARGRAMMAR_H_ */
diff --git a/alib/src/grammar/RightLinearGrammar.cpp b/alib/src/grammar/Linear/RightLinearGrammar.cpp
similarity index 95%
rename from alib/src/grammar/RightLinearGrammar.cpp
rename to alib/src/grammar/Linear/RightLinearGrammar.cpp
index e32612d742..10d34e1fbf 100644
--- a/alib/src/grammar/RightLinearGrammar.cpp
+++ b/alib/src/grammar/Linear/RightLinearGrammar.cpp
@@ -10,12 +10,12 @@
 namespace grammar {
 
 RightLinearGrammar::RightLinearGrammar() :
-		Grammar() {
+		LinearGrammar() {
 }
 
 RightLinearGrammar::RightLinearGrammar(const set<Symbol>& nonTerminalSymbols, const set<Symbol>& terminalSymbols,
 		const Symbol& startSymbol) :
-		Grammar(nonTerminalSymbols, terminalSymbols, startSymbol) {
+		LinearGrammar(nonTerminalSymbols, terminalSymbols, startSymbol) {
 }
 
 bool RightLinearGrammar::isValidRule(const Rule& rule) const {
diff --git a/alib/src/grammar/RightLinearGrammar.h b/alib/src/grammar/Linear/RightLinearGrammar.h
similarity index 93%
rename from alib/src/grammar/RightLinearGrammar.h
rename to alib/src/grammar/Linear/RightLinearGrammar.h
index 7f0ec1a209..8397ece746 100644
--- a/alib/src/grammar/RightLinearGrammar.h
+++ b/alib/src/grammar/Linear/RightLinearGrammar.h
@@ -8,14 +8,14 @@
 #ifndef RIGHTLINEARGRAMMAR_H_
 #define RIGHTLINEARGRAMMAR_H_
 
-#include "Grammar.h"
+#include "LinearGrammar.h"
 
 namespace grammar {
 
 /**
  * Right regular grammar. Produces regular language.
  */
-class RightLinearGrammar: public Grammar {
+class RightLinearGrammar: public LinearGrammar {
 private:
 	/**
 	 * Checks that left side of the Rule contains one symbol which is nonterminal.
diff --git a/alib/src/grammar/LeftRegularGrammar.cpp b/alib/src/grammar/Regular/LeftRegularGrammar.cpp
similarity index 100%
rename from alib/src/grammar/LeftRegularGrammar.cpp
rename to alib/src/grammar/Regular/LeftRegularGrammar.cpp
diff --git a/alib/src/grammar/LeftRegularGrammar.h b/alib/src/grammar/Regular/LeftRegularGrammar.h
similarity index 100%
rename from alib/src/grammar/LeftRegularGrammar.h
rename to alib/src/grammar/Regular/LeftRegularGrammar.h
diff --git a/alib/src/grammar/RegularGrammar.cpp b/alib/src/grammar/Regular/RegularGrammar.cpp
similarity index 100%
rename from alib/src/grammar/RegularGrammar.cpp
rename to alib/src/grammar/Regular/RegularGrammar.cpp
diff --git a/alib/src/grammar/RegularGrammar.h b/alib/src/grammar/Regular/RegularGrammar.h
similarity index 94%
rename from alib/src/grammar/RegularGrammar.h
rename to alib/src/grammar/Regular/RegularGrammar.h
index daa090e269..639326417c 100644
--- a/alib/src/grammar/RegularGrammar.h
+++ b/alib/src/grammar/Regular/RegularGrammar.h
@@ -8,10 +8,13 @@
 #ifndef REGULARGRAMMAR_H_
 #define REGULARGRAMMAR_H_
 
-#include "Grammar.h"
+#include "../Grammar.h"
 
 namespace grammar {
 
+/**
+ * Abstract class for regular grammars.
+ */
 class RegularGrammar: public Grammar {
 protected:
 	/**
diff --git a/alib/src/grammar/RightRegularGrammar.cpp b/alib/src/grammar/Regular/RightRegularGrammar.cpp
similarity index 100%
rename from alib/src/grammar/RightRegularGrammar.cpp
rename to alib/src/grammar/Regular/RightRegularGrammar.cpp
diff --git a/alib/src/grammar/RightRegularGrammar.h b/alib/src/grammar/Regular/RightRegularGrammar.h
similarity index 100%
rename from alib/src/grammar/RightRegularGrammar.h
rename to alib/src/grammar/Regular/RightRegularGrammar.h
diff --git a/alib/src/grammar/UnrestrictedGrammar.cpp b/alib/src/grammar/Unrestricted/UnrestrictedGrammar.cpp
similarity index 100%
rename from alib/src/grammar/UnrestrictedGrammar.cpp
rename to alib/src/grammar/Unrestricted/UnrestrictedGrammar.cpp
diff --git a/alib/src/grammar/UnrestrictedGrammar.h b/alib/src/grammar/Unrestricted/UnrestrictedGrammar.h
similarity index 97%
rename from alib/src/grammar/UnrestrictedGrammar.h
rename to alib/src/grammar/Unrestricted/UnrestrictedGrammar.h
index 9bd424f3c3..eb9802d07b 100644
--- a/alib/src/grammar/UnrestrictedGrammar.h
+++ b/alib/src/grammar/Unrestricted/UnrestrictedGrammar.h
@@ -8,7 +8,7 @@
 #ifndef UNRESTRICTEDGRAMMAR_H_
 #define UNRESTRICTEDGRAMMAR_H_
 
-#include "Grammar.h"
+#include "../Grammar.h"
 
 namespace grammar {
 
-- 
GitLab