From 6b1bd0fb6dc734f445806a9b73d6c0b311b246a4 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Tue, 29 Apr 2014 22:38:16 +0200 Subject: [PATCH] simplifications --- alib2/src/automaton/FSM/CompactFA.cpp | 13 ++++--------- alib2/src/automaton/FSM/DFA.cpp | 13 ++++--------- alib2/src/automaton/FSM/EpsilonNFA.cpp | 13 ++++--------- alib2/src/automaton/FSM/ExtendedFA.cpp | 13 ++++--------- alib2/src/automaton/FSM/NFA.cpp | 13 ++++--------- alib2/src/automaton/PDA/PDA.cpp | 19 ++++++------------- 6 files changed, 26 insertions(+), 58 deletions(-) diff --git a/alib2/src/automaton/FSM/CompactFA.cpp b/alib2/src/automaton/FSM/CompactFA.cpp index 7fd01ebc5e..1e52c44734 100644 --- a/alib2/src/automaton/FSM/CompactFA.cpp +++ b/alib2/src/automaton/FSM/CompactFA.cpp @@ -18,17 +18,12 @@ void CompactFA::addInputSymbol(const alphabet::Symbol& symbol) { } void CompactFA::removeState(const State& state) { - for (std::set<State>::const_iterator initialState = initialStates.begin(); initialState != initialStates.end(); - initialState++) { - if (*initialState == state) { - throw AutomatonException("State \"" + state.getName() + "\" is initial state."); - } + if (initialStates.find(state) != initialStates.end()) { + throw AutomatonException("State \"" + state.getName() + "\" is initial state."); } - for (std::set<State>::const_iterator finalState = finalStates.begin(); finalState != finalStates.end(); finalState++) { - if (*finalState == state) { - throw AutomatonException("State \"" + state.getName() + "\" is final state."); - } + if (finalStates.find(state) != finalStates.end()) { + throw AutomatonException("State \"" + state.getName() + "\" is final state."); } for (std::map<std::pair<State, string::String>, State>::const_iterator t = transitions.begin(); t != transitions.end(); t++) { diff --git a/alib2/src/automaton/FSM/DFA.cpp b/alib2/src/automaton/FSM/DFA.cpp index 4239419d0b..b5608b0bf2 100644 --- a/alib2/src/automaton/FSM/DFA.cpp +++ b/alib2/src/automaton/FSM/DFA.cpp @@ -18,17 +18,12 @@ void DFA::addInputSymbol(const alphabet::Symbol& symbol) { } void DFA::removeState(const State& state) { - for (std::set<State>::const_iterator initialState = initialStates.begin(); initialState != initialStates.end(); - initialState++) { - if (*initialState == state) { - throw AutomatonException("State \"" + state.getName() + "\" is initial state."); - } + if (initialStates.find(state) != initialStates.end()) { + throw AutomatonException("State \"" + state.getName() + "\" is initial state."); } - for (std::set<State>::const_iterator finalState = finalStates.begin(); finalState != finalStates.end(); finalState++) { - if (*finalState == state) { - throw AutomatonException("State \"" + state.getName() + "\" is final state."); - } + if (finalStates.find(state) != finalStates.end()) { + throw AutomatonException("State \"" + state.getName() + "\" is final state."); } for (std::map<std::pair<State, alphabet::Symbol>, State>::const_iterator t = transitions.begin(); t != transitions.end(); t++) { diff --git a/alib2/src/automaton/FSM/EpsilonNFA.cpp b/alib2/src/automaton/FSM/EpsilonNFA.cpp index 8e3edba670..22a3a936d6 100644 --- a/alib2/src/automaton/FSM/EpsilonNFA.cpp +++ b/alib2/src/automaton/FSM/EpsilonNFA.cpp @@ -18,17 +18,12 @@ void EpsilonNFA::addInputSymbol(const alphabet::Symbol& symbol) { } void EpsilonNFA::removeState(const State& state) { - for (std::set<State>::const_iterator initialState = initialStates.begin(); initialState != initialStates.end(); - initialState++) { - if (*initialState == state) { - throw AutomatonException("State \"" + state.getName() + "\" is initial state."); - } + if (initialStates.find(state) != initialStates.end()) { + throw AutomatonException("State \"" + state.getName() + "\" is initial state."); } - for (std::set<State>::const_iterator finalState = finalStates.begin(); finalState != finalStates.end(); finalState++) { - if (*finalState == state) { - throw AutomatonException("State \"" + state.getName() + "\" is final state."); - } + if (finalStates.find(state) != finalStates.end()) { + throw AutomatonException("State \"" + state.getName() + "\" is final state."); } for (std::map<std::pair<State, std::variant<string::Epsilon, alphabet::Symbol> >, std::set<State> >::const_iterator t = transitions.begin(); t != transitions.end(); t++) { diff --git a/alib2/src/automaton/FSM/ExtendedFA.cpp b/alib2/src/automaton/FSM/ExtendedFA.cpp index 1d771c7be7..15d92b3edb 100644 --- a/alib2/src/automaton/FSM/ExtendedFA.cpp +++ b/alib2/src/automaton/FSM/ExtendedFA.cpp @@ -18,17 +18,12 @@ void ExtendedFA::addInputSymbol(const alphabet::Symbol& symbol) { } void ExtendedFA::removeState(const State& state) { - for (std::set<State>::const_iterator initialState = initialStates.begin(); initialState != initialStates.end(); - initialState++) { - if (*initialState == state) { - throw AutomatonException("State \"" + state.getName() + "\" is initial state."); - } + if (initialStates.find(state) != initialStates.end()) { + throw AutomatonException("State \"" + state.getName() + "\" is initial state."); } - for (std::set<State>::const_iterator finalState = finalStates.begin(); finalState != finalStates.end(); finalState++) { - if (*finalState == state) { - throw AutomatonException("State \"" + state.getName() + "\" is final state."); - } + if (finalStates.find(state) != finalStates.end()) { + throw AutomatonException("State \"" + state.getName() + "\" is final state."); } for (std::map<std::pair<State, regexp::RegExp>, State>::const_iterator t = transitions.begin(); t != transitions.end(); t++) { diff --git a/alib2/src/automaton/FSM/NFA.cpp b/alib2/src/automaton/FSM/NFA.cpp index 3c71952df3..e0d75e51ca 100644 --- a/alib2/src/automaton/FSM/NFA.cpp +++ b/alib2/src/automaton/FSM/NFA.cpp @@ -18,17 +18,12 @@ void NFA::addInputSymbol(const alphabet::Symbol& symbol) { } void NFA::removeState(const State& state) { - for (std::set<State>::const_iterator initialState = initialStates.begin(); initialState != initialStates.end(); - initialState++) { - if (*initialState == state) { - throw AutomatonException("State \"" + state.getName() + "\" is initial state."); - } + if (initialStates.find(state) != initialStates.end()) { + throw AutomatonException("State \"" + state.getName() + "\" is initial state."); } - for (std::set<State>::const_iterator finalState = finalStates.begin(); finalState != finalStates.end(); finalState++) { - if (*finalState == state) { - throw AutomatonException("State \"" + state.getName() + "\" is final state."); - } + if (finalStates.find(state) != finalStates.end()) { + throw AutomatonException("State \"" + state.getName() + "\" is final state."); } for (std::map<std::pair<State, alphabet::Symbol>, std::set<State> >::const_iterator t = transitions.begin(); t != transitions.end(); t++) { diff --git a/alib2/src/automaton/PDA/PDA.cpp b/alib2/src/automaton/PDA/PDA.cpp index 8e7fd58c6d..87969dbb7b 100644 --- a/alib2/src/automaton/PDA/PDA.cpp +++ b/alib2/src/automaton/PDA/PDA.cpp @@ -18,17 +18,12 @@ void PDA::addInputSymbol(const alphabet::Symbol& symbol) { } void PDA::removeState(const State& state) { - for (std::set<State>::const_iterator initialState = initialStates.begin(); initialState != initialStates.end(); - initialState++) { - if (*initialState == state) { - throw AutomatonException("State \"" + state.getName() + "\" is initial state."); - } + if (initialStates.find(state) != initialStates.end()) { + throw AutomatonException("State \"" + state.getName() + "\" is initial state."); } - for (std::set<State>::const_iterator finalState = finalStates.begin(); finalState != finalStates.end(); finalState++) { - if (*finalState == state) { - throw AutomatonException("State \"" + state.getName() + "\" is final state."); - } + if (finalStates.find(state) != finalStates.end()) { + throw AutomatonException("State \"" + state.getName() + "\" is final state."); } for (std::map<std::tuple<State, std::variant<string::Epsilon, alphabet::Symbol>, std::vector<alphabet::Symbol> >, std::set<std::pair<State, std::vector<alphabet::Symbol> > > >::const_iterator transition = transitions.begin(); transition != transitions.end(); transition++) { @@ -75,10 +70,8 @@ void PDA::removeStackSymbol(const alphabet::Symbol& symbol) { } } - for(std::set<alphabet::Symbol>::const_iterator initialSymbol = initialSymbols.begin(); initialSymbol != initialSymbols.end(); initialSymbol++){ - if(*initialSymbol == symbol) { - throw AutomatonException("Stack symbol \"" + symbol.getSymbol() + "\" is start symbol."); - } + if(initialSymbols.find(symbol) != initialSymbols.end()) { + throw AutomatonException("Stack symbol \"" + symbol.getSymbol() + "\" is start symbol."); } int removed = stackAlphabet.erase(symbol); -- GitLab