diff options
| author | Maxime Coste <mawww@kakoune.org> | 2018-03-05 03:10:47 +1100 |
|---|---|---|
| committer | Maxime Coste <mawww@kakoune.org> | 2018-03-05 03:10:47 +1100 |
| commit | d9e44dfacf64b7a04aeccf110e2d54bd89f5ecaf (patch) | |
| tree | 226a77c97fabedfdff0d26ab65e68232db0f900d | |
| parent | 6c4faf2050d94f2229bf5bb1314efb7f28da6931 (diff) | |
Regex: Remove helper functions from regex_impl.hh
They were close duplicates from the ones in regex.hh and not used
anywhere else.
| -rw-r--r-- | src/regex.hh | 22 | ||||
| -rw-r--r-- | src/regex_impl.hh | 42 |
2 files changed, 18 insertions, 46 deletions
diff --git a/src/regex.hh b/src/regex.hh index cbd4a14a..4d8fa95c 100644 --- a/src/regex.hh +++ b/src/regex.hh @@ -113,21 +113,29 @@ inline RegexExecFlags match_flags(bool bol, bool eol, bool bow, bool eow, bool b template<typename It> bool regex_match(It begin, It end, const Regex& re) { - return regex_match(begin, end, *re.impl()); + ThreadedRegexVM<It, MatchDirection::Forward> vm{*re.impl()}; + return vm.exec(begin, end, RegexExecFlags::AnyMatch | RegexExecFlags::NoSaves); } template<typename It> bool regex_match(It begin, It end, MatchResults<It>& res, const Regex& re) { res.values().clear(); - return regex_match(begin, end, res.values(), *re.impl()); + ThreadedRegexVM<It, MatchDirection::Forward> vm{*re.impl()}; + if (vm.exec(begin, end, RegexExecFlags::None)) + { + std::copy(vm.captures().begin(), vm.captures().end(), std::back_inserter(res.values())); + return true; + } + return false; } template<typename It> bool regex_search(It begin, It end, const Regex& re, RegexExecFlags flags = RegexExecFlags::None) { - return regex_search(begin, end, *re.impl(), flags); + ThreadedRegexVM<It, MatchDirection::Forward> vm{*re.impl()}; + return vm.exec(begin, end, flags | RegexExecFlags::Search | RegexExecFlags::AnyMatch | RegexExecFlags::NoSaves); } template<typename It, MatchDirection direction = MatchDirection::Forward> @@ -135,7 +143,13 @@ bool regex_search(It begin, It end, MatchResults<It>& res, const Regex& re, RegexExecFlags flags = RegexExecFlags::None) { res.values().clear(); - return regex_search<It, direction>(begin, end, res.values(), *re.impl(), flags); + ThreadedRegexVM<It, direction> vm{*re.impl()}; + if (vm.exec(begin, end, flags | RegexExecFlags::Search)) + { + std::move(vm.captures().begin(), vm.captures().end(), std::back_inserter(res.values())); + return true; + } + return false; } template<typename It> diff --git a/src/regex_impl.hh b/src/regex_impl.hh index 8fe40d16..ff9c8c0d 100644 --- a/src/regex_impl.hh +++ b/src/regex_impl.hh @@ -573,48 +573,6 @@ private: Saves* m_captures = nullptr; }; -template<typename It, MatchDirection direction = MatchDirection::Forward> -bool regex_match(It begin, It end, const CompiledRegex& re, RegexExecFlags flags = RegexExecFlags::None) -{ - ThreadedRegexVM<It, direction> vm{re}; - return vm.exec(begin, end, (RegexExecFlags)(flags & ~(RegexExecFlags::Search)) | - RegexExecFlags::AnyMatch | RegexExecFlags::NoSaves); -} - -template<typename It, MatchDirection direction = MatchDirection::Forward> -bool regex_match(It begin, It end, Vector<It, MemoryDomain::Regex>& captures, const CompiledRegex& re, - RegexExecFlags flags = RegexExecFlags::None) -{ - ThreadedRegexVM<It, direction> vm{re}; - if (vm.exec(begin, end, flags & ~(RegexExecFlags::Search))) - { - std::copy(vm.captures().begin(), vm.captures().end(), std::back_inserter(captures)); - return true; - } - return false; -} - -template<typename It, MatchDirection direction = MatchDirection::Forward> -bool regex_search(It begin, It end, const CompiledRegex& re, - RegexExecFlags flags = RegexExecFlags::None) -{ - ThreadedRegexVM<It, direction> vm{re}; - return vm.exec(begin, end, flags | RegexExecFlags::Search | RegexExecFlags::AnyMatch | RegexExecFlags::NoSaves); -} - -template<typename It, MatchDirection direction = MatchDirection::Forward> -bool regex_search(It begin, It end, Vector<It, MemoryDomain::Regex>& captures, const CompiledRegex& re, - RegexExecFlags flags = RegexExecFlags::None) -{ - ThreadedRegexVM<It, direction> vm{re}; - if (vm.exec(begin, end, flags | RegexExecFlags::Search)) - { - std::move(vm.captures().begin(), vm.captures().end(), std::back_inserter(captures)); - return true; - } - return false; -} - } #endif // regex_impl_hh_INCLUDED |
