|
REAL
Regular Expression Algorithmic Library — constexpr C++20 regex
|
Unicode simple case-folding orbits for text-mode flags::icase.
More...
Classes | |
| struct | real::detail::fold_entry |
| A code point and the other members of its case-fold orbit (up to 3; orbits <= 4). 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::find_fold_lower_bound (std::uint32_t cp) |
Index of the first entry whose code point is at or after cp, or unicode_fold_table_size if none is. The seek half of find_fold_index, exposed on its own so a caller holding a RANGE enters the table once and walks forward instead of scanning it whole – see real::detail::unicode_casefold. | |
| constexpr std::size_t | real::detail::find_fold_index (std::uint32_t cp) |
Binary-searches unicode_fold_table for cp; returns its index, or unicode_fold_table_size if cp is not cased. An index (not a pointer into the table) keeps this usable in a constant expression on every compiler — g++ rejects a &table[i] != nullptr comparison inside a static_regex. Shared by the parser (is a literal cased?) and the compiler (its fold partners). | |
Variables | |
| constexpr const char * | real::detail::unicode_fold_unidata_version {"16.0.0"} |
| The Unicode data version these orbits were generated from. | |
| constexpr fold_entry | real::detail::unicode_fold_table [] |
| Fold orbits, sorted by fold_entry::cp for binary search. | |
| constexpr std::size_t | real::detail::unicode_fold_table_size {2940} |
| Number of entries in unicode_fold_table. | |
Unicode simple case-folding orbits for text-mode flags::icase.
GENERATED by tools/gen_unicode_fold.py – DO NOT EDIT BY HAND.
Each entry maps a code point to the other members of its case-fold orbit (the set that matches it under IGNORECASE). Built from, and exhaustively validated against, CPython's own case-insensitive matching, so REAL's text-mode icase is identical to re.IGNORECASE by construction. Unicode data version: 16.0.0 (asserted at compile time).