From 5000b64f1e0fc47242f401f19ab0344753927fd9 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Mon, 22 Sep 2014 08:53:14 +0200 Subject: [PATCH] retrieve alphabets as references --- alib2data/src/regexp/RegExpAlphabetGetter.cpp | 14 +++++++------- alib2data/src/regexp/RegExpAlphabetGetter.h | 2 +- alib2data/src/string/StringAlphabetGetter.cpp | 18 +++++++++--------- alib2data/src/string/StringAlphabetGetter.h | 2 +- alib2data/src/string/common/StringAlphabet.h | 4 ++-- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/alib2data/src/regexp/RegExpAlphabetGetter.cpp b/alib2data/src/regexp/RegExpAlphabetGetter.cpp index c348820451..02a719fffb 100644 --- a/alib2data/src/regexp/RegExpAlphabetGetter.cpp +++ b/alib2data/src/regexp/RegExpAlphabetGetter.cpp @@ -10,19 +10,19 @@ namespace regexp { void RegExpAlphabetGetter::Visit(void* userData, const UnboundedRegExp& regexp) const { - std::set<alphabet::Symbol> &res = *((std::set<alphabet::Symbol>*) userData); - res = regexp.getAlphabet(); + const std::set<alphabet::Symbol>* &res = *((const std::set<alphabet::Symbol>**) userData); + res = ®exp.getAlphabet(); } void RegExpAlphabetGetter::Visit(void* userData, const FormalRegExp& regexp) const { - std::set<alphabet::Symbol> &res = *((std::set<alphabet::Symbol>*) userData); - res = regexp.getAlphabet(); + const std::set<alphabet::Symbol>* &res = *((const std::set<alphabet::Symbol>**) userData); + res = ®exp.getAlphabet(); } -std::set<alphabet::Symbol> RegExpAlphabetGetter::getAlphabet(const RegExp& regexp) const { - std::set<alphabet::Symbol> res; +const std::set<alphabet::Symbol>& RegExpAlphabetGetter::getAlphabet(const RegExp& regexp) const { + const std::set<alphabet::Symbol>* res; regexp.getData().Accept((void*) &res, *this); - return std::move(res); + return *res; } const RegExpAlphabetGetter RegExpAlphabetGetter::REG_EXP_ALPHABET_GETTER; diff --git a/alib2data/src/regexp/RegExpAlphabetGetter.h b/alib2data/src/regexp/RegExpAlphabetGetter.h index d278c1153f..88cea5e1c1 100644 --- a/alib2data/src/regexp/RegExpAlphabetGetter.h +++ b/alib2data/src/regexp/RegExpAlphabetGetter.h @@ -26,7 +26,7 @@ public: * @param regexp RegExp to print * @returns string representation of regexp */ - std::set<alphabet::Symbol> getAlphabet(const RegExp& regexp) const; + const std::set<alphabet::Symbol>& getAlphabet(const RegExp& regexp) const; static const RegExpAlphabetGetter REG_EXP_ALPHABET_GETTER; }; diff --git a/alib2data/src/string/StringAlphabetGetter.cpp b/alib2data/src/string/StringAlphabetGetter.cpp index 68a0b72cd2..f85d76385e 100644 --- a/alib2data/src/string/StringAlphabetGetter.cpp +++ b/alib2data/src/string/StringAlphabetGetter.cpp @@ -10,24 +10,24 @@ namespace string { void StringAlphabetGetter::Visit(void* userData, const CyclicString& string) const { - std::set<alphabet::Symbol> &res = *((std::set<alphabet::Symbol>*) userData); - res = string.getAlphabet(); + const std::set<alphabet::Symbol>* &res = *((const std::set<alphabet::Symbol>**) userData); + res = &string.getAlphabet(); } void StringAlphabetGetter::Visit(void* userData, const Epsilon& string) const { - std::set<alphabet::Symbol> &res = *((std::set<alphabet::Symbol>*) userData); - res = string.getAlphabet(); + const std::set<alphabet::Symbol>* &res = *((const std::set<alphabet::Symbol>**) userData); + res = &string.getAlphabet(); } void StringAlphabetGetter::Visit(void* userData, const LinearString& string) const { - std::set<alphabet::Symbol> &res = *((std::set<alphabet::Symbol>*) userData); - res = string.getAlphabet(); + const std::set<alphabet::Symbol>* &res = *((const std::set<alphabet::Symbol>**) userData); + res = &string.getAlphabet(); } -std::set<alphabet::Symbol> StringAlphabetGetter::getAlphabet(const String& string) const { - std::set<alphabet::Symbol> res; +const std::set<alphabet::Symbol>& StringAlphabetGetter::getAlphabet(const String& string) const { + const std::set<alphabet::Symbol>* res; string.getData().Accept((void*) &res, *this); - return std::move(res); + return *res; } const StringAlphabetGetter StringAlphabetGetter::STRING_ALPHABET_GETTER; diff --git a/alib2data/src/string/StringAlphabetGetter.h b/alib2data/src/string/StringAlphabetGetter.h index c3f84c738a..ec391dba5e 100644 --- a/alib2data/src/string/StringAlphabetGetter.h +++ b/alib2data/src/string/StringAlphabetGetter.h @@ -28,7 +28,7 @@ public: * @param string String to print * @returns string representation of string */ - std::set<alphabet::Symbol> getAlphabet(const String& string) const; + const std::set<alphabet::Symbol>& getAlphabet(const String& string) const; static const StringAlphabetGetter STRING_ALPHABET_GETTER; }; diff --git a/alib2data/src/string/common/StringAlphabet.h b/alib2data/src/string/common/StringAlphabet.h index 5838ed4608..6bb3fffe39 100644 --- a/alib2data/src/string/common/StringAlphabet.h +++ b/alib2data/src/string/common/StringAlphabet.h @@ -26,8 +26,8 @@ public: * @param symbol Symbol to add */ bool addSymbolToAlphabet(const alphabet::Symbol& symbol); - - /** + + /** * Adds input symbols to input alphabet. * @param symbols Symbol to add */ -- GitLab