diff --git a/alib2data/src/tree/TreeFeatures.h b/alib2data/src/tree/TreeFeatures.h deleted file mode 100644 index 28cbc533ea7900236acdcbc6a024697cd26b92a8..0000000000000000000000000000000000000000 --- a/alib2data/src/tree/TreeFeatures.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * TreeFeatures.h - * - * Created on: Nov 16, 2014 - * Author: Stepan Plachy - */ - -#ifndef TREE_FEATURES_H_ -#define TREE_FEATURES_H_ - -#include <common/DefaultSymbolType.h> -#include <common/DefaultRankType.h> - -namespace tree { - -class Tree; -class TreeBase; - -template < class SymbolType = DefaultSymbolType, class RankType = DefaultRankType > -class RankedTree; -template < class SymbolType = DefaultSymbolType, class RankType = DefaultRankType > -class RankedPattern; -template < class SymbolType = DefaultSymbolType, class RankType = DefaultRankType > -class RankedNonlinearPattern; -template < class SymbolType = DefaultSymbolType, class RankType = DefaultRankType > -class PrefixRankedTree; -template < class SymbolType = DefaultSymbolType, class RankType = DefaultRankType > -class PrefixRankedBarTree; -template < class SymbolType = DefaultSymbolType, class RankType = DefaultRankType > -class PrefixRankedPattern; -template < class SymbolType = DefaultSymbolType, class RankType = DefaultRankType > -class PrefixRankedNonlinearPattern; -template < class SymbolType = DefaultSymbolType, class RankType = DefaultRankType > -class PrefixRankedBarPattern; -template < class SymbolType = DefaultSymbolType, class RankType = DefaultRankType > -class PrefixRankedBarNonlinearPattern; -template < class SymbolType = DefaultSymbolType, class RankType = DefaultRankType > -class PostfixRankedTree; -template < class SymbolType = DefaultSymbolType > -class UnrankedTree; -template < class SymbolType = DefaultSymbolType > -class UnrankedPattern; -template < class SymbolType = DefaultSymbolType > -class UnrankedNonlinearPattern; -template < class SymbolType = DefaultSymbolType > -class PrefixBarTree; - -} /* namespace tree */ - -#endif /* TREE_FEATURES_H_ */ diff --git a/alib2data/src/tree/ranked/PostfixRankedTree.h b/alib2data/src/tree/ranked/PostfixRankedTree.h index 1dc8e04963f11691bec85908c58edd6469bd1659..5940556bbd7c002901b57d8a75aa72f81f7f111a 100644 --- a/alib2data/src/tree/ranked/PostfixRankedTree.h +++ b/alib2data/src/tree/ranked/PostfixRankedTree.h @@ -24,6 +24,16 @@ #ifndef POSTFIX_RANKED_TREE_H_ #define POSTFIX_RANKED_TREE_H_ +#include <common/DefaultSymbolType.h> +#include <common/DefaultRankType.h> + +namespace tree { + +template < class SymbolType = DefaultSymbolType, class RankType = DefaultRankType > +class PostfixRankedTree; + +} /* namespace tree */ + #include <alib/set> #include <alib/vector> #include <alib/tree> @@ -35,16 +45,17 @@ #include <object/UniqueObject.h> #include <common/ranked_symbol.hpp> -#include "../TreeFeatures.h" -#include "../TreeException.h" -#include "../TreeBase.h" -#include "../common/TreeAuxiliary.h" -#include <tree/common/TreeNormalize.h> +#include <tree/TreeException.h> +#include <tree/TreeBase.h> +#include <tree/common/TreeAuxiliary.h> #include <core/normalize.hpp> +#include <tree/common/TreeNormalize.h> #include <string/LinearString.h> +#include "RankedTree.h" + namespace tree { class GeneralAlphabet; @@ -206,12 +217,6 @@ public: } }; -} /* namespace tree */ - -#include "RankedTree.h" - -namespace tree { - template < class SymbolType, class RankType > PostfixRankedTree < SymbolType, RankType >::PostfixRankedTree ( ext::set < common::ranked_symbol < SymbolType, RankType > > alphabet, ext::vector < common::ranked_symbol < SymbolType, RankType > > data ) : core::Components < PostfixRankedTree, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, GeneralAlphabet > ( std::move ( alphabet ) ) { setContent ( std::move ( data ) ); diff --git a/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h b/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h index fbe4ea5311f55f32df0b26920fb50cb51ef074b8..51d97524a889dc8ea77b27abb010122dd48fe1e2 100644 --- a/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h +++ b/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h @@ -24,6 +24,16 @@ #ifndef PREFIX_RANKED_BAR_NONLINEAR_PATTERN_H_ #define PREFIX_RANKED_BAR_NONLINEAR_PATTERN_H_ +#include <common/DefaultSymbolType.h> +#include <common/DefaultRankType.h> + +namespace tree { + +template < class SymbolType = DefaultSymbolType, class RankType = DefaultRankType > +class PrefixRankedBarNonlinearPattern; + +} /* namespace tree */ + #include <alib/set> #include <alib/vector> #include <alib/tree> @@ -35,20 +45,25 @@ #include <object/UniqueObject.h> #include <common/ranked_symbol.hpp> -#include "../TreeFeatures.h" -#include "../TreeException.h" -#include "../TreeBase.h" -#include "../common/TreeAuxiliary.h" -#include <tree/common/TreeNormalize.h> +#include <tree/TreeException.h> +#include <tree/TreeBase.h> +#include <tree/common/TreeAuxiliary.h> #include <alphabet/BarSymbol.h> #include <alphabet/VariablesBarSymbol.h> #include <alphabet/WildcardSymbol.h> #include <core/normalize.hpp> +#include <tree/common/TreeNormalize.h> #include <string/LinearString.h> +#include "PrefixRankedBarTree.h" +#include "PrefixRankedBarPattern.h" +#include "RankedTree.h" +#include "RankedPattern.h" +#include "RankedNonlinearPattern.h" + namespace tree { class GeneralAlphabet; @@ -374,16 +389,6 @@ public: } }; -} /* namespace tree */ - -#include "PrefixRankedBarTree.h" -#include "PrefixRankedBarPattern.h" -#include "RankedTree.h" -#include "RankedPattern.h" -#include "RankedNonlinearPattern.h" - -namespace tree { - template < class SymbolType, class RankType > PrefixRankedBarNonlinearPattern < SymbolType, RankType >::PrefixRankedBarNonlinearPattern ( ext::set < common::ranked_symbol < SymbolType, RankType > > bars, common::ranked_symbol < SymbolType, RankType > variablesBar, common::ranked_symbol < SymbolType, RankType > subtreeWildcard, ext::set < common::ranked_symbol < SymbolType, RankType > > nonlinearVariables, ext::set < common::ranked_symbol < SymbolType, RankType > > alphabet, ext::vector < common::ranked_symbol < SymbolType, RankType > > data ) : core::Components < PrefixRankedBarNonlinearPattern, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, std::tuple < GeneralAlphabet, NonlinearAlphabet, BarSymbols >, common::ranked_symbol < SymbolType, RankType >, component::Value, std::tuple < SubtreeWildcard, VariablesBarSymbol > > ( std::move ( alphabet ), std::move ( nonlinearVariables ), std::move ( bars ), std::move ( subtreeWildcard ), std::move ( variablesBar ) ) { setContent ( std::move ( data ) ); diff --git a/alib2data/src/tree/ranked/PrefixRankedBarPattern.h b/alib2data/src/tree/ranked/PrefixRankedBarPattern.h index 342800c38c7347306c70e5032c6d9b63c20ebf60..2290109be675d53c8453c0f59fef25e3d7c9972a 100644 --- a/alib2data/src/tree/ranked/PrefixRankedBarPattern.h +++ b/alib2data/src/tree/ranked/PrefixRankedBarPattern.h @@ -24,6 +24,16 @@ #ifndef PREFIX_RANKED_BAR_PATTERN_H_ #define PREFIX_RANKED_BAR_PATTERN_H_ +#include <common/DefaultSymbolType.h> +#include <common/DefaultRankType.h> + +namespace tree { + +template < class SymbolType = DefaultSymbolType, class RankType = DefaultRankType > +class PrefixRankedBarPattern; + +} /* namespace tree */ + #include <alib/set> #include <alib/vector> #include <alib/tree> @@ -35,20 +45,22 @@ #include <object/UniqueObject.h> #include <common/ranked_symbol.hpp> -#include "../TreeFeatures.h" -#include "../TreeException.h" -#include "../TreeBase.h" -#include "../common/TreeAuxiliary.h" -#include <tree/common/TreeNormalize.h> +#include <tree/TreeException.h> +#include <tree/TreeBase.h> +#include <tree/common/TreeAuxiliary.h> #include <alphabet/BarSymbol.h> #include <alphabet/VariablesBarSymbol.h> #include <alphabet/WildcardSymbol.h> #include <core/normalize.hpp> +#include <tree/common/TreeNormalize.h> #include <string/LinearString.h> +#include "RankedPattern.h" +#include "PrefixRankedBarTree.h" + namespace tree { class GeneralAlphabet; @@ -303,13 +315,6 @@ public: } }; -} /* namespace tree */ - -#include "RankedPattern.h" -#include "PrefixRankedBarTree.h" - -namespace tree { - template < class SymbolType, class RankType > PrefixRankedBarPattern < SymbolType, RankType >::PrefixRankedBarPattern ( ext::set < common::ranked_symbol < SymbolType, RankType > > bars, common::ranked_symbol < SymbolType, RankType > variablesBar, common::ranked_symbol < SymbolType, RankType > subtreeWildcard, ext::set < common::ranked_symbol < SymbolType, RankType > > alphabet, ext::vector < common::ranked_symbol < SymbolType, RankType > > data ) : core::Components < PrefixRankedBarPattern, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, std::tuple < GeneralAlphabet, BarSymbols >, common::ranked_symbol < SymbolType, RankType >, component::Value, std::tuple < SubtreeWildcard, VariablesBarSymbol > > ( std::move ( alphabet ), std::move ( bars ), std::move ( subtreeWildcard ), std::move ( variablesBar ) ) { setContent ( std::move ( data ) ); diff --git a/alib2data/src/tree/ranked/PrefixRankedBarTree.h b/alib2data/src/tree/ranked/PrefixRankedBarTree.h index 8273f36475784b9e9eb11c792633a7c2a5f973fe..e9b3080caa822d43c70c5d66091be32350332b73 100644 --- a/alib2data/src/tree/ranked/PrefixRankedBarTree.h +++ b/alib2data/src/tree/ranked/PrefixRankedBarTree.h @@ -24,6 +24,16 @@ #ifndef PREFIX_RANKED_BAR_TREE_H_ #define PREFIX_RANKED_BAR_TREE_H_ +#include <common/DefaultSymbolType.h> +#include <common/DefaultRankType.h> + +namespace tree { + +template < class SymbolType = DefaultSymbolType, class RankType = DefaultRankType > +class PrefixRankedBarTree; + +} /* namespace tree */ + #include <alib/set> #include <alib/vector> #include <alib/tree> @@ -35,18 +45,19 @@ #include <object/UniqueObject.h> #include <common/ranked_symbol.hpp> -#include "../TreeFeatures.h" -#include "../TreeException.h" -#include "../TreeBase.h" -#include "../common/TreeAuxiliary.h" -#include <tree/common/TreeNormalize.h> +#include <tree/TreeException.h> +#include <tree/TreeBase.h> +#include <tree/common/TreeAuxiliary.h> #include <alphabet/BarSymbol.h> #include <core/normalize.hpp> +#include <tree/common/TreeNormalize.h> #include <string/LinearString.h> +#include "RankedTree.h" + namespace tree { class GeneralAlphabet; @@ -249,12 +260,6 @@ public: } }; -} /* namespace tree */ - -#include "RankedTree.h" - -namespace tree { - template < class SymbolType, class RankType > PrefixRankedBarTree < SymbolType, RankType >::PrefixRankedBarTree ( ext::set < common::ranked_symbol < SymbolType, RankType > > bars, ext::set < common::ranked_symbol < SymbolType, RankType > > alphabet, ext::vector < common::ranked_symbol < SymbolType, RankType > > data ) : core::Components < PrefixRankedBarTree, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, std::tuple < GeneralAlphabet, BarSymbols > > ( std::move ( alphabet ), std::move ( bars ) ) { setContent ( std::move ( data ) ); diff --git a/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h b/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h index c9fc012a9a8d898f970d2d7db6354eab7404705e..762b8b5302f09bca337f81cc784841201f3a420d 100644 --- a/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h +++ b/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h @@ -24,6 +24,16 @@ #ifndef PREFIX_RANKED_NONLINEAR_PATTERN_H_ #define PREFIX_RANKED_NONLINEAR_PATTERN_H_ +#include <common/DefaultSymbolType.h> +#include <common/DefaultRankType.h> + +namespace tree { + +template < class SymbolType = DefaultSymbolType, class RankType = DefaultRankType > +class PrefixRankedNonlinearPattern; + +} /* namespace tree */ + #include <alib/set> #include <alib/vector> #include <alib/tree> @@ -35,17 +45,22 @@ #include <object/UniqueObject.h> #include <common/ranked_symbol.hpp> -#include "../TreeFeatures.h" -#include "../TreeException.h" -#include "../TreeBase.h" -#include "../common/TreeAuxiliary.h" -#include <tree/common/TreeNormalize.h> +#include <tree/TreeException.h> +#include <tree/TreeBase.h> +#include <tree/common/TreeAuxiliary.h> #include <alphabet/WildcardSymbol.h> #include <core/normalize.hpp> #include <string/LinearString.h> +#include <tree/common/TreeNormalize.h> + +#include "PrefixRankedTree.h" +#include "PrefixRankedPattern.h" +#include "RankedTree.h" +#include "RankedPattern.h" +#include "RankedNonlinearPattern.h" namespace tree { @@ -288,16 +303,6 @@ public: } }; -} /* namespace tree */ - -#include "PrefixRankedTree.h" -#include "PrefixRankedPattern.h" -#include "RankedTree.h" -#include "RankedPattern.h" -#include "RankedNonlinearPattern.h" - -namespace tree { - template < class SymbolType, class RankType > PrefixRankedNonlinearPattern < SymbolType, RankType >::PrefixRankedNonlinearPattern ( common::ranked_symbol < SymbolType, RankType > subtreeWildcard, ext::set < common::ranked_symbol < SymbolType, RankType > > nonlinearVariables, ext::set < common::ranked_symbol < SymbolType, RankType > > alphabet, ext::vector < common::ranked_symbol < SymbolType, RankType > > data ) : core::Components < PrefixRankedNonlinearPattern, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, std::tuple < GeneralAlphabet, NonlinearAlphabet >, common::ranked_symbol < SymbolType, RankType >, component::Value, SubtreeWildcard > ( std::move ( alphabet ), std::move ( nonlinearVariables ), std::move ( subtreeWildcard ) ) { setContent ( std::move ( data ) ); diff --git a/alib2data/src/tree/ranked/PrefixRankedPattern.h b/alib2data/src/tree/ranked/PrefixRankedPattern.h index 4336b3c93a457598bf2b6094f9a0f788c7a9f873..dac08544000b8e6233e2057c6bb9e6a99e3ccc3a 100644 --- a/alib2data/src/tree/ranked/PrefixRankedPattern.h +++ b/alib2data/src/tree/ranked/PrefixRankedPattern.h @@ -24,6 +24,16 @@ #ifndef PREFIX_RANKED_PATTERN_H_ #define PREFIX_RANKED_PATTERN_H_ +#include <common/DefaultSymbolType.h> +#include <common/DefaultRankType.h> + +namespace tree { + +template < class SymbolType = DefaultSymbolType, class RankType = DefaultRankType > +class PrefixRankedPattern; + +} /* namespace tree */ + #include <alib/set> #include <alib/vector> #include <alib/tree> @@ -35,18 +45,20 @@ #include <object/UniqueObject.h> #include <common/ranked_symbol.hpp> -#include "../TreeFeatures.h" -#include "../TreeException.h" -#include "../TreeBase.h" -#include "../common/TreeAuxiliary.h" -#include <tree/common/TreeNormalize.h> +#include <tree/TreeException.h> +#include <tree/TreeBase.h> +#include <tree/common/TreeAuxiliary.h> #include <alphabet/WildcardSymbol.h> #include <core/normalize.hpp> +#include <tree/common/TreeNormalize.h> #include <string/LinearString.h> +#include "RankedPattern.h" +#include "PrefixRankedTree.h" + namespace tree { class GeneralAlphabet; @@ -237,13 +249,6 @@ public: } }; -} /* namespace tree */ - -#include "RankedPattern.h" -#include "PrefixRankedTree.h" - -namespace tree { - template < class SymbolType, class RankType > PrefixRankedPattern < SymbolType, RankType >::PrefixRankedPattern ( common::ranked_symbol < SymbolType, RankType > subtreeWildcard, ext::set < common::ranked_symbol < SymbolType, RankType > > alphabet, ext::vector < common::ranked_symbol < SymbolType, RankType > > data ) : core::Components < PrefixRankedPattern, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, GeneralAlphabet, common::ranked_symbol < SymbolType, RankType >, component::Value, SubtreeWildcard > ( std::move ( alphabet ), std::move ( subtreeWildcard ) ) { setContent ( std::move ( data ) ); diff --git a/alib2data/src/tree/ranked/PrefixRankedTree.h b/alib2data/src/tree/ranked/PrefixRankedTree.h index a53b6604697d7c61cffc5b70afab374753d23a84..be4c8fdcf22977c92e2cd6e047bfb325453de9dd 100644 --- a/alib2data/src/tree/ranked/PrefixRankedTree.h +++ b/alib2data/src/tree/ranked/PrefixRankedTree.h @@ -24,6 +24,16 @@ #ifndef PREFIX_RANKED_TREE_H_ #define PREFIX_RANKED_TREE_H_ +#include <common/DefaultSymbolType.h> +#include <common/DefaultRankType.h> + +namespace tree { + +template < class SymbolType = DefaultSymbolType, class RankType = DefaultRankType > +class PrefixRankedTree; + +} /* namespace tree */ + #include <alib/set> #include <alib/vector> #include <alib/tree> @@ -35,15 +45,16 @@ #include <object/UniqueObject.h> #include <common/ranked_symbol.hpp> -#include "../TreeFeatures.h" -#include "../TreeException.h" -#include "../TreeBase.h" -#include <tree/common/TreeNormalize.h> +#include <tree/TreeException.h> +#include <tree/TreeBase.h> #include <core/normalize.hpp> +#include <tree/common/TreeNormalize.h> #include <string/LinearString.h> +#include "RankedTree.h" + namespace tree { class GeneralAlphabet; @@ -212,12 +223,6 @@ public: } }; -} /* namespace tree */ - -#include "RankedTree.h" - -namespace tree { - template < class SymbolType, class RankType > PrefixRankedTree < SymbolType, RankType >::PrefixRankedTree ( ext::set < common::ranked_symbol < SymbolType, RankType > > alphabet, ext::vector < common::ranked_symbol < SymbolType, RankType > > data ) : core::Components < PrefixRankedTree, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, GeneralAlphabet > ( std::move ( alphabet ) ) { setContent ( std::move ( data ) ); diff --git a/alib2data/src/tree/ranked/RankedNonlinearPattern.h b/alib2data/src/tree/ranked/RankedNonlinearPattern.h index 85e7b80cbf424c8079890551705301b6d3e3291a..8280c0ae2bc69b4f0a1f0cb33bf1feb960a18436 100644 --- a/alib2data/src/tree/ranked/RankedNonlinearPattern.h +++ b/alib2data/src/tree/ranked/RankedNonlinearPattern.h @@ -24,6 +24,16 @@ #ifndef RANKED_NONLINEAR_PATTERN_H_ #define RANKED_NONLINEAR_PATTERN_H_ +#include <common/DefaultSymbolType.h> +#include <common/DefaultRankType.h> + +namespace tree { + +template < class SymbolType = DefaultSymbolType, class RankType = DefaultRankType > +class RankedNonlinearPattern; + +} /* namespace tree */ + #include <alib/string> #include <alib/set> #include <alib/tree> @@ -35,13 +45,14 @@ #include <object/UniqueObject.h> #include <common/ranked_symbol.hpp> -#include "../TreeFeatures.h" -#include "../TreeException.h" -#include "../TreeBase.h" -#include "../common/TreeAuxiliary.h" -#include <tree/common/TreeNormalize.h> +#include <tree/TreeException.h> +#include <tree/TreeBase.h> +#include <tree/common/TreeAuxiliary.h> #include <core/normalize.hpp> +#include <tree/common/TreeNormalize.h> + +#include "../unranked/UnrankedNonlinearPattern.h" namespace tree { @@ -260,12 +271,6 @@ public: void nicePrint ( std::ostream & os ) const; }; -} /* namespace tree */ - -#include "../unranked/UnrankedNonlinearPattern.h" - -namespace tree { - template < class SymbolType, class RankType > RankedNonlinearPattern < SymbolType, RankType >::RankedNonlinearPattern ( common::ranked_symbol < SymbolType, RankType > subtreeWildcard, ext::set < common::ranked_symbol < SymbolType, RankType > > nonlinearVariables, ext::set < common::ranked_symbol < SymbolType, RankType > > alphabet, ext::tree < common::ranked_symbol < SymbolType, RankType > > pattern ) : core::Components < RankedNonlinearPattern, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, std::tuple < GeneralAlphabet, NonlinearAlphabet >, common::ranked_symbol < SymbolType, RankType >, component::Value, SubtreeWildcard > ( std::move ( alphabet ), std::move ( nonlinearVariables ), std::move ( subtreeWildcard ) ), m_content ( std::move ( pattern ) ) { checkAlphabet ( m_content ); diff --git a/alib2data/src/tree/ranked/RankedPattern.h b/alib2data/src/tree/ranked/RankedPattern.h index 20cf26a31466f1ab072f37f4770e4a887c75fb4d..46d6c27d2937a9cbf7c8743dbd6707903573b235 100644 --- a/alib2data/src/tree/ranked/RankedPattern.h +++ b/alib2data/src/tree/ranked/RankedPattern.h @@ -24,6 +24,16 @@ #ifndef RANKED_PATTERN_H_ #define RANKED_PATTERN_H_ +#include <common/DefaultSymbolType.h> +#include <common/DefaultRankType.h> + +namespace tree { + +template < class SymbolType = DefaultSymbolType, class RankType = DefaultRankType > +class RankedPattern; + +} /* namespace tree */ + #include <alib/string> #include <alib/set> #include <alib/tree> @@ -35,13 +45,14 @@ #include <object/UniqueObject.h> #include <common/ranked_symbol.hpp> -#include "../TreeFeatures.h" -#include "../TreeException.h" -#include "../TreeBase.h" -#include "../common/TreeAuxiliary.h" -#include <tree/common/TreeNormalize.h> +#include <tree/TreeException.h> +#include <tree/TreeBase.h> +#include <tree/common/TreeAuxiliary.h> #include <core/normalize.hpp> +#include <tree/common/TreeNormalize.h> + +#include "../unranked/UnrankedPattern.h" namespace tree { @@ -230,12 +241,6 @@ public: void nicePrint ( std::ostream & os ) const; }; -} /* namespace tree */ - -#include "../unranked/UnrankedPattern.h" - -namespace tree { - template < class SymbolType, class RankType > RankedPattern < SymbolType, RankType >::RankedPattern ( common::ranked_symbol < SymbolType, RankType > subtreeWildcard, ext::set < common::ranked_symbol < SymbolType, RankType > > alphabet, ext::tree < common::ranked_symbol < SymbolType, RankType > > pattern ) : core::Components < RankedPattern, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, GeneralAlphabet, common::ranked_symbol < SymbolType, RankType >, component::Value, SubtreeWildcard > ( std::move ( alphabet ), std::move ( subtreeWildcard ) ), m_content ( std::move ( pattern ) ) { checkAlphabet ( m_content ); diff --git a/alib2data/src/tree/ranked/RankedTree.h b/alib2data/src/tree/ranked/RankedTree.h index f9a09bc1c39a7b43965735c16d2fb4d9c9c428dc..3e211ba48fccce5d689d70f1fc040e06a452e738 100644 --- a/alib2data/src/tree/ranked/RankedTree.h +++ b/alib2data/src/tree/ranked/RankedTree.h @@ -24,6 +24,16 @@ #ifndef RANKED_TREE_H_ #define RANKED_TREE_H_ +#include <common/DefaultSymbolType.h> +#include <common/DefaultRankType.h> + +namespace tree { + +template < class SymbolType = DefaultSymbolType, class RankType = DefaultRankType > +class RankedTree; + +} /* namespace tree */ + #include <alib/string> #include <alib/set> #include <alib/tree> @@ -35,14 +45,15 @@ #include <object/UniqueObject.h> #include <common/ranked_symbol.hpp> -#include "../TreeFeatures.h" -#include "../TreeBase.h" -#include "../TreeException.h" -#include "../common/TreeAuxiliary.h" +#include <tree/TreeBase.h> +#include <tree/TreeException.h> +#include <tree/common/TreeAuxiliary.h> +#include <core/normalize.hpp> #include <tree/common/TreeNormalize.h> -#include <core/normalize.hpp> +#include "../unranked/UnrankedTree.h" +#include "PostfixRankedTree.h" namespace tree { @@ -216,13 +227,6 @@ public: void nicePrint ( std::ostream & os ) const; }; -} /* namespace tree */ - -#include "../unranked/UnrankedTree.h" -#include "PostfixRankedTree.h" - -namespace tree { - template < class SymbolType, class RankType > RankedTree < SymbolType, RankType >::RankedTree ( ext::set < common::ranked_symbol < SymbolType, RankType > > alphabet, ext::tree < common::ranked_symbol < SymbolType, RankType > > tree ) : core::Components < RankedTree, ext::set < common::ranked_symbol < SymbolType, RankType > >, component::Set, GeneralAlphabet > ( std::move ( alphabet ) ), m_content ( std::move ( tree ) ) { checkAlphabet ( m_content ); diff --git a/alib2data/src/tree/unranked/PrefixBarTree.h b/alib2data/src/tree/unranked/PrefixBarTree.h index f1c803cb028b2c60c8f4b721f90f67ceff8860ad..38ed95cf4f50d195969be90f43dc4ba61803b0f2 100644 --- a/alib2data/src/tree/unranked/PrefixBarTree.h +++ b/alib2data/src/tree/unranked/PrefixBarTree.h @@ -24,6 +24,15 @@ #ifndef PREFIX_BAR_TREE_H_ #define PREFIX_BAR_TREE_H_ +#include <common/DefaultSymbolType.h> + +namespace tree { + +template < class SymbolType = DefaultSymbolType > +class PrefixBarTree; + +} /* namespace tree */ + #include <sstream> #include <alib/algorithm> #include <alib/deque> @@ -34,15 +43,16 @@ #include <core/components.hpp> #include <object/UniqueObject.h> -#include "../TreeFeatures.h" -#include "../TreeBase.h" -#include "../TreeException.h" -#include "../common/TreeAuxiliary.h" -#include <tree/common/TreeNormalize.h> - #include <alphabet/BarSymbol.h> +#include <tree/TreeBase.h> +#include <tree/TreeException.h> +#include <tree/common/TreeAuxiliary.h> + #include <core/normalize.hpp> +#include <tree/common/TreeNormalize.h> + +#include "UnrankedTree.h" #include <string/LinearString.h> @@ -58,7 +68,7 @@ class BarSymbol; * The bars represent end mark of all subtrees in the notation. * * \details - * T = (A, B \in A, C), + * T = ( A, B \in A, C ), * A (Alphabet) = finite set of unranked symbols, * B (Bar) = unranked symbol representing bar, * C (Content) = linear representation of the tree content @@ -238,12 +248,6 @@ public: } }; -} /* namespace tree */ - -#include "UnrankedTree.h" - -namespace tree { - template < class SymbolType > PrefixBarTree < SymbolType >::PrefixBarTree ( SymbolType bar, ext::set < SymbolType > alphabet, ext::vector < SymbolType > data ) : core::Components < PrefixBarTree, ext::set < SymbolType >, component::Set, GeneralAlphabet, SymbolType, component::Value, BarSymbol > ( std::move ( alphabet ), std::move ( bar ) ) { setContent ( std::move ( data ) ); diff --git a/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h b/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h index 7321f6db9b7cb706d28c140d2da82f5ce13c89d7..26604dc827757ca46a1f61c7dc3474450dc35019 100644 --- a/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h +++ b/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h @@ -24,6 +24,15 @@ #ifndef UNRANKED_NONLINEAR_PATTERN_H_ #define UNRANKED_NONLINEAR_PATTERN_H_ +#include <common/DefaultSymbolType.h> + +namespace tree { + +template < class SymbolType = DefaultSymbolType > +class UnrankedNonlinearPattern; + +} /* namespace tree */ + #include <alib/string> #include <alib/set> #include <alib/tree> @@ -34,13 +43,14 @@ #include <core/components.hpp> #include <object/UniqueObject.h> -#include "../TreeFeatures.h" -#include "../TreeException.h" -#include "../TreeBase.h" -#include "../common/TreeAuxiliary.h" -#include <tree/common/TreeNormalize.h> +#include <tree/TreeBase.h> +#include <tree/TreeException.h> +#include <tree/common/TreeAuxiliary.h> #include <core/normalize.hpp> +#include <tree/common/TreeNormalize.h> + +#include <tree/ranked/RankedNonlinearPattern.h> namespace tree { @@ -53,7 +63,7 @@ class NonlinearAlphabet; * Nonlinear tree pattern represented in its natural representation. The representation is so called unranked, therefore it consists of unranked symbols. Additionally the pattern contains a special wildcard symbol representing any subtree and nonlinear variables each to represent same subtree (in the particular occurrence in a tree). * * \details - * T = (A, C, W \in ( A \minus B ), V \in ( A \minus B) ), + * T = ( A, C, W \in A, V \in A ), * A (Alphabet) = finite set of symbols, * C (Content) = pattern in its natural representation * W (Wildcard) = special symbol representing any subtree @@ -250,12 +260,6 @@ public: void nicePrint ( std::ostream & os ) const; }; -} /* namespace tree */ - -#include "../ranked/RankedNonlinearPattern.h" - -namespace tree { - template < class SymbolType > UnrankedNonlinearPattern < SymbolType >::UnrankedNonlinearPattern ( SymbolType subtreeWildcard, ext::set < SymbolType > nonlinearVariables, ext::set < SymbolType > alphabet, ext::tree < SymbolType > pattern ) : core::Components < UnrankedNonlinearPattern, ext::set < SymbolType >, component::Set, std::tuple < GeneralAlphabet, NonlinearAlphabet >, SymbolType, component::Value, SubtreeWildcard > ( std::move ( alphabet ), std::move ( nonlinearVariables ), std::move ( subtreeWildcard ) ), m_content ( std::move ( pattern ) ) { checkAlphabet ( m_content ); diff --git a/alib2data/src/tree/unranked/UnrankedPattern.h b/alib2data/src/tree/unranked/UnrankedPattern.h index 1fd8290864c8eb23e2ee24a831aa1de30c4dfe50..cf2995cb9f0aa8693bba6530847d0abd7dba4cc7 100644 --- a/alib2data/src/tree/unranked/UnrankedPattern.h +++ b/alib2data/src/tree/unranked/UnrankedPattern.h @@ -24,6 +24,15 @@ #ifndef UNRANKED_PATTERN_H_ #define UNRANKED_PATTERN_H_ +#include <common/DefaultSymbolType.h> + +namespace tree { + +template < class SymbolType = DefaultSymbolType > +class UnrankedPattern; + +} /* namespace tree */ + #include <alib/string> #include <alib/set> #include <alib/tree> @@ -34,13 +43,14 @@ #include <core/components.hpp> #include <object/UniqueObject.h> -#include "../TreeFeatures.h" -#include "../TreeException.h" -#include "../TreeBase.h" -#include "../common/TreeAuxiliary.h" -#include <tree/common/TreeNormalize.h> +#include <tree/TreeBase.h> +#include <tree/TreeException.h> +#include <tree/common/TreeAuxiliary.h> #include <core/normalize.hpp> +#include <tree/common/TreeNormalize.h> + +#include "../ranked/RankedPattern.h" namespace tree { @@ -52,7 +62,7 @@ class SubtreeWildcard; * Tree pattern represented in its natural representation. The representation is so called unranked, therefore it consists of unranked symbols. Additionally the pattern contains a special wildcard symbol representing any subtree and nonlinear variables each to represent same subtree (in the particular occurrence in a tree). * * \details - * T = (A, C, W \in ( A \minus B ), V \in ( A \minus B) ), + * T = ( A, C, W \in A, V \in A ), * A (Alphabet) = finite set of symbols, * C (Content) = pattern in its natural representation * W (Wildcard) = special symbol representing any subtree @@ -221,12 +231,6 @@ public: void nicePrint ( std::ostream & os ) const; }; -} /* namespace tree */ - -#include "../ranked/RankedPattern.h" - -namespace tree { - template < class SymbolType > UnrankedPattern < SymbolType >::UnrankedPattern ( SymbolType subtreeWildcard, ext::set < SymbolType > alphabet, ext::tree < SymbolType > pattern ) : core::Components < UnrankedPattern, ext::set < SymbolType >, component::Set, GeneralAlphabet, SymbolType, component::Value, SubtreeWildcard > ( std::move ( alphabet ), std::move ( subtreeWildcard ) ), m_content ( std::move ( pattern ) ) { checkAlphabet ( m_content ); diff --git a/alib2data/src/tree/unranked/UnrankedTree.h b/alib2data/src/tree/unranked/UnrankedTree.h index 35c77d48d6e526d915d3bb394b54ff12b7203ba3..86c3c9b6c96651b1cc42f2ee481778b7bf65ef7f 100644 --- a/alib2data/src/tree/unranked/UnrankedTree.h +++ b/alib2data/src/tree/unranked/UnrankedTree.h @@ -24,6 +24,15 @@ #ifndef UNRANKED_TREE_H_ #define UNRANKED_TREE_H_ +#include <common/DefaultSymbolType.h> + +namespace tree { + +template < class SymbolType = DefaultSymbolType > +class UnrankedTree; + +} /* namespace tree */ + #include <alib/string> #include <alib/set> #include <alib/tree> @@ -34,13 +43,14 @@ #include <core/components.hpp> #include <object/UniqueObject.h> -#include "../TreeFeatures.h" -#include "../TreeBase.h" -#include "../TreeException.h" -#include "../common/TreeAuxiliary.h" -#include <tree/common/TreeNormalize.h> +#include <tree/TreeBase.h> +#include <tree/TreeException.h> +#include <tree/common/TreeAuxiliary.h> #include <core/normalize.hpp> +#include <tree/common/TreeNormalize.h> + +#include "../ranked/RankedTree.h" namespace tree { @@ -51,7 +61,7 @@ class GeneralAlphabet; * Tree pattern represented in its natural representation. The representation is so called unranked, therefore it consists of unranked symbols. Additionally the pattern contains a special wildcard symbol representing any subtree and nonlinear variables each to represent same subtree (in the particular occurrence in a tree). * * \details - * T = (A, C, W \in ( A \minus B ) ), + * T = ( A, C, W \in A ), * A (Alphabet) = finite set of symbols, * C (Content) = pattern in its natural representation * W (Wildcard) = special symbol representing any subtree @@ -199,12 +209,6 @@ public: void nicePrint ( std::ostream & os ) const; }; -} /* namespace tree */ - -#include "../ranked/RankedTree.h" - -namespace tree { - template < class SymbolType > UnrankedTree < SymbolType >::UnrankedTree ( ext::set < SymbolType > alphabet, ext::tree < SymbolType > tree ) : core::Components < UnrankedTree, ext::set < SymbolType >, component::Set, GeneralAlphabet > ( std::move ( alphabet ) ), m_content ( std::move ( tree ) ) { checkAlphabet ( m_content );