|
REAL
Regular Expression Algorithmic Library — constexpr C++20 regex
|
Unicode General_Category ranges for \p{...} (UCD contract; distinct from the re-contract shorthands).
More...
#include "real/version.hpp"#include <cstddef>#include <cstdint>#include <span>#include <string_view>#include "real/core/program.hpp"#include "real/unicode/unicode_props.hpp"Classes | |
| struct | real::detail::gc_alias_entry |
| A loose-normalized (lowercase, no _/-/space) General_Category name and its property. 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. | |
Enumerations | |
| enum class | real::detail::gc_property : std::uint8_t { Lu , Ll , Lt , Lm , Lo , Mn , Mc , Me , Nd , Nl , No , Pc , Pd , Ps , Pe , Pi , Pf , Po , Sm , Sc , Sk , So , Zs , Zl , Zp , Cc , Cf , Co , Cn , L , M , N , P , S , Z , C , count } |
| A Unicode General_Category property: the 29 assignable categories then the 7 groups. | |
Functions | |
| constexpr bool | real::detail::is_gc_cp (gc_property prop, char32_t cp) |
Whether cp is in the General_Category property prop (== the UCD). | |
| constexpr gc_property | real::detail::resolve_gc (std::string_view loose) |
Resolve a loose-normalized General_Category name to its property, or count if unknown. | |
Variables | |
| constexpr const char * | real::detail::unicode_property_unidata_version {"16.0.0"} |
| The Unicode data version these tables were generated from. | |
| constexpr code_range | real::detail::gc_Lu_ranges [] |
\p{Lu} — 651 ranges, 1858 code points. | |
| constexpr code_range | real::detail::gc_Ll_ranges [] |
\p{Ll} — 662 ranges, 2258 code points. | |
| constexpr code_range | real::detail::gc_Lt_ranges [] |
\p{Lt} — 10 ranges, 31 code points. | |
| constexpr code_range | real::detail::gc_Lm_ranges [] |
\p{Lm} — 75 ranges, 404 code points. | |
| constexpr code_range | real::detail::gc_Lo_ranges [] |
\p{Lo} — 528 ranges, 136477 code points. | |
| constexpr code_range | real::detail::gc_Mn_ranges [] |
\p{Mn} — 357 ranges, 2020 code points. | |
| constexpr code_range | real::detail::gc_Mc_ranges [] |
\p{Mc} — 190 ranges, 468 code points. | |
| constexpr code_range | real::detail::gc_Me_ranges [] |
\p{Me} — 5 ranges, 13 code points. | |
| constexpr code_range | real::detail::gc_Nd_ranges [] |
\p{Nd} — 71 ranges, 760 code points. | |
| constexpr code_range | real::detail::gc_Nl_ranges [] |
\p{Nl} — 12 ranges, 236 code points. | |
| constexpr code_range | real::detail::gc_No_ranges [] |
\p{No} — 72 ranges, 915 code points. | |
| constexpr code_range | real::detail::gc_Pc_ranges [] |
\p{Pc} — 6 ranges, 10 code points. | |
| constexpr code_range | real::detail::gc_Pd_ranges [] |
\p{Pd} — 20 ranges, 27 code points. | |
| constexpr code_range | real::detail::gc_Ps_ranges [] |
\p{Ps} — 79 ranges, 79 code points. | |
| constexpr code_range | real::detail::gc_Pe_ranges [] |
\p{Pe} — 76 ranges, 77 code points. | |
| constexpr code_range | real::detail::gc_Pi_ranges [] |
\p{Pi} — 11 ranges, 12 code points. | |
| constexpr code_range | real::detail::gc_Pf_ranges [] |
\p{Pf} — 10 ranges, 10 code points. | |
| constexpr code_range | real::detail::gc_Po_ranges [] |
\p{Po} — 193 ranges, 640 code points. | |
| constexpr code_range | real::detail::gc_Sm_ranges [] |
\p{Sm} — 65 ranges, 950 code points. | |
| constexpr code_range | real::detail::gc_Sc_ranges [] |
\p{Sc} — 21 ranges, 63 code points. | |
| constexpr code_range | real::detail::gc_Sk_ranges [] |
\p{Sk} — 31 ranges, 125 code points. | |
| constexpr code_range | real::detail::gc_So_ranges [] |
\p{So} — 187 ranges, 7376 code points. | |
| constexpr code_range | real::detail::gc_Zs_ranges [] |
\p{Zs} — 7 ranges, 17 code points. | |
| constexpr code_range | real::detail::gc_Zl_ranges [] |
\p{Zl} — 1 ranges, 1 code points. | |
| constexpr code_range | real::detail::gc_Zp_ranges [] |
\p{Zp} — 1 ranges, 1 code points. | |
| constexpr code_range | real::detail::gc_Cc_ranges [] |
\p{Cc} — 2 ranges, 65 code points. | |
| constexpr code_range | real::detail::gc_Cf_ranges [] |
\p{Cf} — 21 ranges, 170 code points. | |
| constexpr code_range | real::detail::gc_Co_ranges [] |
\p{Co} — 3 ranges, 137468 code points. | |
| constexpr code_range | real::detail::gc_Cn_ranges [] |
\p{Cn} — 731 ranges, 819533 code points. | |
| constexpr code_range | real::detail::gc_L_ranges [] |
\p{L} — 677 ranges, 141028 code points. | |
| constexpr code_range | real::detail::gc_M_ranges [] |
\p{M} — 321 ranges, 2501 code points. | |
| constexpr code_range | real::detail::gc_N_ranges [] |
\p{N} — 144 ranges, 1911 code points. | |
| constexpr code_range | real::detail::gc_P_ranges [] |
\p{P} — 198 ranges, 855 code points. | |
| constexpr code_range | real::detail::gc_S_ranges [] |
\p{S} — 236 ranges, 8514 code points. | |
| constexpr code_range | real::detail::gc_Z_ranges [] |
\p{Z} — 8 ranges, 19 code points. | |
| constexpr code_range | real::detail::gc_C_ranges [] |
\p{C} — 737 ranges, 957236 code points. | |
| constexpr std::span< const code_range > | real::detail::gc_property_ranges [] |
| Range table indexed by gc_property (parallel to the enum order). | |
| constexpr gc_alias_entry | real::detail::gc_aliases [] |
Short codes (Lu) and long names (Uppercase_Letter), loose-keyed; for the \p{...} parser. | |
Unicode General_Category ranges for \p{...} (UCD contract; distinct from the re-contract shorthands).
GENERATED by tools/gen_unicode_property_tables.py – DO NOT EDIT BY HAND.
Built from, and exhaustively validated against, the Unicode Character Database via unicodedata.category, so REAL's \p{Gc} classes equal the UCD by construction (matching the regex crate). SEPARATE from unicode_props.hpp, whose contract is CPython re. Unicode data version: 16.0.0 (asserted). Wired at ast.hpp::resolve_property (\p{gc=...} / a bare name).