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