diff --git a/alib2algo/src/automaton/simplify/Rename.cpp b/alib2algo/src/automaton/simplify/Rename.cpp index f39fc14d2a6639bd64cc8da5095fe3821df4256e..0af82b627f1588e1fd779a6029a3d1716b4348a5 100644 --- a/alib2algo/src/automaton/simplify/Rename.cpp +++ b/alib2algo/src/automaton/simplify/Rename.cpp @@ -166,7 +166,7 @@ automaton::InputDrivenDPDA Rename::rename(const automaton::InputDrivenDPDA& pda) result.setInputAlphabet(pda.getInputAlphabet()); result.setStackAlphabet(pda.getStackAlphabet()); - for(const std::pair<alphabet::Symbol, std::pair<std::vector<alphabet::Symbol>, std::vector<alphabet::Symbol>>> operation : pda.getPushdownStoreOperations()) { + for(const std::pair<const alphabet::Symbol, std::pair<std::vector<alphabet::Symbol>, std::vector<alphabet::Symbol>>> operation : pda.getPushdownStoreOperations()) { std::vector<alphabet::Symbol> pop; for(const auto& elem : operation.second.first) { pop.push_back(alphabet::symbolFrom(renamingDataSymbol.find(elem)->second)); diff --git a/alib2algo/src/grammar/generate/CockeYoungerKasami.cpp b/alib2algo/src/grammar/generate/CockeYoungerKasami.cpp index 797b128eb7d929a365a887e7023f0378df2c3088..8dc452f077b6eb9768a63e853111913f360a01ff 100644 --- a/alib2algo/src/grammar/generate/CockeYoungerKasami.cpp +++ b/alib2algo/src/grammar/generate/CockeYoungerKasami.cpp @@ -24,7 +24,7 @@ bool CockeYoungerKasami::generate ( const grammar::CNF & grammar, const string:: data[i].resize ( stringSize - i ); for ( unsigned i = 0; i < stringSize; i++ ) - for ( const std::pair < alphabet::Symbol, std::set < std::variant < alphabet::Symbol, std::pair < alphabet::Symbol, alphabet::Symbol > > > > rule : grammar.getRules ( ) ) { + for ( const std::pair < const alphabet::Symbol, std::set < std::variant < alphabet::Symbol, std::pair < alphabet::Symbol, alphabet::Symbol > > > > rule : grammar.getRules ( ) ) { const alphabet::Symbol & lhs = rule.first; for ( const std::variant < alphabet::Symbol, std::pair < alphabet::Symbol, alphabet::Symbol > > rhs : rule.second ) @@ -46,7 +46,7 @@ bool CockeYoungerKasami::generate ( const grammar::CNF & grammar, const string:: for ( const alphabet::Symbol & verticalElement : vertical ) { for ( const alphabet::Symbol & diagonalElement : diagonal ) - for ( const std::pair < alphabet::Symbol, std::set < std::variant < alphabet::Symbol, std::pair < alphabet::Symbol, alphabet::Symbol > > > > rule : grammar.getRules ( ) ) { + for ( const std::pair < const alphabet::Symbol, std::set < std::variant < alphabet::Symbol, std::pair < alphabet::Symbol, alphabet::Symbol > > > > rule : grammar.getRules ( ) ) { const alphabet::Symbol & lhs = rule.first; for ( const std::variant < alphabet::Symbol, std::pair < alphabet::Symbol, alphabet::Symbol > > rhs : rule.second ) diff --git a/alib2algo/src/grammar/parsing/AbsorbTerminalSymbol.cpp b/alib2algo/src/grammar/parsing/AbsorbTerminalSymbol.cpp index 596daa5172e99acf3d237b9a1a0c9f28e12773f6..cde24567c3f91bd5e0e0f4b1625d1f65f0146c71 100644 --- a/alib2algo/src/grammar/parsing/AbsorbTerminalSymbol.cpp +++ b/alib2algo/src/grammar/parsing/AbsorbTerminalSymbol.cpp @@ -56,7 +56,7 @@ void AbsorbTerminalSymbol::absorbTerminalSymbol ( grammar::CFG & grammar, const handleAbsobtion ( grammar, res, terminal, nonterminals, nonterminalsPrimed ); - for ( const std::pair < alphabet::Symbol, std::set < std::vector < alphabet::Symbol > > > & rule : grammar.getRules ( ) ) { + for ( const std::pair < const alphabet::Symbol, std::set < std::vector < alphabet::Symbol > > > & rule : grammar.getRules ( ) ) { const alphabet::Symbol & lhs = rule.first; for ( const std::vector < alphabet::Symbol > & rhs : rule.second ) { diff --git a/alib2algo/src/grammar/parsing/CornerSubstitution.cpp b/alib2algo/src/grammar/parsing/CornerSubstitution.cpp index eb113f2ec98e2d2cf700f129db36535b9030731c..2717b9d44b9f67bc5291a27e6d6faffee5f45e43 100644 --- a/alib2algo/src/grammar/parsing/CornerSubstitution.cpp +++ b/alib2algo/src/grammar/parsing/CornerSubstitution.cpp @@ -21,7 +21,7 @@ void CornerSubstitution::cornerSubstitution ( grammar::CFG & grammar, const alph res.setNonterminalAlphabet ( grammar.getNonterminalAlphabet ( ) ); res.setTerminalAlphabet ( grammar.getTerminalAlphabet ( ) ); - for ( const std::pair < alphabet::Symbol, std::set < std::vector < alphabet::Symbol > > > & rule : grammar.getRules ( ) ) { + for ( const std::pair < const alphabet::Symbol, std::set < std::vector < alphabet::Symbol > > > & rule : grammar.getRules ( ) ) { const alphabet::Symbol & lhs = rule.first; for ( const std::vector < alphabet::Symbol > & rhs : rule.second ) { diff --git a/alib2algo/src/grammar/parsing/DeterministicLL1Grammar.cpp b/alib2algo/src/grammar/parsing/DeterministicLL1Grammar.cpp index 8246ae13a21c025c088dcb87ea1ac02781f02f0d..46c4428c41bac3ed4ede677d433b3d8e553fa757 100644 --- a/alib2algo/src/grammar/parsing/DeterministicLL1Grammar.cpp +++ b/alib2algo/src/grammar/parsing/DeterministicLL1Grammar.cpp @@ -34,12 +34,12 @@ grammar::CFG DeterministicLL1Grammar::convert ( const grammar::CFG & param ) { bool deterministic = true; - for ( const std::pair < std::pair < std::variant < alphabet::Symbol, string::Epsilon >, alphabet::Symbol >, std::set < std::vector < alphabet::Symbol > > > & elem : parseTable ) + for ( const std::pair < const std::pair < std::variant < alphabet::Symbol, string::Epsilon >, alphabet::Symbol >, std::set < std::vector < alphabet::Symbol > > > & elem : parseTable ) if ( elem.second.size ( ) > 1 ) if ( elem.first.first.is < string::Epsilon > ( ) ) throw exception::AlibException ( "Cant handle conflict in epsilon" ); - for ( const std::pair < std::pair < std::variant < alphabet::Symbol, string::Epsilon >, alphabet::Symbol >, std::set < std::vector < alphabet::Symbol > > > & elem : parseTable ) { + for ( const std::pair < const std::pair < std::variant < alphabet::Symbol, string::Epsilon >, alphabet::Symbol >, std::set < std::vector < alphabet::Symbol > > > & elem : parseTable ) { if ( elem.first.first.is < string::Epsilon > ( ) ) continue; const alphabet::Symbol & terminal = elem.first.first.get < alphabet::Symbol > ( ); @@ -57,7 +57,7 @@ grammar::CFG DeterministicLL1Grammar::convert ( const grammar::CFG & param ) { if ( !deterministic ) continue; - for ( const std::pair < std::pair < std::variant < alphabet::Symbol, string::Epsilon >, alphabet::Symbol >, std::set < std::vector < alphabet::Symbol > > > & elem : parseTable ) { + for ( const std::pair < const std::pair < std::variant < alphabet::Symbol, string::Epsilon >, alphabet::Symbol >, std::set < std::vector < alphabet::Symbol > > > & elem : parseTable ) { if ( elem.first.first.is < string::Epsilon > ( ) ) continue; const alphabet::Symbol & terminal = elem.first.first.get < alphabet::Symbol > ( ); diff --git a/alib2algo/src/grammar/parsing/DeterministicLL1ParseTable.cpp b/alib2algo/src/grammar/parsing/DeterministicLL1ParseTable.cpp index 6d468178a370de93adb7adf0b5e90bd4d70af989..076fd5e0b97a28134e18d673f19adb54084206f6 100644 --- a/alib2algo/src/grammar/parsing/DeterministicLL1ParseTable.cpp +++ b/alib2algo/src/grammar/parsing/DeterministicLL1ParseTable.cpp @@ -15,13 +15,13 @@ namespace parsing { std::map < std::pair < std::variant < alphabet::Symbol, string::Epsilon >, alphabet::Symbol >, std::vector < alphabet::Symbol > > DeterministicLL1ParseTable::parseTable ( const std::map < std::pair < std::variant < alphabet::Symbol, string::Epsilon >, alphabet::Symbol >, std::set < std::vector < alphabet::Symbol > > > & parseTable ) { - for ( const std::pair < std::pair < std::variant < alphabet::Symbol, string::Epsilon >, alphabet::Symbol >, std::set < std::vector < alphabet::Symbol > > > & elem : parseTable ) + for ( const std::pair < const std::pair < std::variant < alphabet::Symbol, string::Epsilon >, alphabet::Symbol >, std::set < std::vector < alphabet::Symbol > > > & elem : parseTable ) if ( elem.second.size ( ) > 1 ) throw exception::AlibException ( "Cant handle conflict in epsilon" ); std::map < std::pair < std::variant < alphabet::Symbol, string::Epsilon >, alphabet::Symbol >, std::vector < alphabet::Symbol > > res; - for ( const std::pair < std::pair < std::variant < alphabet::Symbol, string::Epsilon >, alphabet::Symbol >, std::set < std::vector < alphabet::Symbol > > > & elem : parseTable ) + for ( const std::pair < const std::pair < std::variant < alphabet::Symbol, string::Epsilon >, alphabet::Symbol >, std::set < std::vector < alphabet::Symbol > > > & elem : parseTable ) if ( elem.second.size ( ) == 1 ) res.insert ( std::make_pair ( elem.first, * elem.second.begin ( ) ) ); diff --git a/alib2algo/src/grammar/parsing/ExtractRightContext.cpp b/alib2algo/src/grammar/parsing/ExtractRightContext.cpp index 835c95a58247f513cded6a74f32a0b16c42bc73b..370542749985330367110c0dcf8a4093f5815c7b 100644 --- a/alib2algo/src/grammar/parsing/ExtractRightContext.cpp +++ b/alib2algo/src/grammar/parsing/ExtractRightContext.cpp @@ -20,7 +20,7 @@ void ExtractRightContext::extractRightContext ( grammar::CFG & grammar, const al res.setNonterminalAlphabet ( grammar.getNonterminalAlphabet ( ) ); res.setTerminalAlphabet ( grammar.getTerminalAlphabet ( ) ); - for ( const std::pair < alphabet::Symbol, std::set < std::vector < alphabet::Symbol > > > & rule : grammar.getRules ( ) ) { + for ( const std::pair < const alphabet::Symbol, std::set < std::vector < alphabet::Symbol > > > & rule : grammar.getRules ( ) ) { const alphabet::Symbol & lhs = rule.first; for ( const std::vector < alphabet::Symbol > & rhs : rule.second ) { diff --git a/alib2algo/src/grammar/parsing/First.cpp b/alib2algo/src/grammar/parsing/First.cpp index 5ceb536b9bcfb6aa99258caec3f212f46f69aaf7..b7abc26c0fd8e7e169f89ef7b8b67ede77851d63 100644 --- a/alib2algo/src/grammar/parsing/First.cpp +++ b/alib2algo/src/grammar/parsing/First.cpp @@ -68,7 +68,7 @@ std::map < alphabet::Symbol, std::set < std::variant < alphabet::Symbol, string: std::map < alphabet::Symbol, std::set < std::variant < alphabet::Symbol, string::Epsilon > > > firstOfNonterminal2 = firstOfNonterminal1; do { - for ( const std::pair < alphabet::Symbol, std::set < std::vector < alphabet::Symbol > > > & rule : rules ) + for ( const std::pair < const alphabet::Symbol, std::set < std::vector < alphabet::Symbol > > > & rule : rules ) for ( const std::vector < alphabet::Symbol > & rhs : rule.second ) { std::set < std::variant < alphabet::Symbol, string::Epsilon > > newFirst = first ( terminals, nonterminals, firstOfNonterminal1, rhs ); firstOfNonterminal2[rule.first].insert ( newFirst.begin ( ), newFirst.end ( ) ); @@ -90,7 +90,7 @@ std::map < std::vector < alphabet::Symbol >, std::set < std::variant < alphabet: std::map < std::vector < alphabet::Symbol >, std::set < std::variant < alphabet::Symbol, string::Epsilon > > > res; - for ( const std::pair < alphabet::Symbol, std::set < std::vector < alphabet::Symbol > > > & rule : grammar.getRawRules ( ) ) + for ( const std::pair < const alphabet::Symbol, std::set < std::vector < alphabet::Symbol > > > & rule : grammar.getRawRules ( ) ) for ( const std::vector < alphabet::Symbol > & rhs : rule.second ) res.insert ( make_pair ( rhs, first ( grammar.getTerminalAlphabet ( ), grammar.getNonterminalAlphabet ( ), firstNt, rhs ) ) ); diff --git a/alib2algo/src/grammar/parsing/Follow.cpp b/alib2algo/src/grammar/parsing/Follow.cpp index 258fa31c64eb4f0a9fe25c0abe1bb0a4aa3d8d65..189c3fb67031fc013db39a4f30d426a348b75cd1 100644 --- a/alib2algo/src/grammar/parsing/Follow.cpp +++ b/alib2algo/src/grammar/parsing/Follow.cpp @@ -28,7 +28,7 @@ namespace parsing { template < class T > void Follow::follow ( const T & grammar, std::map < alphabet::Symbol, std::set < std::variant < alphabet::Symbol, string::Epsilon > > > & followSet ) { - for ( const std::pair < alphabet::Symbol, std::set < std::vector < alphabet::Symbol > > > & rule : grammar.getRawRules ( ) ) { + for ( const std::pair < const alphabet::Symbol, std::set < std::vector < alphabet::Symbol > > > & rule : grammar.getRawRules ( ) ) { const alphabet::Symbol & X = rule.first; for ( const std::vector < alphabet::Symbol > & rhs : rule.second ) diff --git a/alib2algo/src/grammar/parsing/HandleFirstFollowConflict.cpp b/alib2algo/src/grammar/parsing/HandleFirstFollowConflict.cpp index 191baa592f2a050e9b716491388e03a32aac909f..30fbe98455b44f4ac5fa5bb70641517d8566e958 100644 --- a/alib2algo/src/grammar/parsing/HandleFirstFollowConflict.cpp +++ b/alib2algo/src/grammar/parsing/HandleFirstFollowConflict.cpp @@ -29,7 +29,7 @@ void HandleFirstFollowConflict::handleFirstFollowConflict ( grammar::CFG & gramm while ( true ) { std::set < alphabet::Symbol > symbolsEndingWithNonterminalOld = symbolsEndingWithNonterminal; - for ( const std::pair < alphabet::Symbol, std::set < std::vector < alphabet::Symbol > > > & rule : grammar.getRules ( ) ) { + for ( const std::pair < const alphabet::Symbol, std::set < std::vector < alphabet::Symbol > > > & rule : grammar.getRules ( ) ) { const alphabet::Symbol & lhs = rule.first; if ( Follow::follow ( grammar, lhs ).count ( terminal ) ) @@ -47,7 +47,7 @@ void HandleFirstFollowConflict::handleFirstFollowConflict ( grammar::CFG & gramm } // find whether all occurrences of a symbol in symbolsEndingWithNonterminal are followed by terminal symbol (the paremeter) - for ( const std::pair < alphabet::Symbol, std::set < std::vector < alphabet::Symbol > > > & rule : grammar.getRules ( ) ) + for ( const std::pair < const alphabet::Symbol, std::set < std::vector < alphabet::Symbol > > > & rule : grammar.getRules ( ) ) for ( const std::vector < alphabet::Symbol > & rhs : rule.second ) { if ( rhs.size ( ) > 0 ) for ( std::vector < alphabet::Symbol >::const_iterator iter = rhs.begin ( ); iter + 1 != rhs.end ( ); ++iter ) diff --git a/alib2algo/src/grammar/parsing/LL1ParseTable.cpp b/alib2algo/src/grammar/parsing/LL1ParseTable.cpp index 0f7fc6aafcc8139b5736e1a1289f951746515228..b171f3c2e5e44bef438d6127106fbd78569271e0 100644 --- a/alib2algo/src/grammar/parsing/LL1ParseTable.cpp +++ b/alib2algo/src/grammar/parsing/LL1ParseTable.cpp @@ -31,7 +31,7 @@ std::map < std::pair < std::variant < alphabet::Symbol, string::Epsilon >, alpha std::map < std::vector < alphabet::Symbol >, std::set < std::variant < alphabet::Symbol, string::Epsilon > > > first = First::first ( grammar ); std::map < alphabet::Symbol, std::set < std::variant < alphabet::Symbol, string::Epsilon > > > follow = Follow::follow ( grammar ); - for ( const std::pair < alphabet::Symbol, std::set < std::vector < alphabet::Symbol > > > & transition : grammar.getRawRules ( ) ) { + for ( const std::pair < const alphabet::Symbol, std::set < std::vector < alphabet::Symbol > > > & transition : grammar.getRawRules ( ) ) { const alphabet::Symbol & lhs = transition.first; for ( const std::vector < alphabet::Symbol > & rhs : transition.second ) { diff --git a/alib2algo/src/grammar/parsing/LeftFactorize.cpp b/alib2algo/src/grammar/parsing/LeftFactorize.cpp index b608cfce5b7b967593fe69b14bae48c2d6709c00..d13eab3287f5b13ce67d8ef1221c1d9016ada932 100644 --- a/alib2algo/src/grammar/parsing/LeftFactorize.cpp +++ b/alib2algo/src/grammar/parsing/LeftFactorize.cpp @@ -22,7 +22,7 @@ void LeftFactorize::leftFactorize ( grammar::CFG & grammar, const alphabet::Symb alphabet::Symbol primed = alphabet::createUniqueSymbol ( nonterminal, grammar.getTerminalAlphabet ( ), grammar.getNonterminalAlphabet ( ) ); res.addNonterminalSymbol ( primed ); - for ( const std::pair < alphabet::Symbol, std::set < std::vector < alphabet::Symbol > > > & rule : grammar.getRules ( ) ) { + for ( const std::pair < const alphabet::Symbol, std::set < std::vector < alphabet::Symbol > > > & rule : grammar.getRules ( ) ) { const alphabet::Symbol & lhs = rule.first; for ( const std::vector < alphabet::Symbol > & rhs : rule.second ) { diff --git a/alib2common/src/XmlApi.hpp b/alib2common/src/XmlApi.hpp index b6075eb2d0c0eac445547f82dbf8f0cd9713bb77..32fe137a810767134525c4b1e2ea3bbc41bc2757 100644 --- a/alib2common/src/XmlApi.hpp +++ b/alib2common/src/XmlApi.hpp @@ -36,10 +36,10 @@ public: } ~xmlApiInputContext ( ) { - for ( const std::pair < std::string, std::map < int, void * > > context : idToInstanceContexts ) { + for ( const std::pair < const std::string, std::map < int, void * > > context : idToInstanceContexts ) { std::function < void ( void * ) > & deleteCallback = deleteCallbacks ( ).find ( context.first )->second; - for ( const std::pair < int, void * > entry : context.second ) + for ( const std::pair < const int, void * > entry : context.second ) deleteCallback ( entry.second ); } } diff --git a/alib2common/src/cast/CastApi.hpp b/alib2common/src/cast/CastApi.hpp index aa20ddda6f7f8b5965d1af1a27e1b7bb5c252156..d199ae6d03925f1e2b4288ca1e974e28d84c55d8 100644 --- a/alib2common/src/cast/CastApi.hpp +++ b/alib2common/src/cast/CastApi.hpp @@ -65,7 +65,7 @@ private: class CastPoolBaseMap : public std::map < std::type_index, CastPoolBase * > { public: ~CastPoolBaseMap ( ) { - for ( const std::pair < std::type_index, CastPoolBase * > & item : * this ) + for ( const std::pair < const std::type_index, CastPoolBase * > & item : * this ) delete item.second; } diff --git a/alib2data/src/automaton/PDA/DPDA.cpp b/alib2data/src/automaton/PDA/DPDA.cpp index 043c549501b94aefbc1a57a8af401c3f4c245603..a8ba8c8bf797c555e2987160ee54505ad5daa75c 100644 --- a/alib2data/src/automaton/PDA/DPDA.cpp +++ b/alib2data/src/automaton/PDA/DPDA.cpp @@ -41,7 +41,7 @@ bool DPDA::removeState(const State& state) { throw AutomatonException("State \"" + (std::string) state.getName() + "\" is final state."); } - for (const std::pair<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, std::vector<alphabet::Symbol> >, std::pair<State, std::vector<alphabet::Symbol> > >& transition : transitions) { + for (const std::pair<const std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, std::vector<alphabet::Symbol> >, std::pair<State, std::vector<alphabet::Symbol> > >& transition : transitions) { if (state == std::get<0>(transition.first)) throw AutomatonException("State \"" + (std::string) state.getName() + "\" is used in transition."); if( transition.second.first == state) @@ -52,7 +52,7 @@ bool DPDA::removeState(const State& state) { } bool DPDA::removeInputSymbol(const alphabet::Symbol& symbol) { - for (const std::pair<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, std::vector<alphabet::Symbol> >, std::pair<State, std::vector<alphabet::Symbol> > >& transition : transitions) { + for (const std::pair<const std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, std::vector<alphabet::Symbol> >, std::pair<State, std::vector<alphabet::Symbol> > >& transition : transitions) { if (std::get<1>(transition.first).is<alphabet::Symbol>() && symbol == std::get<1>(transition.first).get<alphabet::Symbol>()) throw AutomatonException("Symbol \"" + (std::string) symbol + "\" is used in transition."); } @@ -61,7 +61,7 @@ bool DPDA::removeInputSymbol(const alphabet::Symbol& symbol) { } bool DPDA::removeStackSymbol(const alphabet::Symbol& symbol) { - for (const std::pair<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, std::vector<alphabet::Symbol> >, std::pair<State, std::vector<alphabet::Symbol> > >& transition : transitions) { + for (const std::pair<const std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, std::vector<alphabet::Symbol> >, std::pair<State, std::vector<alphabet::Symbol> > >& transition : transitions) { for (const alphabet::Symbol& popSymbol : std::get<2>(transition.first)) { if (symbol == popSymbol) throw AutomatonException("Stack symbol \"" + (std::string) symbol + "\" is used in transition."); @@ -117,7 +117,7 @@ bool DPDA::addTransition(State from, std::variant<string::Epsilon, alphabet::Sym } if(std::get<1>(key).is<string::Epsilon>()) { - if(std::any_of(transitions.begin(), transitions.end(), [&](const std::pair<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, std::vector<alphabet::Symbol> >, std::pair<automaton::State, std::vector<alphabet::Symbol> > > & transition) { + if(std::any_of(transitions.begin(), transitions.end(), [&](const std::pair<const std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, std::vector<alphabet::Symbol> >, std::pair<automaton::State, std::vector<alphabet::Symbol> > > & transition) { if(std::get<0>(transition.first) == std::get<0>(key)) { const std::vector<alphabet::Symbol>& alpha = std::get<2>(transition.first); const std::vector<alphabet::Symbol>& beta = std::get<2>(key); @@ -134,7 +134,7 @@ bool DPDA::addTransition(State from, std::variant<string::Epsilon, alphabet::Sym })) throw exception::AlibException("Conflicting transition"); } else { - if(std::any_of(transitions.begin(), transitions.end(), [&](const std::pair<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, std::vector<alphabet::Symbol> >, std::pair<automaton::State, std::vector<alphabet::Symbol> > > & transition) { + if(std::any_of(transitions.begin(), transitions.end(), [&](const std::pair<const std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, std::vector<alphabet::Symbol> >, std::pair<automaton::State, std::vector<alphabet::Symbol> > > & transition) { if(std::get<0>(transition.first) == std::get<0>(key) && ( std::get<1>(transition.first) == std::get<1>(key) || std::get<1>(transition.first).is<string::Epsilon>() )) { const std::vector<alphabet::Symbol>& alpha = std::get<2>(transition.first); const std::vector<alphabet::Symbol>& beta = std::get<2>(key); @@ -205,7 +205,7 @@ std::map<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, std: throw AutomatonException("State \"" + (std::string) from.getName() + "\" doesn't exist"); std::map<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, std::vector<alphabet::Symbol> >, std::pair<State, std::vector<alphabet::Symbol> > > transitionsFromState; - for (const std::pair<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, std::vector<alphabet::Symbol> >, std::pair<State, std::vector<alphabet::Symbol> > >& transition : transitions) { + for (const std::pair<const std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, std::vector<alphabet::Symbol> >, std::pair<State, std::vector<alphabet::Symbol> > >& transition : transitions) { if (std::get<0>(transition.first) == from) { transitionsFromState.insert(std::make_pair(transition.first, transition.second)); } @@ -219,7 +219,7 @@ std::map<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, std: throw AutomatonException("State \"" + (std::string) to.getName() + "\" doesn't exist"); std::map<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, std::vector<alphabet::Symbol> >, std::pair<State, std::vector<alphabet::Symbol> > > transitionsToState; - for (const std::pair<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, std::vector<alphabet::Symbol> >, std::pair<State, std::vector<alphabet::Symbol> > >& transition : transitions) { + for (const std::pair<const std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, std::vector<alphabet::Symbol> >, std::pair<State, std::vector<alphabet::Symbol> > >& transition : transitions) { if (transition.second.first == to) { transitionsToState.insert(std::make_pair(transition.first, transition.second)); } diff --git a/alib2data/src/automaton/PDA/InputDrivenDPDA.cpp b/alib2data/src/automaton/PDA/InputDrivenDPDA.cpp index 459e45a3afba2087cbd6dee6d77c849b45861943..0f4248278cc98f365b3f84005ffb8636224fa9c5 100644 --- a/alib2data/src/automaton/PDA/InputDrivenDPDA.cpp +++ b/alib2data/src/automaton/PDA/InputDrivenDPDA.cpp @@ -41,7 +41,7 @@ bool InputDrivenDPDA::removeState(const State& state) { throw AutomatonException("State \"" + (std::string) state.getName() + "\" is final state."); } - for (const std::pair<std::pair<State, alphabet::Symbol>, State>& t : transitions) { + for (const std::pair<const std::pair<State, alphabet::Symbol>, State>& t : transitions) { if (t.first.first == state || t.second == state) throw AutomatonException("State \"" + (std::string) state.getName() + "\" is used in transition."); } @@ -50,7 +50,7 @@ bool InputDrivenDPDA::removeState(const State& state) { } bool InputDrivenDPDA::removeInputSymbol(const alphabet::Symbol& symbol) { - for (const std::pair<std::pair<State, alphabet::Symbol>, State>& transition : transitions) { + for (const std::pair<const std::pair<State, alphabet::Symbol>, State>& transition : transitions) { if (transition.first.second == symbol) throw AutomatonException("Input symbol \"" + (std::string) symbol + "\" is used."); } @@ -112,7 +112,7 @@ void InputDrivenDPDA::setPushdownStoreOperations(std::map<alphabet::Symbol, std: } bool InputDrivenDPDA::clearPushdownStoreOperation(const alphabet::Symbol& input) { - for (const std::pair<std::pair<State, alphabet::Symbol>, State>& transition : transitions) { + for (const std::pair<const std::pair<State, alphabet::Symbol>, State>& transition : transitions) { if (transition.first.second == input) throw AutomatonException("Input symbol \"" + (std::string) input + "\" is used."); } @@ -176,7 +176,7 @@ std::map<std::pair<State, alphabet::Symbol>, State > InputDrivenDPDA::getTransit throw AutomatonException("State \"" + (std::string) from.getName() + "\" doesn't exist"); std::map<std::pair<State, alphabet::Symbol>, State> transitionsFromState; - for (const std::pair<std::pair<State, alphabet::Symbol>, State>& transition : transitions) { + for (const std::pair<const std::pair<State, alphabet::Symbol>, State>& transition : transitions) { if (transition.first.first == from) { transitionsFromState.insert(transition); } @@ -190,7 +190,7 @@ std::map<std::pair<State, alphabet::Symbol>, State> InputDrivenDPDA::getTransiti throw AutomatonException("State \"" + (std::string) to.getName() + "\" doesn't exist"); std::map<std::pair<State, alphabet::Symbol>, State> transitionsToState; - for (const std::pair<std::pair<State, alphabet::Symbol>, State>& transition : transitions) { + for (const std::pair<const std::pair<State, alphabet::Symbol>, State>& transition : transitions) { if (transition.second == to) { transitionsToState.insert(transition); } diff --git a/alib2data/src/automaton/PDA/InputDrivenNPDA.cpp b/alib2data/src/automaton/PDA/InputDrivenNPDA.cpp index 252db941030bcdd0d5c11dfe70766111641156c1..478b71610051c508d29504758419810193eb44cc 100644 --- a/alib2data/src/automaton/PDA/InputDrivenNPDA.cpp +++ b/alib2data/src/automaton/PDA/InputDrivenNPDA.cpp @@ -41,7 +41,7 @@ bool InputDrivenNPDA::removeState(const State& state) { throw AutomatonException("State \"" + (std::string) state.getName() + "\" is final state."); } - for (const std::pair<std::pair<State, alphabet::Symbol>, std::set<State> >& transition : transitions) { + for (const std::pair<const std::pair<State, alphabet::Symbol>, std::set<State> >& transition : transitions) { if (transition.first.first == state || transition.second.find(state) != transition.second.end()) throw AutomatonException("State \"" + (std::string) state.getName() + "\" is used in transition."); } @@ -50,7 +50,7 @@ bool InputDrivenNPDA::removeState(const State& state) { } bool InputDrivenNPDA::removeInputSymbol(const alphabet::Symbol& symbol) { - for (const std::pair<std::pair<State, alphabet::Symbol>, std::set<State> >& transition : transitions) { + for (const std::pair<const std::pair<State, alphabet::Symbol>, std::set<State> >& transition : transitions) { if (transition.first.second == symbol) throw AutomatonException("Input symbol \"" + (std::string) symbol + "\" is used."); } @@ -112,7 +112,7 @@ void InputDrivenNPDA::setPushdownStoreOperations(std::map<alphabet::Symbol, std: } bool InputDrivenNPDA::clearPushdownStoreOperation(const alphabet::Symbol& input) { - for (const std::pair<std::pair<State, alphabet::Symbol>, std::set<State> >& transition : transitions) { + for (const std::pair<const std::pair<State, alphabet::Symbol>, std::set<State> >& transition : transitions) { if (transition.first.second == input) throw AutomatonException("Input symbol \"" + (std::string) input + "\" is used."); } @@ -157,7 +157,7 @@ std::map<std::pair<State, alphabet::Symbol>, std::set<State> > InputDrivenNPDA:: throw AutomatonException("State \"" + (std::string) from.getName() + "\" doesn't exist"); std::map<std::pair<State, alphabet::Symbol>, std::set<State> > transitionsFromState; - for (const std::pair<std::pair<State, alphabet::Symbol>, std::set<State> >& transition : transitions) { + for (const std::pair<const std::pair<State, alphabet::Symbol>, std::set<State> >& transition : transitions) { if (transition.first.first == from) { transitionsFromState[transition.first].insert(transition.second.begin(), transition.second.end()); } @@ -171,7 +171,7 @@ std::map<std::pair<State, alphabet::Symbol>, std::set<State> > InputDrivenNPDA:: throw AutomatonException("State \"" + (std::string) to.getName() + "\" doesn't exist"); std::map<std::pair<State, alphabet::Symbol>, std::set<State> > transitionsToState; - for (const std::pair<std::pair<State, alphabet::Symbol>, std::set<State> >& transition : transitions) { + for (const std::pair<const std::pair<State, alphabet::Symbol>, std::set<State> >& transition : transitions) { if (transition.second.find(to) != transition.second.end()) { transitionsToState[transition.first].insert(transition.second.begin(), transition.second.end()); } @@ -181,7 +181,7 @@ std::map<std::pair<State, alphabet::Symbol>, std::set<State> > InputDrivenNPDA:: } bool InputDrivenNPDA::isDeterministic() const { - for (const std::pair<std::pair<State, alphabet::Symbol>, std::set<State> >& transition : transitions) { + for (const std::pair<const std::pair<State, alphabet::Symbol>, std::set<State> >& transition : transitions) { if (transition.second.size() != 1 || transition.second.size() != 0) { return false; } diff --git a/alib2data/src/automaton/PDA/NPDA.cpp b/alib2data/src/automaton/PDA/NPDA.cpp index ce3d3249dd1a39b9914cc3e2e18a90893ac7f42e..3b5f5449eaf8264a4af68d79f2b11002fa0ad6d0 100644 --- a/alib2data/src/automaton/PDA/NPDA.cpp +++ b/alib2data/src/automaton/PDA/NPDA.cpp @@ -41,7 +41,7 @@ bool NPDA::removeState(const State& state) { throw AutomatonException("State \"" + (std::string) state.getName() + "\" is final state."); } - for (const std::pair<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, std::vector<alphabet::Symbol> >, std::set<std::pair<State, std::vector<alphabet::Symbol> > > >& transition : transitions) { + for (const std::pair<const std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, std::vector<alphabet::Symbol> >, std::set<std::pair<State, std::vector<alphabet::Symbol> > > >& transition : transitions) { if (state == std::get<0>(transition.first)) throw AutomatonException("State \"" + (std::string) state.getName() + "\" is used in transition."); for(const std::pair<State, std::vector<alphabet::Symbol> >& target : transition.second) { @@ -54,7 +54,7 @@ bool NPDA::removeState(const State& state) { } bool NPDA::removeInputSymbol(const alphabet::Symbol& symbol) { - for (const std::pair<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, std::vector<alphabet::Symbol> >, std::set<std::pair<State, std::vector<alphabet::Symbol> > > >& transition : transitions) { + for (const std::pair<const std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, std::vector<alphabet::Symbol> >, std::set<std::pair<State, std::vector<alphabet::Symbol> > > >& transition : transitions) { if (std::get<1>(transition.first).is<alphabet::Symbol>() && symbol == std::get<1>(transition.first).get<alphabet::Symbol>()) throw AutomatonException("Symbol \"" + (std::string) symbol + "\" is used in transition."); } @@ -67,7 +67,7 @@ bool NPDA::removeStackSymbol(const alphabet::Symbol& symbol) { throw AutomatonException("Stack symbol \"" + (std::string) symbol + "\" is start symbol."); } - for (const std::pair<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, std::vector<alphabet::Symbol> >, std::set<std::pair<State, std::vector<alphabet::Symbol> > > >& transition : transitions) { + for (const std::pair<const std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, std::vector<alphabet::Symbol> >, std::set<std::pair<State, std::vector<alphabet::Symbol> > > >& transition : transitions) { for (const alphabet::Symbol& popSymbol : std::get<2>(transition.first)) { if (symbol == popSymbol) throw AutomatonException("Stack symbol \"" + (std::string) symbol + "\" is used in transition."); diff --git a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.cpp b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.cpp index c87326c1c321367f68490aa4087dad9c73392346..e89ad381a2f82673b0031c73dfdb3f7d8dcc5e6e 100644 --- a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.cpp +++ b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicDPDA.cpp @@ -41,21 +41,21 @@ bool RealTimeHeightDeterministicDPDA::removeState(const State& state) { throw AutomatonException("State \"" + (std::string) state.getName() + "\" is final state."); } - for (const std::pair<std::pair<State, std::variant<string::Epsilon, alphabet::Symbol>>, std::pair<State, alphabet::Symbol> >& callTransition : callTransitions) { + for (const std::pair<const std::pair<State, std::variant<string::Epsilon, alphabet::Symbol>>, std::pair<State, alphabet::Symbol> >& callTransition : callTransitions) { if (state == callTransition.first.first) throw AutomatonException("State \"" + (std::string) state.getName() + "\" is used in transition."); if(callTransition.second.first == state) throw AutomatonException("State \"" + (std::string) state.getName() + "\" is used in transition."); } - for (const std::pair<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, State>& returnTransition : returnTransitions) { + for (const std::pair<const std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, State>& returnTransition : returnTransitions) { if (state == std::get<0>(returnTransition.first)) throw AutomatonException("State \"" + (std::string) state.getName() + "\" is used in transition."); if(returnTransition.second == state) throw AutomatonException("State \"" + (std::string) state.getName() + "\" is used in transition."); } - for (const std::pair<std::pair<State, std::variant<string::Epsilon, alphabet::Symbol>>, State>& localTransition : localTransitions) { + for (const std::pair<const std::pair<State, std::variant<string::Epsilon, alphabet::Symbol>>, State>& localTransition : localTransitions) { if (state == localTransition.first.first) throw AutomatonException("State \"" + (std::string) state.getName() + "\" is used in transition."); if(localTransition.second == state) @@ -66,17 +66,17 @@ bool RealTimeHeightDeterministicDPDA::removeState(const State& state) { } bool RealTimeHeightDeterministicDPDA::removeInputSymbol(const alphabet::Symbol& symbol) { - for (const std::pair<std::pair<State, std::variant<string::Epsilon, alphabet::Symbol>>, std::pair<State, alphabet::Symbol> >& callTransition : callTransitions) { + for (const std::pair<const std::pair<State, std::variant<string::Epsilon, alphabet::Symbol>>, std::pair<State, alphabet::Symbol> >& callTransition : callTransitions) { if (callTransition.first.second.is<alphabet::Symbol>() && symbol == callTransition.first.second.get<alphabet::Symbol>()) throw AutomatonException("Input symbol \"" + (std::string) symbol + "\" is used in transition."); } - for (const std::pair<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, State>& returnTransition : returnTransitions) { + for (const std::pair<const std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, State>& returnTransition : returnTransitions) { if (std::get<1>(returnTransition.first).is<alphabet::Symbol>() && symbol == std::get<1>(returnTransition.first).get<alphabet::Symbol>()) throw AutomatonException("Input symbol \"" + (std::string) symbol + "\" is used in transition."); } - for (const std::pair<std::pair<State, std::variant<string::Epsilon, alphabet::Symbol>>, State>& localTransition : localTransitions) { + for (const std::pair<const std::pair<State, std::variant<string::Epsilon, alphabet::Symbol>>, State>& localTransition : localTransitions) { if (localTransition.first.second.is<alphabet::Symbol>() && symbol == localTransition.first.second.get<alphabet::Symbol>()) throw AutomatonException("Input symbol \"" + (std::string) symbol + "\" is used in transition."); } @@ -85,12 +85,12 @@ bool RealTimeHeightDeterministicDPDA::removeInputSymbol(const alphabet::Symbol& } bool RealTimeHeightDeterministicDPDA::removeStackSymbol(const alphabet::Symbol& symbol) { - for (const std::pair<std::pair<State, std::variant<string::Epsilon, alphabet::Symbol>>, std::pair<State, alphabet::Symbol> >& callTransition : callTransitions) { + for (const std::pair<const std::pair<State, std::variant<string::Epsilon, alphabet::Symbol>>, std::pair<State, alphabet::Symbol> >& callTransition : callTransitions) { if (symbol == callTransition.second.second) throw AutomatonException("Stack symbol \"" + (std::string) symbol + "\" is used in transition."); } - for (const std::pair<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, State>& returnTransition : returnTransitions) { + for (const std::pair<const std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, State>& returnTransition : returnTransitions) { if (symbol == std::get<2>(returnTransition.first)) throw AutomatonException("Stack symbol \"" + (std::string) symbol + "\" is used in transition."); } diff --git a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.cpp b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.cpp index a8224926a7b2bcdc76cb9d8e2dabb20830051922..7094310ddb29459f0c4cc873cb75a2979eec6cd7 100644 --- a/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.cpp +++ b/alib2data/src/automaton/PDA/RealTimeHeightDeterministicNPDA.cpp @@ -41,7 +41,7 @@ bool RealTimeHeightDeterministicNPDA::removeState(const State& state) { throw AutomatonException("State \"" + (std::string) state.getName() + "\" is final state."); } - for (const std::pair<std::pair<State, std::variant<string::Epsilon, alphabet::Symbol>>, std::set<std::pair<State, alphabet::Symbol> > >& callTransition : callTransitions) { + for (const std::pair<const std::pair<State, std::variant<string::Epsilon, alphabet::Symbol>>, std::set<std::pair<State, alphabet::Symbol> > >& callTransition : callTransitions) { if (state == callTransition.first.first) throw AutomatonException("State \"" + (std::string) state.getName() + "\" is used in transition."); for(const std::pair<State, alphabet::Symbol>& target : callTransition.second) { @@ -50,7 +50,7 @@ bool RealTimeHeightDeterministicNPDA::removeState(const State& state) { } } - for (const std::pair<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, std::set<State> >& returnTransition : returnTransitions) { + for (const std::pair<const std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, std::set<State> >& returnTransition : returnTransitions) { if (state == std::get<0>(returnTransition.first)) throw AutomatonException("State \"" + (std::string) state.getName() + "\" is used in transition."); for(const State& target : returnTransition.second) { @@ -59,7 +59,7 @@ bool RealTimeHeightDeterministicNPDA::removeState(const State& state) { } } - for (const std::pair<std::pair<State, std::variant<string::Epsilon, alphabet::Symbol>>, std::set<State> >& localTransition : localTransitions) { + for (const std::pair<const std::pair<State, std::variant<string::Epsilon, alphabet::Symbol>>, std::set<State> >& localTransition : localTransitions) { if (state == localTransition.first.first) throw AutomatonException("State \"" + (std::string) state.getName() + "\" is used in transition."); for(const State& target : localTransition.second) { @@ -72,17 +72,17 @@ bool RealTimeHeightDeterministicNPDA::removeState(const State& state) { } bool RealTimeHeightDeterministicNPDA::removeInputSymbol(const alphabet::Symbol& symbol) { - for (const std::pair<std::pair<State, std::variant<string::Epsilon, alphabet::Symbol>>, std::set<std::pair<State, alphabet::Symbol> > >& callTransition : callTransitions) { + for (const std::pair<const std::pair<State, std::variant<string::Epsilon, alphabet::Symbol>>, std::set<std::pair<State, alphabet::Symbol> > >& callTransition : callTransitions) { if (callTransition.first.second.is<alphabet::Symbol>() && symbol == callTransition.first.second.get<alphabet::Symbol>()) throw AutomatonException("Input symbol \"" + (std::string) symbol + "\" is used in transition."); } - for (const std::pair<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, std::set<State> >& returnTransition : returnTransitions) { + for (const std::pair<const std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, std::set<State> >& returnTransition : returnTransitions) { if (std::get<1>(returnTransition.first).is<alphabet::Symbol>() && symbol == std::get<1>(returnTransition.first).get<alphabet::Symbol>()) throw AutomatonException("Input symbol \"" + (std::string) symbol + "\" is used in transition."); } - for (const std::pair<std::pair<State, std::variant<string::Epsilon, alphabet::Symbol>>, std::set<State> >& localTransition : localTransitions) { + for (const std::pair<const std::pair<State, std::variant<string::Epsilon, alphabet::Symbol>>, std::set<State> >& localTransition : localTransitions) { if (localTransition.first.second.is<alphabet::Symbol>() && symbol == localTransition.first.second.get<alphabet::Symbol>()) throw AutomatonException("Input symbol \"" + (std::string) symbol + "\" is used in transition."); } @@ -91,14 +91,14 @@ bool RealTimeHeightDeterministicNPDA::removeInputSymbol(const alphabet::Symbol& } bool RealTimeHeightDeterministicNPDA::removeStackSymbol(const alphabet::Symbol& symbol) { - for (const std::pair<std::pair<State, std::variant<string::Epsilon, alphabet::Symbol>>, std::set<std::pair<State, alphabet::Symbol> > >& callTransition : callTransitions) { + for (const std::pair<const std::pair<State, std::variant<string::Epsilon, alphabet::Symbol>>, std::set<std::pair<State, alphabet::Symbol> > >& callTransition : callTransitions) { for(const std::pair<State, alphabet::Symbol>& to : callTransition.second) { if (symbol == to.second) throw AutomatonException("Stack symbol \"" + (std::string) symbol + "\" is used in transition."); } } - for (const std::pair<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, std::set<State> >& returnTransition : returnTransitions) { + for (const std::pair<const std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, std::set<State> >& returnTransition : returnTransitions) { if (symbol == std::get<2>(returnTransition.first)) throw AutomatonException("Stack symbol \"" + (std::string) symbol + "\" is used in transition."); } diff --git a/alib2data/src/automaton/PDA/SinglePopDPDA.cpp b/alib2data/src/automaton/PDA/SinglePopDPDA.cpp index 5b25192b2776cb6ddb1831be6252e7bf7fa99557..377776e802ab71babd9887a443315cca550408a4 100644 --- a/alib2data/src/automaton/PDA/SinglePopDPDA.cpp +++ b/alib2data/src/automaton/PDA/SinglePopDPDA.cpp @@ -41,7 +41,7 @@ bool SinglePopDPDA::removeState(const State& state) { throw AutomatonException("State \"" + (std::string) state.getName() + "\" is final state."); } - for (const std::pair<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, std::pair<State, std::vector<alphabet::Symbol> > >& transition : transitions) { + for (const std::pair<const std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, std::pair<State, std::vector<alphabet::Symbol> > >& transition : transitions) { if (state == std::get<0>(transition.first)) throw AutomatonException("State \"" + (std::string) state.getName() + "\" is used in transition."); if(transition.second.first == state) @@ -52,7 +52,7 @@ bool SinglePopDPDA::removeState(const State& state) { } bool SinglePopDPDA::removeInputSymbol(const alphabet::Symbol& symbol) { - for (const std::pair<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, std::pair<State, std::vector<alphabet::Symbol> > >& transition : transitions) { + for (const std::pair<const std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, std::pair<State, std::vector<alphabet::Symbol> > >& transition : transitions) { if (std::get<1>(transition.first).is<alphabet::Symbol>() && symbol == std::get<1>(transition.first).get<alphabet::Symbol>()) throw AutomatonException("Symbol \"" + (std::string) symbol + "\" is used in transition."); } @@ -61,7 +61,7 @@ bool SinglePopDPDA::removeInputSymbol(const alphabet::Symbol& symbol) { } bool SinglePopDPDA::removeStackSymbol(const alphabet::Symbol& symbol) { - for (const std::pair<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, std::pair<State, std::vector<alphabet::Symbol> > >& transition : transitions) { + for (const std::pair<const std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, std::pair<State, std::vector<alphabet::Symbol> > >& transition : transitions) { if (symbol == std::get<2>(transition.first)) throw AutomatonException("Stack symbol \"" + (std::string) symbol + "\" is used in transition."); diff --git a/alib2data/src/automaton/PDA/SinglePopNPDA.cpp b/alib2data/src/automaton/PDA/SinglePopNPDA.cpp index 69c2ad96cc927a5c86fb7029250f249519a29075..4e9e167eb455a4d986dca102191b70f1b1f85bc1 100644 --- a/alib2data/src/automaton/PDA/SinglePopNPDA.cpp +++ b/alib2data/src/automaton/PDA/SinglePopNPDA.cpp @@ -40,7 +40,7 @@ bool SinglePopNPDA::removeState(const State& state) { throw AutomatonException("State \"" + (std::string) state.getName() + "\" is final state."); } - for (const std::pair<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, std::set<std::pair<State, std::vector<alphabet::Symbol> > > >& transition : transitions) { + for (const std::pair<const std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, std::set<std::pair<State, std::vector<alphabet::Symbol> > > >& transition : transitions) { if (state == std::get<0>(transition.first)) throw AutomatonException("State \"" + (std::string) state.getName() + "\" is used in transition."); for(const std::pair<State, std::vector<alphabet::Symbol> >& target : transition.second) { @@ -53,7 +53,7 @@ bool SinglePopNPDA::removeState(const State& state) { } bool SinglePopNPDA::removeInputSymbol(const alphabet::Symbol& symbol) { - for (const std::pair<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, std::set<std::pair<State, std::vector<alphabet::Symbol> > > >& transition : transitions) { + for (const std::pair<const std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, std::set<std::pair<State, std::vector<alphabet::Symbol> > > >& transition : transitions) { if (std::get<1>(transition.first).is<alphabet::Symbol>() && symbol == std::get<1>(transition.first).get<alphabet::Symbol>()) throw AutomatonException("Symbol \"" + (std::string) symbol + "\" is used in transition."); } @@ -66,7 +66,7 @@ bool SinglePopNPDA::removeStackSymbol(const alphabet::Symbol& symbol) { throw AutomatonException("Stack symbol \"" + (std::string) symbol + "\" is start symbol."); } - for (const std::pair<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, std::set<std::pair<State, std::vector<alphabet::Symbol> > > >& transition : transitions) { + for (const std::pair<const std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol>, std::set<std::pair<State, std::vector<alphabet::Symbol> > > >& transition : transitions) { if (symbol == std::get<2>(transition.first)) throw AutomatonException("Stack symbol \"" + (std::string) symbol + "\" is used in transition."); @@ -121,7 +121,7 @@ bool SinglePopNPDA::addTransition(State from, alphabet::Symbol pop, State to, st bool SinglePopNPDA::removeTransition(const State& from, const std::variant<string::Epsilon, alphabet::Symbol>& input, const alphabet::Symbol& pop, const State& to, const std::vector<alphabet::Symbol>& push) { std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, alphabet::Symbol> key(from, input, pop); std::pair<automaton::State, std::vector<alphabet::Symbol> > value = std::make_pair(to, push); - + return transitions[key].erase(value); } diff --git a/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.cpp b/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.cpp index 5bc11b7d4c56bb52e79f72e35147325d440c2474..4061095b9224232b153ae36e8bd1b3d301f56080 100644 --- a/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.cpp +++ b/alib2data/src/automaton/PDA/VisiblyPushdownDPDA.cpp @@ -40,21 +40,21 @@ bool VisiblyPushdownDPDA::removeState(const State& state) { throw AutomatonException("State \"" + (std::string) state.getName() + "\" is final state."); } - for (const std::pair<std::pair<State, alphabet::Symbol>, std::pair<State, alphabet::Symbol> >& callTransition : callTransitions) { + for (const std::pair<const std::pair<State, alphabet::Symbol>, std::pair<State, alphabet::Symbol> >& callTransition : callTransitions) { if (state == callTransition.first.first) throw AutomatonException("State \"" + (std::string) state.getName() + "\" is used in transition."); if(callTransition.second.first == state) throw AutomatonException("State \"" + (std::string) state.getName() + "\" is used in transition."); } - for (const std::pair<std::tuple<State, alphabet::Symbol, alphabet::Symbol>, State>& returnTransition : returnTransitions) { + for (const std::pair<const std::tuple<State, alphabet::Symbol, alphabet::Symbol>, State>& returnTransition : returnTransitions) { if (state == std::get<0>(returnTransition.first)) throw AutomatonException("State \"" + (std::string) state.getName() + "\" is used in transition."); if(returnTransition.second == state) throw AutomatonException("State \"" + (std::string) state.getName() + "\" is used in transition."); } - for (const std::pair<std::pair<State, alphabet::Symbol>, State>& localTransition : localTransitions) { + for (const std::pair<const std::pair<State, alphabet::Symbol>, State>& localTransition : localTransitions) { if (state == localTransition.first.first) throw AutomatonException("State \"" + (std::string) state.getName() + "\" is used in transition."); if(localTransition.second == state) @@ -65,17 +65,17 @@ bool VisiblyPushdownDPDA::removeState(const State& state) { } bool VisiblyPushdownDPDA::removeInputSymbol(const alphabet::Symbol& symbol) { - for (const std::pair<std::pair<State, alphabet::Symbol>, std::pair<State, alphabet::Symbol> >& callTransition : callTransitions) { + for (const std::pair<const std::pair<State, alphabet::Symbol>, std::pair<State, alphabet::Symbol> >& callTransition : callTransitions) { if (symbol == callTransition.first.second) throw AutomatonException("Input symbol \"" + (std::string) symbol + "\" is used in transition."); } - for (const std::pair<std::tuple<State, alphabet::Symbol, alphabet::Symbol>, State>& returnTransition : returnTransitions) { + for (const std::pair<const std::tuple<State, alphabet::Symbol, alphabet::Symbol>, State>& returnTransition : returnTransitions) { if (symbol == std::get<1>(returnTransition.first)) throw AutomatonException("Input symbol \"" + (std::string) symbol + "\" is used in transition."); } - for (const std::pair<std::pair<State, alphabet::Symbol>, State>& localTransition : localTransitions) { + for (const std::pair<const std::pair<State, alphabet::Symbol>, State>& localTransition : localTransitions) { if (symbol == localTransition.first.second) throw AutomatonException("Input symbol \"" + (std::string) symbol + "\" is used in transition."); } @@ -84,12 +84,12 @@ bool VisiblyPushdownDPDA::removeInputSymbol(const alphabet::Symbol& symbol) { } bool VisiblyPushdownDPDA::removeStackSymbol(const alphabet::Symbol& symbol) { - for (const std::pair<std::pair<State, alphabet::Symbol>, std::pair<State, alphabet::Symbol> >& callTransition : callTransitions) { + for (const std::pair<const std::pair<State, alphabet::Symbol>, std::pair<State, alphabet::Symbol> >& callTransition : callTransitions) { if (symbol == callTransition.second.second) throw AutomatonException("Stack symbol \"" + (std::string) symbol + "\" is used in transition."); } - for (const std::pair<std::tuple<State, alphabet::Symbol, alphabet::Symbol>, State>& returnTransition : returnTransitions) { + for (const std::pair<const std::tuple<State, alphabet::Symbol, alphabet::Symbol>, State>& returnTransition : returnTransitions) { if (symbol == std::get<2>(returnTransition.first)) throw AutomatonException("Stack symbol \"" + (std::string) symbol + "\" is used in transition."); } diff --git a/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.cpp b/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.cpp index 947032c8298bad913b9458ac496c1563405a6d8c..dd7bcb9be5819acc9328cced2d6f5c99d7e0b5e5 100644 --- a/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.cpp +++ b/alib2data/src/automaton/PDA/VisiblyPushdownNPDA.cpp @@ -40,7 +40,7 @@ bool VisiblyPushdownNPDA::removeState(const State& state) { throw AutomatonException("State \"" + (std::string) state.getName() + "\" is final state."); } - for (const std::pair<std::pair<State, alphabet::Symbol>, std::set<std::pair<State, alphabet::Symbol> > >& callTransition : callTransitions) { + for (const std::pair<const std::pair<State, alphabet::Symbol>, std::set<std::pair<State, alphabet::Symbol> > >& callTransition : callTransitions) { if (state == callTransition.first.first) throw AutomatonException("State \"" + (std::string) state.getName() + "\" is used in transition."); for(const std::pair<State, alphabet::Symbol>& target : callTransition.second) { @@ -49,7 +49,7 @@ bool VisiblyPushdownNPDA::removeState(const State& state) { } } - for (const std::pair<std::tuple<State, alphabet::Symbol, alphabet::Symbol>, std::set<State> >& returnTransition : returnTransitions) { + for (const std::pair<const std::tuple<State, alphabet::Symbol, alphabet::Symbol>, std::set<State> >& returnTransition : returnTransitions) { if (state == std::get<0>(returnTransition.first)) throw AutomatonException("State \"" + (std::string) state.getName() + "\" is used in transition."); for(const State& target : returnTransition.second) { @@ -58,7 +58,7 @@ bool VisiblyPushdownNPDA::removeState(const State& state) { } } - for (const std::pair<std::pair<State, alphabet::Symbol>, std::set<State> >& localTransition : localTransitions) { + for (const std::pair<const std::pair<State, alphabet::Symbol>, std::set<State> >& localTransition : localTransitions) { if (state == localTransition.first.first) throw AutomatonException("State \"" + (std::string) state.getName() + "\" is used in transition."); for(const State& target : localTransition.second) { @@ -71,17 +71,17 @@ bool VisiblyPushdownNPDA::removeState(const State& state) { } bool VisiblyPushdownNPDA::removeInputSymbol(const alphabet::Symbol& symbol) { - for (const std::pair<std::pair<State, alphabet::Symbol>, std::set<std::pair<State, alphabet::Symbol> > >& callTransition : callTransitions) { + for (const std::pair<const std::pair<State, alphabet::Symbol>, std::set<std::pair<State, alphabet::Symbol> > >& callTransition : callTransitions) { if (symbol == callTransition.first.second) throw AutomatonException("Input symbol \"" + (std::string) symbol + "\" is used in transition."); } - for (const std::pair<std::tuple<State, alphabet::Symbol, alphabet::Symbol>, std::set<State> >& returnTransition : returnTransitions) { + for (const std::pair<const std::tuple<State, alphabet::Symbol, alphabet::Symbol>, std::set<State> >& returnTransition : returnTransitions) { if (symbol == std::get<1>(returnTransition.first)) throw AutomatonException("Input symbol \"" + (std::string) symbol + "\" is used in transition."); } - for (const std::pair<std::pair<State, alphabet::Symbol>, std::set<State> >& localTransition : localTransitions) { + for (const std::pair<const std::pair<State, alphabet::Symbol>, std::set<State> >& localTransition : localTransitions) { if (symbol == localTransition.first.second) throw AutomatonException("Input symbol \"" + (std::string) symbol + "\" is used in transition."); } @@ -90,14 +90,14 @@ bool VisiblyPushdownNPDA::removeInputSymbol(const alphabet::Symbol& symbol) { } bool VisiblyPushdownNPDA::removeStackSymbol(const alphabet::Symbol& symbol) { - for (const std::pair<std::pair<State, alphabet::Symbol>, std::set<std::pair<State, alphabet::Symbol> > >& callTransition : callTransitions) { + for (const std::pair<const std::pair<State, alphabet::Symbol>, std::set<std::pair<State, alphabet::Symbol> > >& callTransition : callTransitions) { for(const std::pair<State, alphabet::Symbol>& to : callTransition.second) { if (symbol == to.second) throw AutomatonException("Stack symbol \"" + (std::string) symbol + "\" is used in transition."); } } - for (const std::pair<std::tuple<State, alphabet::Symbol, alphabet::Symbol>, std::set<State> >& returnTransition : returnTransitions) { + for (const std::pair<const std::tuple<State, alphabet::Symbol, alphabet::Symbol>, std::set<State> >& returnTransition : returnTransitions) { if (symbol == std::get<2>(returnTransition.first)) throw AutomatonException("Stack symbol \"" + (std::string) symbol + "\" is used in transition."); } diff --git a/alib2data/src/automaton/TA/DFTA.cpp b/alib2data/src/automaton/TA/DFTA.cpp index a22ace81f323a1c6b3c7043ef808b252d28a4875..91029cc875cd80c17641ea63f5cbf0bfb6e0baf8 100644 --- a/alib2data/src/automaton/TA/DFTA.cpp +++ b/alib2data/src/automaton/TA/DFTA.cpp @@ -37,7 +37,7 @@ bool DFTA::removeState(const State& state) { } AutomatonException ex ("State \"" + (std::string) state.getName() + "\" is used in transition."); - for (const std::pair<std::pair<alphabet::RankedSymbol, std::vector<State> >, State>& t : transitions) { + for (const std::pair<const std::pair<alphabet::RankedSymbol, std::vector<State> >, State>& t : transitions) { const std::vector<State>& states = t . first.second; for (const State& it : states) { if (it == state) throw ex; @@ -49,7 +49,7 @@ bool DFTA::removeState(const State& state) { } bool DFTA::removeInputSymbol(const alphabet::RankedSymbol& symbol) { - for (const std::pair<std::pair<alphabet::RankedSymbol, std::vector<State> >, State>& t : transitions) { + for (const std::pair<const std::pair<alphabet::RankedSymbol, std::vector<State> >, State>& t : transitions) { if (t . first.first == symbol) throw AutomatonException("Input symbol \"" + (std::string) symbol + "\" is used."); } diff --git a/alib2data/src/automaton/TA/NFTA.cpp b/alib2data/src/automaton/TA/NFTA.cpp index eaf4b4b6e6985f81250da72b7db04ac89a0c11a8..6bc2a5728019e0a9b82ee35f80294dc274a0ed83 100644 --- a/alib2data/src/automaton/TA/NFTA.cpp +++ b/alib2data/src/automaton/TA/NFTA.cpp @@ -46,7 +46,7 @@ bool NFTA::removeState(const State& state) { } AutomatonException ex ("State \"" + (std::string) state.getName() + "\" is used in transition."); - for (const std::pair<std::pair<alphabet::RankedSymbol, std::vector<State> >, std::set<State> >& t : transitions) { + for (const std::pair<const std::pair<alphabet::RankedSymbol, std::vector<State> >, std::set<State> >& t : transitions) { const std::vector<State>& states = t . first.second; for (const State& it : states) { if (it == state) throw ex; @@ -58,7 +58,7 @@ bool NFTA::removeState(const State& state) { } bool NFTA::removeInputSymbol(const alphabet::RankedSymbol& symbol) { - for (const std::pair<std::pair<alphabet::RankedSymbol, std::vector<State> >, std::set<State> >& t : transitions) { + for (const std::pair<const std::pair<alphabet::RankedSymbol, std::vector<State> >, std::set<State> >& t : transitions) { if (t . first.first == symbol) throw AutomatonException("Input symbol \"" + (std::string) symbol + "\" is used."); } @@ -92,7 +92,7 @@ bool NFTA::removeTransition(const alphabet::RankedSymbol symbol, const std::vect } bool NFTA::isDeterministic() const { - for (const std::pair<std::pair<alphabet::RankedSymbol, std::vector<State> >, std::set<State> >& t : transitions) { + for (const std::pair<const std::pair<alphabet::RankedSymbol, std::vector<State> >, std::set<State> >& t : transitions) { if (t . second.size() != 1 || t . second.size() != 0) { return false; } diff --git a/alib2data/src/automaton/TM/OneTapeDTM.cpp b/alib2data/src/automaton/TM/OneTapeDTM.cpp index fe03a222c440f026027335cbf15f35ee654ecaa3..db775b2427a28e18e2be4dce1a626749b403c7db 100644 --- a/alib2data/src/automaton/TM/OneTapeDTM.cpp +++ b/alib2data/src/automaton/TM/OneTapeDTM.cpp @@ -39,7 +39,7 @@ bool OneTapeDTM::removeState(const State& state) { throw AutomatonException("State \"" + (std::string) state.getName() + "\" is final state."); } - for (const std::pair<std::pair<State, alphabet::Symbol>, std::tuple<State, alphabet::Symbol, Shift> >& transition : transitions) { + for (const std::pair<const std::pair<State, alphabet::Symbol>, std::tuple<State, alphabet::Symbol, Shift> >& transition : transitions) { if (state == transition.first.first || state == std::get<0>(transition.second)) throw AutomatonException("State \"" + (std::string) state.getName() + "\" is used in a transition."); } @@ -56,7 +56,7 @@ bool OneTapeDTM::removeTapeSymbol(const alphabet::Symbol& symbol) { throw AutomatonException("Tape symbol \"" + (std::string) symbol + "\" is in input alphabet."); } - for (const std::pair<std::pair<State, alphabet::Symbol>, std::tuple<State, alphabet::Symbol, Shift> >& transition : transitions) { + for (const std::pair<const std::pair<State, alphabet::Symbol>, std::tuple<State, alphabet::Symbol, Shift> >& transition : transitions) { if (symbol == transition.first.second || symbol == std::get<1>(transition.second)) throw AutomatonException("Tape symbol \"" + (std::string) symbol + "\" is used in transition."); } diff --git a/alib2data/src/container/ObjectsMap.h b/alib2data/src/container/ObjectsMap.h index ee35c546b7b191d418fffb7a16d5de32ca3f00b5..7a07f24a4c4155b722abe767cfd0cb41475ac308 100644 --- a/alib2data/src/container/ObjectsMap.h +++ b/alib2data/src/container/ObjectsMap.h @@ -72,7 +72,7 @@ template < class T, class R > void ObjectsMap::compose ( std::deque < sax::Token > & out, const std::map < T, R > & input ) { out.emplace_back ( ObjectsMap::XML_TAG_NAME, sax::Token::TokenType::START_ELEMENT ); - for ( const std::pair < T, R > & item : input ) + for ( const std::pair < const T, R > & item : input ) alib::xmlApi < std::pair < T, R > >::compose ( out, item ); out.emplace_back ( ObjectsMap::XML_TAG_NAME, sax::Token::TokenType::END_ELEMENT ); diff --git a/alib2data/src/grammar/ContextFree/CFG.cpp b/alib2data/src/grammar/ContextFree/CFG.cpp index 182ee502b628de941ad699c047cdba6237b91607..56f5330cf069229b20e34bf42873e2390a3798b9 100644 --- a/alib2data/src/grammar/ContextFree/CFG.cpp +++ b/alib2data/src/grammar/ContextFree/CFG.cpp @@ -32,7 +32,7 @@ CFG::CFG(std::set<alphabet::Symbol> nonterminalAlphabet, std::set<alphabet::Symb } CFG::CFG( const EpsilonFreeCFG & other ) : CFG(other.getNonterminalAlphabet(), other.getTerminalAlphabet(), other.getInitialSymbol()) { - for(const std::pair<alphabet::Symbol, std::set<std::vector<alphabet::Symbol>>> & rule : other.getRules() ) { + for(const std::pair<const alphabet::Symbol, std::set<std::vector<alphabet::Symbol>>> & rule : other.getRules() ) { const alphabet::Symbol & lhs = rule.first; for(const std::vector<alphabet::Symbol>& rhs : rule.second) { addRule(lhs, rhs); @@ -49,7 +49,7 @@ GrammarBase* CFG::plunder() && { } bool CFG::removeTerminalSymbol(const alphabet::Symbol& symbol) { - for(const std::pair<alphabet::Symbol, std::set<std::vector<alphabet::Symbol>>>& rule : rules) { + for(const std::pair<const alphabet::Symbol, std::set<std::vector<alphabet::Symbol>>>& rule : rules) { for(const std::vector<alphabet::Symbol>& rhs : rule.second) if(std::find(rhs.begin(), rhs.end(), symbol) != rhs.end()) throw GrammarException("Symbol \"" + (std::string) symbol + "\" is used in rule."); @@ -59,7 +59,7 @@ bool CFG::removeTerminalSymbol(const alphabet::Symbol& symbol) { } bool CFG::removeNonterminalSymbol(const alphabet::Symbol& symbol) { - for(const std::pair<alphabet::Symbol, std::set<std::vector<alphabet::Symbol>>>& rule : rules) { + for(const std::pair<const alphabet::Symbol, std::set<std::vector<alphabet::Symbol>>>& rule : rules) { if(rule.first == symbol) throw GrammarException("Symbol \"" + (std::string) symbol + "\" is used in rule."); diff --git a/alib2data/src/grammar/ContextFree/CNF.cpp b/alib2data/src/grammar/ContextFree/CNF.cpp index ef3a78fbd611fca7d6dc234016724f3610e66c12..b4f8c3f436efef431cc7ea888b289e506f09b4c5 100644 --- a/alib2data/src/grammar/ContextFree/CNF.cpp +++ b/alib2data/src/grammar/ContextFree/CNF.cpp @@ -39,7 +39,7 @@ GrammarBase* CNF::plunder() && { } bool CNF::removeTerminalSymbol(const alphabet::Symbol& symbol) { - for(const std::pair<alphabet::Symbol, std::set<std::variant<alphabet::Symbol, std::pair<alphabet::Symbol, alphabet::Symbol>>>>& rule : rules) { + for(const std::pair<const alphabet::Symbol, std::set<std::variant<alphabet::Symbol, std::pair<alphabet::Symbol, alphabet::Symbol>>>>& rule : rules) { for(const std::variant<alphabet::Symbol, std::pair<alphabet::Symbol, alphabet::Symbol>>& rhs : rule.second) { if((rhs.is<alphabet::Symbol>() && rhs.get<alphabet::Symbol>() == symbol) || (rhs.get<std::pair<alphabet::Symbol, alphabet::Symbol>>().first == symbol)) throw GrammarException("Symbol \"" + (std::string) symbol + "\" is used in rule."); @@ -50,7 +50,7 @@ bool CNF::removeTerminalSymbol(const alphabet::Symbol& symbol) { } bool CNF::removeNonterminalSymbol(const alphabet::Symbol& symbol) { - for(const std::pair<alphabet::Symbol, std::set<std::variant<alphabet::Symbol, std::pair<alphabet::Symbol, alphabet::Symbol>>>>& rule : rules) { + for(const std::pair<const alphabet::Symbol, std::set<std::variant<alphabet::Symbol, std::pair<alphabet::Symbol, alphabet::Symbol>>>>& rule : rules) { if(rule.first == symbol) throw GrammarException("Symbol \"" + (std::string) symbol + "\" is used in rule."); diff --git a/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.cpp b/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.cpp index 3bdf501495d40a8f885883708e127094d28f9f49..660810a694605ba6b58b91cefaccd71287b2aa45 100644 --- a/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.cpp +++ b/alib2data/src/grammar/ContextFree/EpsilonFreeCFG.cpp @@ -39,7 +39,7 @@ GrammarBase* EpsilonFreeCFG::plunder() && { } bool EpsilonFreeCFG::removeTerminalSymbol(const alphabet::Symbol& symbol) { - for(const std::pair<alphabet::Symbol, std::set<std::vector<alphabet::Symbol>>>& rule : rules) { + for(const std::pair<const alphabet::Symbol, std::set<std::vector<alphabet::Symbol>>>& rule : rules) { for(const std::vector<alphabet::Symbol>& rhs : rule.second) if(std::find(rhs.begin(), rhs.end(), symbol) != rhs.end()) throw GrammarException("Symbol \"" + (std::string) symbol + "\" is used in rule."); @@ -49,7 +49,7 @@ bool EpsilonFreeCFG::removeTerminalSymbol(const alphabet::Symbol& symbol) { } bool EpsilonFreeCFG::removeNonterminalSymbol(const alphabet::Symbol& symbol) { - for(const std::pair<alphabet::Symbol, std::set<std::vector<alphabet::Symbol>>>& rule : rules) { + for(const std::pair<const alphabet::Symbol, std::set<std::vector<alphabet::Symbol>>>& rule : rules) { if(rule.first == symbol) throw GrammarException("Symbol \"" + (std::string) symbol + "\" is used in rule."); diff --git a/alib2data/src/grammar/ContextFree/GNF.cpp b/alib2data/src/grammar/ContextFree/GNF.cpp index f1d4562f0719482dedf5aca809e7dfce6d650350..046a08e22a84add26592a15ce8ea2e9e02cb1847 100644 --- a/alib2data/src/grammar/ContextFree/GNF.cpp +++ b/alib2data/src/grammar/ContextFree/GNF.cpp @@ -39,7 +39,7 @@ GrammarBase* GNF::plunder() && { } bool GNF::removeTerminalSymbol(const alphabet::Symbol& symbol) { - for(const std::pair<alphabet::Symbol, std::set<std::pair<alphabet::Symbol, std::vector<alphabet::Symbol> >> >& rule : rules) { + for(const std::pair<const alphabet::Symbol, std::set<std::pair<alphabet::Symbol, std::vector<alphabet::Symbol> >> >& rule : rules) { for(const std::pair<alphabet::Symbol, std::vector<alphabet::Symbol> >& rhs : rule.second) if(rhs.first == symbol) throw GrammarException("Symbol \"" + (std::string) symbol + "\" is used in rule."); @@ -49,7 +49,7 @@ bool GNF::removeTerminalSymbol(const alphabet::Symbol& symbol) { } bool GNF::removeNonterminalSymbol(const alphabet::Symbol& symbol) { - for(const std::pair<alphabet::Symbol, std::set<std::pair<alphabet::Symbol, std::vector<alphabet::Symbol> >> >& rule : rules) { + for(const std::pair<const alphabet::Symbol, std::set<std::pair<alphabet::Symbol, std::vector<alphabet::Symbol> >> >& rule : rules) { if(rule.first == symbol) throw GrammarException("Symbol \"" + (std::string) symbol + "\" is used in rule."); diff --git a/alib2data/src/grammar/ContextFree/LG.cpp b/alib2data/src/grammar/ContextFree/LG.cpp index 2a000a25d26cf9e714827aafea2f5f4c5968aebd..51d993156d93f40da671efddd7716566f687b12a 100644 --- a/alib2data/src/grammar/ContextFree/LG.cpp +++ b/alib2data/src/grammar/ContextFree/LG.cpp @@ -39,7 +39,7 @@ GrammarBase* LG::plunder() && { } bool LG::removeTerminalSymbol(const alphabet::Symbol& symbol) { - for(const std::pair<alphabet::Symbol, std::set<std::variant<std::vector<alphabet::Symbol>, std::tuple<std::vector<alphabet::Symbol>, alphabet::Symbol, std::vector<alphabet::Symbol>> >> >& rule : rules) { + for(const std::pair<const alphabet::Symbol, std::set<std::variant<std::vector<alphabet::Symbol>, std::tuple<std::vector<alphabet::Symbol>, alphabet::Symbol, std::vector<alphabet::Symbol>> >> >& rule : rules) { for(const std::variant<std::vector<alphabet::Symbol>, std::tuple<std::vector<alphabet::Symbol>, alphabet::Symbol, std::vector<alphabet::Symbol>> >& rhsTmp : rule.second) if(rhsTmp.is<std::vector<alphabet::Symbol>>()) { const std::vector<alphabet::Symbol>& rhs = rhsTmp.get<std::vector<alphabet::Symbol>>(); @@ -63,7 +63,7 @@ bool LG::removeTerminalSymbol(const alphabet::Symbol& symbol) { } bool LG::removeNonterminalSymbol(const alphabet::Symbol& symbol) { - for(const std::pair<alphabet::Symbol, std::set<std::variant<std::vector<alphabet::Symbol>, std::tuple<std::vector<alphabet::Symbol>, alphabet::Symbol, std::vector<alphabet::Symbol>> >> >& rule : rules) { + for(const std::pair<const alphabet::Symbol, std::set<std::variant<std::vector<alphabet::Symbol>, std::tuple<std::vector<alphabet::Symbol>, alphabet::Symbol, std::vector<alphabet::Symbol>> >> >& rule : rules) { if(rule.first == symbol) throw GrammarException("Symbol \"" + (std::string) symbol + "\" is used in rule."); diff --git a/alib2data/src/grammar/ContextSensitive/CSG.cpp b/alib2data/src/grammar/ContextSensitive/CSG.cpp index 4df47db8e507d15db722e3e4ec4ce3825517a03f..96755b20f86f014be88fb46555bbba3af7995282 100644 --- a/alib2data/src/grammar/ContextSensitive/CSG.cpp +++ b/alib2data/src/grammar/ContextSensitive/CSG.cpp @@ -39,7 +39,7 @@ GrammarBase* CSG::plunder() && { } bool CSG::removeTerminalSymbol(const alphabet::Symbol& symbol) { - for(const std::pair<std::tuple<std::vector<alphabet::Symbol>, alphabet::Symbol, std::vector<alphabet::Symbol>>, std::set<std::vector<alphabet::Symbol>>>& rule : rules) { + for(const std::pair<const std::tuple<std::vector<alphabet::Symbol>, alphabet::Symbol, std::vector<alphabet::Symbol>>, std::set<std::vector<alphabet::Symbol>>>& rule : rules) { for(const alphabet::Symbol& lCont : std::get<0>(rule.first)) if(lCont == symbol) throw GrammarException("Symbol \"" + (std::string) symbol + "\" is used in rule."); @@ -57,7 +57,7 @@ bool CSG::removeTerminalSymbol(const alphabet::Symbol& symbol) { } bool CSG::removeNonterminalSymbol(const alphabet::Symbol& symbol) { - for(const std::pair<std::tuple<std::vector<alphabet::Symbol>, alphabet::Symbol, std::vector<alphabet::Symbol>>, std::set<std::vector<alphabet::Symbol>>>& rule : rules) { + for(const std::pair<const std::tuple<std::vector<alphabet::Symbol>, alphabet::Symbol, std::vector<alphabet::Symbol>>, std::set<std::vector<alphabet::Symbol>>>& rule : rules) { for(const alphabet::Symbol& lCont : std::get<0>(rule.first)) if(lCont == symbol) throw GrammarException("Symbol \"" + (std::string) symbol + "\" is used in rule."); diff --git a/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.cpp b/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.cpp index 073124593e421e78be8b982ae64c7a0fbd546e92..f5bd683996dced537181daa77ef62a780f477cdc 100644 --- a/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.cpp +++ b/alib2data/src/grammar/ContextSensitive/NonContractingGrammar.cpp @@ -39,7 +39,7 @@ GrammarBase* NonContractingGrammar::plunder() && { } bool NonContractingGrammar::removeTerminalSymbol(const alphabet::Symbol& symbol) { - for(const std::pair<std::vector<alphabet::Symbol>, std::set<std::vector<alphabet::Symbol>>>& rule : rules) { + for(const std::pair<const std::vector<alphabet::Symbol>, std::set<std::vector<alphabet::Symbol>>>& rule : rules) { if(std::find(rule.first.begin(), rule.first.end(), symbol) != rule.first.end()) throw GrammarException("Symbol \"" + (std::string) symbol + "\" is used in rule."); @@ -52,7 +52,7 @@ bool NonContractingGrammar::removeTerminalSymbol(const alphabet::Symbol& symbol) } bool NonContractingGrammar::removeNonterminalSymbol(const alphabet::Symbol& symbol) { - for(const std::pair<std::vector<alphabet::Symbol>, std::set<std::vector<alphabet::Symbol>>>& rule : rules) { + for(const std::pair<const std::vector<alphabet::Symbol>, std::set<std::vector<alphabet::Symbol>>>& rule : rules) { if(std::find(rule.first.begin(), rule.first.end(), symbol) != rule.first.end()) throw GrammarException("Symbol \"" + (std::string) symbol + "\" is used in rule."); diff --git a/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.cpp b/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.cpp index 1cd8fdb7cf3f2fde445eb9d1d604c9fd5a99fe3a..a2c1494748ddd683d3e31e5ca3eae90b958a3eff 100644 --- a/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.cpp +++ b/alib2data/src/grammar/Unrestricted/ContextPreservingUnrestrictedGrammar.cpp @@ -39,7 +39,7 @@ GrammarBase* ContextPreservingUnrestrictedGrammar::plunder() && { } bool ContextPreservingUnrestrictedGrammar::removeTerminalSymbol(const alphabet::Symbol& symbol) { - for(const std::pair<std::tuple<std::vector<alphabet::Symbol>, alphabet::Symbol, std::vector<alphabet::Symbol>>, std::set<std::vector<alphabet::Symbol>>>& rule : rules) { + for(const std::pair<const std::tuple<std::vector<alphabet::Symbol>, alphabet::Symbol, std::vector<alphabet::Symbol>>, std::set<std::vector<alphabet::Symbol>>>& rule : rules) { for(const alphabet::Symbol& lCont : std::get<0>(rule.first)) if(lCont == symbol) throw GrammarException("Symbol \"" + (std::string) symbol + "\" is used in rule."); @@ -57,7 +57,7 @@ bool ContextPreservingUnrestrictedGrammar::removeTerminalSymbol(const alphabet:: } bool ContextPreservingUnrestrictedGrammar::removeNonterminalSymbol(const alphabet::Symbol& symbol) { - for(const std::pair<std::tuple<std::vector<alphabet::Symbol>, alphabet::Symbol, std::vector<alphabet::Symbol>>, std::set<std::vector<alphabet::Symbol>>>& rule : rules) { + for(const std::pair<const std::tuple<std::vector<alphabet::Symbol>, alphabet::Symbol, std::vector<alphabet::Symbol>>, std::set<std::vector<alphabet::Symbol>>>& rule : rules) { for(const alphabet::Symbol& lCont : std::get<0>(rule.first)) if(lCont == symbol) throw GrammarException("Symbol \"" + (std::string) symbol + "\" is used in rule."); diff --git a/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.cpp b/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.cpp index 93230a838a212768a38dcb288d801ad0960868cc..3cbb6f22bc2d52c6c9cd64a054e546304a4a681e 100644 --- a/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.cpp +++ b/alib2data/src/grammar/Unrestricted/UnrestrictedGrammar.cpp @@ -39,7 +39,7 @@ GrammarBase* UnrestrictedGrammar::plunder() && { } bool UnrestrictedGrammar::removeTerminalSymbol(const alphabet::Symbol& symbol) { - for(const std::pair<std::vector<alphabet::Symbol>, std::set<std::vector<alphabet::Symbol>>>& rule : rules) { + for(const std::pair<const std::vector<alphabet::Symbol>, std::set<std::vector<alphabet::Symbol>>>& rule : rules) { if(std::find(rule.first.begin(), rule.first.end(), symbol) != rule.first.end()) throw GrammarException("Symbol \"" + (std::string) symbol + "\" is used in rule."); @@ -52,7 +52,7 @@ bool UnrestrictedGrammar::removeTerminalSymbol(const alphabet::Symbol& symbol) { } bool UnrestrictedGrammar::removeNonterminalSymbol(const alphabet::Symbol& symbol) { - for(const std::pair<std::vector<alphabet::Symbol>, std::set<std::vector<alphabet::Symbol>>>& rule : rules) { + for(const std::pair<const std::vector<alphabet::Symbol>, std::set<std::vector<alphabet::Symbol>>>& rule : rules) { if(std::find(rule.first.begin(), rule.first.end(), symbol) != rule.first.end()) throw GrammarException("Symbol \"" + (std::string) symbol + "\" is used in rule."); diff --git a/alib2elgo/src/automaton/properties/efficient/AllEpsilonClosure.cpp b/alib2elgo/src/automaton/properties/efficient/AllEpsilonClosure.cpp index 4de5f43716807c696de61bda5198334cc85fb484..59505d9686c42b3336c34a71a5981a9d52b59ac1 100644 --- a/alib2elgo/src/automaton/properties/efficient/AllEpsilonClosure.cpp +++ b/alib2elgo/src/automaton/properties/efficient/AllEpsilonClosure.cpp @@ -106,7 +106,7 @@ std::map<automaton::State, std::set<automaton::State>> AllEpsilonClosure::allEps std::set<automaton::State> nonvisited = fsm.getStates(); std::map<automaton::State, std::set<automaton::State>> epsilonTransitions; - for(const std::pair<std::pair<State, regexp::RegExp>, std::set<State> >& transition : fsm.getTransitions() ) + for(const std::pair<const std::pair<State, regexp::RegExp>, std::set<State> >& transition : fsm.getTransitions() ) if( regexp::properties::RegExpEpsilon::languageContainsEpsilon( transition.first.second ) ) epsilonTransitions[transition.first.first].insert(transition.second.begin(), transition.second.end()); @@ -135,7 +135,7 @@ std::map<automaton::State, std::set<automaton::State>> AllEpsilonClosure::allEps std::set<automaton::State> nonvisited = fsm.getStates(); std::map<automaton::State, std::set<automaton::State>> epsilonTransitions; - for(const std::pair<std::pair<State, string::LinearString>, std::set<State> >& transition : fsm.getTransitions() ) + for(const std::pair<const std::pair<State, string::LinearString>, std::set<State> >& transition : fsm.getTransitions() ) if( transition.first.second.getContent().size() == 0 ) epsilonTransitions[transition.first.first].insert(transition.second.begin(), transition.second.end()); diff --git a/alib2elgo/src/automaton/simplify/efficient/EpsilonRemoverOutgoing.cpp b/alib2elgo/src/automaton/simplify/efficient/EpsilonRemoverOutgoing.cpp index a40bc52d519330f49dff566426e64a2b26ae85e0..c5f4ca59636a95576bb527d2995ef8d19799815e 100644 --- a/alib2elgo/src/automaton/simplify/efficient/EpsilonRemoverOutgoing.cpp +++ b/alib2elgo/src/automaton/simplify/efficient/EpsilonRemoverOutgoing.cpp @@ -46,7 +46,7 @@ automaton::MultiInitialStateNFA EpsilonRemoverOutgoing::remove( const automaton: std::map<std::pair<automaton::State, alphabet::Symbol>, std::set<automaton::State>> transitions = origFSM.getSymbolTransitions(); - for(const std::pair<std::pair<automaton::State, alphabet::Symbol>, std::set<automaton::State>>& transition : transitions) + for(const std::pair<const std::pair<automaton::State, alphabet::Symbol>, std::set<automaton::State>>& transition : transitions) for(const automaton::State& to : transition.second) for(const automaton::State& toClosure : closures[to]) fsm.addTransition(transition.first.first, transition.first.second, toClosure); diff --git a/alib2measurepp/src/provisioner/MeasurementProvisionerResultsXml.cpp b/alib2measurepp/src/provisioner/MeasurementProvisionerResultsXml.cpp index ad26e990c675a9fa77928b89f2a37820c87d461f..f0bf9c114648a7ee0f40f1ab1b7ca7e7aa2f8a4c 100644 --- a/alib2measurepp/src/provisioner/MeasurementProvisionerResultsXml.cpp +++ b/alib2measurepp/src/provisioner/MeasurementProvisionerResultsXml.cpp @@ -36,7 +36,7 @@ void MeasurementProvisionerResultsXml::composeMeasurementProvisionerResult ( deq void MeasurementProvisionerResultsXml::composeInputs ( deque < Token > & tokens, const MPRInputResult & mprir ) { tokens.emplace_back ( INPUTS_TAG, Token::TokenType::START_ELEMENT ); - for ( const std::pair < int, std::string > & input : mprir.inputs ) { + for ( const std::pair < const int, std::string > & input : mprir.inputs ) { tokens.emplace_back ( INPUT_TAG, Token::TokenType::START_ELEMENT ); tokens.emplace_back ( INPUT_ATTR_ID_NAME, Token::TokenType::START_ATTRIBUTE ); tokens.emplace_back ( std::to_string ( input.first ), Token::TokenType::CHARACTER ); diff --git a/alib2std/src/extensions/map.hpp b/alib2std/src/extensions/map.hpp index 61133203178faa22508d276cfa42bafc74c1b49f..1d8bb3219e4f28c8eddef764775961925b0150f0 100644 --- a/alib2std/src/extensions/map.hpp +++ b/alib2std/src/extensions/map.hpp @@ -17,7 +17,7 @@ std::ostream& operator<<(std::ostream& out, const std::map<T, R>& map) { out << "{"; bool first = true; - for(const std::pair<T, R>& item : map) { + for(const std::pair<const T, R>& item : map) { if(!first) out << ", "; first = false; out << item; diff --git a/alib2std/src/extensions/unordered_map.hpp b/alib2std/src/extensions/unordered_map.hpp index 2413ef446d416e6bd376bc4888dcd08726a45828..9c075beb57675225b9547ba9822ffc0a244170c6 100644 --- a/alib2std/src/extensions/unordered_map.hpp +++ b/alib2std/src/extensions/unordered_map.hpp @@ -15,7 +15,7 @@ std::ostream& operator<<(std::ostream& out, const std::unordered_map<T, R>& map) out << "{"; bool first = true; - for(const std::pair<T, R>& item : map) { + for(const std::pair<const T, R>& item : map) { if(!first) out << ", "; first = false; out << item;