summaryrefslogtreecommitdiff
path: root/libcutl/cutl/re
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff.email>2024-03-06 10:24:46 +0100
committerJörg Frings-Fürst <debian@jff.email>2024-03-06 10:24:46 +0100
commit372a0e99c2f61543d9e14d9933b59d9d1f4cb26e (patch)
treebbadf39aed0610c8f8f7b41fefff47773b8ac205 /libcutl/cutl/re
parent23d41842168ac1a1580111b9c5c73500ceee3d57 (diff)
parent4538829ab86b5a1cd4e845e7eab165029c9d6d46 (diff)
Merge branch 'feature/upstream' into develop
Diffstat (limited to 'libcutl/cutl/re')
-rw-r--r--libcutl/cutl/re/re.cxx223
-rw-r--r--libcutl/cutl/re/re.txx69
2 files changed, 0 insertions, 292 deletions
diff --git a/libcutl/cutl/re/re.cxx b/libcutl/cutl/re/re.cxx
deleted file mode 100644
index 3b132ab..0000000
--- a/libcutl/cutl/re/re.cxx
+++ /dev/null
@@ -1,223 +0,0 @@
-// file : cutl/re/re.cxx
-// copyright : Copyright (c) 2009-2013 Code Synthesis Tools CC
-// license : MIT; see accompanying LICENSE file
-
-#include <cutl/re.hxx>
-
-#include <cutl/details/config.hxx> // LIBCUTL_EXTERNAL_BOOST
-
-#ifndef LIBCUTL_EXTERNAL_BOOST
-# include <cutl/details/boost/tr1/regex.hpp>
-#else
-# include <boost/tr1/regex.hpp>
-#endif
-
-using namespace std;
-
-namespace cutl
-{
- namespace re
- {
- //
- // format_base
- //
-
- format_base::
- ~format_base () throw ()
- {
- }
-
- char const* format_base::
- what () const throw ()
- {
- return description_.c_str ();
- }
-
- //
- // basic_regex
- //
- template <typename C>
- struct basic_regex<C>::impl
- {
- typedef basic_string<C> string_type;
- typedef tr1::basic_regex<C> regex_type;
- typedef typename regex_type::flag_type flag_type;
-
- impl () {}
- impl (regex_type const& r): r (r) {}
- impl (string_type const& s, bool icase)
- {
- flag_type f (tr1::regex_constants::ECMAScript);
-
- if (icase)
- f |= tr1::regex_constants::icase;
-
- r.assign (s, f);
- }
-
- regex_type r;
- };
-
- template <>
- basic_regex<char>::
- ~basic_regex ()
- {
- delete impl_;
- }
-
- template <>
- basic_regex<wchar_t>::
- ~basic_regex ()
- {
- delete impl_;
- }
-
- template <>
- basic_regex<char>::
- basic_regex (basic_regex const& r)
- : str_ (r.str_), impl_ (new impl (r.impl_->r))
- {
- }
-
- template <>
- basic_regex<wchar_t>::
- basic_regex (basic_regex const& r)
- : str_ (r.str_), impl_ (new impl (r.impl_->r))
- {
- }
-
- template <>
- basic_regex<char>& basic_regex<char>::
- operator= (basic_regex const& r)
- {
- string_type tmp (r.str_);
- impl_->r = r.impl_->r;
- str_.swap (tmp);
- return *this;
- }
-
- template <>
- basic_regex<wchar_t>& basic_regex<wchar_t>::
- operator= (basic_regex const& r)
- {
- string_type tmp (r.str_);
- impl_->r = r.impl_->r;
- str_.swap (tmp);
- return *this;
- }
-
- template <>
- void basic_regex<char>::
- init (string_type const* s, bool icase)
- {
- string_type tmp (s == 0 ? string_type () : *s);
-
- try
- {
- if (impl_ == 0)
- impl_ = s == 0 ? new impl : new impl (*s, icase);
- else
- {
- impl::flag_type f (tr1::regex_constants::ECMAScript);
-
- if (icase)
- f |= tr1::regex_constants::icase;
-
- impl_->r.assign (*s, f);
- }
- }
- catch (tr1::regex_error const& e)
- {
- throw basic_format<char> (s == 0 ? "" : *s, e.what ());
- }
-
- str_.swap (tmp);
- }
-
- template <>
- void basic_regex<wchar_t>::
- init (string_type const* s, bool icase)
- {
- string_type tmp (s == 0 ? string_type () : *s);
-
- try
- {
- if (impl_ == 0)
- impl_ = s == 0 ? new impl : new impl (*s, icase);
- else
- {
- impl::flag_type f (tr1::regex_constants::ECMAScript);
-
- if (icase)
- f |= tr1::regex_constants::icase;
-
- impl_->r.assign (*s, f);
- }
- }
- catch (tr1::regex_error const& e)
- {
- throw basic_format<wchar_t> (s == 0 ? L"" : *s, e.what ());
- }
-
- str_.swap (tmp);
- }
-
- template <>
- bool basic_regex<char>::
- match (string_type const& s) const
- {
- return tr1::regex_match (s, impl_->r);
- }
-
- template <>
- bool basic_regex<wchar_t>::
- match (string_type const& s) const
- {
- return tr1::regex_match (s, impl_->r);
- }
-
- template <>
- bool basic_regex<char>::
- search (string_type const& s) const
- {
- return tr1::regex_search (s, impl_->r);
- }
-
- template <>
- bool basic_regex<wchar_t>::
- search (string_type const& s) const
- {
- return tr1::regex_search (s, impl_->r);
- }
-
- template <>
- string basic_regex<char>::
- replace (string_type const& s,
- string_type const& sub,
- bool first_only) const
- {
- tr1::regex_constants::match_flag_type f (
- tr1::regex_constants::format_default);
-
- if (first_only)
- f |= tr1::regex_constants::format_first_only;
-
- return tr1::regex_replace (s, impl_->r, sub, f);
- }
-
- template <>
- wstring basic_regex<wchar_t>::
- replace (string_type const& s,
- string_type const& sub,
- bool first_only) const
- {
- tr1::regex_constants::match_flag_type f (
- tr1::regex_constants::format_default);
-
- if (first_only)
- f |= tr1::regex_constants::format_first_only;
-
- return tr1::regex_replace (s, impl_->r, sub, f);
- }
- }
-}
diff --git a/libcutl/cutl/re/re.txx b/libcutl/cutl/re/re.txx
deleted file mode 100644
index 174e0d4..0000000
--- a/libcutl/cutl/re/re.txx
+++ /dev/null
@@ -1,69 +0,0 @@
-// file : cutl/re/re.txx
-// copyright : Copyright (c) 2009-2013 Code Synthesis Tools CC
-// license : MIT; see accompanying LICENSE file
-
-namespace cutl
-{
- namespace re
- {
- //
- // basic_regexsub
- //
- template <typename C>
- void basic_regexsub<C>::
- init (string_type const& s)
- {
- string_type r;
- typename string_type::size_type p (parse (s, 0, r));
- regex_ = r;
- p = parse (s, p, sub_);
- if (p + 1 < s.size ())
- throw basic_format<C> (s, "junk after third delimiter");
- }
-
- //
- // parse()
- //
- template <typename C>
- typename std::basic_string<C>::size_type
- parse (std::basic_string<C> const& s,
- typename std::basic_string<C>::size_type p,
- std::basic_string<C>& r)
- {
- r.clear ();
- typename std::basic_string<C>::size_type n (s.size ());
-
- if (p >= n)
- throw basic_format<C> (s, "empty expression");
-
- char d (s[p++]);
-
- for (; p < n; ++p)
- {
- if (s[p] == d)
- break;
-
- if (s[p] == '\\')
- {
- if (++p < n)
- {
- // Pass the escape sequence through unless it is the delimiter.
- //
- if (s[p] != d)
- r += '\\';
-
- r += s[p];
- }
- // else {We ran out of stuff before finding the delimiter.}
- }
- else
- r += s[p];
- }
-
- if (p == n)
- throw basic_format<C> (s, "missing closing delimiter");
-
- return p;
- }
- }
-}