31 namespace std _GLIBCXX_VISIBILITY(default)
35 _GLIBCXX_BEGIN_NAMESPACE_VERSION
53 _S_token_subexpr_begin,
54 _S_token_subexpr_no_group_begin,
55 _S_token_subexpr_lookahead_begin,
57 _S_token_bracket_begin,
58 _S_token_bracket_neg_begin,
60 _S_token_interval_begin,
61 _S_token_interval_end,
62 _S_token_quoted_class,
63 _S_token_char_class_name,
65 _S_token_equiv_class_name,
90 _ScannerBase(_FlagT __flags)
91 : _M_state(_S_state_normal),
93 _M_escape_tbl(_M_is_ecma()
96 _M_spec_char(_M_is_ecma()
98 : _M_flags & regex_constants::
basic 100 : _M_flags & regex_constants::
extended 101 ? _M_extended_spec_char
102 : _M_flags & regex_constants::
grep 104 : _M_flags & regex_constants::
egrep 106 : _M_flags & regex_constants::
awk 107 ? _M_extended_spec_char
109 _M_at_bracket_start(false)
110 { __glibcxx_assert(_M_spec_char); }
114 _M_find_escape(
char __c)
116 auto __it = _M_escape_tbl;
117 for (; __it->first !=
'\0'; ++__it)
118 if (__it->first == __c)
119 return &__it->second;
132 _M_is_extended()
const 151 {
'^', _S_token_line_begin},
152 {
'$', _S_token_line_end},
153 {
'.', _S_token_anychar},
154 {
'*', _S_token_closure0},
155 {
'+', _S_token_closure1},
186 const char* _M_ecma_spec_char =
"^$\\.*+?()[]{}|";
187 const char* _M_basic_spec_char =
".[\\*^$";
188 const char* _M_extended_spec_char =
".[\\()*+?{|^$";
194 const char* _M_spec_char;
195 bool _M_at_bracket_start;
208 template<
typename _CharT>
210 :
public _ScannerBase
213 typedef const _CharT* _IterT;
218 _Scanner(_IterT __begin, _IterT __end,
232 #ifdef _GLIBCXX_DEBUG 242 _M_scan_in_bracket();
248 _M_eat_escape_ecma();
251 _M_eat_escape_posix();
267 _GLIBCXX_END_NAMESPACE_VERSION
constexpr syntax_option_type grep
constexpr syntax_option_type egrep
syntax_option_type
This is a bitmask type indicating how to interpret the regex.
Scans an input range for regex tokens.
constexpr syntax_option_type basic
constexpr syntax_option_type awk
Primary class template ctype facet.This template class defines classification and conversion function...
constexpr syntax_option_type ECMAScript
constexpr syntax_option_type extended
Container class for localization functionality.The locale class is first a class wrapper for C librar...
ISO C++ entities toplevel namespace is std.