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