diff --git a/alib2algo/src/rte/glushkov/GlushkovFollowNaive.h b/alib2algo/src/rte/glushkov/GlushkovFollowNaive.h index 00113d06e29af192b7260468726894a5b088d8a8..1583b17e25d13c78a7d1b1b6b0cbc3afc11ba06a 100644 --- a/alib2algo/src/rte/glushkov/GlushkovFollowNaive.h +++ b/alib2algo/src/rte/glushkov/GlushkovFollowNaive.h @@ -39,8 +39,8 @@ class GlushkovFollowNaive { template < class SymbolType, class RankType > static void preprocessSubMap ( const TAlphabet < SymbolType, RankType > & alphabetK, TSubstMap < SymbolType, RankType > & subMap ); - template < class T > - static ext::vector < ext::vector < T > > cartesian ( const ext::vector < ext::vector < T > > & input ); + template < class SymbolType, class RankType > + static ext::vector < ext::vector < common::ranked_symbol < SymbolType, RankType > > > cartesian ( const ext::vector < ext::vector < common::ranked_symbol < SymbolType, RankType > > > & input ); template < class T > static void cartesian_rec ( const ext::vector < ext::vector < T > > & input, ext::vector < ext::vector < T > > & ret, ext::vector < T > & current, size_t depth ); @@ -93,10 +93,10 @@ void GlushkovFollowNaive::cartesian_rec ( const ext::vector < ext::vector < T > } } -template < class T > -ext::vector < ext::vector < T > > GlushkovFollowNaive::cartesian ( const ext::vector < ext::vector < T > > & input ) { - ext::vector < ext::vector < T > > ret; - ext::vector < T > current ( input.size ( ), T ( 0, 0 ) ); +template < class SymbolType, class RankType > +ext::vector < ext::vector < common::ranked_symbol < SymbolType, RankType > > > GlushkovFollowNaive::cartesian ( const ext::vector < ext::vector < common::ranked_symbol < SymbolType, RankType > > > & input ) { + ext::vector < ext::vector < common::ranked_symbol < SymbolType, RankType > > > ret; + ext::vector < common::ranked_symbol < SymbolType, RankType > > current ( input.size ( ), common::ranked_symbol < SymbolType, RankType > ( SymbolType ( 0 ), RankType ( 0 ) ) ); cartesian_rec ( input, ret, current, 0 ); diff --git a/alib2algo/src/tree/generate/RandomTreeFactory.cpp b/alib2algo/src/tree/generate/RandomTreeFactory.cpp index 14df531ccf002784627a7a7369ee41a1178ade29..8e35b430983f43c17a643273119385c1849e169b 100644 --- a/alib2algo/src/tree/generate/RandomTreeFactory.cpp +++ b/alib2algo/src/tree/generate/RandomTreeFactory.cpp @@ -145,12 +145,12 @@ struct Node { nextChild = nextChild->right; } - return ext::tree < common::ranked_symbol < > > ( common::ranked_symbol < > ( symbol, rank ), std::move ( children ) ); + return ext::tree < common::ranked_symbol < > > ( common::ranked_symbol < > ( DefaultSymbolType ( symbol ), DefaultRankType ( rank ) ), std::move ( children ) ); } ext::tree < common::ranked_symbol < > > createRankedPatternNode ( ) { if ( rank == 0 ) { - return ext::tree < common::ranked_symbol < > > ( common::ranked_symbol < > ( alphabet::SubtreeWildcardSymbol::instance < DefaultSymbolType > ( ), 0 ), { } ); + return ext::tree < common::ranked_symbol < > > ( common::ranked_symbol < > ( alphabet::SubtreeWildcardSymbol::instance < DefaultSymbolType > ( ), DefaultRankType ( 0 ) ), { } ); } else { ext::vector < ext::tree < common::ranked_symbol < > > > children; Node * nextChild = child; @@ -160,16 +160,16 @@ struct Node { nextChild = nextChild->right; } - return ext::tree < common::ranked_symbol < > > ( common::ranked_symbol < > ( symbol, rank ), std::move ( children ) ); + return ext::tree < common::ranked_symbol < > > ( common::ranked_symbol < > ( DefaultSymbolType ( symbol ), DefaultRankType ( rank ) ), std::move ( children ) ); } } ext::tree < common::ranked_symbol < > > createRankedNonlinearPatternNode ( bool singleNonlinearVariable ) { if ( rank == 0 ) { if ( singleNonlinearVariable ) - return ext::tree < common::ranked_symbol < > > ( common::ranked_symbol < > ( DefaultSymbolType ( alphabet::NonlinearVariableSymbol < > ( DefaultSymbolType ( "A" ) ) ), 0 ), { } ); + return ext::tree < common::ranked_symbol < > > ( common::ranked_symbol < > ( DefaultSymbolType ( alphabet::NonlinearVariableSymbol < > ( DefaultSymbolType ( "A" ) ) ), DefaultRankType ( 0 ) ), { } ); else - return ext::tree < common::ranked_symbol < > > ( common::ranked_symbol < > ( DefaultSymbolType ( alphabet::NonlinearVariableSymbol < > ( symbol ) ), 0 ), { } ); + return ext::tree < common::ranked_symbol < > > ( common::ranked_symbol < > ( DefaultSymbolType ( alphabet::NonlinearVariableSymbol < > ( symbol ) ), DefaultRankType ( 0 ) ), { } ); } else { ext::vector < ext::tree < common::ranked_symbol < > > > children; Node * nextChild = child; @@ -179,7 +179,7 @@ struct Node { nextChild = nextChild->right; } - return ext::tree < common::ranked_symbol < > > ( common::ranked_symbol < > ( symbol, rank ), std::move ( children ) ); + return ext::tree < common::ranked_symbol < > > ( common::ranked_symbol < > ( DefaultSymbolType ( symbol ), DefaultRankType ( rank ) ), std::move ( children ) ); } } @@ -335,7 +335,7 @@ RankedTree < > RandomRankedTreeFactory::generateRankedTree ( int depth, int node for ( const std::pair < int, ext::vector < char > > & it : rankedAlphabet ) for ( char i : it.second ) - treeRankedAlphabet.insert ( common::ranked_symbol < > ( i, it.first ) ); + treeRankedAlphabet.insert ( common::ranked_symbol < > ( DefaultSymbolType ( i ), DefaultRankType ( it.first ) ) ); RankedTree < > tree ( treeRankedAlphabet, root->createRankedNode ( ) ); delete root; @@ -356,7 +356,7 @@ RankedPattern < > RandomRankedPatternFactory::generateRankedPattern ( int depth, for ( const std::pair < int, ext::vector < char > > & it : rankedAlphabet ) for ( char i : it.second ) - treeRankedAlphabet.insert ( common::ranked_symbol < > ( i, it.first ) ); + treeRankedAlphabet.insert ( common::ranked_symbol < > ( DefaultSymbolType ( i ), DefaultRankType ( it.first ) ) ); common::ranked_symbol < > subtreeWildcard = alphabet::SubtreeWildcardSymbol::instance < common::ranked_symbol < > > ( ); treeRankedAlphabet.insert ( subtreeWildcard ); @@ -380,13 +380,13 @@ RankedNonlinearPattern < > RandomRankedNonlinearPatternFactory::generateRankedNo for ( const std::pair < int, ext::vector < char > > & it : rankedAlphabet ) for ( char i : it.second ) - treeRankedAlphabet.insert ( common::ranked_symbol < > ( i, it.first ) ); + treeRankedAlphabet.insert ( common::ranked_symbol < > ( DefaultSymbolType ( i ), DefaultRankType ( it.first ) ) ); if ( singleNonlinearVariable ) - nonlinearVariables.insert ( common::ranked_symbol < > ( DefaultSymbolType ( alphabet::NonlinearVariableSymbol < > ( DefaultSymbolType ( "A" ) ) ), 0 ) ); + nonlinearVariables.insert ( common::ranked_symbol < > ( DefaultSymbolType ( alphabet::NonlinearVariableSymbol < > ( DefaultSymbolType ( "A" ) ) ), DefaultRankType ( 0 ) ) ); else for ( char i : rankedAlphabet [ 0 ] ) - nonlinearVariables.insert ( common::ranked_symbol < > ( DefaultSymbolType ( alphabet::NonlinearVariableSymbol < > ( i ) ), 0 ) ); + nonlinearVariables.insert ( common::ranked_symbol < > ( DefaultSymbolType ( alphabet::NonlinearVariableSymbol < > ( i ) ), DefaultRankType ( 0 ) ) ); common::ranked_symbol < > subtreeWildcard = alphabet::SubtreeWildcardSymbol::instance < common::ranked_symbol < > > ( ); treeRankedAlphabet.insert ( subtreeWildcard ); diff --git a/alib2algo/test-src/automaton/convert/FTAtoPDATest.cpp b/alib2algo/test-src/automaton/convert/FTAtoPDATest.cpp index c059c776bcc42f545bc819ca18973b0675aafd01..b162b11fe7e3bb64c9c88a8f8033ec055c7e3c4b 100644 --- a/alib2algo/test-src/automaton/convert/FTAtoPDATest.cpp +++ b/alib2algo/test-src/automaton/convert/FTAtoPDATest.cpp @@ -23,9 +23,9 @@ void FTAtoPDATest::tearDown() { void FTAtoPDATest::testDFTAtoDPDA() { automaton::DFTA < > automaton; - const common::ranked_symbol < > a ('a', 2); - const common::ranked_symbol < > b ('b', 1); - const common::ranked_symbol < > c ('c', 0); + const common::ranked_symbol < > a (DefaultSymbolType('a'), DefaultRankType(2)); + const common::ranked_symbol < > b (DefaultSymbolType('b'), DefaultRankType(1)); + const common::ranked_symbol < > c (DefaultSymbolType('c'), DefaultRankType(0)); const ext::set<common::ranked_symbol < > > alphabet {a, b, c}; automaton.setInputAlphabet(alphabet); @@ -51,9 +51,9 @@ void FTAtoPDATest::testDFTAtoDPDA() { void FTAtoPDATest::testNFTAtoNPDA() { automaton::NFTA < > automaton; - const common::ranked_symbol < > a ('a', 2); - const common::ranked_symbol < > b ('b', 1); - const common::ranked_symbol < > c ('c', 0); + const common::ranked_symbol < > a (DefaultSymbolType('a'), DefaultRankType(2)); + const common::ranked_symbol < > b (DefaultSymbolType('b'), DefaultRankType(1)); + const common::ranked_symbol < > c (DefaultSymbolType('c'), DefaultRankType(0)); const ext::set<common::ranked_symbol < > > alphabet {a, b, c}; automaton.setInputAlphabet(alphabet); diff --git a/alib2algo/test-src/automaton/determinize/determinizeTest.cpp b/alib2algo/test-src/automaton/determinize/determinizeTest.cpp index 3fcc0ce6f64fe3aa3e577a0384ca2cc64fa7dd38..c06a192ca2775b23a0e698bacd17f3bb3847d894 100644 --- a/alib2algo/test-src/automaton/determinize/determinizeTest.cpp +++ b/alib2algo/test-src/automaton/determinize/determinizeTest.cpp @@ -108,9 +108,9 @@ void determinizeTest::testDeterminizeVPA() { void determinizeTest::testDeterminizeNFTA() { automaton::NFTA < > automaton; - const common::ranked_symbol < > a ('a', 2); - const common::ranked_symbol < > b ('b', 1); - const common::ranked_symbol < > c ('c', 0); + const common::ranked_symbol < > a (DefaultSymbolType('a'), DefaultRankType(2)); + const common::ranked_symbol < > b (DefaultSymbolType('b'), DefaultRankType(1)); + const common::ranked_symbol < > c (DefaultSymbolType('c'), DefaultRankType(0)); const ext::set<common::ranked_symbol < > > alphabet {a, b, c}; automaton.setInputAlphabet(alphabet); diff --git a/alib2algo/test-src/automaton/simplify/minimizeTest.cpp b/alib2algo/test-src/automaton/simplify/minimizeTest.cpp index c480b11bc5cd12b2fce187bc57b9a4f698fdc34c..2f653fca81a6e0a13e7851aa8212932222a86790 100644 --- a/alib2algo/test-src/automaton/simplify/minimizeTest.cpp +++ b/alib2algo/test-src/automaton/simplify/minimizeTest.cpp @@ -47,13 +47,13 @@ void minimizeTest::testMinimizeDFTA() { automaton.addFinalState(q[9]); automaton.addFinalState(q[10]); - const common::ranked_symbol < > a ("a", 3); - const common::ranked_symbol < > b ("b", 2); - const common::ranked_symbol < > c ("c", 1); - const common::ranked_symbol < > d ("d", 0); - const common::ranked_symbol < > e ("e", 0); - const common::ranked_symbol < > f ("f", 0); - const common::ranked_symbol < > g ("g", 0); + const common::ranked_symbol < > a (DefaultSymbolType("a"), DefaultRankType(3)); + const common::ranked_symbol < > b (DefaultSymbolType("b"), DefaultRankType(2)); + const common::ranked_symbol < > c (DefaultSymbolType("c"), DefaultRankType(1)); + const common::ranked_symbol < > d (DefaultSymbolType("d"), DefaultRankType(0)); + const common::ranked_symbol < > e (DefaultSymbolType("e"), DefaultRankType(0)); + const common::ranked_symbol < > f (DefaultSymbolType("f"), DefaultRankType(0)); + const common::ranked_symbol < > g (DefaultSymbolType("g"), DefaultRankType(0)); automaton.addInputSymbol(a); automaton.addInputSymbol(b); diff --git a/alib2algo/test-src/automaton/simplify/trimTest.cpp b/alib2algo/test-src/automaton/simplify/trimTest.cpp index 35a9bc5474b537f75baf3b250eadbb9a870f9de3..c2be0d96e5378a3d35117611552cb39bb06aa97e 100644 --- a/alib2algo/test-src/automaton/simplify/trimTest.cpp +++ b/alib2algo/test-src/automaton/simplify/trimTest.cpp @@ -75,9 +75,9 @@ void trimTest::testTrimDFTA() { automaton.addFinalState(q[2]); automaton.addFinalState(q[11]); - const common::ranked_symbol < > a ("a", 2); - const common::ranked_symbol < > b ("b", 1); - const common::ranked_symbol < > c ("c", 0); + const common::ranked_symbol < > a (DefaultSymbolType("a"), DefaultRankType(2)); + const common::ranked_symbol < > b (DefaultSymbolType("b"), DefaultRankType(1)); + const common::ranked_symbol < > c (DefaultSymbolType("c"), DefaultRankType(0)); automaton.addInputSymbol(a); automaton.addInputSymbol(b); automaton.addInputSymbol(c); diff --git a/alib2data/src/alphabet/SubtreeWildcardSymbol.h b/alib2data/src/alphabet/SubtreeWildcardSymbol.h index e164422ee1268ecd62dfe959ebf3ba802bcc787d..c95b6dd9c7281cd8b967e16d2434e70229cf5865 100644 --- a/alib2data/src/alphabet/SubtreeWildcardSymbol.h +++ b/alib2data/src/alphabet/SubtreeWildcardSymbol.h @@ -74,7 +74,7 @@ inline Symbol SubtreeWildcardSymbol::instance < Symbol > ( ) { // TODO make partially specialised when needed by classes or variables, functions can't be partially specialsed template < > inline common::ranked_symbol < > SubtreeWildcardSymbol::instance < common::ranked_symbol < > > ( ) { - return common::ranked_symbol < > ( DefaultSymbolType ( SubtreeWildcardSymbol ( ) ), 0); + return common::ranked_symbol < > ( DefaultSymbolType ( SubtreeWildcardSymbol ( ) ), DefaultRankType ( 0 ) ); } template < > diff --git a/alib2data/src/alphabet/VariablesBarSymbol.h b/alib2data/src/alphabet/VariablesBarSymbol.h index 2f0bd248c248cf57e62595170afa23f23061062c..c64699aff2dfe04d3c75230dd26caad240972773 100644 --- a/alib2data/src/alphabet/VariablesBarSymbol.h +++ b/alib2data/src/alphabet/VariablesBarSymbol.h @@ -74,7 +74,7 @@ inline Symbol VariablesBarSymbol::instance < Symbol > ( ) { // TODO make partially specialised when needed by classes or variables, functions can be partially specialsed template < > inline common::ranked_symbol < > VariablesBarSymbol::instance < common::ranked_symbol < > > ( ) { - return common::ranked_symbol < > ( DefaultSymbolType ( VariablesBarSymbol ( ) ), 0); + return common::ranked_symbol < > ( DefaultSymbolType ( VariablesBarSymbol ( ) ), DefaultRankType ( 0 ) ); } template < > diff --git a/alib2data/src/common/ranked_symbol.hpp b/alib2data/src/common/ranked_symbol.hpp index 48502df9e414eab6886c5633fe957e8737aeeeba..c12fad0ffc028e52fcd91815efd792d4d6c545bd 100644 --- a/alib2data/src/common/ranked_symbol.hpp +++ b/alib2data/src/common/ranked_symbol.hpp @@ -26,17 +26,12 @@ protected: RankType m_rank; public: - explicit ranked_symbol ( int number, unsigned rank ); - explicit ranked_symbol ( char character, unsigned rank ); - explicit ranked_symbol ( std::string label, unsigned rank ); - /** * Creates new symbol with given name and rank. * @param symbol name of the symbol * @param rank of the symbol */ explicit ranked_symbol ( SymbolType symbol, RankType rank ); - explicit ranked_symbol ( SymbolType symbol, unsigned rank ); /** * @return name of the symbol @@ -87,31 +82,11 @@ public: } }; -template < class SymbolType, class RankType > -ranked_symbol < SymbolType, RankType >::ranked_symbol(int number, unsigned rank) : m_symbol(SymbolType(number)), m_rank(RankType(rank)) { - -} - -template < class SymbolType, class RankType > -ranked_symbol < SymbolType, RankType >::ranked_symbol(char character, unsigned rank) : m_symbol(SymbolType(character)), m_rank(RankType(rank)) { - -} - -template < class SymbolType, class RankType > -ranked_symbol < SymbolType, RankType >::ranked_symbol(std::string symbol, unsigned rank) : m_symbol(SymbolType(std::move(symbol))), m_rank(RankType(rank)) { - -} - template < class SymbolType, class RankType > ranked_symbol < SymbolType, RankType >::ranked_symbol(SymbolType symbol, RankType rank) : m_symbol(std::move(symbol)), m_rank(std::move(rank)) { } -template < class SymbolType, class RankType > -ranked_symbol < SymbolType, RankType >::ranked_symbol(SymbolType symbol, unsigned rank) : m_symbol(std::move(symbol)), m_rank(RankType(rank)) { - -} - template < class SymbolType, class RankType > const SymbolType & ranked_symbol < SymbolType, RankType >::getSymbol ( ) const & { return m_symbol; diff --git a/alib2data/src/tree/common/TreeAuxiliary.h b/alib2data/src/tree/common/TreeAuxiliary.h index daad341f8dd6910972311562cd3644444f1c9c16..5fd111a225302507251840bc72e14fa941674388 100644 --- a/alib2data/src/tree/common/TreeAuxiliary.h +++ b/alib2data/src/tree/common/TreeAuxiliary.h @@ -59,7 +59,7 @@ ext::tree < common::ranked_symbol < SymbolType, RankType > > TreeAuxiliary::toRa } unsigned size = children.size ( ); - return ext::tree < common::ranked_symbol < SymbolType, RankType > > ( common::ranked_symbol < SymbolType, RankType > ( tree.getData ( ), size ), std::move ( children ) ); + return ext::tree < common::ranked_symbol < SymbolType, RankType > > ( common::ranked_symbol < SymbolType, RankType > ( tree.getData ( ), RankType ( size ) ), std::move ( children ) ); } template < class SymbolType, class RankType > diff --git a/alib2data/src/tree/ranked/RankedPattern.h b/alib2data/src/tree/ranked/RankedPattern.h index d12ca3074927f62db60302de6d0f5a5226e83fda..5e99433b054358fba67bdc2aa5010cebcab23eb6 100644 --- a/alib2data/src/tree/ranked/RankedPattern.h +++ b/alib2data/src/tree/ranked/RankedPattern.h @@ -147,7 +147,7 @@ RankedPattern < SymbolType, RankType >::RankedPattern ( common::ranked_symbol < } template < class SymbolType, class RankType > -RankedPattern < SymbolType, RankType >::RankedPattern ( const UnrankedPattern < SymbolType > & other ) : RankedPattern ( common::ranked_symbol < SymbolType, RankType > ( other.getSubtreeWildcard ( ), 0 ), TreeAuxiliary::toRankedTree < SymbolType, RankType > ( other.getContent ( ) ) ) { +RankedPattern < SymbolType, RankType >::RankedPattern ( const UnrankedPattern < SymbolType > & other ) : RankedPattern ( common::ranked_symbol < SymbolType, RankType > ( other.getSubtreeWildcard ( ), RankType ( 0 ) ), TreeAuxiliary::toRankedTree < SymbolType, RankType > ( other.getContent ( ) ) ) { } template < class SymbolType, class RankType > diff --git a/alib2data/test-src/alphabet/SymbolTest.cpp b/alib2data/test-src/alphabet/SymbolTest.cpp index c8c556e18626639454536a6430e3ff58afc74c97..2fabec48512abf325b208cee50f659f18adf08c3 100644 --- a/alib2data/test-src/alphabet/SymbolTest.cpp +++ b/alib2data/test-src/alphabet/SymbolTest.cpp @@ -66,8 +66,8 @@ void SymbolTest::testOrder ( ) { alphabet::StartSymbol ss; alphabet::EndSymbol es; - alphabet::RankedSymbol < > rs1 ( DefaultSymbolType ( alphabet::BarSymbol { } ), 0 ); - alphabet::RankedSymbol < > rs2 ( DefaultSymbolType ( alphabet::BarSymbol { } ), 0 ); + alphabet::RankedSymbol < > rs1 ( DefaultSymbolType ( alphabet::BarSymbol { } ), DefaultRankType ( 0 ) ); + alphabet::RankedSymbol < > rs2 ( DefaultSymbolType ( alphabet::BarSymbol { } ), DefaultRankType ( 0 ) ); CPPUNIT_EXCLUSIVE_OR ( bs < ls, ls < bs ); diff --git a/alib2data/test-src/automaton/AutomatonTest.cpp b/alib2data/test-src/automaton/AutomatonTest.cpp index d6679c59d1886311f99f23902b002a0dc2b61a58..8ac2ebab9ec47ee851e31410c57059ba0a215242 100644 --- a/alib2data/test-src/automaton/AutomatonTest.cpp +++ b/alib2data/test-src/automaton/AutomatonTest.cpp @@ -269,9 +269,9 @@ void AutomatonTest::testRHPDATransitions() { } void AutomatonTest::testNFTAParser() { - common::ranked_symbol < > a ('a', 2); - common::ranked_symbol < > b ('b', 1); - common::ranked_symbol < > c ('c', 0); + common::ranked_symbol < > a ( DefaultSymbolType ( 'a' ), DefaultRankType ( 2 ) ); + common::ranked_symbol < > b ( DefaultSymbolType ( 'b' ), DefaultRankType ( 1 ) ); + common::ranked_symbol < > c ( DefaultSymbolType ( 'c' ), DefaultRankType ( 0 ) ); DefaultStateType q2 = DefaultStateType ("q2"); DefaultStateType q1 = DefaultStateType ("q1"); @@ -313,10 +313,10 @@ void AutomatonTest::testNFTAParser() { } void AutomatonTest::testNFTATransitions() { - common::ranked_symbol < > a ('a', 2); - common::ranked_symbol < > b ('b', 1); - common::ranked_symbol < > c ('c', 0); - common::ranked_symbol < > d ('d', 0); + common::ranked_symbol < > a (DefaultSymbolType('a'), DefaultRankType(2)); + common::ranked_symbol < > b (DefaultSymbolType('b'), DefaultRankType(1)); + common::ranked_symbol < > c (DefaultSymbolType('c'), DefaultRankType(0)); + common::ranked_symbol < > d (DefaultSymbolType('d'), DefaultRankType(0)); DefaultStateType q2 = DefaultStateType ("q2"); DefaultStateType q1 = DefaultStateType ("q1"); diff --git a/alib2data/test-src/rte/RTETest.cpp b/alib2data/test-src/rte/RTETest.cpp index 29b8dc6ab4f19587fd323915bd01f7caa4effc84..1a027f981f00a0b0966fe9da8ffa2f572a82d9b9 100644 --- a/alib2data/test-src/rte/RTETest.cpp +++ b/alib2data/test-src/rte/RTETest.cpp @@ -52,11 +52,11 @@ void RTETest::testCopyConstruct ( ) { */ } { - const common::ranked_symbol < > symb_a2 ( 'a', 2 ); - const common::ranked_symbol < > symb_b0 ( 'b', 0 ); - const common::ranked_symbol < > symb_c0 ( 'c', 0 ); - const common::ranked_symbol < > symb_y0 ( 'y', 0 ); - const common::ranked_symbol < > symb_z0 ( 'z', 0 ); + const common::ranked_symbol < > symb_a2 ( DefaultSymbolType ( 'a' ), DefaultRankType ( 2 ) ); + const common::ranked_symbol < > symb_b0 ( DefaultSymbolType ( 'b' ), DefaultRankType ( 0 ) ); + const common::ranked_symbol < > symb_c0 ( DefaultSymbolType ( 'c' ), DefaultRankType ( 0 ) ); + const common::ranked_symbol < > symb_y0 ( DefaultSymbolType ( 'y' ), DefaultRankType ( 0 ) ); + const common::ranked_symbol < > symb_z0 ( DefaultSymbolType ( 'z' ), DefaultRankType ( 0 ) ); rte::FormalRTE < > frte; frte.setAlphabetSymbols ( { symb_a2, symb_b0, symb_c0 } ); @@ -86,12 +86,12 @@ void RTETest::testCopyConstruct ( ) { } void RTETest::testXMLParser ( ) { - const common::ranked_symbol < > symb_a2 ( 'a', 2 ); - const common::ranked_symbol < > symb_b0 ( 'b', 0 ); - const common::ranked_symbol < > symb_c0 ( 'c', 0 ); - const common::ranked_symbol < > symb_d1 ( 'd', 1 ); - const common::ranked_symbol < > symb_y0 ( 'y', 0 ); - const common::ranked_symbol < > symb_z0 ( 'z', 0 ); + const common::ranked_symbol < > symb_a2 ( DefaultSymbolType ( 'a' ), DefaultRankType ( 2 ) ); + const common::ranked_symbol < > symb_b0 ( DefaultSymbolType ( 'b' ), DefaultRankType ( 0 ) ); + const common::ranked_symbol < > symb_c0 ( DefaultSymbolType ( 'c' ), DefaultRankType ( 0 ) ); + const common::ranked_symbol < > symb_d1 ( DefaultSymbolType ( 'd' ), DefaultRankType ( 1 ) ); + const common::ranked_symbol < > symb_y0 ( DefaultSymbolType ( 'y' ), DefaultRankType ( 0 ) ); + const common::ranked_symbol < > symb_z0 ( DefaultSymbolType ( 'z' ), DefaultRankType ( 0 ) ); rte::FormalRTE < > frte; diff --git a/alib2data/test-src/tree/PatternTest.cpp b/alib2data/test-src/tree/PatternTest.cpp index de8cb924d57424217c144745cce70e9ec6610e03..f5c7ecfdc169575dcad0d94837cca2f31631f049 100644 --- a/alib2data/test-src/tree/PatternTest.cpp +++ b/alib2data/test-src/tree/PatternTest.cpp @@ -27,11 +27,11 @@ void PatternTest::tearDown() { } void PatternTest::testRankedPatternParser() { - const common::ranked_symbol < > a ('a', 2); - const common::ranked_symbol < > b ('b', 1); - const common::ranked_symbol < > c ('c', 0); + const common::ranked_symbol < > a (DefaultSymbolType('a'), DefaultRankType(2)); + const common::ranked_symbol < > b (DefaultSymbolType('b'), DefaultRankType(1)); + const common::ranked_symbol < > c (DefaultSymbolType('c'), DefaultRankType(0)); - const common::ranked_symbol < > S (DefaultSymbolType { alphabet::SubtreeWildcardSymbol {} }, 0); + const common::ranked_symbol < > S (DefaultSymbolType { alphabet::SubtreeWildcardSymbol {} }, DefaultRankType(0)); const ext::set<common::ranked_symbol < >> alphabet {a, b, c, S}; ext::tree < common::ranked_symbol < > > node3(c, {}); @@ -107,11 +107,11 @@ void PatternTest::testUnrankedPatternParser() { tree2.getContent().nicePrint(std::cout); } - const common::ranked_symbol < > ra ('a', 2); - const common::ranked_symbol < > rb ('b', 1); - const common::ranked_symbol < > rc ('c', 0); + const common::ranked_symbol < > ra (DefaultSymbolType('a'), DefaultRankType(2)); + const common::ranked_symbol < > rb (DefaultSymbolType('b'), DefaultRankType(1)); + const common::ranked_symbol < > rc (DefaultSymbolType('c'), DefaultRankType(0)); - const common::ranked_symbol < > rS { DefaultSymbolType { alphabet::SubtreeWildcardSymbol {} }, 0}; + const common::ranked_symbol < > rS { DefaultSymbolType { alphabet::SubtreeWildcardSymbol {} }, DefaultRankType(0)}; const ext::set<common::ranked_symbol < >> ralphabet {ra, rb, rc, rS}; ext::tree < common::ranked_symbol < > > rnode3(rc, {}); @@ -127,11 +127,11 @@ void PatternTest::testUnrankedPatternParser() { } void PatternTest::testPrefixRankedPatternParser() { - const common::ranked_symbol < > a ('a', 2); - const common::ranked_symbol < > b ('b', 1); - const common::ranked_symbol < > c ('c', 0); + const common::ranked_symbol < > a (DefaultSymbolType('a'), DefaultRankType(2)); + const common::ranked_symbol < > b (DefaultSymbolType('b'), DefaultRankType(1)); + const common::ranked_symbol < > c (DefaultSymbolType('c'), DefaultRankType(0)); - const common::ranked_symbol < > S (DefaultSymbolType { alphabet::SubtreeWildcardSymbol {} }, 0); + const common::ranked_symbol < > S (DefaultSymbolType { alphabet::SubtreeWildcardSymbol {} }, DefaultRankType(0)); const ext::set<common::ranked_symbol < >> alphabet {a, b, c, S}; ext::tree < common::ranked_symbol < > > node3(c, {}); @@ -158,11 +158,11 @@ void PatternTest::testPrefixRankedPatternParser() { } void PatternTest::testPrefixRankedBarPatternParser() { - const common::ranked_symbol < > a ('a', 2); - const common::ranked_symbol < > b ('b', 1); - const common::ranked_symbol < > c ('c', 0); + const common::ranked_symbol < > a (DefaultSymbolType('a'), DefaultRankType(2)); + const common::ranked_symbol < > b (DefaultSymbolType('b'), DefaultRankType(1)); + const common::ranked_symbol < > c (DefaultSymbolType('c'), DefaultRankType(0)); - const common::ranked_symbol < > S (DefaultSymbolType { alphabet::SubtreeWildcardSymbol {} }, 0); + const common::ranked_symbol < > S (DefaultSymbolType { alphabet::SubtreeWildcardSymbol {} }, DefaultRankType(0)); const ext::set<common::ranked_symbol < >> alphabet {a, b, c, S}; ext::tree < common::ranked_symbol < > > node3(c, {}); diff --git a/alib2data/test-src/tree/TreeTest.cpp b/alib2data/test-src/tree/TreeTest.cpp index e46b900ae65f2d9092cb23a7dd0d5066be1cfc9a..6cfe04d6788b8cb4dfe764dcb52dc0739bb60680 100644 --- a/alib2data/test-src/tree/TreeTest.cpp +++ b/alib2data/test-src/tree/TreeTest.cpp @@ -34,7 +34,7 @@ ext::tree < common::ranked_symbol < > > prefixToNode(const std::string & s, int for (int i = 0; i < r; i++) { children.push_back(prefixToNode(s, pos)); } - return ext::tree < common::ranked_symbol < > >(common::ranked_symbol < >(c, r), std::move(children)); + return ext::tree < common::ranked_symbol < > >(common::ranked_symbol < >(DefaultSymbolType(c), DefaultRankType(r)), std::move(children)); } void TreeTest::testRankedTreeParser() { @@ -49,9 +49,9 @@ void TreeTest::testRankedTreeParser() { | \-4.c(0) */ - const common::ranked_symbol < > a ('a', 2); - const common::ranked_symbol < > b ('b', 1); - const common::ranked_symbol < > c ('c', 0); + const common::ranked_symbol < > a (DefaultSymbolType('a'), DefaultRankType(2)); + const common::ranked_symbol < > b (DefaultSymbolType('b'), DefaultRankType(1)); + const common::ranked_symbol < > c (DefaultSymbolType('c'), DefaultRankType(0)); const ext::set<common::ranked_symbol < >> alphabet {a, b, c}; @@ -82,7 +82,7 @@ void TreeTest::testRankedTreeParser() { int itmp = 0; ext::tree < common::ranked_symbol < > > node = prefixToNode(s, itmp); ext::set<common::ranked_symbol < >> al; - for (unsigned i = 0; i < s.length(); i += 2) al.insert(common::ranked_symbol < >(s[i], (int) (s[i+1] - '0'))); + for (unsigned i = 0; i < s.length(); i += 2) al.insert(common::ranked_symbol < >(DefaultSymbolType(s[i]), DefaultRankType((int) (s[i+1] - '0')))); tree::RankedTree < > t(al, std::move(node)); factory::XmlDataFactory::toStdout(t); @@ -109,9 +109,9 @@ void TreeTest::testRankedTreeCompare() { | \-8.c(0) */ - const common::ranked_symbol < > a ('a', 2); - const common::ranked_symbol < > b ('b', 1); - const common::ranked_symbol < > c ('c', 0); + const common::ranked_symbol < > a (DefaultSymbolType('a'), DefaultRankType(2)); + const common::ranked_symbol < > b (DefaultSymbolType('b'), DefaultRankType(1)); + const common::ranked_symbol < > c (DefaultSymbolType('c'), DefaultRankType(0)); const ext::set<common::ranked_symbol < >> alphabet {a, b, c}; @@ -135,11 +135,11 @@ void TreeTest::testRankedTreeCompare() { } void TreeTest::testRankedTreeSymbolValidityCheck() { - const common::ranked_symbol < > a ('a', 2); - const common::ranked_symbol < > b ('b', 1); - const common::ranked_symbol < > c ('c', 0); - const common::ranked_symbol < > d ('d', 0); - const common::ranked_symbol < > e ('e', 0); + const common::ranked_symbol < > a (DefaultSymbolType('a'), DefaultRankType(2)); + const common::ranked_symbol < > b (DefaultSymbolType('b'), DefaultRankType(1)); + const common::ranked_symbol < > c (DefaultSymbolType('c'), DefaultRankType(0)); + const common::ranked_symbol < > d (DefaultSymbolType('d'), DefaultRankType(0)); + const common::ranked_symbol < > e (DefaultSymbolType('e'), DefaultRankType(0)); const ext::set<common::ranked_symbol < >> alphabet {a, b, c, e}; @@ -279,9 +279,9 @@ void TreeTest::testUnrankedTreeSymbolValidityCheck() { void TreeTest::testPrefixRankedBarParser() { const DefaultSymbolType bar{alphabet::BarSymbol{}}; - const common::ranked_symbol < > a ('a', 2); - const common::ranked_symbol < > b ('b', 1); - const common::ranked_symbol < > c ('c', 0); + const common::ranked_symbol < > a (DefaultSymbolType('a'), DefaultRankType(2)); + const common::ranked_symbol < > b (DefaultSymbolType('b'), DefaultRankType(1)); + const common::ranked_symbol < > c (DefaultSymbolType('c'), DefaultRankType(0)); const ext::set<common::ranked_symbol < >> alphabet {a, b, c}; diff --git a/alib2str/src/tree/string/common/TreeFromStringParserCommon.h b/alib2str/src/tree/string/common/TreeFromStringParserCommon.h index 48f620c2931dbbe2b93e9f1c9f1faace53fc50cd..1d340f671b50f1605bd9c95de8c2c9bdccb572f3 100644 --- a/alib2str/src/tree/string/common/TreeFromStringParserCommon.h +++ b/alib2str/src/tree/string/common/TreeFromStringParserCommon.h @@ -36,7 +36,7 @@ ext::tree < common::ranked_symbol < SymbolType, RankType > > TreeFromStringParse return ext::tree < common::ranked_symbol < SymbolType, RankType > > ( alphabet::SubtreeWildcardSymbol::instance < common::ranked_symbol < SymbolType, RankType > > ( ), { } ); } else if ( token.type == TreeFromStringLexer::TokenType::NONLINEAR_VARIABLE ) { isPattern = true; - common::ranked_symbol < SymbolType, RankType > nonlinearVariable ( SymbolType ( alphabet::NonlinearVariableSymbol < SymbolType > ( SymbolType ( token.value ) ) ), 0 ); + common::ranked_symbol < SymbolType, RankType > nonlinearVariable ( SymbolType ( alphabet::NonlinearVariableSymbol < SymbolType > ( SymbolType ( token.value ) ) ), RankType ( 0 ) ); nonlinearVariables.insert ( nonlinearVariable ); return ext::tree < common::ranked_symbol < SymbolType, RankType > > ( std::move ( nonlinearVariable ), { } ); } else { @@ -53,7 +53,7 @@ ext::tree < common::ranked_symbol < SymbolType, RankType > > TreeFromStringParse for ( unsigned i = 0; i < rank; i++ ) childs.emplace_back ( ext::tree < common::ranked_symbol < SymbolType, RankType > > ( parseRankedContent < SymbolType, RankType > ( input, isPattern, nonlinearVariables ) ) ); - return ext::tree < common::ranked_symbol < SymbolType, RankType > > ( common::ranked_symbol < SymbolType, RankType > ( std::move ( symbol ), rank ), std::move ( childs ) ); + return ext::tree < common::ranked_symbol < SymbolType, RankType > > ( common::ranked_symbol < SymbolType, RankType > ( std::move ( symbol ), RankType ( rank ) ), std::move ( childs ) ); } }