31namespace 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,
242 _M_scan_in_bracket();
248 _M_eat_escape_ecma();
251 _M_eat_escape_posix();
267_GLIBCXX_END_NAMESPACE_VERSION
_TokenT
Token types returned from the scanner.
constexpr syntax_option_type ECMAScript
constexpr syntax_option_type egrep
syntax_option_type
This is a bitmask type indicating how to interpret the regex.
constexpr syntax_option_type awk
constexpr syntax_option_type extended
constexpr syntax_option_type basic
constexpr syntax_option_type grep
ISO C++ entities toplevel namespace is std.
Container class for localization functionality.
Scans an input range for regex tokens.