diff --git a/alib2algo/src/regexp/glushkov/GlushkovFirst.h b/alib2algo/src/regexp/glushkov/GlushkovFirst.h index f3f472db226e0090f8d97ab5991263a76cfffb5e..154cab05009e0e25cd9fc3238fa9f2e4a629964e 100644 --- a/alib2algo/src/regexp/glushkov/GlushkovFirst.h +++ b/alib2algo/src/regexp/glushkov/GlushkovFirst.h @@ -11,7 +11,6 @@ #include <alib/set> #include <regexp/unbounded/UnboundedRegExp.h> -#include <regexp/RegExpFeatures.h> #include <regexp/unbounded/UnboundedRegExpAlternation.h> #include <regexp/unbounded/UnboundedRegExpConcatenation.h> diff --git a/alib2algo/src/regexp/glushkov/GlushkovFollow.h b/alib2algo/src/regexp/glushkov/GlushkovFollow.h index 261c91e180f91f113c1e338bd6859e1eb855b2f4..ee96b1b6824d9d1cbc4a6f12bd083e534dc27bd7 100644 --- a/alib2algo/src/regexp/glushkov/GlushkovFollow.h +++ b/alib2algo/src/regexp/glushkov/GlushkovFollow.h @@ -12,7 +12,6 @@ #include <alib/iterator> #include <regexp/unbounded/UnboundedRegExp.h> -#include <regexp/RegExpFeatures.h> #include <regexp/unbounded/UnboundedRegExpAlternation.h> #include <regexp/unbounded/UnboundedRegExpConcatenation.h> diff --git a/alib2algo/src/regexp/glushkov/GlushkovIndexate.h b/alib2algo/src/regexp/glushkov/GlushkovIndexate.h index aaea3adb38919fe0a9b2e565f65693a3ff8f81b6..c21d7f465354ad567b4050973a9a8081ebc6beec 100644 --- a/alib2algo/src/regexp/glushkov/GlushkovIndexate.h +++ b/alib2algo/src/regexp/glushkov/GlushkovIndexate.h @@ -9,7 +9,6 @@ #define GLUSHKOV_INDEXATE_H_ #include <regexp/unbounded/UnboundedRegExp.h> -#include <regexp/RegExpFeatures.h> #include <regexp/unbounded/UnboundedRegExpAlternation.h> #include <regexp/unbounded/UnboundedRegExpConcatenation.h> diff --git a/alib2algo/src/regexp/glushkov/GlushkovLast.h b/alib2algo/src/regexp/glushkov/GlushkovLast.h index 50cb57cf1dba2f244f29c24b2447915a6a1e4ea9..d13559fe49d6ebe9c241e801a89c3aaca43d1781 100644 --- a/alib2algo/src/regexp/glushkov/GlushkovLast.h +++ b/alib2algo/src/regexp/glushkov/GlushkovLast.h @@ -11,7 +11,6 @@ #include <alib/set> #include <regexp/unbounded/UnboundedRegExp.h> -#include <regexp/RegExpFeatures.h> #include <regexp/unbounded/UnboundedRegExpAlternation.h> #include <regexp/unbounded/UnboundedRegExpConcatenation.h> diff --git a/alib2algo/src/regexp/glushkov/GlushkovPos.h b/alib2algo/src/regexp/glushkov/GlushkovPos.h index fbcf18c1dc62810dbffd63a89e038838e7fcb049..18ca52bf7a8582c520683e2d41d7ceb25ff953ca 100644 --- a/alib2algo/src/regexp/glushkov/GlushkovPos.h +++ b/alib2algo/src/regexp/glushkov/GlushkovPos.h @@ -9,7 +9,6 @@ #define GLUSHKOV_POS_H_ #include <regexp/unbounded/UnboundedRegExp.h> -#include <regexp/RegExpFeatures.h> #include <regexp/unbounded/UnboundedRegExpAlternation.h> #include <regexp/unbounded/UnboundedRegExpConcatenation.h> diff --git a/alib2data/src/regexp/RegExpFeatures.h b/alib2data/src/regexp/RegExpFeatures.h deleted file mode 100644 index 2cf6fc27dc0a209c326a446cbc572c4a45bfab87..0000000000000000000000000000000000000000 --- a/alib2data/src/regexp/RegExpFeatures.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * RegExpFeatures.h - * - * Created on: Jun 19, 2014 - * Author: Jan Travnicek - */ - -#ifndef REG_EXP_FEATURES_H_ -#define REG_EXP_FEATURES_H_ - -#include <common/DefaultSymbolType.h> - -namespace regexp { - -class RegExp; -class RegExpBase; - -template < class SymbolType = DefaultSymbolType > -class UnboundedRegExp; -template < class SymbolType > -class UnboundedRegExpStructure; - -template < class SymbolType > -class UnboundedRegExpElement; -template < class SymbolType > -class UnboundedRegExpAlternation; -template < class SymbolType > -class UnboundedRegExpConcatenation; -template < class SymbolType > -class UnboundedRegExpIteration; -template < class SymbolType > -class UnboundedRegExpSymbol; -template < class SymbolType > -class UnboundedRegExpEmpty; -template < class SymbolType > -class UnboundedRegExpEpsilon; - - -template < class SymbolType = DefaultSymbolType > -class FormalRegExp; -template < class SymbolType > -class FormalRegExpStructure; - -template < class SymbolType > -class FormalRegExpElement; -template < class SymbolType > -class FormalRegExpAlternation; -template < class SymbolType > -class FormalRegExpConcatenation; -template < class SymbolType > -class FormalRegExpIteration; -template < class SymbolType > -class FormalRegExpSymbol; -template < class SymbolType > -class FormalRegExpEmpty; -template < class SymbolType > -class FormalRegExpEpsilon; - -} /* namespace regexp */ - -#endif /* REG_EXP_FEATURES_H_ */ diff --git a/alib2data/src/regexp/formal/FormalRegExp.h b/alib2data/src/regexp/formal/FormalRegExp.h index dadbb8b8e8586fee901752cf08d2c0a02c79d2d9..b236203d104f3d64adad1092289296afeee1ba02 100644 --- a/alib2data/src/regexp/formal/FormalRegExp.h +++ b/alib2data/src/regexp/formal/FormalRegExp.h @@ -24,6 +24,15 @@ #ifndef FORMAL_REG_EXP_H_ #define FORMAL_REG_EXP_H_ +#include <common/DefaultSymbolType.h> + +namespace regexp { + +template < class SymbolType = DefaultSymbolType > +class FormalRegExp; + +} /* namespace regexp */ + #include <alib/string> #include <alib/set> #include <alib/iostream> @@ -33,14 +42,14 @@ #include <core/components.hpp> #include <object/UniqueObject.h> #include <exception/CommonException.h> -#include <alphabet/common/SymbolNormalize.h> - -#include "../RegExpBase.h" -#include "../RegExpFeatures.h" +#include <regexp/RegExpBase.h> #include "FormalRegExpStructure.h" #include <core/normalize.hpp> +#include <alphabet/common/SymbolNormalize.h> + +#include "../unbounded/UnboundedRegExp.h" namespace regexp { @@ -184,12 +193,6 @@ public: virtual object::ObjectBase * inc ( ) && override; }; -} /* namespace regexp */ - -#include "../unbounded/UnboundedRegExp.h" - -namespace regexp { - template < class SymbolType > FormalRegExp < SymbolType >::FormalRegExp ( ext::set < SymbolType > alphabet, FormalRegExpStructure < SymbolType > regExp ) : core::Components < FormalRegExp, ext::set < SymbolType >, component::Set, GeneralAlphabet > ( std::move ( alphabet ) ), m_regExp ( std::move ( regExp ) ) { if ( !this->m_regExp.getStructure ( ).checkAlphabet ( getAlphabet ( ) ) ) diff --git a/alib2data/src/regexp/formal/FormalRegExpElement.h b/alib2data/src/regexp/formal/FormalRegExpElement.h index 5fba955efa68e62a9caf0832df9ed22ff77622c0..a6a16517833d40d11178839703afe8bfc69670e8 100644 --- a/alib2data/src/regexp/formal/FormalRegExpElement.h +++ b/alib2data/src/regexp/formal/FormalRegExpElement.h @@ -24,13 +24,37 @@ #ifndef FORMAL_REG_EXP_ELEMENT_H_ #define FORMAL_REG_EXP_ELEMENT_H_ +#include <common/DefaultSymbolType.h> + +namespace regexp { + +template < class SymbolType > +class FormalRegExpElement; + +} /* namespace regexp */ + #include <alib/set> #include <alib/tree> #include <core/visitor.hpp> -#include "../RegExpFeatures.h" +#include <base/CommonBase.hpp> + +#include "../unbounded/UnboundedRegExpElement.h" namespace regexp { +template < class SymbolType > +class FormalRegExpAlternation; +template < class SymbolType > +class FormalRegExpConcatenation; +template < class SymbolType > +class FormalRegExpIteration; +template < class SymbolType > +class FormalRegExpSymbol; +template < class SymbolType > +class FormalRegExpEmpty; +template < class SymbolType > +class FormalRegExpEpsilon; + /** * Abstract class representing element in the formal regular expression. Can be an operator, special node, or a symbol. * diff --git a/alib2data/src/regexp/formal/FormalRegExpStructure.h b/alib2data/src/regexp/formal/FormalRegExpStructure.h index 6ad2916e400b00df3d40bb3de945e1b3bf0d3309..229c275f400c194be9829d5f36437c83858b73fa 100644 --- a/alib2data/src/regexp/formal/FormalRegExpStructure.h +++ b/alib2data/src/regexp/formal/FormalRegExpStructure.h @@ -24,9 +24,14 @@ #ifndef FORMAL_REG_EXP_STRUCTURE_H_ #define FORMAL_REG_EXP_STRUCTURE_H_ -#include <exception/CommonException.h> +namespace regexp { -#include "../RegExpFeatures.h" +template < class SymbolType > +class UnboundedRegExpStructure; + +} /* namespace regexp */ + +#include <exception/CommonException.h> #include "FormalRegExpEmpty.h" @@ -144,23 +149,6 @@ public: } }; -} /* namespace regexp */ - -namespace ext { - -template < class SymbolType > -struct compare < regexp::FormalRegExpStructure < SymbolType > > { - int operator()(const regexp::FormalRegExpStructure < SymbolType > & first, const regexp::FormalRegExpStructure < SymbolType > & second) const { - return first.getStructure().compare(second.getStructure()); - } -}; - -} /* namespace ext */ - -#include "../unbounded/UnboundedRegExpStructure.h" - -namespace regexp { - template < class SymbolType > FormalRegExpStructure < SymbolType >::FormalRegExpStructure ( FormalRegExpElement < SymbolType > && structure ) : m_structure ( NULL ) { setStructure ( std::move ( structure ) ); @@ -200,4 +188,15 @@ void FormalRegExpStructure < SymbolType >::setStructure ( FormalRegExpElement < } /* namespace regexp */ +namespace ext { + +template < class SymbolType > +struct compare < regexp::FormalRegExpStructure < SymbolType > > { + int operator()(const regexp::FormalRegExpStructure < SymbolType > & first, const regexp::FormalRegExpStructure < SymbolType > & second) const { + return first.getStructure().compare(second.getStructure()); + } +}; + +} /* namespace ext */ + #endif /* FORMAL_REG_EXP_STRUCTURE_H_ */ diff --git a/alib2data/src/regexp/unbounded/UnboundedRegExp.h b/alib2data/src/regexp/unbounded/UnboundedRegExp.h index 877d77fcaff0847609106b14079bafd5010625c6..4f00e8b655aa425e32235e6a0c4aae901a1ec2d8 100644 --- a/alib2data/src/regexp/unbounded/UnboundedRegExp.h +++ b/alib2data/src/regexp/unbounded/UnboundedRegExp.h @@ -24,6 +24,15 @@ #ifndef UNBOUNDED_REG_EXP_H_ #define UNBOUNDED_REG_EXP_H_ +#include <common/DefaultSymbolType.h> + +namespace regexp { + +template < class SymbolType = DefaultSymbolType > +class UnboundedRegExp; + +} /* namespace regexp */ + #include <alib/string> #include <alib/set> #include <alib/iostream> @@ -33,14 +42,14 @@ #include <core/components.hpp> #include <object/UniqueObject.h> #include <exception/CommonException.h> -#include <alphabet/common/SymbolNormalize.h> - -#include "../RegExpBase.h" -#include "../RegExpFeatures.h" +#include <regexp/RegExpBase.h> #include "UnboundedRegExpStructure.h" #include <core/normalize.hpp> +#include <alphabet/common/SymbolNormalize.h> + +#include "../formal/FormalRegExp.h" namespace regexp { @@ -186,12 +195,6 @@ public: virtual object::ObjectBase * inc ( ) && override; }; -} /* namespace regexp */ - -#include "../formal/FormalRegExp.h" - -namespace regexp { - template < class SymbolType > UnboundedRegExp < SymbolType >::UnboundedRegExp ( ext::set < SymbolType > alphabet, UnboundedRegExpStructure < SymbolType > regExp ) : core::Components < UnboundedRegExp, ext::set < SymbolType >, component::Set, GeneralAlphabet > ( std::move ( alphabet ) ), m_regExp ( std::move ( regExp ) ) { if ( !this->m_regExp.getStructure ( ).checkAlphabet ( getAlphabet ( ) ) ) diff --git a/alib2data/src/regexp/unbounded/UnboundedRegExpElement.h b/alib2data/src/regexp/unbounded/UnboundedRegExpElement.h index d54b6fb5bdaca56a5a8927f2f34e8e7ce4b7023c..d228a142010c105a19165edd1deebb96421001be 100644 --- a/alib2data/src/regexp/unbounded/UnboundedRegExpElement.h +++ b/alib2data/src/regexp/unbounded/UnboundedRegExpElement.h @@ -24,13 +24,37 @@ #ifndef UNBOUNDED_REG_EXP_ELEMENT_H_ #define UNBOUNDED_REG_EXP_ELEMENT_H_ +#include <common/DefaultSymbolType.h> + +namespace regexp { + +template < class SymbolType > +class UnboundedRegExpElement; + +} /* namespace regexp */ + #include <alib/set> #include <alib/tree> #include <core/visitor.hpp> -#include "../RegExpFeatures.h" +#include <base/CommonBase.hpp> + +#include "../formal/FormalRegExpElement.h" namespace regexp { +template < class SymbolType > +class UnboundedRegExpAlternation; +template < class SymbolType > +class UnboundedRegExpConcatenation; +template < class SymbolType > +class UnboundedRegExpIteration; +template < class SymbolType > +class UnboundedRegExpSymbol; +template < class SymbolType > +class UnboundedRegExpEmpty; +template < class SymbolType > +class UnboundedRegExpEpsilon; + /** * Abstract class representing element in the unbounded regular expression. Can be an operator, special node, or a symbol. * diff --git a/alib2data/src/regexp/unbounded/UnboundedRegExpStructure.h b/alib2data/src/regexp/unbounded/UnboundedRegExpStructure.h index 66345324853432ca879c3258826ea0d23a170aed..6c01e2409813b5122fc6c797fb1670c180f6b45f 100644 --- a/alib2data/src/regexp/unbounded/UnboundedRegExpStructure.h +++ b/alib2data/src/regexp/unbounded/UnboundedRegExpStructure.h @@ -24,12 +24,19 @@ #ifndef UNBOUNDED_REG_EXP_STRUCTURE_H_ #define UNBOUNDED_REG_EXP_STRUCTURE_H_ -#include <exception/CommonException.h> +namespace regexp { + +template < class SymbolType > +class UnboundedRegExpStructure; + +} /* namespace regexp */ -#include "../RegExpFeatures.h" +#include <exception/CommonException.h> #include "UnboundedRegExpEmpty.h" +#include "../formal/FormalRegExpStructure.h" + namespace regexp { /** @@ -144,23 +151,6 @@ public: } }; -} /* namespace regexp */ - -namespace ext { - -template < class SymbolType > -struct compare < regexp::UnboundedRegExpStructure < SymbolType > > { - int operator()(const regexp::UnboundedRegExpStructure < SymbolType > & first, const regexp::UnboundedRegExpStructure < SymbolType > & second) const { - return first.getStructure().compare(second.getStructure()); - } -}; - -} /* namespace ext */ - -#include "../formal/FormalRegExpStructure.h" - -namespace regexp { - template < class SymbolType > UnboundedRegExpStructure < SymbolType >::UnboundedRegExpStructure ( UnboundedRegExpElement < SymbolType > && structure ) : m_structure ( NULL ) { setStructure ( std::move ( structure ) ); @@ -200,4 +190,15 @@ void UnboundedRegExpStructure < SymbolType >::setStructure ( UnboundedRegExpElem } /* namespace regexp */ +namespace ext { + +template < class SymbolType > +struct compare < regexp::UnboundedRegExpStructure < SymbolType > > { + int operator()(const regexp::UnboundedRegExpStructure < SymbolType > & first, const regexp::UnboundedRegExpStructure < SymbolType > & second) const { + return first.getStructure().compare(second.getStructure()); + } +}; + +} /* namespace ext */ + #endif /* UNBOUNDED_REG_EXP_STRUCTURE_H_ */ diff --git a/alib2data/src/regexp/xml/common/RegExpFromXmlParser.h b/alib2data/src/regexp/xml/common/RegExpFromXmlParser.h index 0d240c9b78e4734101c9a14d68131b0894a4b82b..899ad4d9a2c21f97d6f1e85973df80dd1a42be3f 100644 --- a/alib2data/src/regexp/xml/common/RegExpFromXmlParser.h +++ b/alib2data/src/regexp/xml/common/RegExpFromXmlParser.h @@ -10,7 +10,6 @@ #include <alib/set> #include <alib/deque> -#include <regexp/RegExpFeatures.h> #include <sax/Token.h> #include <sax/FromXMLParserHelper.h> diff --git a/alib2data/src/regexp/xml/common/RegExpToXmlComposer.h b/alib2data/src/regexp/xml/common/RegExpToXmlComposer.h index 996213f4df0d6dd3b4db111b15c9fd96c00871f7..2b0a145ffcfb427479f57d2f9e37ad164d1d92b3 100644 --- a/alib2data/src/regexp/xml/common/RegExpToXmlComposer.h +++ b/alib2data/src/regexp/xml/common/RegExpToXmlComposer.h @@ -9,7 +9,6 @@ #define REG_EXP_TO_XML_COMPOSER_H_ #include <alib/deque> -#include <regexp/RegExpFeatures.h> #include <regexp/unbounded/UnboundedRegExpElement.h> #include <regexp/formal/FormalRegExpElement.h> #include <sax/Token.h>