|
REAL
Regular Expression Algorithmic Library — constexpr C++20 regex
|
Code-point range → canonical UTF-8 byte-range sequences (RE2 / rust regex-syntax Utf8Sequences).
More...
#include <cstddef>#include <cstdint>#include <vector>Classes | |
| struct | real::detail::utf8_byte_range |
One byte-range step [lo, hi] of a UTF-8 sequence produced by the code-point-range algorithm. More... | |
| struct | real::detail::utf8_byte_seq |
| A canonical UTF-8 byte-range sequence (1–4 steps) covering part of a code-point range. More... | |
Namespaces | |
| namespace | real |
| REAL's public API: real::regex, real::static_regex, real::flags and the match/iterator types built on them. | |
| namespace | real::detail |
| DFA construction internals: subset construction over a flattened NFA. Not a stable API. | |
Functions | |
| constexpr std::size_t | real::detail::encode_utf8_bytes (std::uint32_t cp, std::uint8_t(&out)[4]) |
Encodes cp to its UTF-8 bytes in out, returning the length (1–4). | |
| constexpr void | real::detail::utf8_push_range (std::uint32_t start, std::uint32_t end, std::vector< utf8_byte_seq > &out) |
Appends to out the byte-range sequences recognising exactly the UTF-8 encodings of [start, end] (RE2 / rust regex-syntax Utf8Sequences). | |
| constexpr std::vector< utf8_byte_seq > | real::detail::utf8_range_sequences (std::uint32_t lo, std::uint32_t hi) |
Canonical UTF-8 byte-range sequences for the code-point range [lo, hi], excluding the surrogate block [U+D800, U+DFFF] (so a negated class never matches a surrogate encoding). | |
Code-point range → canonical UTF-8 byte-range sequences (RE2 / rust regex-syntax Utf8Sequences).
Shared by the compiler (. and negated classes) and the lazy DFA (a klass_cp as a byte sub-automaton); it includes no engine header, so neither caller has to include the other.