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