STD::__DETAIL::_SCANNER(3cxx)

okay bestie, this is the 3cxx manual page for std::__detail::_Scanner< _CharT > πŸ’… it’s the regex-token scanner from libstdc++’s std::__detail zone, and we’re keeping every single detail. no cap. πŸŽ€

✨ NAME ✨

std::__detail::_Scanner< _CharT > β€” scans an input range for regex tokens. πŸ¦‹

🌸 SYNOPSIS 🌸

#include <regex>

Inherits std::__detail::_ScannerBase.

🌈 Public Types 🌈

  • _CtypeT β€” typedef const std::ctype< _CharT > _CtypeT
  • _FlagT β€” typedef regex_constants::syntax_option_type _FlagT
  • _StringT β€” typedef std::basic_string< _CharT > _StringT
  • _TokenT β€” token types returned from the scanner, fr fr:
enum _TokenT : unsigned {
    _S_token_anychar,
    _S_token_ord_char,
    _S_token_oct_num,
    _S_token_hex_num,
    _S_token_backref,
    _S_token_subexpr_begin,
    _S_token_subexpr_no_group_begin,
    _S_token_subexpr_lookahead_begin,
    _S_token_subexpr_end,
    _S_token_bracket_begin,
    _S_token_bracket_neg_begin,
    _S_token_bracket_end,
    _S_token_interval_begin,
    _S_token_interval_end,
    _S_token_quoted_class,
    _S_token_char_class_name,
    _S_token_collsymbol,
    _S_token_equiv_class_name,
    _S_token_opt,
    _S_token_or,
    _S_token_closure0,
    _S_token_closure1,
    _S_token_line_begin,
    _S_token_line_end,
    _S_token_word_bound,
    _S_token_comma,
    _S_token_dup_count,
    _S_token_eof,
    _S_token_bracket_dash,
    _S_token_unknown
}

Token types returned from the scanner. πŸ‘‘

πŸ’œ Public Member Functions πŸ’œ

  • _Scanner (const _CharT *__begin, const _CharT *__end, _FlagT __flags, std::locale __loc) β€” the constructor: you hand it the input range (__begin to __end), the flags, and the locale. πŸ’–
  • void _M_advance () β€” the advance member, signature exactly as shown.
  • _TokenT _M_get_token () const noexcept β€” gets the token; signature exactly as shown.
  • const _StringT & _M_get_value () const noexcept β€” gets the value; signature exactly as shown.

🧚 Protected Types 🧚

  • _StateT β€” enum _StateT { _S_state_normal, _S_state_in_brace, _S_state_in_bracket }

πŸ“ Protected Member Functions πŸ“

  • const char * _M_find_escape (char __c) β€” the escape-finder member, exact signature.
  • bool _M_is_awk () const β€” the awk grammar check, exact signature.
  • bool _M_is_basic () const β€” the basic grammar check, exact signature.
  • bool _M_is_ecma () const β€” the ecma grammar check, exact signature.
  • bool _M_is_extended () const β€” the extended grammar check, exact signature.
  • bool _M_is_grep () const β€” the grep grammar check, exact signature.

πŸ‘‘ Protected Attributes πŸ‘‘

  • bool _M_at_bracket_start
  • const std::pair< char, char > _M_awk_escape_tbl [11]
  • const char * _M_basic_spec_char
  • const std::pair< char, char > _M_ecma_escape_tbl [8]
  • const char * _M_ecma_spec_char
  • const std::pair< char, char > * _M_escape_tbl
  • const char * _M_extended_spec_char
  • _FlagT _M_flags
  • const char * _M_spec_char
  • _StateT _M_state
  • _TokenT _M_token
  • const std::pair< char, _TokenT > _M_token_tbl [9]

πŸ”₯ Detailed Description πŸ”₯

template<typename _CharT>
class std::__detail::_Scanner< _CharT >

The _Scanner class interprets the regular-expression pattern in the input range you pass to its constructor as a sequence of parse tokens that get passed to the regular-expression compiler. The sequence of tokens you get depends on the flag settings passed to the constructor: different regular-expression grammars will interpret the same input pattern in syntactically different ways. same pattern, different grammar rules, different parse-token era β€” iykyk πŸ’…

⭐ Member Enumeration Documentation ⭐

enum std::__detail::_ScannerBase::_TokenT : unsigned [inherited]

Token types returned from the scanner. πŸ‘‘

🫢 Author 🫢

Generated automatically by Doxygen for libstdc++ from the source code.


okay that’s the whole page, bestie πŸ’– source/version: Doxygen-generated for libstdc++ from the source code; the footer is the 3cxx manual footer, and no separate date is shown on the source page. bye ✨

πŸ“¦ where this page comes from