REAL
Regular Expression Algorithmic Library — constexpr C++20 regex
Loading...
Searching...
No Matches
charclass.hpp File Reference

256-bit byte set with O(1) membership, fully constexpr. More...

#include "real/version.hpp"
#include <array>
#include <cstddef>
#include <cstdint>
Include dependency graph for charclass.hpp:

Go to the source code of this file.

Classes

struct  real::detail::char_class
 A set of byte values (0–255) as a 256-bit bitmap. More...
 

Namespaces

namespace  real
 
namespace  real::detail
 

Functions

constexpr void real::detail::fold_ascii_case (char_class &klass)
 Closes klass under ASCII case folding.
 
constexpr bool real::detail::is_ascii_word_byte (std::uint8_t byte)
 Reports whether byte is an ASCII "word" byte ([0-9A-Za-z_]).
 
constexpr char_class real::detail::digit_set ()
 The ASCII digit set behind \d (Python re.ASCII semantics).
 
constexpr char_class real::detail::word_set ()
 The ASCII word set behind \w.
 
constexpr char_class real::detail::space_set ()
 The ASCII whitespace set behind \s.
 
constexpr char_class real::detail::utf8_cont_set ()
 The UTF-8 continuation-byte set 10xxxxxx.
 
constexpr char_class real::detail::utf8_lead2_set ()
 The lead-byte set of a 2-byte UTF-8 sequence.
 
constexpr char_class real::detail::utf8_lead3_set ()
 The lead-byte set of a 3-byte UTF-8 sequence.
 
constexpr char_class real::detail::utf8_lead4_set ()
 The lead-byte set of a 4-byte UTF-8 sequence.
 

Detailed Description

256-bit byte set with O(1) membership, fully constexpr.

The engine only ever tests bitmaps: negation and "one whole codepoint" semantics are resolved at compile time (see compiler.hpp), never at match time. Also provides the ASCII sets behind \d, \w and \s.

Definition in file charclass.hpp.