include/boost/regex/v5/regex_traits.hpp
100.0% Lines (18/18)
96.9% List of functions (31/33)
Functions (33)
Function
Calls
Lines
Blocks
boost::regex_traits<char, boost::cpp_regex_traits<char> >::regex_traits()
:39
76x
100.0%
100.0%
boost::regex_traits<wchar_t, boost::cpp_regex_traits<wchar_t> >::regex_traits()
:39
10x
100.0%
100.0%
boost::re_detail_600::default_wrapper<boost::c_regex_traits<char> >::error_string[abi:cxx11](boost::regex_constants::error_type) const
:67
6252x
100.0%
100.0%
boost::re_detail_600::default_wrapper<boost::c_regex_traits<wchar_t> >::error_string[abi:cxx11](boost::regex_constants::error_type) const
:67
6252x
100.0%
100.0%
boost::re_detail_600::default_wrapper<char32_traits>::error_string[abi:cxx11](boost::regex_constants::error_type) const
:67
0
0.0%
0.0%
<unknown function 69>
:69
–
–
–
boost::re_detail_600::default_wrapper<boost::c_regex_traits<char> >::syntax_type(char) const
:71
3630786x
100.0%
100.0%
boost::re_detail_600::default_wrapper<boost::c_regex_traits<wchar_t> >::syntax_type(wchar_t) const
:71
1322809x
100.0%
100.0%
boost::re_detail_600::default_wrapper<char32_traits>::syntax_type(char32_t) const
:71
24x
100.0%
80.0%
boost::re_detail_600::default_wrapper<boost::c_regex_traits<char> >::escape_syntax_type(char) const
:75
706634x
100.0%
80.0%
boost::re_detail_600::default_wrapper<boost::c_regex_traits<wchar_t> >::escape_syntax_type(wchar_t) const
:75
61008x
100.0%
80.0%
boost::re_detail_600::default_wrapper<char32_traits>::escape_syntax_type(char32_t) const
:75
16x
100.0%
80.0%
boost::re_detail_600::default_wrapper<boost::c_regex_traits<char> >::toi(char const*&, char const*, int) const
:79
227820x
100.0%
100.0%
boost::re_detail_600::default_wrapper<boost::c_regex_traits<wchar_t> >::toi(wchar_t const*&, wchar_t const*, int) const
:79
37464x
100.0%
100.0%
boost::re_detail_600::default_wrapper<char32_traits>::toi(char32_t const*&, char32_t const*, int) const
:79
8x
100.0%
100.0%
boost::re_detail_600::default_wrapper<boost::c_regex_traits<char> >::translate(char, bool) const
:83
225752532x
100.0%
100.0%
boost::re_detail_600::default_wrapper<boost::c_regex_traits<wchar_t> >::translate(wchar_t, bool) const
:83
43636489x
100.0%
100.0%
boost::re_detail_600::default_wrapper<char32_traits>::translate(char32_t, bool) const
:83
272x
100.0%
80.0%
boost::re_detail_600::default_wrapper<boost::c_regex_traits<char> >::translate(char) const
:87
223247316x
100.0%
100.0%
boost::re_detail_600::default_wrapper<boost::c_regex_traits<wchar_t> >::translate(wchar_t) const
:87
41355169x
100.0%
100.0%
boost::re_detail_600::default_wrapper<char32_traits>::translate(char32_t) const
:87
272x
100.0%
100.0%
boost::re_detail_600::default_wrapper<boost::c_regex_traits<char> >::tolower(char) const
:91
180x
100.0%
100.0%
boost::re_detail_600::default_wrapper<boost::c_regex_traits<wchar_t> >::tolower(wchar_t) const
:91
180x
100.0%
100.0%
boost::re_detail_600::default_wrapper<boost::c_regex_traits<char> >::toupper(char) const
:95
132x
100.0%
100.0%
boost::re_detail_600::default_wrapper<boost::c_regex_traits<wchar_t> >::toupper(wchar_t) const
:95
132x
100.0%
100.0%
boost::regex_traits_wrapper<boost::c_regex_traits<char> >::regex_traits_wrapper()
:121
45052x
100.0%
100.0%
boost::regex_traits_wrapper<boost::c_regex_traits<wchar_t> >::regex_traits_wrapper()
:121
45373x
100.0%
100.0%
boost::regex_traits_wrapper<boost::cpp_regex_traits<char> >::regex_traits_wrapper()
:121
28668x
100.0%
100.0%
boost::regex_traits_wrapper<boost::cpp_regex_traits<wchar_t> >::regex_traits_wrapper()
:121
28776x
100.0%
100.0%
boost::regex_traits_wrapper<boost::icu_regex_traits>::regex_traits_wrapper()
:121
149240x
100.0%
100.0%
boost::regex_traits_wrapper<boost::regex_traits<char, boost::cpp_regex_traits<char> > >::regex_traits_wrapper()
:121
76x
100.0%
100.0%
boost::regex_traits_wrapper<boost::regex_traits<wchar_t, boost::cpp_regex_traits<wchar_t> > >::regex_traits_wrapper()
:121
10x
100.0%
100.0%
boost::regex_traits_wrapper<char32_traits>::regex_traits_wrapper()
:121
1x
100.0%
100.0%
| Line | TLA | Hits | Source Code |
|---|---|---|---|
| 1 | /* | ||
| 2 | * | ||
| 3 | * Copyright (c) 2003 | ||
| 4 | * John Maddock | ||
| 5 | * | ||
| 6 | * Use, modification and distribution are subject to the | ||
| 7 | * Boost Software License, Version 1.0. (See accompanying file | ||
| 8 | * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | ||
| 9 | * | ||
| 10 | */ | ||
| 11 | |||
| 12 | /* | ||
| 13 | * LOCATION: see http://www.boost.org for most recent version. | ||
| 14 | * FILE regex_traits.hpp | ||
| 15 | * VERSION see <boost/version.hpp> | ||
| 16 | * DESCRIPTION: Declares regular expression traits classes. | ||
| 17 | */ | ||
| 18 | |||
| 19 | #ifndef BOOST_REGEX_TRAITS_HPP_INCLUDED | ||
| 20 | #define BOOST_REGEX_TRAITS_HPP_INCLUDED | ||
| 21 | |||
| 22 | #include <boost/regex/config.hpp> | ||
| 23 | #include <boost/regex/v5/regex_workaround.hpp> | ||
| 24 | #include <boost/regex/v5/syntax_type.hpp> | ||
| 25 | #include <boost/regex/v5/error_type.hpp> | ||
| 26 | #include <boost/regex/v5/regex_traits_defaults.hpp> | ||
| 27 | #include <boost/regex/v5/cpp_regex_traits.hpp> | ||
| 28 | #include <boost/regex/v5/c_regex_traits.hpp> | ||
| 29 | #if defined(_WIN32) && !defined(BOOST_REGEX_NO_W32) | ||
| 30 | # include <boost/regex/v5/w32_regex_traits.hpp> | ||
| 31 | #endif | ||
| 32 | #include <boost/regex_fwd.hpp> | ||
| 33 | |||
| 34 | namespace boost{ | ||
| 35 | |||
| 36 | BOOST_REGEX_MODULE_EXPORT template <class charT, class implementationT > | ||
| 37 | struct regex_traits : public implementationT | ||
| 38 | { | ||
| 39 | 86x | regex_traits() : implementationT() {} | |
| 40 | }; | ||
| 41 | |||
| 42 | // | ||
| 43 | // class regex_traits_wrapper. | ||
| 44 | // this is what our implementation will actually store; | ||
| 45 | // it provides default implementations of the "optional" | ||
| 46 | // interfaces that we support, in addition to the | ||
| 47 | // required "standard" ones: | ||
| 48 | // | ||
| 49 | namespace BOOST_REGEX_DETAIL_NS{ | ||
| 50 | |||
| 51 | template <class T> | ||
| 52 | struct has_boost_extensions_tag | ||
| 53 | { | ||
| 54 | template <class U> | ||
| 55 | static double checker(U*, typename U::boost_extensions_tag* = nullptr); | ||
| 56 | static char checker(...); | ||
| 57 | static T* get(); | ||
| 58 | |||
| 59 | static const bool value = sizeof(checker(get())) > 1; | ||
| 60 | }; | ||
| 61 | |||
| 62 | |||
| 63 | template <class BaseT> | ||
| 64 | struct default_wrapper : public BaseT | ||
| 65 | { | ||
| 66 | typedef typename BaseT::char_type char_type; | ||
| 67 | 12504x | std::string error_string(::boost::regex_constants::error_type e)const | |
| 68 | { | ||
| 69 | 25008x | return ::boost::BOOST_REGEX_DETAIL_NS::get_default_error_string(e); | |
| 70 | } | ||
| 71 | 4953619x | ::boost::regex_constants::syntax_type syntax_type(char_type c)const | |
| 72 | { | ||
| 73 | 4953619x | return (char_type(c & 0x7f) == c) ? get_default_syntax_type(static_cast<char>(c)) : ::boost::regex_constants::syntax_char; | |
| 74 | } | ||
| 75 | 767658x | ::boost::regex_constants::escape_syntax_type escape_syntax_type(char_type c)const | |
| 76 | { | ||
| 77 | 767658x | return (char_type(c & 0x7f) == c) ? get_default_escape_syntax_type(static_cast<char>(c)) : ::boost::regex_constants::escape_type_identity; | |
| 78 | } | ||
| 79 | 265292x | std::intmax_t toi(const char_type*& p1, const char_type* p2, int radix)const | |
| 80 | { | ||
| 81 | 265292x | return ::boost::BOOST_REGEX_DETAIL_NS::global_toi(p1, p2, radix, *this); | |
| 82 | } | ||
| 83 | 269389293x | char_type translate(char_type c, bool icase)const | |
| 84 | { | ||
| 85 | 269389293x | return (icase ? this->translate_nocase(c) : this->translate(c)); | |
| 86 | } | ||
| 87 | 264602757x | char_type translate(char_type c)const | |
| 88 | { | ||
| 89 | 264602757x | return BaseT::translate(c); | |
| 90 | } | ||
| 91 | 360x | char_type tolower(char_type c)const | |
| 92 | { | ||
| 93 | 360x | return ::boost::BOOST_REGEX_DETAIL_NS::global_lower(c); | |
| 94 | } | ||
| 95 | 264x | char_type toupper(char_type c)const | |
| 96 | { | ||
| 97 | 264x | return ::boost::BOOST_REGEX_DETAIL_NS::global_upper(c); | |
| 98 | } | ||
| 99 | }; | ||
| 100 | |||
| 101 | template <class BaseT, bool has_extensions> | ||
| 102 | struct compute_wrapper_base | ||
| 103 | { | ||
| 104 | typedef BaseT type; | ||
| 105 | }; | ||
| 106 | template <class BaseT> | ||
| 107 | struct compute_wrapper_base<BaseT, false> | ||
| 108 | { | ||
| 109 | typedef default_wrapper<BaseT> type; | ||
| 110 | }; | ||
| 111 | |||
| 112 | } // namespace BOOST_REGEX_DETAIL_NS | ||
| 113 | |||
| 114 | template <class BaseT> | ||
| 115 | struct regex_traits_wrapper | ||
| 116 | : public ::boost::BOOST_REGEX_DETAIL_NS::compute_wrapper_base< | ||
| 117 | BaseT, | ||
| 118 | ::boost::BOOST_REGEX_DETAIL_NS::has_boost_extensions_tag<BaseT>::value | ||
| 119 | >::type | ||
| 120 | { | ||
| 121 | 297196x | regex_traits_wrapper(){} | |
| 122 | private: | ||
| 123 | regex_traits_wrapper(const regex_traits_wrapper&); | ||
| 124 | regex_traits_wrapper& operator=(const regex_traits_wrapper&); | ||
| 125 | }; | ||
| 126 | |||
| 127 | } // namespace boost | ||
| 128 | |||
| 129 | #endif // include | ||
| 130 | |||
| 131 |