diff --git a/alib2algo/src/automaton/transform/Compaction.h b/alib2algo/src/automaton/transform/Compaction.h index 41e659185e0189f0975e45197a8550e77a92bed0..ed1efdcf5ae3941937a4180d42eee9fee632c85a 100644 --- a/alib2algo/src/automaton/transform/Compaction.h +++ b/alib2algo/src/automaton/transform/Compaction.h @@ -69,7 +69,7 @@ automaton::CompactNFA < SymbolType, StateType > Compaction::convert(const automa std::vector < SymbolType > path { symbol }; - std::range < typename std::map < std::pair < StateType, SymbolType >, StateType >::const_iterator > transitions; + ext::range < typename std::map < std::pair < StateType, SymbolType >, StateType >::const_iterator > transitions; // only 1 child and nonfinal while((transitions = automaton.getTransitionsFromState(q)).size() == 1 && automaton.getFinalStates().count(q) == 0) { const std::pair<std::pair<StateType, SymbolType>, StateType>& transition = * transitions.begin(); diff --git a/alib2algo_experimental/src/grammar/parsing/SLR1ParseTable.cpp b/alib2algo_experimental/src/grammar/parsing/SLR1ParseTable.cpp index b4ad8ae343add1071bd0251343e96f80b228d0ab..2d3aeba40efa918b310c46c501a19d08f712e794 100644 --- a/alib2algo_experimental/src/grammar/parsing/SLR1ParseTable.cpp +++ b/alib2algo_experimental/src/grammar/parsing/SLR1ParseTable.cpp @@ -31,7 +31,7 @@ LRActionTable SLR1ParseTable::getActionTable ( grammar::CFG < > originalGrammar automaton::DFA<> parsingAutomaton = LR0Parser::getAutomaton ( originalGrammar ); for ( const DefaultStateType & state : parsingAutomaton.getStates ( ) ) { LR0Items items = static_cast < const label::LR0ItemsLabel & > ( state . getData ( ) ) . getItems ( ); - std::range < std::map < std::pair < DefaultStateType, DefaultSymbolType >, DefaultStateType >::const_iterator > transitionsFromCurrentStateRange = parsingAutomaton.getTransitionsFromState ( state ); + ext::range < std::map < std::pair < DefaultStateType, DefaultSymbolType >, DefaultStateType >::const_iterator > transitionsFromCurrentStateRange = parsingAutomaton.getTransitionsFromState ( state ); std::map < std::pair < DefaultStateType, DefaultSymbolType >, DefaultStateType > transitionsFromCurrentState ( transitionsFromCurrentStateRange.begin ( ), transitionsFromCurrentStateRange.end ( ) ); for ( const LR0Items::value_type & nonterminalItems : items ) { DefaultSymbolType leftHandSide = nonterminalItems.first; @@ -73,7 +73,7 @@ LRGotoTable SLR1ParseTable::getGotoTable ( grammar::CFG < > originalGrammar ) { grammar::CFG < > augmentedGrammar = LRParser::getAugmentedGrammar ( originalGrammar ); automaton::DFA<> parsingAutomaton = LR0Parser::getAutomaton ( originalGrammar ); for ( const DefaultStateType & state : parsingAutomaton.getStates ( ) ) { - std::range < std::map < std::pair < DefaultStateType, DefaultSymbolType >, DefaultStateType >::const_iterator > transitionsFromCurrentStateRange = parsingAutomaton.getTransitionsFromState ( state ); + ext::range < std::map < std::pair < DefaultStateType, DefaultSymbolType >, DefaultStateType >::const_iterator > transitionsFromCurrentStateRange = parsingAutomaton.getTransitionsFromState ( state ); std::map < std::pair < DefaultStateType, DefaultSymbolType >, DefaultStateType > transitionsFromCurrentState ( transitionsFromCurrentStateRange.begin ( ), transitionsFromCurrentStateRange.end ( ) ); for ( const DefaultSymbolType & nonterminal : augmentedGrammar.getNonterminalAlphabet ( ) ) { std::map < std::pair<DefaultStateType, DefaultSymbolType >, DefaultStateType >::iterator transitionIterator = transitionsFromCurrentState.find ( { state, nonterminal } ); diff --git a/alib2data/src/automaton/FSM/DFA.h b/alib2data/src/automaton/FSM/DFA.h index 17ebf8fda6c0389934af4c0a66a34981cf789bdb..108e83daa99ddf7eb510ab1d6393bc3e560077bb 100644 --- a/alib2data/src/automaton/FSM/DFA.h +++ b/alib2data/src/automaton/FSM/DFA.h @@ -133,7 +133,7 @@ public: /** * @return automaton transitions from state */ - std::range < typename std::map < std::pair < StateType, SymbolType >, StateType >::const_iterator > getTransitionsFromState ( const StateType & from ) const; + ext::range < typename std::map < std::pair < StateType, SymbolType >, StateType >::const_iterator > getTransitionsFromState ( const StateType & from ) const; /** * @return automaton transitions to state @@ -281,7 +281,7 @@ const std::map < std::pair < StateType, SymbolType >, StateType > & DFA<SymbolTy }; template<class SymbolType, class StateType > -std::range < typename std::map < std::pair < StateType, SymbolType >, StateType >::const_iterator > DFA<SymbolType, StateType>::getTransitionsFromState ( const StateType & from ) const { +ext::range < typename std::map < std::pair < StateType, SymbolType >, StateType >::const_iterator > DFA<SymbolType, StateType>::getTransitionsFromState ( const StateType & from ) const { if ( !getStates ( ).count ( from ) ) throw AutomatonException ( "State \"" + ext::to_string ( from ) + "\" doesn't exist" ); typename std::map < std::pair < StateType, SymbolType >, StateType >::const_iterator lower = transitions.begin ( ); @@ -294,7 +294,7 @@ std::range < typename std::map < std::pair < StateType, SymbolType >, StateType ++ upper; } - return std::make_range ( lower, upper ); + return ext::make_range ( lower, upper ); } template<class SymbolType, class StateType > diff --git a/alib2std/src/extensions/range.hpp b/alib2std/src/extensions/range.hpp index 38dadda493b09282946c4713d02b645d2295482c..0ab3881d55fb0d56615752b82bbf3563c05d365b 100644 --- a/alib2std/src/extensions/range.hpp +++ b/alib2std/src/extensions/range.hpp @@ -11,7 +11,7 @@ #include <utility> #include <iterator> -namespace std { +namespace ext { template<typename Iterator> class range { @@ -110,7 +110,7 @@ auto make_range ( const Container & container ) { return make_range ( container.begin ( ), container.end ( ) ); } -} /* namespace std */ +} /* namespace ext */ #endif /* __RANGE_HPP_ */ diff --git a/alib2std/test-src/extensions/RangeTest.cpp b/alib2std/test-src/extensions/RangeTest.cpp index a70359d534f581e4faf32c5648afce9586eba7bc..f0f424a1b7a5df24095f4a50ece02eefe84b9e3e 100644 --- a/alib2std/test-src/extensions/RangeTest.cpp +++ b/alib2std/test-src/extensions/RangeTest.cpp @@ -15,15 +15,15 @@ void RangeTest::tearDown ( ) { void RangeTest::constructorTest ( ) { int arr[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; - std::range < int * > ra1 ( arr, arr + sizeof ( arr ) / sizeof ( * arr ) ); + ext::range < int * > ra1 ( arr, arr + sizeof ( arr ) / sizeof ( * arr ) ); std::vector < int > v1 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; - std::range < std::vector < int >::iterator > rv1 ( v1.begin ( ), v1.end ( ) ); + ext::range < std::vector < int >::iterator > rv1 ( v1.begin ( ), v1.end ( ) ); CPPUNIT_ASSERT ( ( std::equal ( ra1.begin ( ), ra1.end ( ), rv1.begin ( ), rv1.end ( ) ) ) ); - auto rv2 = std::make_range ( v1 ); + auto rv2 = ext::make_range ( v1 ); CPPUNIT_ASSERT ( ( std::equal ( rv1.begin ( ), rv1.end ( ), rv2.begin ( ), rv2.end ( ) ) ) ); } @@ -31,19 +31,19 @@ void RangeTest::constructorTest ( ) { void RangeTest::sizeTest ( ) { int arr[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; - std::range < int * > ra1 ( arr, arr + sizeof ( arr ) / sizeof ( * arr ) ); + ext::range < int * > ra1 ( arr, arr + sizeof ( arr ) / sizeof ( * arr ) ); CPPUNIT_ASSERT ( ra1.size ( ) == 10 ); std::vector < int > v1 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; - std::range < std::vector < int >::iterator > rv1 ( v1.begin ( ), v1.end ( ) ); + ext::range < std::vector < int >::iterator > rv1 ( v1.begin ( ), v1.end ( ) ); CPPUNIT_ASSERT ( rv1.size ( ) == 10 ); std::list < int > l1 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; - std::range < std::list < int >::iterator > rl1 ( l1.begin ( ), l1.end ( ) ); + ext::range < std::list < int >::iterator > rl1 ( l1.begin ( ), l1.end ( ) ); CPPUNIT_ASSERT ( rl1.size ( ) == 10 ); } @@ -51,15 +51,15 @@ void RangeTest::sizeTest ( ) { void RangeTest::splitTest ( ) { std::vector < int > v1 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; - auto r1 = std::make_range ( v1 ); + auto r1 = ext::make_range ( v1 ); std::vector < int > v2 = { 0, 1, 2 }; - auto r2 = std::make_range ( v2 ); + auto r2 = ext::make_range ( v2 ); std::vector < int > v3 = { 3, 4, 5, 6, 7, 8, 9 }; - auto r3 = std::make_range ( v3 ); + auto r3 = ext::make_range ( v3 ); auto splitted = r1.split ( 3 ); @@ -70,11 +70,11 @@ void RangeTest::splitTest ( ) { void RangeTest::sliceTest ( ) { std::vector < int > v1 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; - auto r1 = std::make_range ( v1 ); + auto r1 = ext::make_range ( v1 ); std::vector < int > v2 = { 4, 5, 6 }; - auto r2 = std::make_range ( v2 ); + auto r2 = ext::make_range ( v2 ); auto sliced = r1.slice ( 4, -3 ); diff --git a/alib2str/src/automaton/AutomatonToStringComposer.h b/alib2str/src/automaton/AutomatonToStringComposer.h index a04c076ab2703d17ee017f6ce0ef5c535641c9c2..90764b836476f48eb2446c580abe1ad8bf4ff719 100644 --- a/alib2str/src/automaton/AutomatonToStringComposer.h +++ b/alib2str/src/automaton/AutomatonToStringComposer.h @@ -51,7 +51,7 @@ public: template < class SymbolType, class StateType > void AutomatonToStringComposer::composeTransitionsFromState(std::ostream& out, const DFA < SymbolType, StateType > & automaton, const StateType & from) { - std::range < typename std::map < std::pair < StateType, SymbolType >, StateType >::const_iterator > symbolTransitionsFromState = automaton.getTransitionsFromState(from); + ext::range < typename std::map < std::pair < StateType, SymbolType >, StateType >::const_iterator > symbolTransitionsFromState = automaton.getTransitionsFromState(from); for(const SymbolType& inputSymbol : automaton.getInputAlphabet()) { if ( ! symbolTransitionsFromState.empty ( ) && symbolTransitionsFromState.front ( ).first.second == inputSymbol ) {