From 0a51a6cb748fd8df4fa821d34fed3053fdde5769 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Mon, 12 Jan 2015 13:09:17 +0100 Subject: [PATCH] rename InputSymbols to InputAlphabet and similairly --- .../convert/ToRegExpStateElimination.cpp | 2 +- .../determinize/DeterminizeIDPDAPart.cxx | 12 ++-- .../determinize/DeterminizeNFAPart.cxx | 20 +++--- .../determinize/DeterminizeRHDPDAPart.cxx | 8 +-- .../determinize/DeterminizeVPAPart.cxx | 16 ++--- .../simplify/EpsilonRemoverIncoming.cpp | 7 +- .../simplify/EpsilonRemoverOutgoing.cpp | 12 +--- alib2algo/src/automaton/simplify/Minimize.cpp | 31 ++++---- .../src/automaton/simplify/Normalize.cpp | 5 +- alib2algo/src/automaton/simplify/Rename.cpp | 4 +- .../automaton/simplify/SingleInitialState.cpp | 4 +- .../src/automaton/transform/PDAToRHPDA.cpp | 11 +-- .../src/automaton/transform/RHPDAToPDA.cpp | 10 ++- .../src/automaton/transform/ReverseFSM.cpp | 18 ++--- alib2algo/src/grammar/convert/ToAutomaton.cpp | 4 +- .../regexp/convert/ToAutomatonDerivation.cpp | 2 +- .../regexp/convert/ToAutomatonGlushkov.cpp | 3 +- .../regexp/convert/ToAutomatonThompson.cpp | 2 +- .../exact/ExactMatchingAutomaton.cpp | 2 +- .../simplify/FSMSingleInitialStateTest.cpp | 4 +- .../automaton/simplify/FSMTotalTest.cpp | 2 +- .../transform/AutomataConcatenationTest.cpp | 6 +- .../automaton/transform/AutomataUnionTest.cpp | 6 +- .../transform/AutomatonIterationTest.cpp | 4 +- .../src/automaton/AutomatonFromXMLParser.cpp | 72 +++++++++---------- alib2data/src/automaton/FSM/CompactNFA.cpp | 4 +- .../FSM/FiniteAutomatonFromStringParser.cpp | 4 +- .../common/BlankSymbolInputTapeAlphabet.cpp | 4 +- .../common/BlankSymbolInputTapeAlphabet.h | 4 +- .../common/CallReturnLocalInputAlphabet.cpp | 6 +- .../common/CallReturnLocalInputAlphabet.h | 6 +- .../src/automaton/common/InputAlphabet.cpp | 2 +- .../src/automaton/common/InputAlphabet.h | 2 +- .../common/PushdownStoreAlphabet.cpp | 2 +- .../automaton/common/PushdownStoreAlphabet.h | 2 +- .../test-src/automaton/AutomatonTest.cpp | 10 +-- 36 files changed, 147 insertions(+), 166 deletions(-) diff --git a/alib2algo/src/automaton/convert/ToRegExpStateElimination.cpp b/alib2algo/src/automaton/convert/ToRegExpStateElimination.cpp index 45d5410011..fad2bcc868 100644 --- a/alib2algo/src/automaton/convert/ToRegExpStateElimination.cpp +++ b/alib2algo/src/automaton/convert/ToRegExpStateElimination.cpp @@ -59,7 +59,7 @@ automaton::ExtendedNFA ToRegExpStateElimination::eliminateState(const automaton: automaton::ExtendedNFA newAutomaton(extendedAutomaton.getInitialState()); // sure that q is neither initial nor final (follows from step 2 - extending ExtendedNFA) newAutomaton.setStates(extendedAutomaton.getStates()); newAutomaton.removeState(q); // preserve all states but q (the one to eliminate) - newAutomaton.setInputSymbols(extendedAutomaton.getInputAlphabet()); + newAutomaton.setInputAlphabet(extendedAutomaton.getInputAlphabet()); newAutomaton.setFinalStates(extendedAutomaton.getFinalStates()); for(const auto& p: newAutomaton.getStates()) diff --git a/alib2algo/src/automaton/determinize/DeterminizeIDPDAPart.cxx b/alib2algo/src/automaton/determinize/DeterminizeIDPDAPart.cxx index 93624fd4cb..798254e0eb 100644 --- a/alib2algo/src/automaton/determinize/DeterminizeIDPDAPart.cxx +++ b/alib2algo/src/automaton/determinize/DeterminizeIDPDAPart.cxx @@ -19,13 +19,13 @@ automaton::DPDA Determinize::determinize(const automaton::InputDrivenNPDA& nfa) // 1, 4 automaton::State initialState(createDFAState({nfa.getInitialState()})); automaton::DPDA res(initialState, nfa.getInitialSymbol()); - res.setInputSymbols(nfa.getInputAlphabet()); - res.setStackSymbols(nfa.getStackAlphabet()); - + res.setInputAlphabet(nfa.getInputAlphabet()); + res.setStackAlphabet(nfa.getStackAlphabet()); + // 2 std::deque<automaton::State> todo; todo.push_back(initialState); - + do { // 3a, c automaton::State state = todo.front(); @@ -52,7 +52,7 @@ automaton::DPDA Determinize::determinize(const automaton::InputDrivenNPDA& nfa) if(!existed) todo.push_back(dfaState); } } while(!todo.empty()); - + // 5 for (const auto& dfaState : res.getStates()) { std::set<automaton::State> nfaStates = recreateNFAStates(dfaState); @@ -60,7 +60,7 @@ automaton::DPDA Determinize::determinize(const automaton::InputDrivenNPDA& nfa) res.addFinalState(dfaState); } } - + return res; } diff --git a/alib2algo/src/automaton/determinize/DeterminizeNFAPart.cxx b/alib2algo/src/automaton/determinize/DeterminizeNFAPart.cxx index e156c3c8f1..09ed59fabd 100644 --- a/alib2algo/src/automaton/determinize/DeterminizeNFAPart.cxx +++ b/alib2algo/src/automaton/determinize/DeterminizeNFAPart.cxx @@ -20,12 +20,12 @@ automaton::DFA Determinize::determinize(const automaton::MultiInitialStateNFA& n // 1, 4 automaton::State initialState(createDFAState(nfa.getInitialStates())); automaton::DFA res(initialState); - res.setInputSymbols(nfa.getInputAlphabet()); - + res.setInputAlphabet(nfa.getInputAlphabet()); + // 2 std::deque<automaton::State> todo; todo.push_back(initialState); - + do { // 3a, c automaton::State state = todo.front(); @@ -51,7 +51,7 @@ automaton::DFA Determinize::determinize(const automaton::MultiInitialStateNFA& n if(!existed) todo.push_back(dfaState); } } while(!todo.empty()); - + // 5 for (const auto& dfaState : res.getStates()) { std::set<automaton::State> nfaStates = recreateNFAStates(dfaState); @@ -59,7 +59,7 @@ automaton::DFA Determinize::determinize(const automaton::MultiInitialStateNFA& n res.addFinalState(dfaState); } } - + return res; } @@ -67,12 +67,12 @@ automaton::DFA Determinize::determinize(const automaton::NFA& nfa) { // 1, 4 automaton::State initialState(createDFAState({nfa.getInitialState()})); automaton::DFA res(initialState); - res.setInputSymbols(nfa.getInputAlphabet()); - + res.setInputAlphabet(nfa.getInputAlphabet()); + // 2 std::deque<automaton::State> todo; todo.push_back(initialState); - + do { // 3a, c automaton::State state = todo.front(); @@ -98,7 +98,7 @@ automaton::DFA Determinize::determinize(const automaton::NFA& nfa) { if(!existed) todo.push_back(dfaState); } } while(!todo.empty()); - + // 5 for (const auto& dfaState : res.getStates()) { std::set<automaton::State> nfaStates = recreateNFAStates(dfaState); @@ -106,7 +106,7 @@ automaton::DFA Determinize::determinize(const automaton::NFA& nfa) { res.addFinalState(dfaState); } } - + return res; } diff --git a/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx b/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx index fd928679f3..54ba103d19 100644 --- a/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx +++ b/alib2algo/src/automaton/determinize/DeterminizeRHDPDAPart.cxx @@ -24,7 +24,7 @@ void addRetTransition(const automaton::State& from, const std::variant<string::E deterministic.addState(from); deterministic.addState(to); deterministic.addStackSymbol(dvpdaSymbol); - + deterministic.addReturnTransition(from, input, dvpdaSymbol, to); } @@ -156,7 +156,7 @@ void local(const automaton::State& state, const std::variant<string::Epsilon, al } } } - + addLocalTransition(state, input, automaton::State(packToStateLabel(std::move(S1))), deterministic); } @@ -198,7 +198,7 @@ automaton::RealTimeHeightDeterministicDPDA Determinize::determinize(const automa label::Label initialLabel = packToStateLabel(createIdentity(retrieveLabels(n.getInitialStates()))); automaton::RealTimeHeightDeterministicDPDA d(automaton::State(initialLabel), n.getBottomOfTheStackSymbol()); - d.setInputSymbols(n.getInputAlphabet()); + d.setInputAlphabet(n.getInputAlphabet()); for(;;) { std::set<std::pair<automaton::State, alphabet::Symbol>> stateSymbols = existsDirtyStateSymbol(d, n); @@ -243,7 +243,7 @@ automaton::RealTimeHeightDeterministicDPDA Determinize::determinize(const automa d.addFinalState(state); } } - + return d; } diff --git a/alib2algo/src/automaton/determinize/DeterminizeVPAPart.cxx b/alib2algo/src/automaton/determinize/DeterminizeVPAPart.cxx index 8c323c4271..0398cc35ff 100644 --- a/alib2algo/src/automaton/determinize/DeterminizeVPAPart.cxx +++ b/alib2algo/src/automaton/determinize/DeterminizeVPAPart.cxx @@ -23,7 +23,7 @@ void addRetTransition(const automaton::State& from, const alphabet::Symbol& inpu deterministic.addState(from); deterministic.addState(to); deterministic.addStackSymbol(dvpdaSymbol); - + deterministic.addReturnTransition(from, input, dvpdaSymbol, to); } @@ -155,18 +155,18 @@ void local(const automaton::State& state, const alphabet::Symbol& input, const a } } } - + addLocalTransition(state, input, automaton::State(packToStateLabel(std::move(S1))), deterministic); } automaton::VisiblyPushdownDPDA Determinize::determinize(const automaton::VisiblyPushdownNPDA& n) { label::Label initialLabel = packToStateLabel(createIdentity(retrieveLabels(n.getInitialStates()))); - + automaton::VisiblyPushdownDPDA d(automaton::State(initialLabel), n.getBottomOfTheStackSymbol()); - d.setCallInputSymbols(n.getCallInputAlphabet()); - d.setLocalInputSymbols(n.getLocalInputAlphabet()); - d.setReturnInputSymbols(n.getReturnInputAlphabet()); - + d.setCallInputAlphabet(n.getCallInputAlphabet()); + d.setLocalInputAlphabet(n.getLocalInputAlphabet()); + d.setReturnInputAlphabet(n.getReturnInputAlphabet()); + for(;;) { std::set<std::pair<automaton::State, alphabet::Symbol>> stateSymbols = existsDirtyStateSymbol(d, n); std::set<automaton::State> states = existsDirtyState(d, n); @@ -201,7 +201,7 @@ automaton::VisiblyPushdownDPDA Determinize::determinize(const automaton::Visibly d.addFinalState(state); } } - + return d; } diff --git a/alib2algo/src/automaton/simplify/EpsilonRemoverIncoming.cpp b/alib2algo/src/automaton/simplify/EpsilonRemoverIncoming.cpp index d84b316000..fc35d24f16 100644 --- a/alib2algo/src/automaton/simplify/EpsilonRemoverIncoming.cpp +++ b/alib2algo/src/automaton/simplify/EpsilonRemoverIncoming.cpp @@ -31,11 +31,8 @@ automaton::NFA EpsilonRemoverIncoming::remove(const automaton::NFA& origFSM) automaton::NFA EpsilonRemoverIncoming::remove( const automaton::EpsilonNFA & origFSM ) { automaton::NFA fsm(origFSM.getInitialState()); - for( const auto & state : origFSM.getStates() ) - fsm.addState( state ); - - for( const auto & symbol : origFSM.getInputAlphabet() ) - fsm.addInputSymbol( symbol ); + fsm.setStates( origFSM.getStates() ); + fsm.setInputAlphabet( origFSM.getInputAlphabet() ); /** * Step 1 from Melichar 2.41 diff --git a/alib2algo/src/automaton/simplify/EpsilonRemoverOutgoing.cpp b/alib2algo/src/automaton/simplify/EpsilonRemoverOutgoing.cpp index 888552a0fd..d91a376a0f 100644 --- a/alib2algo/src/automaton/simplify/EpsilonRemoverOutgoing.cpp +++ b/alib2algo/src/automaton/simplify/EpsilonRemoverOutgoing.cpp @@ -30,15 +30,9 @@ automaton::NFA EpsilonRemoverOutgoing::remove(const automaton::NFA& origFSM) automaton::MultiInitialStateNFA EpsilonRemoverOutgoing::remove( const automaton::EpsilonNFA & origFSM ) { automaton::MultiInitialStateNFA fsm; - - for( const auto & state : origFSM.getStates() ) - fsm.addState( state ); - - for( const auto & state : origFSM.getFinalStates() ) - fsm.addFinalState( state ); - - for( const auto & symbol : origFSM.getInputAlphabet() ) - fsm.addInputSymbol( symbol ); + fsm.setStates( origFSM.getStates() ); + fsm.setFinalStates( origFSM.getFinalStates() ); + fsm.setInputAlphabet( origFSM.getInputAlphabet() ); /** * Step 1 from Melichar 2.41 diff --git a/alib2algo/src/automaton/simplify/Minimize.cpp b/alib2algo/src/automaton/simplify/Minimize.cpp index 6c01ed6541..9029c723b2 100644 --- a/alib2algo/src/automaton/simplify/Minimize.cpp +++ b/alib2algo/src/automaton/simplify/Minimize.cpp @@ -33,7 +33,7 @@ automaton::Automaton Minimize::minimize(const automaton::Automaton& automaton) { automaton::DFA Minimize::minimize(const automaton::DFA& dfa) { if(dfa.getFinalStates().size() == 0) { automaton::DFA result(automaton::State(0)); - result.setInputSymbols(dfa.getInputAlphabet()); + result.setInputAlphabet(dfa.getInputAlphabet()); return result; } @@ -42,7 +42,7 @@ automaton::DFA Minimize::minimize(const automaton::DFA& dfa) { for(std::set<automaton::State>::const_iterator iter = dfa.getStates().begin(); iter != dfa.getStates().end(); iter++) { refactor.insert(std::pair<automaton::State, std::map<alphabet::Symbol, automaton::State> >(*iter, std::map<alphabet::Symbol, automaton::State>())); } - + for(std::map<std::pair<automaton::State, alphabet::Symbol>, automaton::State>::const_iterator iter = dfa.getTransitions().begin(); iter != dfa.getTransitions().end(); iter++) { refactor[iter->first.first].insert(std::pair<alphabet::Symbol, automaton::State>(iter->first.second, iter->second)); } @@ -52,7 +52,7 @@ automaton::DFA Minimize::minimize(const automaton::DFA& dfa) { std::map<automaton::State, automaton::State> toEquvivalentStates2; std::map<std::pair<automaton::State, std::set<std::pair<alphabet::Symbol, automaton::State> > >, std::set<automaton::State> > minimizedTransitionFunction2; - + for(auto iter = dfa.getStates().begin(); iter != dfa.getStates().end(); iter++) { if(dfa.getFinalStates().count(*iter) == 0) { // not a final state toEquvivalentStates2.insert(std::pair<automaton::State, automaton::State>(*iter, automaton::State(0))); @@ -68,22 +68,22 @@ automaton::DFA Minimize::minimize(const automaton::DFA& dfa) { for(auto iter2 = iter->second.begin(); iter2 != iter->second.end(); iter2++) { transitionFunction.insert(std::pair<alphabet::Symbol, automaton::State>(iter2->first, toEquvivalentStates2.find(iter2->second)->second)); } - + std::pair<automaton::State, std::set<std::pair<alphabet::Symbol, automaton::State> > > key(from, transitionFunction); - + if(minimizedTransitionFunction2.find(key) == minimizedTransitionFunction2.end()) { minimizedTransitionFunction2.insert(std::pair<std::pair<automaton::State, std::set<std::pair<alphabet::Symbol, automaton::State> > >, std::set<automaton::State> >(key, std::set<automaton::State>())); } minimizedTransitionFunction2[key].insert(iter->first); } - + do { toEquvivalentStates1 = toEquvivalentStates2; minimizedTransitionFunction1 = minimizedTransitionFunction2; toEquvivalentStates2.clear(); minimizedTransitionFunction2.clear(); - + int number = 0; for(auto iter = minimizedTransitionFunction1.begin(); iter != minimizedTransitionFunction1.end(); iter++) { for(auto iter2 = iter->second.begin(); iter2 != iter->second.end(); iter2++) { @@ -95,19 +95,18 @@ automaton::DFA Minimize::minimize(const automaton::DFA& dfa) { for(auto iter = refactor.begin(); iter != refactor.end(); iter++) { automaton::State from = toEquvivalentStates2.find(iter->first)->second; std::set<std::pair<alphabet::Symbol, automaton::State> > transitionFunction; - + for(auto iter2 = iter->second.begin(); iter2 != iter->second.end(); iter2++) { transitionFunction.insert(std::pair<alphabet::Symbol, automaton::State>(iter2->first, toEquvivalentStates2.find(iter2->second)->second)); } - + std::pair<automaton::State, std::set<std::pair<alphabet::Symbol, automaton::State> > > key(from, transitionFunction); - + if(minimizedTransitionFunction2.find(key) == minimizedTransitionFunction2.end()) { minimizedTransitionFunction2.insert(std::pair<std::pair<automaton::State, std::set<std::pair<alphabet::Symbol, automaton::State> > >, std::set<automaton::State> >(key, std::set<automaton::State>())); } minimizedTransitionFunction2[key].insert(iter->first); - } } while(minimizedTransitionFunction1.size() != minimizedTransitionFunction2.size()); @@ -122,23 +121,21 @@ automaton::DFA Minimize::minimize(const automaton::DFA& dfa) { automaton::DFA result(*initialState); - for(auto iter = dfa.getInputAlphabet().begin(); iter != dfa.getInputAlphabet().end(); iter++) { - result.addInputSymbol(*iter); - } - + result.setInputAlphabet(dfa.getInputAlphabet()); + for(auto iter = minimizedTransitionFunction2.begin(); iter != minimizedTransitionFunction2.end(); iter++) { result.addState(iter->first.first); if(dfa.getFinalStates().find(*(iter->second.begin())) != dfa.getFinalStates().end()) { result.addFinalState(iter->first.first); } } - + for(auto iter = minimizedTransitionFunction2.begin(); iter != minimizedTransitionFunction2.end(); iter++) { for(auto iter2 = iter->first.second.begin(); iter2 != iter->first.second.end(); iter2++) { result.addTransition(iter->first.first, iter2->first, iter2->second); } } - + return result; } diff --git a/alib2algo/src/automaton/simplify/Normalize.cpp b/alib2algo/src/automaton/simplify/Normalize.cpp index 37bc52557b..c49bc62afe 100644 --- a/alib2algo/src/automaton/simplify/Normalize.cpp +++ b/alib2algo/src/automaton/simplify/Normalize.cpp @@ -61,7 +61,7 @@ automaton::DFA Normalize::normalize(const automaton::DFA& fsm) { automaton::DFA result(automaton::State(normalizationData.find(fsm.getInitialState())->second)); - result.setInputSymbols(fsm.getInputAlphabet()); + result.setInputAlphabet(fsm.getInputAlphabet()); for(auto iter = fsm.getStates().begin(); iter != fsm.getStates().end(); iter++) { result.addState(automaton::State(normalizationData.find(*iter)->second)); @@ -130,8 +130,7 @@ automaton::DPDA Normalize::normalize(const automaton::DPDA& pda) { } automaton::DPDA result(automaton::State(normalizationDataState.find(pda.getInitialState())->second), alphabet::symbolFrom(normalizationDataSymbol.find(pda.getInitialSymbol())->second)); - - result.setInputSymbols(pda.getInputAlphabet()); + result.setInputAlphabet(pda.getInputAlphabet()); for(auto iter = pda.getStackAlphabet().begin(); iter != pda.getStackAlphabet().end(); iter++) { result.addStackSymbol(alphabet::symbolFrom(normalizationDataSymbol.find(*iter)->second)); diff --git a/alib2algo/src/automaton/simplify/Rename.cpp b/alib2algo/src/automaton/simplify/Rename.cpp index 5885a9f5b9..c466d2e29d 100644 --- a/alib2algo/src/automaton/simplify/Rename.cpp +++ b/alib2algo/src/automaton/simplify/Rename.cpp @@ -42,7 +42,7 @@ automaton::DFA Rename::rename(const automaton::DFA& fsm) { automaton::DFA result(automaton::State(renamingData.find(fsm.getInitialState())->second)); - result.setInputSymbols(fsm.getInputAlphabet()); + result.setInputAlphabet(fsm.getInputAlphabet()); for(auto iter = fsm.getStates().begin(); iter != fsm.getStates().end(); iter++) { result.addState(automaton::State(renamingData.find(*iter)->second)); @@ -76,7 +76,7 @@ automaton::DPDA Rename::rename(const automaton::DPDA& pda) { automaton::DPDA result(automaton::State(renamingDataState.find(pda.getInitialState())->second), alphabet::symbolFrom(renamingDataSymbol.find(pda.getInitialSymbol())->second)); - result.setInputSymbols(pda.getInputAlphabet()); + result.setInputAlphabet(pda.getInputAlphabet()); for(auto iter = pda.getStackAlphabet().begin(); iter != pda.getStackAlphabet().end(); iter++) { result.addStackSymbol(alphabet::symbolFrom(renamingDataSymbol.find(*iter)->second)); diff --git a/alib2algo/src/automaton/simplify/SingleInitialState.cpp b/alib2algo/src/automaton/simplify/SingleInitialState.cpp index 17db0fc17f..7b21af79a2 100644 --- a/alib2algo/src/automaton/simplify/SingleInitialState.cpp +++ b/alib2algo/src/automaton/simplify/SingleInitialState.cpp @@ -41,11 +41,11 @@ automaton::NFA SingleInitialState::convert(const automaton::MultiInitialStateNFA automaton::State q0(label::Label(label::LabelSetLabel(std::move(labelSet)))); automaton::NFA res(q0); - res.setInputSymbols(automaton.getInputAlphabet()); + res.setInputAlphabet(automaton.getInputAlphabet()); for(const auto& q : automaton.getStates()) res.addState(q); - // step 2 + // step 2 for(const auto& q : automaton.getInitialStates()) { for(const auto& kv: automaton.getTransitionsFromState(q)) { for(const auto& to : kv.second) { diff --git a/alib2algo/src/automaton/transform/PDAToRHPDA.cpp b/alib2algo/src/automaton/transform/PDAToRHPDA.cpp index 8c91f906ff..6f5452bcc4 100644 --- a/alib2algo/src/automaton/transform/PDAToRHPDA.cpp +++ b/alib2algo/src/automaton/transform/PDAToRHPDA.cpp @@ -34,12 +34,13 @@ automaton::RealTimeHeightDeterministicDPDA PDAToRHPDA::convert( const automaton: RealTimeHeightDeterministicDPDA res(q0, alphabet::Symbol { alphabet::BottomOfTheStackSymbol::BOTTOM_OF_THE_STACK } ); - res.setInputSymbols(pda.getInputAlphabet()); - res.setStates(pda.getStates()); + res.setInputAlphabet(pda.getInputAlphabet()); + for(const auto& state : pda.getStates()) + res.addState(state); res.setFinalStates(pda.getFinalStates()); std::set<alphabet::Symbol> stackSymbols = pda.getStackAlphabet(); stackSymbols.insert( alphabet::Symbol { alphabet::BottomOfTheStackSymbol::BOTTOM_OF_THE_STACK } ); - res.setStackSymbols(stackSymbols); + res.setStackAlphabet(stackSymbols); res.addCallTransition(q0, pda.getInitialState(), pda.getInitialSymbol()); @@ -95,12 +96,12 @@ automaton::RealTimeHeightDeterministicDPDA PDAToRHPDA::convert( const automaton: automaton::RealTimeHeightDeterministicNPDA PDAToRHPDA::convert( const automaton::NPDA & pda ) { RealTimeHeightDeterministicNPDA res(alphabet::Symbol { alphabet::BottomOfTheStackSymbol::BOTTOM_OF_THE_STACK } ); - res.setInputSymbols(pda.getInputAlphabet()); + res.setInputAlphabet(pda.getInputAlphabet()); res.setStates(pda.getStates()); res.setFinalStates(pda.getFinalStates()); std::set<alphabet::Symbol> stackSymbols = pda.getStackAlphabet(); stackSymbols.insert( alphabet::Symbol { alphabet::BottomOfTheStackSymbol::BOTTOM_OF_THE_STACK } ); - res.setStackSymbols(stackSymbols); + res.setStackAlphabet(stackSymbols); automaton::State q0 = automaton::createUniqueState(automaton::State("q0"), res.getStates()); res.addState(q0); diff --git a/alib2algo/src/automaton/transform/RHPDAToPDA.cpp b/alib2algo/src/automaton/transform/RHPDAToPDA.cpp index 4b94969de0..d2a1d17901 100644 --- a/alib2algo/src/automaton/transform/RHPDAToPDA.cpp +++ b/alib2algo/src/automaton/transform/RHPDAToPDA.cpp @@ -96,9 +96,8 @@ automaton::DPDA RHPDAToPDA::convert( const automaton::RealTimeHeightDeterministi automaton::DPDA res(toState, pushes[0]); - res.setInputSymbols(pda.getInputAlphabet()); - - res.setStackSymbols(pda.getStackAlphabet()); + res.setInputAlphabet(pda.getInputAlphabet()); + res.setStackAlphabet(pda.getStackAlphabet()); res.removeStackSymbol(alphabet::Symbol { alphabet::BottomOfTheStackSymbol::BOTTOM_OF_THE_STACK }); for(const auto& st : readingTransitions) { @@ -217,9 +216,8 @@ automaton::NPDA RHPDAToPDA::convert( const automaton::RealTimeHeightDeterministi automaton::NPDA res(toState, pushes[0]); - res.setInputSymbols(pda.getInputAlphabet()); - - res.setStackSymbols(pda.getStackAlphabet()); + res.setInputAlphabet(pda.getInputAlphabet()); + res.setStackAlphabet(pda.getStackAlphabet()); for(const auto& st : readingTransitions) { for(const auto& to : st.second) { diff --git a/alib2algo/src/automaton/transform/ReverseFSM.cpp b/alib2algo/src/automaton/transform/ReverseFSM.cpp index 6775b53b0c..4de5a04c23 100644 --- a/alib2algo/src/automaton/transform/ReverseFSM.cpp +++ b/alib2algo/src/automaton/transform/ReverseFSM.cpp @@ -31,9 +31,8 @@ automaton::MultiInitialStateNFA ReverseFSM::convert(const automaton::DFA& automa res.setStates(automaton.getStates()); res.addFinalState(automaton.getInitialState()); - for(const auto& q : automaton.getFinalStates()) - res.addInitialState(q); - res.setInputSymbols(automaton.getInputAlphabet()); + res.setInitialStates( automaton.getFinalStates() ); + res.setInputAlphabet(automaton.getInputAlphabet()); for(const auto& t : automaton.getTransitions()) res.addTransition(t.second, t.first.second, t.first.first); @@ -47,9 +46,8 @@ automaton::MultiInitialStateNFA ReverseFSM::convert(const automaton::NFA& automa res.setStates(automaton.getStates()); res.addFinalState(automaton.getInitialState()); - for(const auto& q : automaton.getFinalStates()) - res.addInitialState(q); - res.setInputSymbols(automaton.getInputAlphabet()); + res.setInitialStates( automaton.getFinalStates() ); + res.setInputAlphabet(automaton.getInputAlphabet()); for(const auto& t : automaton.getTransitions()) for(const auto& q : t.second) @@ -63,11 +61,9 @@ automaton::MultiInitialStateNFA ReverseFSM::convert(const automaton::MultiInitia automaton::MultiInitialStateNFA res; res.setStates(automaton.getStates()); - for(const auto& q : automaton.getInitialStates()) - res.addFinalState(q); - for(const auto& q : automaton.getFinalStates()) - res.addInitialState(q); - res.setInputSymbols(automaton.getInputAlphabet()); + res.setFinalStates(automaton.getInitialStates()); + res.setInitialStates( automaton.getFinalStates() ); + res.setInputAlphabet(automaton.getInputAlphabet()); for(const auto& t : automaton.getTransitions()) for(const auto& q : t.second) diff --git a/alib2algo/src/grammar/convert/ToAutomaton.cpp b/alib2algo/src/grammar/convert/ToAutomaton.cpp index 68a1e5ca47..d61d29cb47 100644 --- a/alib2algo/src/grammar/convert/ToAutomaton.cpp +++ b/alib2algo/src/grammar/convert/ToAutomaton.cpp @@ -39,7 +39,7 @@ automaton::NFA ToAutomaton::convert(const grammar::LeftRG& grammar) const automaton::State q0 = automaton::createUniqueState(automaton::State("q0"), states); states.insert(q0); automaton::NFA automaton(q0); - automaton.setInputSymbols(grammar.getTerminalAlphabet()); + automaton.setInputAlphabet(grammar.getTerminalAlphabet()); automaton.setStates(states); // step 3 @@ -88,7 +88,7 @@ automaton::NFA ToAutomaton::convert(const grammar::RightRG& grammar) automaton::NFA automaton(stateMap.find(grammar.getInitialSymbol())->second); automaton.setStates(states); - automaton.setInputSymbols(grammar.getTerminalAlphabet()); + automaton.setInputAlphabet(grammar.getTerminalAlphabet()); // step 3 for(const auto& rule : grammar.getRules()) diff --git a/alib2algo/src/regexp/convert/ToAutomatonDerivation.cpp b/alib2algo/src/regexp/convert/ToAutomatonDerivation.cpp index b6fe2135bd..54810cbcc9 100644 --- a/alib2algo/src/regexp/convert/ToAutomatonDerivation.cpp +++ b/alib2algo/src/regexp/convert/ToAutomatonDerivation.cpp @@ -90,7 +90,7 @@ automaton::NFA ToAutomatonDerivation::convert(const T& regexp) automaton.addState(r.second); } - automaton.setInputSymbols(regexp.getAlphabet()); + automaton.setInputAlphabet(regexp.getAlphabet()); for(const auto& r : Q) { diff --git a/alib2algo/src/regexp/convert/ToAutomatonGlushkov.cpp b/alib2algo/src/regexp/convert/ToAutomatonGlushkov.cpp index fb75db1789..7c47c7a4c1 100644 --- a/alib2algo/src/regexp/convert/ToAutomatonGlushkov.cpp +++ b/alib2algo/src/regexp/convert/ToAutomatonGlushkov.cpp @@ -34,8 +34,7 @@ automaton::NFA ToAutomatonGlushkov::convert(const regexp::UnboundedRegExp& regex automaton::NFA automaton( q0 ); // step 1 - for( auto const& symbol : regexp.getAlphabet( ) ) - automaton.addInputSymbol( symbol ); + automaton.setInputAlphabet(regexp.getAlphabet()); // steps 2, 3, 4 std::set<regexp::GlushkovPair> pairs; diff --git a/alib2algo/src/regexp/convert/ToAutomatonThompson.cpp b/alib2algo/src/regexp/convert/ToAutomatonThompson.cpp index a2b2611735..276a24db95 100644 --- a/alib2algo/src/regexp/convert/ToAutomatonThompson.cpp +++ b/alib2algo/src/regexp/convert/ToAutomatonThompson.cpp @@ -26,7 +26,7 @@ automaton::EpsilonNFA ToAutomatonThompson::convert(const T& regexp) std::tuple<automaton::EpsilonNFA, int, const automaton::State*, const automaton::State*> out(automaton::EpsilonNFA(automaton::State(0)), 1, nullptr, nullptr); automaton::EpsilonNFA& automaton = std::get<0>(out); - automaton.setInputSymbols(regexp.getAlphabet()); + automaton.setInputAlphabet(regexp.getAlphabet()); regexp.getRegExp().Accept((void*) &out, ToAutomatonThompson::TO_AUTOMATON_THOMPSON); diff --git a/alib2algo/src/stringology/exact/ExactMatchingAutomaton.cpp b/alib2algo/src/stringology/exact/ExactMatchingAutomaton.cpp index ac373dc96d..d78995f66f 100644 --- a/alib2algo/src/stringology/exact/ExactMatchingAutomaton.cpp +++ b/alib2algo/src/stringology/exact/ExactMatchingAutomaton.cpp @@ -26,7 +26,7 @@ automaton::Automaton ExactMatchingAutomaton::construct(const string::String& pat automaton::NFA ExactMatchingAutomaton::construct(const string::LinearString& pattern) { automaton::NFA res(automaton::State(0)); - res.setInputSymbols(pattern.getAlphabet()); + res.setInputAlphabet(pattern.getAlphabet()); for(const alphabet::Symbol& symbol : pattern.getAlphabet()) { res.addTransition(automaton::State(0), symbol, automaton::State(0)); } diff --git a/alib2algo/test-src/automaton/simplify/FSMSingleInitialStateTest.cpp b/alib2algo/test-src/automaton/simplify/FSMSingleInitialStateTest.cpp index 368af7c13e..6420d040ed 100644 --- a/alib2algo/test-src/automaton/simplify/FSMSingleInitialStateTest.cpp +++ b/alib2algo/test-src/automaton/simplify/FSMSingleInitialStateTest.cpp @@ -31,7 +31,7 @@ void FSMSingleInitialStateTest::testSingleInitialState() { automaton1.setStates({q0, q1, q2, q3}); automaton1.setInitialStates({q0, q1, q2}); automaton1.setFinalStates({q3}); - automaton1.setInputSymbols({a, b}); + automaton1.setInputAlphabet({a, b}); automaton1.addTransition(q0, a, q1); automaton1.addTransition(q1, b, q2); automaton1.addTransition(q2, a, q3); @@ -41,7 +41,7 @@ void FSMSingleInitialStateTest::testSingleInitialState() { automaton::NFA automaton3(q); automaton3.setStates({q, q1, q2, q3}); automaton3.setFinalStates({q3}); - automaton3.setInputSymbols({a, b}); + automaton3.setInputAlphabet({a, b}); automaton3.addTransition(q, a, q3); automaton3.addTransition(q, b, q2); automaton3.addTransition(q, a, q1); diff --git a/alib2algo/test-src/automaton/simplify/FSMTotalTest.cpp b/alib2algo/test-src/automaton/simplify/FSMTotalTest.cpp index 7e6ba6ab2c..88c1555245 100644 --- a/alib2algo/test-src/automaton/simplify/FSMTotalTest.cpp +++ b/alib2algo/test-src/automaton/simplify/FSMTotalTest.cpp @@ -26,7 +26,7 @@ void TotalTest::testTotal() { automaton::DFA automaton(q0); automaton.setStates({q0, q1, q2}); automaton.setFinalStates({q0, q1, q2}); - automaton.setInputSymbols({a, b, c}); + automaton.setInputAlphabet({a, b, c}); automaton.addTransition(q0, a, q0); automaton.addTransition(q0, b, q1); diff --git a/alib2algo/test-src/automaton/transform/AutomataConcatenationTest.cpp b/alib2algo/test-src/automaton/transform/AutomataConcatenationTest.cpp index 6f1414d682..611a46b95c 100644 --- a/alib2algo/test-src/automaton/transform/AutomataConcatenationTest.cpp +++ b/alib2algo/test-src/automaton/transform/AutomataConcatenationTest.cpp @@ -32,7 +32,7 @@ void AutomataConcatenationTest::testAutomataConcatenation() { automaton::DFA m2(q1b); automaton::NFA m3(q1a); - m1.setInputSymbols({a, b}); + m1.setInputAlphabet({a, b}); m1.setStates({q1a, q2a, q0a}); m1.addTransition(q1a, a, q2a); m1.addTransition(q1a, b, q0a); @@ -42,13 +42,13 @@ void AutomataConcatenationTest::testAutomataConcatenation() { m1.addTransition(q0a, b, q0a); m1.addFinalState(q2a); - m2.setInputSymbols({a, b}); + m2.setInputAlphabet({a, b}); m2.setStates({q1b, q2b}); m2.addTransition(q1b, b, q2b); m2.addTransition(q2b, b, q2b); m2.addFinalState(q2b); - m3.setInputSymbols({a, b}); + m3.setInputAlphabet({a, b}); m3.setStates({q1a, q1b, q2a, q2b, q0a, q0b, q0102}); m3.addTransition(q1a, a, q2a); m3.addTransition(q1a, a, q1b); diff --git a/alib2algo/test-src/automaton/transform/AutomataUnionTest.cpp b/alib2algo/test-src/automaton/transform/AutomataUnionTest.cpp index e91953c036..05be636ddf 100644 --- a/alib2algo/test-src/automaton/transform/AutomataUnionTest.cpp +++ b/alib2algo/test-src/automaton/transform/AutomataUnionTest.cpp @@ -31,7 +31,7 @@ void AutomataUnionTest::testAutomataUnion() { automaton::DFA m2(q1b); automaton::DFA m3(q11); - m1.setInputSymbols({a, b}); + m1.setInputAlphabet({a, b}); m1.setStates({q1a, q2a, q0a}); m1.addTransition(q1a, a, q2a); m1.addTransition(q1a, b, q0a); @@ -41,13 +41,13 @@ void AutomataUnionTest::testAutomataUnion() { m1.addTransition(q0a, b, q0a); m1.addFinalState(q2a); - m2.setInputSymbols({a, b}); + m2.setInputAlphabet({a, b}); m2.setStates({q1b, q2b}); m2.addTransition(q1b, b, q2b); m2.addTransition(q2b, b, q2b); m2.addFinalState(q2b); - m3.setInputSymbols({a, b}); + m3.setInputAlphabet({a, b}); m3.setStates({q11, q20, q00, q02}); m3.addTransition(q11, a, q20); m3.addTransition(q11, b, q02); diff --git a/alib2algo/test-src/automaton/transform/AutomatonIterationTest.cpp b/alib2algo/test-src/automaton/transform/AutomatonIterationTest.cpp index 8fdf13d6e8..6c8e3cb66b 100644 --- a/alib2algo/test-src/automaton/transform/AutomatonIterationTest.cpp +++ b/alib2algo/test-src/automaton/transform/AutomatonIterationTest.cpp @@ -30,14 +30,14 @@ void AutomatonIterationTest::testAutomatonIteration() { automaton::DFA m1(q1); m1.setStates({q1, q2, q3}); m1.addFinalState(q3); - m1.setInputSymbols({a, b}); + m1.setInputAlphabet({a, b}); m1.addTransition(q1, a, q2); m1.addTransition(q2, b, q2); m1.addTransition(q2, a, q3); automaton::NFA res(q1); res.setStates({q1, q2, q3}); - res.setInputSymbols({a, b}); + res.setInputAlphabet({a, b}); res.setFinalStates({q1, q3}); res.addTransition(q1, a, q2); res.addTransition(q2, b, q2); diff --git a/alib2data/src/automaton/AutomatonFromXMLParser.cpp b/alib2data/src/automaton/AutomatonFromXMLParser.cpp index 43ab7cf31e..7b0395f61d 100644 --- a/alib2data/src/automaton/AutomatonFromXMLParser.cpp +++ b/alib2data/src/automaton/AutomatonFromXMLParser.cpp @@ -99,7 +99,7 @@ DFA AutomatonFromXMLParser::parseDFA(std::list<sax::Token>& input) const { DFA automaton(initialState); automaton.setStates(states); - automaton.setInputSymbols(inputSymbols); + automaton.setInputAlphabet(inputSymbols); automaton.setFinalStates(finalStates); parseTransitions<DFA>(input, automaton); @@ -118,7 +118,7 @@ NFA AutomatonFromXMLParser::parseNFA(std::list<sax::Token>& input) const { NFA automaton(initialState); automaton.setStates(states); - automaton.setInputSymbols(inputSymbols); + automaton.setInputAlphabet(inputSymbols); automaton.setFinalStates(finalStates); parseTransitions<NFA>(input, automaton); @@ -137,7 +137,7 @@ MultiInitialStateNFA AutomatonFromXMLParser::parseMultiInitialStateNFA(std::list MultiInitialStateNFA automaton; automaton.setStates(states); - automaton.setInputSymbols(inputSymbols); + automaton.setInputAlphabet(inputSymbols); automaton.setInitialStates(initialStates); automaton.setFinalStates(finalStates); @@ -157,7 +157,7 @@ EpsilonNFA AutomatonFromXMLParser::parseEpsilonNFA(std::list<sax::Token>& input) EpsilonNFA automaton(initialState); automaton.setStates(states); - automaton.setInputSymbols(inputSymbols); + automaton.setInputAlphabet(inputSymbols); automaton.setFinalStates(finalStates); parseTransitions<EpsilonNFA>(input, automaton); @@ -176,7 +176,7 @@ CompactNFA AutomatonFromXMLParser::parseCompactNFA(std::list<sax::Token>& input) CompactNFA automaton(initialState); automaton.setStates(states); - automaton.setInputSymbols(inputSymbols); + automaton.setInputAlphabet(inputSymbols); automaton.setFinalStates(finalStates); parseTransitions<CompactNFA>(input, automaton); @@ -195,7 +195,7 @@ ExtendedNFA AutomatonFromXMLParser::parseExtendedNFA(std::list<sax::Token>& inpu ExtendedNFA automaton(initialState); automaton.setStates(states); - automaton.setInputSymbols(inputSymbols); + automaton.setInputAlphabet(inputSymbols); automaton.setFinalStates(finalStates); parseTransitions<ExtendedNFA>(input, automaton); @@ -216,8 +216,8 @@ DPDA AutomatonFromXMLParser::parseDPDA(std::list<sax::Token>& input) const { DPDA automaton(initialState, initialStackSymbol); automaton.setStates(states); - automaton.setInputSymbols(inputSymbols); - automaton.setStackSymbols(stackSymbols); + automaton.setInputAlphabet(inputSymbols); + automaton.setStackAlphabet(stackSymbols); automaton.setFinalStates(finalStates); parseTransitions<DPDA>(input, automaton); @@ -239,8 +239,8 @@ SinglePopDPDA AutomatonFromXMLParser::parseSinglePopDPDA(std::list<sax::Token>& SinglePopDPDA automaton(initialState, initialStackSymbol); automaton.setStates(states); - automaton.setInputSymbols(inputSymbols); - automaton.setStackSymbols(stackSymbols); + automaton.setInputAlphabet(inputSymbols); + automaton.setStackAlphabet(stackSymbols); automaton.setFinalStates(finalStates); parseTransitions<SinglePopDPDA>(input, automaton); @@ -262,8 +262,8 @@ InputDrivenNPDA AutomatonFromXMLParser::parseInputDrivenNPDA(std::list<sax::Toke InputDrivenNPDA automaton(initialState, initialStackSymbol); automaton.setStates(states); - automaton.setInputSymbols(inputSymbols); - automaton.setStackSymbols(stackSymbols); + automaton.setInputAlphabet(inputSymbols); + automaton.setStackAlphabet(stackSymbols); automaton.setFinalStates(finalStates); parseInputToPushdownStoreOperation(input, automaton); @@ -278,9 +278,9 @@ VisiblyPushdownDPDA AutomatonFromXMLParser::parseVisiblyPushdownDPDA(std::list<s popToken(input, sax::Token::TokenType::START_ELEMENT, alib::Names::AUTOMATON_VISIBLY_PUSHDOWN_DPDA); std::set<State> states = parseStates(input); - std::set<alphabet::Symbol> callInputSymbols = parseCallInputAlphabet(input); - std::set<alphabet::Symbol> returnInputSymbols = parseReturnInputAlphabet(input); - std::set<alphabet::Symbol> localInputSymbols = parseLocalInputAlphabet(input); + std::set<alphabet::Symbol> callInputAlphabet = parseCallInputAlphabet(input); + std::set<alphabet::Symbol> returnInputAlphabet = parseReturnInputAlphabet(input); + std::set<alphabet::Symbol> localInputAlphabet = parseLocalInputAlphabet(input); std::set<alphabet::Symbol> stackSymbols = parseStackAlphabet(input); State initialState = parseInitialState(input); alphabet::Symbol bottomOfTheStackSymbol = parseBottomOfTheStackSymbol(input); @@ -288,10 +288,10 @@ VisiblyPushdownDPDA AutomatonFromXMLParser::parseVisiblyPushdownDPDA(std::list<s VisiblyPushdownDPDA automaton(initialState, bottomOfTheStackSymbol); automaton.setStates(states); - automaton.setCallInputSymbols(callInputSymbols); - automaton.setReturnInputSymbols(returnInputSymbols); - automaton.setLocalInputSymbols(localInputSymbols); - automaton.setStackSymbols(stackSymbols); + automaton.setCallInputAlphabet(callInputAlphabet); + automaton.setReturnInputAlphabet(returnInputAlphabet); + automaton.setLocalInputAlphabet(localInputAlphabet); + automaton.setStackAlphabet(stackSymbols); automaton.setFinalStates(finalStates); parseTransitions<VisiblyPushdownDPDA>(input, automaton); @@ -305,9 +305,9 @@ VisiblyPushdownNPDA AutomatonFromXMLParser::parseVisiblyPushdownNPDA(std::list<s popToken(input, sax::Token::TokenType::START_ELEMENT, alib::Names::AUTOMATON_VISIBLY_PUSHDOWN_NPDA); std::set<State> states = parseStates(input); - std::set<alphabet::Symbol> callInputSymbols = parseCallInputAlphabet(input); - std::set<alphabet::Symbol> returnInputSymbols = parseReturnInputAlphabet(input); - std::set<alphabet::Symbol> localInputSymbols = parseLocalInputAlphabet(input); + std::set<alphabet::Symbol> callInputAlphabet = parseCallInputAlphabet(input); + std::set<alphabet::Symbol> returnInputAlphabet = parseReturnInputAlphabet(input); + std::set<alphabet::Symbol> localInputAlphabet = parseLocalInputAlphabet(input); std::set<alphabet::Symbol> stackSymbols = parseStackAlphabet(input); std::set<State> initialStates = parseInitialStates(input); alphabet::Symbol bottomOfTheStackSymbol = parseBottomOfTheStackSymbol(input); @@ -315,10 +315,10 @@ VisiblyPushdownNPDA AutomatonFromXMLParser::parseVisiblyPushdownNPDA(std::list<s VisiblyPushdownNPDA automaton(bottomOfTheStackSymbol); automaton.setStates(states); - automaton.setCallInputSymbols(callInputSymbols); - automaton.setReturnInputSymbols(returnInputSymbols); - automaton.setLocalInputSymbols(localInputSymbols); - automaton.setStackSymbols(stackSymbols); + automaton.setCallInputAlphabet(callInputAlphabet); + automaton.setReturnInputAlphabet(returnInputAlphabet); + automaton.setLocalInputAlphabet(localInputAlphabet); + automaton.setStackAlphabet(stackSymbols); automaton.setInitialStates(initialStates); automaton.setFinalStates(finalStates); @@ -341,8 +341,8 @@ RealTimeHeightDeterministicDPDA AutomatonFromXMLParser::parseRealTimeHeightDeter RealTimeHeightDeterministicDPDA automaton(initialState, bottomOfTheStackSymbol); automaton.setStates(states); - automaton.setInputSymbols(inputSymbols); - automaton.setStackSymbols(stackSymbols); + automaton.setInputAlphabet(inputSymbols); + automaton.setStackAlphabet(stackSymbols); automaton.setFinalStates(finalStates); parseTransitions<RealTimeHeightDeterministicDPDA>(input, automaton); @@ -364,8 +364,8 @@ RealTimeHeightDeterministicNPDA AutomatonFromXMLParser::parseRealTimeHeightDeter RealTimeHeightDeterministicNPDA automaton(bottomOfTheStackSymbol); automaton.setStates(states); - automaton.setInputSymbols(inputSymbols); - automaton.setStackSymbols(stackSymbols); + automaton.setInputAlphabet(inputSymbols); + automaton.setStackAlphabet(stackSymbols); automaton.setInitialStates(initialStates); automaton.setFinalStates(finalStates); @@ -388,8 +388,8 @@ NPDA AutomatonFromXMLParser::parseNPDA(std::list<sax::Token>& input) const { NPDA automaton(initialState, initialStackSymbol); automaton.setStates(states); - automaton.setInputSymbols(inputSymbols); - automaton.setStackSymbols(stackSymbols); + automaton.setInputAlphabet(inputSymbols); + automaton.setStackAlphabet(stackSymbols); automaton.setFinalStates(finalStates); parseTransitions<NPDA>(input, automaton); @@ -411,8 +411,8 @@ SinglePopNPDA AutomatonFromXMLParser::parseSinglePopNPDA(std::list<sax::Token>& SinglePopNPDA automaton(initialState, initialStackSymbol); automaton.setStates(states); - automaton.setInputSymbols(inputSymbols); - automaton.setStackSymbols(stackSymbols); + automaton.setInputAlphabet(inputSymbols); + automaton.setStackAlphabet(stackSymbols); automaton.setFinalStates(finalStates); parseTransitions<SinglePopNPDA>(input, automaton); @@ -434,8 +434,8 @@ OneTapeDTM AutomatonFromXMLParser::parseOneTapeDTM(std::list<sax::Token>& input) OneTapeDTM automaton(initialState, blank); automaton.setStates(states); - automaton.setInputSymbols(inputSymbols); - automaton.setTapeSymbols(tapeSymbols); + automaton.setInputAlphabet(inputSymbols); + automaton.setTapeAlphabet(tapeSymbols); automaton.setInitialState(initialState); automaton.setFinalStates(finalStates); diff --git a/alib2data/src/automaton/FSM/CompactNFA.cpp b/alib2data/src/automaton/FSM/CompactNFA.cpp index f721b3b5df..b2d8c4266d 100644 --- a/alib2data/src/automaton/FSM/CompactNFA.cpp +++ b/alib2data/src/automaton/FSM/CompactNFA.cpp @@ -120,13 +120,13 @@ bool CompactNFA::addTransition(const State& from, const string::LinearString& in throw AutomatonException("State \"" + (std::string) to.getName() + "\" doesn't exist."); std::pair<State, string::LinearString> key = std::make_pair(from, input); - + return transitions[key].insert(to).second; } bool CompactNFA::removeTransition(const State& from, const string::LinearString& input, const State& to) { std::pair<State, string::LinearString> key = std::make_pair(from, input); - + return transitions[key].erase(to); } diff --git a/alib2data/src/automaton/FSM/FiniteAutomatonFromStringParser.cpp b/alib2data/src/automaton/FSM/FiniteAutomatonFromStringParser.cpp index b665c74fc2..f24fe5957e 100644 --- a/alib2data/src/automaton/FSM/FiniteAutomatonFromStringParser.cpp +++ b/alib2data/src/automaton/FSM/FiniteAutomatonFromStringParser.cpp @@ -180,7 +180,7 @@ NFA FiniteAutomatonFromStringParser::parseNFA(std::istream& input) const { NFA res(*initialState); delete initialState; - res.setInputSymbols(std::set<alphabet::Symbol>(symbols.begin(), symbols.end())); + res.setInputAlphabet(std::set<alphabet::Symbol>(symbols.begin(), symbols.end())); res.setStates(states); res.setFinalStates(finalStates); for(const std::tuple<State, alphabet::Symbol, State> transition : transitionFunction) { @@ -230,7 +230,7 @@ DFA FiniteAutomatonFromStringParser::parseDFA(std::istream& input) const { DFA res(*initialState); delete initialState; - res.setInputSymbols(std::set<alphabet::Symbol>(symbols.begin(), symbols.end())); + res.setInputAlphabet(std::set<alphabet::Symbol>(symbols.begin(), symbols.end())); res.setStates(states); res.setFinalStates(finalStates); for(const std::tuple<State, alphabet::Symbol, State> transition : transitionFunction) { diff --git a/alib2data/src/automaton/common/BlankSymbolInputTapeAlphabet.cpp b/alib2data/src/automaton/common/BlankSymbolInputTapeAlphabet.cpp index 1a0028f2cb..b47b87b247 100644 --- a/alib2data/src/automaton/common/BlankSymbolInputTapeAlphabet.cpp +++ b/alib2data/src/automaton/common/BlankSymbolInputTapeAlphabet.cpp @@ -32,7 +32,7 @@ bool BlankSymbolInputTapeAlphabet::addInputSymbol(const alphabet::Symbol& symbol return inputAlphabet.insert(symbol).second; } -void BlankSymbolInputTapeAlphabet::setInputSymbols(const std::set<alphabet::Symbol>& newSymbols) { +void BlankSymbolInputTapeAlphabet::setInputAlphabet(const std::set<alphabet::Symbol>& newSymbols) { std::set<alphabet::Symbol> removed; std::set_difference(inputAlphabet.begin(), inputAlphabet.end(), newSymbols.begin(), newSymbols.end(), std::inserter(removed, removed.end())); @@ -52,7 +52,7 @@ bool BlankSymbolInputTapeAlphabet::addTapeSymbol(const alphabet::Symbol& symbol) return tapeAlphabet.insert(symbol).second; } -void BlankSymbolInputTapeAlphabet::setTapeSymbols(const std::set<alphabet::Symbol>& newSymbols) { +void BlankSymbolInputTapeAlphabet::setTapeAlphabet(const std::set<alphabet::Symbol>& newSymbols) { std::set<alphabet::Symbol> removed; std::set_difference(tapeAlphabet.begin(), tapeAlphabet.end(), newSymbols.begin(), newSymbols.end(), std::inserter(removed, removed.end())); diff --git a/alib2data/src/automaton/common/BlankSymbolInputTapeAlphabet.h b/alib2data/src/automaton/common/BlankSymbolInputTapeAlphabet.h index ae61370128..968457aea4 100644 --- a/alib2data/src/automaton/common/BlankSymbolInputTapeAlphabet.h +++ b/alib2data/src/automaton/common/BlankSymbolInputTapeAlphabet.h @@ -33,7 +33,7 @@ public: * @param symbols Symbols to set * @throws AutomatonException when symbol already exists */ - void setInputSymbols(const std::set<alphabet::Symbol>& symbol); + void setInputAlphabet(const std::set<alphabet::Symbol>& symbol); /** * Removes input symbol from the input alphabet. @@ -60,7 +60,7 @@ public: * @param symbols Symbols to set * @throw AutomatonException when Symbol is already present in tape alphabet */ - void setTapeSymbols(const std::set<alphabet::Symbol>& symbols); + void setTapeAlphabet(const std::set<alphabet::Symbol>& symbols); /** * Removes symbol from the tape alphabet. diff --git a/alib2data/src/automaton/common/CallReturnLocalInputAlphabet.cpp b/alib2data/src/automaton/common/CallReturnLocalInputAlphabet.cpp index 9a031f3773..45c35195c4 100644 --- a/alib2data/src/automaton/common/CallReturnLocalInputAlphabet.cpp +++ b/alib2data/src/automaton/common/CallReturnLocalInputAlphabet.cpp @@ -24,7 +24,7 @@ bool CallReturnLocalInputAlphabet::addCallInputSymbol(const alphabet::Symbol& sy return callInputAlphabet.insert(symbol).second; } -void CallReturnLocalInputAlphabet::setCallInputSymbols(const std::set<alphabet::Symbol>& newSymbols) { +void CallReturnLocalInputAlphabet::setCallInputAlphabet(const std::set<alphabet::Symbol>& newSymbols) { std::set<alphabet::Symbol> removed; std::set_difference(callInputAlphabet.begin(), callInputAlphabet.end(), newSymbols.begin(), newSymbols.end(), std::inserter(removed, removed.end())); @@ -52,7 +52,7 @@ bool CallReturnLocalInputAlphabet::addReturnInputSymbol(const alphabet::Symbol& return returnInputAlphabet.insert(symbol).second; } -void CallReturnLocalInputAlphabet::setReturnInputSymbols(const std::set<alphabet::Symbol>& newSymbols) { +void CallReturnLocalInputAlphabet::setReturnInputAlphabet(const std::set<alphabet::Symbol>& newSymbols) { std::set<alphabet::Symbol> removed; std::set_difference(returnInputAlphabet.begin(), returnInputAlphabet.end(), newSymbols.begin(), newSymbols.end(), std::inserter(removed, removed.end())); @@ -80,7 +80,7 @@ bool CallReturnLocalInputAlphabet::addLocalInputSymbol(const alphabet::Symbol& s return localInputAlphabet.insert(symbol).second; } -void CallReturnLocalInputAlphabet::setLocalInputSymbols(const std::set<alphabet::Symbol>& newSymbols) { +void CallReturnLocalInputAlphabet::setLocalInputAlphabet(const std::set<alphabet::Symbol>& newSymbols) { std::set<alphabet::Symbol> removed; std::set_difference(localInputAlphabet.begin(), localInputAlphabet.end(), newSymbols.begin(), newSymbols.end(), std::inserter(removed, removed.end())); diff --git a/alib2data/src/automaton/common/CallReturnLocalInputAlphabet.h b/alib2data/src/automaton/common/CallReturnLocalInputAlphabet.h index 35c988b36d..87339acbe6 100644 --- a/alib2data/src/automaton/common/CallReturnLocalInputAlphabet.h +++ b/alib2data/src/automaton/common/CallReturnLocalInputAlphabet.h @@ -35,7 +35,7 @@ public: * @param symbols Symbols to set * @throws AutomatonException when symbol already exists */ - void setCallInputSymbols(const std::set<alphabet::Symbol>& symbols); + void setCallInputAlphabet(const std::set<alphabet::Symbol>& symbols); /** * Adds input symbol to input alphabet. @@ -49,7 +49,7 @@ public: * @param symbols Symbols to set * @throws AutomatonException when symbol already exists */ - void setReturnInputSymbols(const std::set<alphabet::Symbol>& symbols); + void setReturnInputAlphabet(const std::set<alphabet::Symbol>& symbols); /** * Adds input symbol to input alphabet. @@ -63,7 +63,7 @@ public: * @param symbols Symbols to set * @throws AutomatonException when symbol already exists */ - void setLocalInputSymbols(const std::set<alphabet::Symbol>& symbols); + void setLocalInputAlphabet(const std::set<alphabet::Symbol>& symbols); /** * Removes input symbol from the input alphabet. diff --git a/alib2data/src/automaton/common/InputAlphabet.cpp b/alib2data/src/automaton/common/InputAlphabet.cpp index 41f4f8fb0e..1f44f2426c 100644 --- a/alib2data/src/automaton/common/InputAlphabet.cpp +++ b/alib2data/src/automaton/common/InputAlphabet.cpp @@ -20,7 +20,7 @@ bool InputAlphabet::addInputSymbol(const alphabet::Symbol& symbol) { return inputAlphabet.insert(symbol).second; } -void InputAlphabet::setInputSymbols(const std::set<alphabet::Symbol>& newSymbols) { +void InputAlphabet::setInputAlphabet(const std::set<alphabet::Symbol>& newSymbols) { std::set<alphabet::Symbol> removed; std::set_difference(inputAlphabet.begin(), inputAlphabet.end(), newSymbols.begin(), newSymbols.end(), std::inserter(removed, removed.end())); diff --git a/alib2data/src/automaton/common/InputAlphabet.h b/alib2data/src/automaton/common/InputAlphabet.h index 10c930742d..c14d84c1e5 100644 --- a/alib2data/src/automaton/common/InputAlphabet.h +++ b/alib2data/src/automaton/common/InputAlphabet.h @@ -33,7 +33,7 @@ public: * @param symbols Symbols to set * @throws AutomatonException when symbol already exists */ - void setInputSymbols(const std::set<alphabet::Symbol>& symbols); + void setInputAlphabet(const std::set<alphabet::Symbol>& symbols); /** * Removes input symbol from the input alphabet. diff --git a/alib2data/src/automaton/common/PushdownStoreAlphabet.cpp b/alib2data/src/automaton/common/PushdownStoreAlphabet.cpp index ed37343b1b..fcaf225f3b 100644 --- a/alib2data/src/automaton/common/PushdownStoreAlphabet.cpp +++ b/alib2data/src/automaton/common/PushdownStoreAlphabet.cpp @@ -15,7 +15,7 @@ bool PushdownStoreAlphabet::addStackSymbol(const alphabet::Symbol& symbol) { return stackAlphabet.insert(symbol).second; } -void PushdownStoreAlphabet::setStackSymbols(const std::set<alphabet::Symbol>& newSymbols) { +void PushdownStoreAlphabet::setStackAlphabet(const std::set<alphabet::Symbol>& newSymbols) { std::set<alphabet::Symbol> removed; std::set_difference(stackAlphabet.begin(), stackAlphabet.end(), newSymbols.begin(), newSymbols.end(), std::inserter(removed, removed.end())); diff --git a/alib2data/src/automaton/common/PushdownStoreAlphabet.h b/alib2data/src/automaton/common/PushdownStoreAlphabet.h index 8193119926..3207df3d45 100644 --- a/alib2data/src/automaton/common/PushdownStoreAlphabet.h +++ b/alib2data/src/automaton/common/PushdownStoreAlphabet.h @@ -32,7 +32,7 @@ public: * @param symbols Symbols to set * @throws AutomatonException when symbol is already present in stack alphabet */ - void setStackSymbols(const std::set<alphabet::Symbol>& symbols); + void setStackAlphabet(const std::set<alphabet::Symbol>& symbols); /** * Removes symbol from the stack alphabet. diff --git a/alib2data/test-src/automaton/AutomatonTest.cpp b/alib2data/test-src/automaton/AutomatonTest.cpp index 448ce9968c..7d54d3b6e6 100644 --- a/alib2data/test-src/automaton/AutomatonTest.cpp +++ b/alib2data/test-src/automaton/AutomatonTest.cpp @@ -232,7 +232,7 @@ void AutomatonTest::testExtendedNFAAlphabet() { automaton.addState(s0); automaton.addState(s1); - automaton.setInputSymbols({alphabet::symbolFrom('a'), alphabet::symbolFrom('b') }); + automaton.setInputAlphabet({alphabet::symbolFrom('a'), alphabet::symbolFrom('b') }); regexp::UnboundedRegExpConcatenation goodConcat1, goodConcat2; regexp::UnboundedRegExpConcatenation badConcat; @@ -256,8 +256,8 @@ void AutomatonTest::testNPDATransitions() { automaton::NPDA automaton(automaton::State(0), alphabet::symbolFrom("T")); automaton.setStates({automaton::State(0), automaton::State(1), automaton::State(2), automaton::State(3), automaton::State(4)}); - automaton.setInputSymbols({alphabet::symbolFrom("a2"), alphabet::symbolFrom("a1"), alphabet::symbolFrom("a0")}); - automaton.setStackSymbols({alphabet::symbolFrom("T"), alphabet::symbolFrom("R")}); + automaton.setInputAlphabet({alphabet::symbolFrom("a2"), alphabet::symbolFrom("a1"), alphabet::symbolFrom("a0")}); + automaton.setStackAlphabet({alphabet::symbolFrom("T"), alphabet::symbolFrom("R")}); automaton.addTransition(automaton::State(0), alphabet::symbolFrom("a2"), {alphabet::symbolFrom("T")}, automaton::State(0), {alphabet::symbolFrom("T"), alphabet::symbolFrom("T")}); automaton.addTransition(automaton::State(0), alphabet::symbolFrom("a1"), {alphabet::symbolFrom("T")}, automaton::State(0), {alphabet::symbolFrom("T")}); @@ -293,8 +293,8 @@ void AutomatonTest::testRHPDATransitions() { automaton.setStates({automaton::State(1), automaton::State(2), automaton::State(3)}); automaton.setInitialStates({automaton::State(1)}); - automaton.setInputSymbols({alphabet::symbolFrom("a"), alphabet::symbolFrom("b")}); - automaton.setStackSymbols({alphabet::Symbol(alphabet::BottomOfTheStackSymbol::BOTTOM_OF_THE_STACK), alphabet::symbolFrom("X"), alphabet::symbolFrom("Y")}); + automaton.setInputAlphabet({alphabet::symbolFrom("a"), alphabet::symbolFrom("b")}); + automaton.setStackAlphabet({alphabet::Symbol(alphabet::BottomOfTheStackSymbol::BOTTOM_OF_THE_STACK), alphabet::symbolFrom("X"), alphabet::symbolFrom("Y")}); automaton.addCallTransition(automaton::State(1), alphabet::symbolFrom("a"), automaton::State(2), alphabet::symbolFrom("X")); automaton.addCallTransition(automaton::State(2), automaton::State(3), alphabet::symbolFrom("X")); -- GitLab