From cf06044aea5786a3ba2295e8d6c1071f613f0245 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Thu, 1 Dec 2016 20:47:12 +0100 Subject: [PATCH] template tree conversion constructors --- alib2data/src/string/CyclicString.h | 4 +-- alib2data/src/string/LinearString.h | 4 +-- .../ranked/PrefixRankedBarNonlinearPattern.h | 32 +++++++++---------- .../src/tree/ranked/PrefixRankedBarPattern.h | 12 +++---- .../src/tree/ranked/PrefixRankedBarTree.h | 4 +-- .../ranked/PrefixRankedNonlinearPattern.h | 20 ++++++------ .../src/tree/ranked/PrefixRankedPattern.h | 8 ++--- alib2data/src/tree/ranked/PrefixRankedTree.h | 4 +-- .../src/tree/ranked/RankedNonlinearPattern.h | 4 +-- alib2data/src/tree/ranked/RankedPattern.h | 4 +-- .../tree/unranked/UnrankedNonlinearPattern.h | 6 ++-- alib2data/src/tree/unranked/UnrankedPattern.h | 6 ++-- alib2data/src/tree/unranked/UnrankedTree.h | 6 ++-- 13 files changed, 60 insertions(+), 54 deletions(-) diff --git a/alib2data/src/string/CyclicString.h b/alib2data/src/string/CyclicString.h index 24453302ee..513da9e8e0 100644 --- a/alib2data/src/string/CyclicString.h +++ b/alib2data/src/string/CyclicString.h @@ -42,7 +42,7 @@ public: explicit CyclicString ( std::vector < SymbolType > str ); explicit CyclicString ( const std::string & str ); explicit CyclicString ( const char * str ); - explicit CyclicString ( const Epsilon < > & epsilon ); + explicit CyclicString ( const Epsilon < SymbolType > & epsilon ); virtual StringBase * clone ( ) const; virtual StringBase * plunder ( ) &&; @@ -120,7 +120,7 @@ CyclicString < SymbolType >::CyclicString(const char* str) : CyclicString((std:: } template < class SymbolType > -CyclicString < SymbolType >::CyclicString(const Epsilon < > & epsilon) : CyclicString ( epsilon.getAlphabet( ), std::vector < SymbolType > ( ) ) { +CyclicString < SymbolType >::CyclicString(const Epsilon < SymbolType > & epsilon) : CyclicString ( epsilon.getAlphabet( ), std::vector < SymbolType > ( ) ) { } template < class SymbolType > diff --git a/alib2data/src/string/LinearString.h b/alib2data/src/string/LinearString.h index c76babddb4..e8e7557443 100644 --- a/alib2data/src/string/LinearString.h +++ b/alib2data/src/string/LinearString.h @@ -51,7 +51,7 @@ public: explicit LinearString ( std::vector < SymbolType > str ); explicit LinearString ( const std::string & str ); explicit LinearString ( const char * str ); - explicit LinearString ( const Epsilon < > & epsilon ); + explicit LinearString ( const Epsilon < SymbolType > & epsilon ); virtual StringBase * clone ( ) const; virtual StringBase * plunder ( ) &&; @@ -142,7 +142,7 @@ LinearString < SymbolType >::LinearString(const char* str) : LinearString ( ( st } template < class SymbolType > -LinearString < SymbolType >::LinearString(const Epsilon < > & epsilon) : LinearString ( epsilon.getAlphabet( ), std::vector < SymbolType > ( ) ) { +LinearString < SymbolType >::LinearString(const Epsilon < SymbolType > & epsilon) : LinearString ( epsilon.getAlphabet( ), std::vector < SymbolType > ( ) ) { } template < class SymbolType > diff --git a/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h b/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h index 516475868b..7ab57a38e1 100644 --- a/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h +++ b/alib2data/src/tree/ranked/PrefixRankedBarNonlinearPattern.h @@ -53,14 +53,14 @@ public: explicit PrefixRankedBarNonlinearPattern ( std::set < std::ranked_symbol < SymbolType, RankType > > bar, std::ranked_symbol < SymbolType, RankType > variablesBar, std::ranked_symbol < SymbolType, RankType > subtreeWildcard, std::set < std::ranked_symbol < SymbolType, RankType > > nonlinearVariables, std::set < std::ranked_symbol < SymbolType, RankType > > alphabet, std::vector < std::ranked_symbol < SymbolType, RankType > > data ); explicit PrefixRankedBarNonlinearPattern ( std::set < std::ranked_symbol < SymbolType, RankType > > bar, std::ranked_symbol < SymbolType, RankType > variablesBar, std::ranked_symbol < SymbolType, RankType > subtreeWildcard, std::set < std::ranked_symbol < SymbolType, RankType > > nonlinearVariables, std::vector < std::ranked_symbol < SymbolType, RankType > > data ); explicit PrefixRankedBarNonlinearPattern ( std::set < std::ranked_symbol < SymbolType, RankType > > bar, std::ranked_symbol < SymbolType, RankType > variablesBar, std::ranked_symbol < SymbolType, RankType > subtreeWildcard, std::vector < std::ranked_symbol < SymbolType, RankType > > data ); - explicit PrefixRankedBarNonlinearPattern ( SymbolType barBase, std::ranked_symbol < SymbolType, RankType > variablesBar, const RankedTree < > & tree ); - explicit PrefixRankedBarNonlinearPattern ( SymbolType barBase, std::ranked_symbol < SymbolType, RankType > variablesBar, const RankedPattern < > & tree ); - explicit PrefixRankedBarNonlinearPattern ( SymbolType barBase, std::ranked_symbol < SymbolType, RankType > variablesBar, const RankedNonlinearPattern < > & tree ); - explicit PrefixRankedBarNonlinearPattern ( const PrefixRankedBarTree < > & tree ); - explicit PrefixRankedBarNonlinearPattern ( const PrefixRankedBarPattern < > & tree ); - explicit PrefixRankedBarNonlinearPattern ( const RankedTree < > & tree ); - explicit PrefixRankedBarNonlinearPattern ( const RankedPattern < > & tree ); - explicit PrefixRankedBarNonlinearPattern ( const RankedNonlinearPattern < > & tree ); + explicit PrefixRankedBarNonlinearPattern ( SymbolType barBase, std::ranked_symbol < SymbolType, RankType > variablesBar, const RankedTree < SymbolType, RankType > & tree ); + explicit PrefixRankedBarNonlinearPattern ( SymbolType barBase, std::ranked_symbol < SymbolType, RankType > variablesBar, const RankedPattern < SymbolType, RankType > & tree ); + explicit PrefixRankedBarNonlinearPattern ( SymbolType barBase, std::ranked_symbol < SymbolType, RankType > variablesBar, const RankedNonlinearPattern < SymbolType, RankType > & tree ); + explicit PrefixRankedBarNonlinearPattern ( const PrefixRankedBarTree < SymbolType, RankType > & tree ); + explicit PrefixRankedBarNonlinearPattern ( const PrefixRankedBarPattern < SymbolType, RankType > & tree ); + explicit PrefixRankedBarNonlinearPattern ( const RankedTree < SymbolType, RankType > & tree ); + explicit PrefixRankedBarNonlinearPattern ( const RankedPattern < SymbolType, RankType > & tree ); + explicit PrefixRankedBarNonlinearPattern ( const RankedNonlinearPattern < SymbolType, RankType > & tree ); virtual RankedTreeBase * clone ( ) const; virtual RankedTreeBase * plunder ( ) &&; @@ -148,35 +148,35 @@ PrefixRankedBarNonlinearPattern < SymbolType, RankType >::PrefixRankedBarNonline } template < class SymbolType, class RankType > -PrefixRankedBarNonlinearPattern < SymbolType, RankType >::PrefixRankedBarNonlinearPattern ( SymbolType barBase, std::ranked_symbol < SymbolType, RankType > variablesBar, const RankedTree < > & tree ) : PrefixRankedBarNonlinearPattern ( TreeAuxiliary::computeBars ( tree.getAlphabet ( ), barBase ) + std::set < std::ranked_symbol < SymbolType, RankType > > { variablesBar }, variablesBar, alphabet::SubtreeWildcardSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), { }, tree.getAlphabet ( ) + TreeAuxiliary::computeBars ( tree.getAlphabet ( ), barBase ) + std::set < std::ranked_symbol < SymbolType, RankType > > { variablesBar, alphabet::SubtreeWildcardSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ) }, toPrefixRankedBar ( tree.getContent ( ), alphabet::SubtreeWildcardSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), { }, barBase, variablesBar ) ) { +PrefixRankedBarNonlinearPattern < SymbolType, RankType >::PrefixRankedBarNonlinearPattern ( SymbolType barBase, std::ranked_symbol < SymbolType, RankType > variablesBar, const RankedTree < SymbolType, RankType > & tree ) : PrefixRankedBarNonlinearPattern ( TreeAuxiliary::computeBars ( tree.getAlphabet ( ), barBase ) + std::set < std::ranked_symbol < SymbolType, RankType > > { variablesBar }, variablesBar, alphabet::SubtreeWildcardSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), { }, tree.getAlphabet ( ) + TreeAuxiliary::computeBars ( tree.getAlphabet ( ), barBase ) + std::set < std::ranked_symbol < SymbolType, RankType > > { variablesBar, alphabet::SubtreeWildcardSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ) }, toPrefixRankedBar ( tree.getContent ( ), alphabet::SubtreeWildcardSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), { }, barBase, variablesBar ) ) { } template < class SymbolType, class RankType > -PrefixRankedBarNonlinearPattern < SymbolType, RankType >::PrefixRankedBarNonlinearPattern ( SymbolType barBase, std::ranked_symbol < SymbolType, RankType > variablesBar, const RankedPattern < > & tree ) : PrefixRankedBarNonlinearPattern ( TreeAuxiliary::computeBars ( tree.getAlphabet ( ), barBase ) + std::set < std::ranked_symbol < SymbolType, RankType > > { variablesBar }, variablesBar, tree.getSubtreeWildcard ( ), { }, tree.getAlphabet ( ) + TreeAuxiliary::computeBars ( tree.getAlphabet ( ), barBase ) + std::set < std::ranked_symbol < SymbolType, RankType > > { variablesBar, tree.getSubtreeWildcard ( ) }, toPrefixRankedBar ( tree.getContent ( ), tree.getSubtreeWildcard ( ), { }, barBase, variablesBar ) ) { +PrefixRankedBarNonlinearPattern < SymbolType, RankType >::PrefixRankedBarNonlinearPattern ( SymbolType barBase, std::ranked_symbol < SymbolType, RankType > variablesBar, const RankedPattern < SymbolType, RankType > & tree ) : PrefixRankedBarNonlinearPattern ( TreeAuxiliary::computeBars ( tree.getAlphabet ( ), barBase ) + std::set < std::ranked_symbol < SymbolType, RankType > > { variablesBar }, variablesBar, tree.getSubtreeWildcard ( ), { }, tree.getAlphabet ( ) + TreeAuxiliary::computeBars ( tree.getAlphabet ( ), barBase ) + std::set < std::ranked_symbol < SymbolType, RankType > > { variablesBar, tree.getSubtreeWildcard ( ) }, toPrefixRankedBar ( tree.getContent ( ), tree.getSubtreeWildcard ( ), { }, barBase, variablesBar ) ) { } template < class SymbolType, class RankType > -PrefixRankedBarNonlinearPattern < SymbolType, RankType >::PrefixRankedBarNonlinearPattern ( SymbolType barBase, std::ranked_symbol < SymbolType, RankType > variablesBar, const RankedNonlinearPattern < > & tree ) : PrefixRankedBarNonlinearPattern ( TreeAuxiliary::computeBars ( tree.getAlphabet ( ), barBase ) + std::set < std::ranked_symbol < SymbolType, RankType > > { variablesBar }, variablesBar, tree.getSubtreeWildcard ( ), tree.getNonlinearVariables ( ), tree.getAlphabet ( ) + TreeAuxiliary::computeBars ( tree.getAlphabet ( ), barBase ) + std::set < std::ranked_symbol < SymbolType, RankType > > { variablesBar, tree.getSubtreeWildcard ( ) } + tree.getNonlinearVariables ( ), toPrefixRankedBar ( tree.getContent ( ), tree.getSubtreeWildcard ( ), tree.getNonlinearVariables ( ), barBase, variablesBar ) ) { +PrefixRankedBarNonlinearPattern < SymbolType, RankType >::PrefixRankedBarNonlinearPattern ( SymbolType barBase, std::ranked_symbol < SymbolType, RankType > variablesBar, const RankedNonlinearPattern < SymbolType, RankType > & tree ) : PrefixRankedBarNonlinearPattern ( TreeAuxiliary::computeBars ( tree.getAlphabet ( ), barBase ) + std::set < std::ranked_symbol < SymbolType, RankType > > { variablesBar }, variablesBar, tree.getSubtreeWildcard ( ), tree.getNonlinearVariables ( ), tree.getAlphabet ( ) + TreeAuxiliary::computeBars ( tree.getAlphabet ( ), barBase ) + std::set < std::ranked_symbol < SymbolType, RankType > > { variablesBar, tree.getSubtreeWildcard ( ) } + tree.getNonlinearVariables ( ), toPrefixRankedBar ( tree.getContent ( ), tree.getSubtreeWildcard ( ), tree.getNonlinearVariables ( ), barBase, variablesBar ) ) { } template < class SymbolType, class RankType > -PrefixRankedBarNonlinearPattern < SymbolType, RankType >::PrefixRankedBarNonlinearPattern ( const PrefixRankedBarTree < > & tree ) : PrefixRankedBarNonlinearPattern ( tree.getBars ( ) + std::set < std::ranked_symbol < SymbolType, RankType > > { alphabet::VariablesBarSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ) }, alphabet::VariablesBarSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), alphabet::SubtreeWildcardSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), { }, tree.getAlphabet ( ) + std::set < std::ranked_symbol < SymbolType, RankType > > { alphabet::VariablesBarSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), alphabet::SubtreeWildcardSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ) }, tree.getContent ( ) ) { +PrefixRankedBarNonlinearPattern < SymbolType, RankType >::PrefixRankedBarNonlinearPattern ( const PrefixRankedBarTree < SymbolType, RankType > & tree ) : PrefixRankedBarNonlinearPattern ( tree.getBars ( ) + std::set < std::ranked_symbol < SymbolType, RankType > > { alphabet::VariablesBarSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ) }, alphabet::VariablesBarSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), alphabet::SubtreeWildcardSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), { }, tree.getAlphabet ( ) + std::set < std::ranked_symbol < SymbolType, RankType > > { alphabet::VariablesBarSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), alphabet::SubtreeWildcardSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ) }, tree.getContent ( ) ) { } template < class SymbolType, class RankType > -PrefixRankedBarNonlinearPattern < SymbolType, RankType >::PrefixRankedBarNonlinearPattern ( const PrefixRankedBarPattern < > & tree ) : PrefixRankedBarNonlinearPattern ( tree.getBars ( ), tree.getVariablesBar ( ), tree.getSubtreeWildcard ( ), { }, tree.getAlphabet ( ), tree.getContent ( ) ) { +PrefixRankedBarNonlinearPattern < SymbolType, RankType >::PrefixRankedBarNonlinearPattern ( const PrefixRankedBarPattern < SymbolType, RankType > & tree ) : PrefixRankedBarNonlinearPattern ( tree.getBars ( ), tree.getVariablesBar ( ), tree.getSubtreeWildcard ( ), { }, tree.getAlphabet ( ), tree.getContent ( ) ) { } template < class SymbolType, class RankType > -PrefixRankedBarNonlinearPattern < SymbolType, RankType >::PrefixRankedBarNonlinearPattern ( const RankedTree < > & tree ) : PrefixRankedBarNonlinearPattern ( alphabet::BarSymbol::instance < SymbolType > ( ), alphabet::VariablesBarSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), tree ) { +PrefixRankedBarNonlinearPattern < SymbolType, RankType >::PrefixRankedBarNonlinearPattern ( const RankedTree < SymbolType, RankType > & tree ) : PrefixRankedBarNonlinearPattern ( alphabet::BarSymbol::instance < SymbolType > ( ), alphabet::VariablesBarSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), tree ) { } template < class SymbolType, class RankType > -PrefixRankedBarNonlinearPattern < SymbolType, RankType >::PrefixRankedBarNonlinearPattern ( const RankedPattern < > & tree ) : PrefixRankedBarNonlinearPattern ( alphabet::BarSymbol::instance < SymbolType > ( ), alphabet::VariablesBarSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), tree ) { +PrefixRankedBarNonlinearPattern < SymbolType, RankType >::PrefixRankedBarNonlinearPattern ( const RankedPattern < SymbolType, RankType > & tree ) : PrefixRankedBarNonlinearPattern ( alphabet::BarSymbol::instance < SymbolType > ( ), alphabet::VariablesBarSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), tree ) { } template < class SymbolType, class RankType > -PrefixRankedBarNonlinearPattern < SymbolType, RankType >::PrefixRankedBarNonlinearPattern ( const RankedNonlinearPattern < > & tree ) : PrefixRankedBarNonlinearPattern ( alphabet::BarSymbol::instance < SymbolType > ( ), alphabet::VariablesBarSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), tree ) { +PrefixRankedBarNonlinearPattern < SymbolType, RankType >::PrefixRankedBarNonlinearPattern ( const RankedNonlinearPattern < SymbolType, RankType > & tree ) : PrefixRankedBarNonlinearPattern ( alphabet::BarSymbol::instance < SymbolType > ( ), alphabet::VariablesBarSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), tree ) { } template < class SymbolType, class RankType > diff --git a/alib2data/src/tree/ranked/PrefixRankedBarPattern.h b/alib2data/src/tree/ranked/PrefixRankedBarPattern.h index e27476deed..3e5d3e25bf 100644 --- a/alib2data/src/tree/ranked/PrefixRankedBarPattern.h +++ b/alib2data/src/tree/ranked/PrefixRankedBarPattern.h @@ -51,9 +51,9 @@ class PrefixRankedBarPattern : public RankedTreeBase, public std::Components < P public: explicit PrefixRankedBarPattern ( std::set < std::ranked_symbol < SymbolType, RankType > > bar, std::ranked_symbol < SymbolType, RankType > variablesBar, std::ranked_symbol < SymbolType, RankType > subtreeWildcard, std::set < std::ranked_symbol < SymbolType, RankType > > alphabet, std::vector < std::ranked_symbol < SymbolType, RankType > > data ); explicit PrefixRankedBarPattern ( std::set < std::ranked_symbol < SymbolType, RankType > > bar, std::ranked_symbol < SymbolType, RankType > variablesBar, std::ranked_symbol < SymbolType, RankType > subtreeWildcard, std::vector < std::ranked_symbol < SymbolType, RankType > > data ); - explicit PrefixRankedBarPattern ( SymbolType barBase, std::ranked_symbol < SymbolType, RankType > variablesBar, const RankedPattern < > & tree ); - explicit PrefixRankedBarPattern ( const PrefixRankedBarTree < > & tree ); - explicit PrefixRankedBarPattern ( const RankedPattern < > & tree ); + explicit PrefixRankedBarPattern ( SymbolType barBase, std::ranked_symbol < SymbolType, RankType > variablesBar, const RankedPattern < SymbolType, RankType > & tree ); + explicit PrefixRankedBarPattern ( const PrefixRankedBarTree < SymbolType, RankType > & tree ); + explicit PrefixRankedBarPattern ( const RankedPattern < SymbolType, RankType > & tree ); virtual RankedTreeBase * clone ( ) const; virtual RankedTreeBase * plunder ( ) &&; @@ -134,15 +134,15 @@ PrefixRankedBarPattern < SymbolType, RankType >::PrefixRankedBarPattern ( std::s } template < class SymbolType, class RankType > -PrefixRankedBarPattern < SymbolType, RankType >::PrefixRankedBarPattern ( SymbolType barBase, std::ranked_symbol < SymbolType, RankType > variablesBar, const RankedPattern < > & tree ) : PrefixRankedBarPattern ( TreeAuxiliary::computeBars ( tree.getAlphabet ( ), barBase ) + std::set < std::ranked_symbol < SymbolType, RankType > > { variablesBar }, variablesBar, tree.getSubtreeWildcard ( ), tree.getAlphabet ( ) + TreeAuxiliary::computeBars ( tree.getAlphabet ( ), barBase ) + std::set < std::ranked_symbol < SymbolType, RankType > > { variablesBar, tree.getSubtreeWildcard ( ) }, toPrefixRankedBar ( tree.getContent ( ), tree.getSubtreeWildcard ( ), barBase, variablesBar ) ) { +PrefixRankedBarPattern < SymbolType, RankType >::PrefixRankedBarPattern ( SymbolType barBase, std::ranked_symbol < SymbolType, RankType > variablesBar, const RankedPattern < SymbolType, RankType > & tree ) : PrefixRankedBarPattern ( TreeAuxiliary::computeBars ( tree.getAlphabet ( ), barBase ) + std::set < std::ranked_symbol < SymbolType, RankType > > { variablesBar }, variablesBar, tree.getSubtreeWildcard ( ), tree.getAlphabet ( ) + TreeAuxiliary::computeBars ( tree.getAlphabet ( ), barBase ) + std::set < std::ranked_symbol < SymbolType, RankType > > { variablesBar, tree.getSubtreeWildcard ( ) }, toPrefixRankedBar ( tree.getContent ( ), tree.getSubtreeWildcard ( ), barBase, variablesBar ) ) { } template < class SymbolType, class RankType > -PrefixRankedBarPattern < SymbolType, RankType >::PrefixRankedBarPattern ( const PrefixRankedBarTree < > & tree ) : PrefixRankedBarPattern ( tree.getBars() + std::set < std::ranked_symbol < SymbolType, RankType > > { alphabet::VariablesBarSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ) }, alphabet::VariablesBarSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), alphabet::SubtreeWildcardSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), tree.getAlphabet ( ) + std::set < std::ranked_symbol < SymbolType, RankType > > { alphabet::VariablesBarSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), alphabet::SubtreeWildcardSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ) }, tree.getContent ( ) ) { +PrefixRankedBarPattern < SymbolType, RankType >::PrefixRankedBarPattern ( const PrefixRankedBarTree < SymbolType, RankType > & tree ) : PrefixRankedBarPattern ( tree.getBars() + std::set < std::ranked_symbol < SymbolType, RankType > > { alphabet::VariablesBarSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ) }, alphabet::VariablesBarSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), alphabet::SubtreeWildcardSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), tree.getAlphabet ( ) + std::set < std::ranked_symbol < SymbolType, RankType > > { alphabet::VariablesBarSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), alphabet::SubtreeWildcardSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ) }, tree.getContent ( ) ) { } template < class SymbolType, class RankType > -PrefixRankedBarPattern < SymbolType, RankType >::PrefixRankedBarPattern ( const RankedPattern < > & tree ) : PrefixRankedBarPattern ( alphabet::BarSymbol::instance < SymbolType > ( ), alphabet::VariablesBarSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), tree ) { +PrefixRankedBarPattern < SymbolType, RankType >::PrefixRankedBarPattern ( const RankedPattern < SymbolType, RankType > & tree ) : PrefixRankedBarPattern ( alphabet::BarSymbol::instance < SymbolType > ( ), alphabet::VariablesBarSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), tree ) { } template < class SymbolType, class RankType > diff --git a/alib2data/src/tree/ranked/PrefixRankedBarTree.h b/alib2data/src/tree/ranked/PrefixRankedBarTree.h index 58b1b2a67d..6b560bf189 100644 --- a/alib2data/src/tree/ranked/PrefixRankedBarTree.h +++ b/alib2data/src/tree/ranked/PrefixRankedBarTree.h @@ -47,7 +47,7 @@ class PrefixRankedBarTree : public RankedTreeBase, public std::Components < Pref public: explicit PrefixRankedBarTree ( std::set < std::ranked_symbol < SymbolType, RankType > > bars, std::set < std::ranked_symbol < SymbolType, RankType > > alphabet, std::vector < std::ranked_symbol < SymbolType, RankType > > data ); explicit PrefixRankedBarTree ( std::set < std::ranked_symbol < SymbolType, RankType > > bars, std::vector < std::ranked_symbol < SymbolType, RankType > > data ); - explicit PrefixRankedBarTree ( SymbolType barBase, const RankedTree < > & tree ); + explicit PrefixRankedBarTree ( SymbolType barBase, const RankedTree < SymbolType, RankType > & tree ); explicit PrefixRankedBarTree ( const RankedTree < > & tree ); virtual RankedTreeBase * clone ( ) const; @@ -120,7 +120,7 @@ PrefixRankedBarTree < SymbolType, RankType >::PrefixRankedBarTree ( std::set < s } template < class SymbolType, class RankType > -PrefixRankedBarTree < SymbolType, RankType >::PrefixRankedBarTree ( SymbolType barBase, const RankedTree < > & tree ) : PrefixRankedBarTree ( TreeAuxiliary::computeBars ( tree.getAlphabet ( ), barBase ), tree.getAlphabet ( ) + TreeAuxiliary::computeBars ( tree.getAlphabet ( ), barBase ), toPrefixRankedBar ( tree.getContent ( ), barBase ) ) { +PrefixRankedBarTree < SymbolType, RankType >::PrefixRankedBarTree ( SymbolType barBase, const RankedTree < SymbolType, RankType > & tree ) : PrefixRankedBarTree ( TreeAuxiliary::computeBars ( tree.getAlphabet ( ), barBase ), tree.getAlphabet ( ) + TreeAuxiliary::computeBars ( tree.getAlphabet ( ), barBase ), toPrefixRankedBar ( tree.getContent ( ), barBase ) ) { } template < class SymbolType, class RankType > diff --git a/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h b/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h index 6e19b4a2f6..e29d8c7081 100644 --- a/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h +++ b/alib2data/src/tree/ranked/PrefixRankedNonlinearPattern.h @@ -48,11 +48,11 @@ public: explicit PrefixRankedNonlinearPattern ( std::ranked_symbol < SymbolType, RankType > subtreeWildcard, std::set < std::ranked_symbol < SymbolType, RankType > > nonlinearVariables, std::set < std::ranked_symbol < SymbolType, RankType > > alphabet, std::vector < std::ranked_symbol < SymbolType, RankType > > data ); explicit PrefixRankedNonlinearPattern ( std::ranked_symbol < SymbolType, RankType > subtreeWildcard, std::set < std::ranked_symbol < SymbolType, RankType > > nonlinearVariables, std::vector < std::ranked_symbol < SymbolType, RankType > > data ); explicit PrefixRankedNonlinearPattern ( std::ranked_symbol < SymbolType, RankType > subtreeWildcard, std::vector < std::ranked_symbol < SymbolType, RankType > > data ); - explicit PrefixRankedNonlinearPattern ( const PrefixRankedTree < > & tree ); - explicit PrefixRankedNonlinearPattern ( const PrefixRankedPattern < > & tree ); - explicit PrefixRankedNonlinearPattern ( const RankedTree < > & tree ); - explicit PrefixRankedNonlinearPattern ( const RankedPattern < > & tree ); - explicit PrefixRankedNonlinearPattern ( const RankedNonlinearPattern < > & tree ); + explicit PrefixRankedNonlinearPattern ( const PrefixRankedTree < SymbolType, RankType > & tree ); + explicit PrefixRankedNonlinearPattern ( const PrefixRankedPattern < SymbolType, RankType > & tree ); + explicit PrefixRankedNonlinearPattern ( const RankedTree < SymbolType, RankType > & tree ); + explicit PrefixRankedNonlinearPattern ( const RankedPattern < SymbolType, RankType > & tree ); + explicit PrefixRankedNonlinearPattern ( const RankedNonlinearPattern < SymbolType, RankType > & tree ); virtual RankedTreeBase * clone ( ) const; virtual RankedTreeBase * plunder ( ) &&; @@ -136,23 +136,23 @@ PrefixRankedNonlinearPattern < SymbolType, RankType >::PrefixRankedNonlinearPatt } template < class SymbolType, class RankType > -PrefixRankedNonlinearPattern < SymbolType, RankType >::PrefixRankedNonlinearPattern ( const PrefixRankedTree < > & tree ) : PrefixRankedNonlinearPattern ( alphabet::SubtreeWildcardSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), { }, tree.getAlphabet ( ), tree.getContent ( ) ) { +PrefixRankedNonlinearPattern < SymbolType, RankType >::PrefixRankedNonlinearPattern ( const PrefixRankedTree < SymbolType, RankType > & tree ) : PrefixRankedNonlinearPattern ( alphabet::SubtreeWildcardSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), { }, tree.getAlphabet ( ), tree.getContent ( ) ) { } template < class SymbolType, class RankType > -PrefixRankedNonlinearPattern < SymbolType, RankType >::PrefixRankedNonlinearPattern ( const PrefixRankedPattern < > & tree ) : PrefixRankedNonlinearPattern ( tree.getSubtreeWildcard ( ), { }, tree.getAlphabet ( ), tree.getContent ( ) ) { +PrefixRankedNonlinearPattern < SymbolType, RankType >::PrefixRankedNonlinearPattern ( const PrefixRankedPattern < SymbolType, RankType > & tree ) : PrefixRankedNonlinearPattern ( tree.getSubtreeWildcard ( ), { }, tree.getAlphabet ( ), tree.getContent ( ) ) { } template < class SymbolType, class RankType > -PrefixRankedNonlinearPattern < SymbolType, RankType >::PrefixRankedNonlinearPattern ( const RankedTree < > & tree ) : PrefixRankedNonlinearPattern ( alphabet::SubtreeWildcardSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), { }, tree.getAlphabet ( ), toPrefixRanked ( tree.getContent ( ) ) ) { +PrefixRankedNonlinearPattern < SymbolType, RankType >::PrefixRankedNonlinearPattern ( const RankedTree < SymbolType, RankType > & tree ) : PrefixRankedNonlinearPattern ( alphabet::SubtreeWildcardSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), { }, tree.getAlphabet ( ), toPrefixRanked ( tree.getContent ( ) ) ) { } template < class SymbolType, class RankType > -PrefixRankedNonlinearPattern < SymbolType, RankType >::PrefixRankedNonlinearPattern ( const RankedPattern < > & tree ) : PrefixRankedNonlinearPattern ( tree.getSubtreeWildcard ( ), { }, tree.getAlphabet ( ), toPrefixRanked ( tree.getContent ( ) ) ) { +PrefixRankedNonlinearPattern < SymbolType, RankType >::PrefixRankedNonlinearPattern ( const RankedPattern < SymbolType, RankType > & tree ) : PrefixRankedNonlinearPattern ( tree.getSubtreeWildcard ( ), { }, tree.getAlphabet ( ), toPrefixRanked ( tree.getContent ( ) ) ) { } template < class SymbolType, class RankType > -PrefixRankedNonlinearPattern < SymbolType, RankType >::PrefixRankedNonlinearPattern ( const RankedNonlinearPattern < > & tree ) : PrefixRankedNonlinearPattern ( tree.getSubtreeWildcard ( ), tree.getNonlinearVariables ( ), tree.getAlphabet ( ), toPrefixRanked ( tree.getContent ( ) ) ) { +PrefixRankedNonlinearPattern < SymbolType, RankType >::PrefixRankedNonlinearPattern ( const RankedNonlinearPattern < SymbolType, RankType > & tree ) : PrefixRankedNonlinearPattern ( tree.getSubtreeWildcard ( ), tree.getNonlinearVariables ( ), tree.getAlphabet ( ), toPrefixRanked ( tree.getContent ( ) ) ) { } template < class SymbolType, class RankType > diff --git a/alib2data/src/tree/ranked/PrefixRankedPattern.h b/alib2data/src/tree/ranked/PrefixRankedPattern.h index b00f9fb82d..2480d6a81d 100644 --- a/alib2data/src/tree/ranked/PrefixRankedPattern.h +++ b/alib2data/src/tree/ranked/PrefixRankedPattern.h @@ -46,8 +46,8 @@ class PrefixRankedPattern : public RankedTreeBase, public std::Components < Pref public: explicit PrefixRankedPattern ( std::ranked_symbol < SymbolType, RankType > subtreeWildcard, std::set < std::ranked_symbol < SymbolType, RankType > > alphabet, std::vector < std::ranked_symbol < SymbolType, RankType > > data ); explicit PrefixRankedPattern ( std::ranked_symbol < SymbolType, RankType > subtreeWildcard, std::vector < std::ranked_symbol < SymbolType, RankType > > data ); - explicit PrefixRankedPattern ( const PrefixRankedTree < > & tree ); - explicit PrefixRankedPattern ( const RankedPattern < > & tree ); + explicit PrefixRankedPattern ( const PrefixRankedTree < SymbolType, RankType > & tree ); + explicit PrefixRankedPattern ( const RankedPattern < SymbolType, RankType > & tree ); virtual RankedTreeBase * clone ( ) const; virtual RankedTreeBase * plunder ( ) &&; @@ -120,11 +120,11 @@ PrefixRankedPattern < SymbolType, RankType >::PrefixRankedPattern ( std::ranked_ } template < class SymbolType, class RankType > -PrefixRankedPattern < SymbolType, RankType >::PrefixRankedPattern ( const PrefixRankedTree < > & tree ) : PrefixRankedPattern ( alphabet::SubtreeWildcardSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), tree.getAlphabet ( ) + std::set < std::ranked_symbol < SymbolType, RankType > > { alphabet::SubtreeWildcardSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ) }, tree.getContent ( ) ) { +PrefixRankedPattern < SymbolType, RankType >::PrefixRankedPattern ( const PrefixRankedTree < SymbolType, RankType > & tree ) : PrefixRankedPattern ( alphabet::SubtreeWildcardSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ), tree.getAlphabet ( ) + std::set < std::ranked_symbol < SymbolType, RankType > > { alphabet::SubtreeWildcardSymbol::instance < std::ranked_symbol < SymbolType, RankType > > ( ) }, tree.getContent ( ) ) { } template < class SymbolType, class RankType > -PrefixRankedPattern < SymbolType, RankType >::PrefixRankedPattern ( const RankedPattern < > & tree ) : PrefixRankedPattern ( tree.getSubtreeWildcard ( ), tree.getAlphabet ( ), toPrefixRanked ( tree.getContent ( ) ) ) { +PrefixRankedPattern < SymbolType, RankType >::PrefixRankedPattern ( const RankedPattern < SymbolType, RankType > & tree ) : PrefixRankedPattern ( tree.getSubtreeWildcard ( ), tree.getAlphabet ( ), toPrefixRanked ( tree.getContent ( ) ) ) { } template < class SymbolType, class RankType > diff --git a/alib2data/src/tree/ranked/PrefixRankedTree.h b/alib2data/src/tree/ranked/PrefixRankedTree.h index bc5ebc06e1..fcb73f78e0 100644 --- a/alib2data/src/tree/ranked/PrefixRankedTree.h +++ b/alib2data/src/tree/ranked/PrefixRankedTree.h @@ -43,7 +43,7 @@ class PrefixRankedTree : public RankedTreeBase, public std::Components < PrefixR public: explicit PrefixRankedTree ( std::set < std::ranked_symbol < SymbolType, RankType > > alphabet, std::vector < std::ranked_symbol < SymbolType, RankType > > data ); explicit PrefixRankedTree ( std::vector < std::ranked_symbol < SymbolType, RankType > > data ); - explicit PrefixRankedTree ( const RankedTree < > & tree ); + explicit PrefixRankedTree ( const RankedTree < SymbolType, RankType > & tree ); virtual RankedTreeBase * clone ( ) const; virtual RankedTreeBase * plunder ( ) &&; @@ -111,7 +111,7 @@ PrefixRankedTree < SymbolType, RankType >::PrefixRankedTree ( std::vector < std: } template < class SymbolType, class RankType > -PrefixRankedTree < SymbolType, RankType >::PrefixRankedTree ( const RankedTree < > & tree ) : PrefixRankedTree ( tree.getAlphabet ( ), toPrefixRanked ( tree.getContent ( ) ) ) { +PrefixRankedTree < SymbolType, RankType >::PrefixRankedTree ( const RankedTree < SymbolType, RankType > & tree ) : PrefixRankedTree ( tree.getAlphabet ( ), toPrefixRanked ( tree.getContent ( ) ) ) { } template < class SymbolType, class RankType > diff --git a/alib2data/src/tree/ranked/RankedNonlinearPattern.h b/alib2data/src/tree/ranked/RankedNonlinearPattern.h index 41856f9285..464c70c8c5 100644 --- a/alib2data/src/tree/ranked/RankedNonlinearPattern.h +++ b/alib2data/src/tree/ranked/RankedNonlinearPattern.h @@ -59,7 +59,7 @@ public: explicit RankedNonlinearPattern ( std::ranked_symbol < SymbolType, RankType > subtreeWildcard, std::set < std::ranked_symbol < SymbolType, RankType > > nonlinearVariables, std::set < std::ranked_symbol < SymbolType, RankType > > alphabet, std::tree < std::ranked_symbol < SymbolType, RankType > > pattern ); explicit RankedNonlinearPattern ( std::ranked_symbol < SymbolType, RankType > subtreeWildcard, std::set < std::ranked_symbol < SymbolType, RankType > > nonlinearVariables, std::tree < std::ranked_symbol < SymbolType, RankType > > pattern ); explicit RankedNonlinearPattern ( std::ranked_symbol < SymbolType, RankType > subtreeWildcard, std::tree < std::ranked_symbol < SymbolType, RankType > > pattern ); - explicit RankedNonlinearPattern ( const UnrankedNonlinearPattern < > & other ); + explicit RankedNonlinearPattern ( const UnrankedNonlinearPattern < SymbolType > & other ); /** * @return Root node of the regular expression pattern @@ -141,7 +141,7 @@ RankedNonlinearPattern < SymbolType, RankType >::RankedNonlinearPattern ( std::r } template < class SymbolType, class RankType > -RankedNonlinearPattern < SymbolType, RankType >::RankedNonlinearPattern ( const UnrankedNonlinearPattern < > & other ) : RankedNonlinearPattern ( std::ranked_symbol < SymbolType, RankType > ( other.getSubtreeWildcard ( ), 0 ), TreeAuxiliary::toRankedTree < SymbolType, RankType > ( other.getContent ( ) ) ) { +RankedNonlinearPattern < SymbolType, RankType >::RankedNonlinearPattern ( const UnrankedNonlinearPattern < SymbolType > & other ) : RankedNonlinearPattern ( std::ranked_symbol < SymbolType, RankType > ( other.getSubtreeWildcard ( ), 0 ), TreeAuxiliary::toRankedTree < SymbolType, RankType > ( other.getContent ( ) ) ) { } template < class SymbolType, class RankType > diff --git a/alib2data/src/tree/ranked/RankedPattern.h b/alib2data/src/tree/ranked/RankedPattern.h index 7bdd11ddfd..527ff6dd08 100644 --- a/alib2data/src/tree/ranked/RankedPattern.h +++ b/alib2data/src/tree/ranked/RankedPattern.h @@ -57,7 +57,7 @@ public: explicit RankedPattern ( std::ranked_symbol < SymbolType, RankType > subtreeWildcard, std::set < std::ranked_symbol < SymbolType, RankType > > alphabet, std::tree < std::ranked_symbol < SymbolType, RankType > > pattern ); explicit RankedPattern ( std::ranked_symbol < SymbolType, RankType > subtreeWildcard, std::tree < std::ranked_symbol < SymbolType, RankType > > pattern ); - explicit RankedPattern ( const UnrankedPattern < > & other ); + explicit RankedPattern ( const UnrankedPattern < SymbolType > & other ); /** * @return Root node of the regular expression pattern @@ -131,7 +131,7 @@ RankedPattern < SymbolType, RankType >::RankedPattern ( std::ranked_symbol < Sym } template < class SymbolType, class RankType > -RankedPattern < SymbolType, RankType >::RankedPattern ( const UnrankedPattern < > & other ) : RankedPattern ( std::ranked_symbol < SymbolType, RankType > ( other.getSubtreeWildcard ( ), 0 ), TreeAuxiliary::toRankedTree < SymbolType, RankType > ( other.getContent ( ) ) ) { +RankedPattern < SymbolType, RankType >::RankedPattern ( const UnrankedPattern < SymbolType > & other ) : RankedPattern ( std::ranked_symbol < SymbolType, RankType > ( other.getSubtreeWildcard ( ), 0 ), TreeAuxiliary::toRankedTree < SymbolType, RankType > ( other.getContent ( ) ) ) { } template < class SymbolType, class RankType > diff --git a/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h b/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h index 073b450a81..d6e45fed68 100644 --- a/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h +++ b/alib2data/src/tree/unranked/UnrankedNonlinearPattern.h @@ -56,7 +56,8 @@ public: explicit UnrankedNonlinearPattern ( SymbolType subtreeWildcard, std::set < SymbolType > nonlinearVariables, std::set < SymbolType > alphabet, std::tree < SymbolType > pattern ); explicit UnrankedNonlinearPattern ( SymbolType subtreeWildcard, std::set < SymbolType > nonlinearVariables, std::tree < SymbolType > pattern ); explicit UnrankedNonlinearPattern ( SymbolType subtreeWildcard, std::tree < SymbolType > pattern ); - explicit UnrankedNonlinearPattern ( const RankedNonlinearPattern < > & other ); + template < class RankType > + explicit UnrankedNonlinearPattern ( const RankedNonlinearPattern < SymbolType, RankType > & other ); /** * @return Content of the pattern @@ -143,7 +144,8 @@ UnrankedNonlinearPattern < SymbolType >::UnrankedNonlinearPattern ( SymbolType s } template < class SymbolType > -UnrankedNonlinearPattern < SymbolType >::UnrankedNonlinearPattern ( const RankedNonlinearPattern < > & other ) : UnrankedNonlinearPattern ( other.getSubtreeWildcard ( ).getSymbol ( ), TreeAuxiliary::unrankSymbols ( other.getAlphabet ( ) ), TreeAuxiliary::toUnrankedTree ( other.getContent ( ) ) ) { +template < class RankType > +UnrankedNonlinearPattern < SymbolType >::UnrankedNonlinearPattern ( const RankedNonlinearPattern < SymbolType, RankType > & other ) : UnrankedNonlinearPattern ( other.getSubtreeWildcard ( ).getSymbol ( ), TreeAuxiliary::unrankSymbols ( other.getAlphabet ( ) ), TreeAuxiliary::toUnrankedTree ( other.getContent ( ) ) ) { } template < class SymbolType > diff --git a/alib2data/src/tree/unranked/UnrankedPattern.h b/alib2data/src/tree/unranked/UnrankedPattern.h index 9baa2acc4f..09a89e49f2 100644 --- a/alib2data/src/tree/unranked/UnrankedPattern.h +++ b/alib2data/src/tree/unranked/UnrankedPattern.h @@ -54,7 +54,8 @@ public: explicit UnrankedPattern ( SymbolType subtreeWildcard, std::set < SymbolType > alphabet, std::tree < SymbolType > pattern ); explicit UnrankedPattern ( SymbolType subtreeWildcard, std::tree < SymbolType > pattern ); - explicit UnrankedPattern ( const RankedPattern < > & other ); + template < class RankType > + explicit UnrankedPattern ( const RankedPattern < SymbolType, RankType > & other ); /** * @return Content of the pattern @@ -127,7 +128,8 @@ UnrankedPattern < SymbolType >::UnrankedPattern ( SymbolType subtreeWildcard, st } template < class SymbolType > -UnrankedPattern < SymbolType >::UnrankedPattern ( const RankedPattern < > & other ) : UnrankedPattern ( other.getSubtreeWildcard ( ).getSymbol ( ), TreeAuxiliary::unrankSymbols ( other.getAlphabet ( ) ), TreeAuxiliary::toUnrankedTree ( other.getContent ( ) ) ) { +template < class RankType > +UnrankedPattern < SymbolType >::UnrankedPattern ( const RankedPattern < SymbolType, RankType > & other ) : UnrankedPattern ( other.getSubtreeWildcard ( ).getSymbol ( ), TreeAuxiliary::unrankSymbols ( other.getAlphabet ( ) ), TreeAuxiliary::toUnrankedTree ( other.getContent ( ) ) ) { } template < class SymbolType > diff --git a/alib2data/src/tree/unranked/UnrankedTree.h b/alib2data/src/tree/unranked/UnrankedTree.h index 403bef5a97..f9a4825b89 100644 --- a/alib2data/src/tree/unranked/UnrankedTree.h +++ b/alib2data/src/tree/unranked/UnrankedTree.h @@ -53,7 +53,8 @@ public: explicit UnrankedTree ( std::set < SymbolType > alphabet, std::tree < SymbolType > tree ); explicit UnrankedTree ( std::tree < SymbolType > tree ); - explicit UnrankedTree ( const RankedTree < > & other ); + template < class RankType > + explicit UnrankedTree ( const RankedTree < SymbolType, RankType > & other ); const std::set < SymbolType > & getAlphabet ( ) const { return this->template accessComponent < GeneralAlphabet > ( ).get ( ); @@ -122,7 +123,8 @@ UnrankedTree < SymbolType >::UnrankedTree ( std::tree < SymbolType > pattern ) : } template < class SymbolType > -UnrankedTree < SymbolType >::UnrankedTree ( const RankedTree < > & other ) : UnrankedTree ( TreeAuxiliary::unrankSymbols ( other.getAlphabet ( ) ), TreeAuxiliary::toUnrankedTree ( other.getContent ( ) ) ) { +template < class RankType > +UnrankedTree < SymbolType >::UnrankedTree ( const RankedTree < SymbolType, RankType > & other ) : UnrankedTree ( TreeAuxiliary::unrankSymbols ( other.getAlphabet ( ) ), TreeAuxiliary::toUnrankedTree ( other.getContent ( ) ) ) { } template < class SymbolType > -- GitLab