xref: /freebsd/contrib/llvm-project/libcxx/modules/std/regex.inc (revision 5f757f3ff9144b609b3c433dfd370cc6bdc191ad)
1*5f757f3fSDimitry Andric// -*- C++ -*-
2*5f757f3fSDimitry Andric//===----------------------------------------------------------------------===//
3*5f757f3fSDimitry Andric//
4*5f757f3fSDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5*5f757f3fSDimitry Andric// See https://llvm.org/LICENSE.txt for license information.
6*5f757f3fSDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7*5f757f3fSDimitry Andric//
8*5f757f3fSDimitry Andric//===----------------------------------------------------------------------===//
9*5f757f3fSDimitry Andric
10*5f757f3fSDimitry Andricexport namespace std {
11*5f757f3fSDimitry Andric#ifndef _LIBCPP_HAS_NO_LOCALIZATION
12*5f757f3fSDimitry Andric  // [re.const], regex constants
13*5f757f3fSDimitry Andric  namespace regex_constants {
14*5f757f3fSDimitry Andric    using std::regex_constants::error_type;
15*5f757f3fSDimitry Andric    using std::regex_constants::match_flag_type;
16*5f757f3fSDimitry Andric    using std::regex_constants::syntax_option_type;
17*5f757f3fSDimitry Andric
18*5f757f3fSDimitry Andric    // regex_constants is a bitmask type.
19*5f757f3fSDimitry Andric    // [bitmask.types] specified operators
20*5f757f3fSDimitry Andric    using std::regex_constants::operator&;
21*5f757f3fSDimitry Andric    using std::regex_constants::operator&=;
22*5f757f3fSDimitry Andric    using std::regex_constants::operator^;
23*5f757f3fSDimitry Andric    using std::regex_constants::operator^=;
24*5f757f3fSDimitry Andric    using std::regex_constants::operator|;
25*5f757f3fSDimitry Andric    using std::regex_constants::operator|=;
26*5f757f3fSDimitry Andric    using std::regex_constants::operator~;
27*5f757f3fSDimitry Andric
28*5f757f3fSDimitry Andric  } // namespace regex_constants
29*5f757f3fSDimitry Andric
30*5f757f3fSDimitry Andric  // [re.badexp], class regex_error
31*5f757f3fSDimitry Andric  using std::regex_error;
32*5f757f3fSDimitry Andric
33*5f757f3fSDimitry Andric  // [re.traits], class template regex_traits
34*5f757f3fSDimitry Andric  using std::regex_traits;
35*5f757f3fSDimitry Andric
36*5f757f3fSDimitry Andric  // [re.regex], class template basic_regex
37*5f757f3fSDimitry Andric  using std::basic_regex;
38*5f757f3fSDimitry Andric
39*5f757f3fSDimitry Andric  using std::regex;
40*5f757f3fSDimitry Andric#  ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
41*5f757f3fSDimitry Andric  using std::wregex;
42*5f757f3fSDimitry Andric#  endif
43*5f757f3fSDimitry Andric
44*5f757f3fSDimitry Andric  // [re.regex.swap], basic_regex swap
45*5f757f3fSDimitry Andric  using std::swap;
46*5f757f3fSDimitry Andric
47*5f757f3fSDimitry Andric  // [re.submatch], class template sub_match
48*5f757f3fSDimitry Andric  using std::sub_match;
49*5f757f3fSDimitry Andric
50*5f757f3fSDimitry Andric  using std::csub_match;
51*5f757f3fSDimitry Andric  using std::ssub_match;
52*5f757f3fSDimitry Andric#  ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
53*5f757f3fSDimitry Andric  using std::wcsub_match;
54*5f757f3fSDimitry Andric  using std::wssub_match;
55*5f757f3fSDimitry Andric#  endif
56*5f757f3fSDimitry Andric
57*5f757f3fSDimitry Andric  // [re.submatch.op], sub_match non-member operators
58*5f757f3fSDimitry Andric  using std::operator==;
59*5f757f3fSDimitry Andric  using std::operator<=>;
60*5f757f3fSDimitry Andric
61*5f757f3fSDimitry Andric  using std::operator<<;
62*5f757f3fSDimitry Andric
63*5f757f3fSDimitry Andric  // [re.results], class template match_results
64*5f757f3fSDimitry Andric  using std::match_results;
65*5f757f3fSDimitry Andric
66*5f757f3fSDimitry Andric  using std::cmatch;
67*5f757f3fSDimitry Andric  using std::smatch;
68*5f757f3fSDimitry Andric#  ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
69*5f757f3fSDimitry Andric  using std::wcmatch;
70*5f757f3fSDimitry Andric  using std::wsmatch;
71*5f757f3fSDimitry Andric#  endif
72*5f757f3fSDimitry Andric
73*5f757f3fSDimitry Andric  // match_results comparisons
74*5f757f3fSDimitry Andric
75*5f757f3fSDimitry Andric  // [re.results.swap], match_results swap
76*5f757f3fSDimitry Andric
77*5f757f3fSDimitry Andric  // [re.alg.match], function template regex_match
78*5f757f3fSDimitry Andric  using std::regex_match;
79*5f757f3fSDimitry Andric
80*5f757f3fSDimitry Andric  // [re.alg.search], function template regex_search
81*5f757f3fSDimitry Andric  using std::regex_search;
82*5f757f3fSDimitry Andric
83*5f757f3fSDimitry Andric  // [re.alg.replace], function template regex_replace
84*5f757f3fSDimitry Andric  using std::regex_replace;
85*5f757f3fSDimitry Andric
86*5f757f3fSDimitry Andric  // [re.regiter], class template regex_iterator
87*5f757f3fSDimitry Andric  using std::regex_iterator;
88*5f757f3fSDimitry Andric
89*5f757f3fSDimitry Andric  using std::cregex_iterator;
90*5f757f3fSDimitry Andric  using std::sregex_iterator;
91*5f757f3fSDimitry Andric#  ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
92*5f757f3fSDimitry Andric  using std::wcregex_iterator;
93*5f757f3fSDimitry Andric  using std::wsregex_iterator;
94*5f757f3fSDimitry Andric#  endif
95*5f757f3fSDimitry Andric
96*5f757f3fSDimitry Andric  // [re.tokiter], class template regex_token_iterator
97*5f757f3fSDimitry Andric  using std::regex_token_iterator;
98*5f757f3fSDimitry Andric
99*5f757f3fSDimitry Andric  using std::cregex_token_iterator;
100*5f757f3fSDimitry Andric  using std::sregex_token_iterator;
101*5f757f3fSDimitry Andric#  ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
102*5f757f3fSDimitry Andric  using std::wcregex_token_iterator;
103*5f757f3fSDimitry Andric  using std::wsregex_token_iterator;
104*5f757f3fSDimitry Andric#  endif
105*5f757f3fSDimitry Andric
106*5f757f3fSDimitry Andric  namespace pmr {
107*5f757f3fSDimitry Andric    using std::pmr::match_results;
108*5f757f3fSDimitry Andric
109*5f757f3fSDimitry Andric    using std::pmr::cmatch;
110*5f757f3fSDimitry Andric    using std::pmr::smatch;
111*5f757f3fSDimitry Andric#  ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
112*5f757f3fSDimitry Andric    using std::pmr::wcmatch;
113*5f757f3fSDimitry Andric    using std::pmr::wsmatch;
114*5f757f3fSDimitry Andric#  endif
115*5f757f3fSDimitry Andric  }    // namespace pmr
116*5f757f3fSDimitry Andric#endif // _LIBCPP_HAS_NO_LOCALIZATION
117*5f757f3fSDimitry Andric} // namespace std
118