|
REAL
Regular Expression Algorithmic Library — constexpr C++20 regex
|
Unicode binary-property ranges for \p{...} (UCD contract; PCRE2-parity properties).
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::binprop_alias_entry |
| A loose-normalized (lowercase, no _/-/space) binary-property name and its value. 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::binprop : std::uint8_t { ASCII_Hex_Digit , Alphabetic , Bidi_Control , Case_Ignorable , Cased , Changes_When_Casefolded , Changes_When_Casemapped , Changes_When_Lowercased , Changes_When_Titlecased , Changes_When_Uppercased , Dash , Default_Ignorable_Code_Point , Deprecated , Diacritic , Emoji , Emoji_Component , Emoji_Modifier , Emoji_Modifier_Base , Emoji_Presentation , Extended_Pictographic , Extender , Grapheme_Base , Grapheme_Extend , Grapheme_Link , Hex_Digit , Hyphen , IDS_Binary_Operator , IDS_Trinary_Operator , IDS_Unary_Operator , ID_Compat_Math_Continue , ID_Compat_Math_Start , ID_Continue , ID_Start , Ideographic , Join_Control , Logical_Order_Exception , Lowercase , Math , Modifier_Combining_Mark , Noncharacter_Code_Point , Other_Alphabetic , Other_Default_Ignorable_Code_Point , Other_Grapheme_Extend , Other_ID_Continue , Other_ID_Start , Other_Lowercase , Other_Math , Other_Uppercase , Pattern_Syntax , Pattern_White_Space , Prepended_Concatenation_Mark , Quotation_Mark , Radical , Regional_Indicator , Sentence_Terminal , Soft_Dotted , Terminal_Punctuation , Unified_Ideograph , Uppercase , Variation_Selector , White_Space , XID_Continue , XID_Start , count } |
| A Unicode binary property: the 63 standard yes/no properties this build knows. | |
Functions | |
| constexpr bool | real::detail::is_binprop_cp (binprop prop, char32_t cp) |
Whether cp has the binary property prop (== the UCD). | |
| constexpr binprop | real::detail::resolve_binprop (std::string_view loose) |
Resolve a loose-normalized binary-property name to its value, or count if unknown. | |
Variables | |
| constexpr const char * | real::detail::unicode_binprop_unidata_version {"16.0.0"} |
| The Unicode data version these tables were generated from. | |
| constexpr code_range | real::detail::binprop_ASCII_Hex_Digit_ranges [] |
\p{ASCII_Hex_Digit} — 3 ranges, 22 code points. | |
| constexpr code_range | real::detail::binprop_Alphabetic_ranges [] |
\p{Alphabetic} — 757 ranges, 142759 code points. | |
| constexpr code_range | real::detail::binprop_Bidi_Control_ranges [] |
\p{Bidi_Control} — 4 ranges, 12 code points. | |
| constexpr code_range | real::detail::binprop_Case_Ignorable_ranges [] |
\p{Case_Ignorable} — 452 ranges, 2749 code points. | |
| constexpr code_range | real::detail::binprop_Cased_ranges [] |
\p{Cased} — 159 ranges, 4578 code points. | |
| constexpr code_range | real::detail::binprop_Changes_When_Casefolded_ranges [] |
\p{Changes_When_Casefolded} — 626 ranges, 1533 code points. | |
| constexpr code_range | real::detail::binprop_Changes_When_Casemapped_ranges [] |
\p{Changes_When_Casemapped} — 131 ranges, 2981 code points. | |
| constexpr code_range | real::detail::binprop_Changes_When_Lowercased_ranges [] |
\p{Changes_When_Lowercased} — 614 ranges, 1460 code points. | |
| constexpr code_range | real::detail::binprop_Changes_When_Titlecased_ranges [] |
\p{Changes_When_Titlecased} — 629 ranges, 1479 code points. | |
| constexpr code_range | real::detail::binprop_Changes_When_Uppercased_ranges [] |
\p{Changes_When_Uppercased} — 630 ranges, 1552 code points. | |
| constexpr code_range | real::detail::binprop_Dash_ranges [] |
\p{Dash} — 24 ranges, 31 code points. | |
| constexpr code_range | real::detail::binprop_Default_Ignorable_Code_Point_ranges [] |
\p{Default_Ignorable_Code_Point} — 17 ranges, 4174 code points. | |
| constexpr code_range | real::detail::binprop_Deprecated_ranges [] |
\p{Deprecated} — 8 ranges, 15 code points. | |
| constexpr code_range | real::detail::binprop_Diacritic_ranges [] |
\p{Diacritic} — 214 ranges, 1178 code points. | |
| constexpr code_range | real::detail::binprop_Emoji_ranges [] |
\p{Emoji} — 150 ranges, 1431 code points. | |
| constexpr code_range | real::detail::binprop_Emoji_Component_ranges [] |
\p{Emoji_Component} — 10 ranges, 146 code points. | |
| constexpr code_range | real::detail::binprop_Emoji_Modifier_ranges [] |
\p{Emoji_Modifier} — 1 ranges, 5 code points. | |
| constexpr code_range | real::detail::binprop_Emoji_Modifier_Base_ranges [] |
\p{Emoji_Modifier_Base} — 40 ranges, 134 code points. | |
| constexpr code_range | real::detail::binprop_Emoji_Presentation_ranges [] |
\p{Emoji_Presentation} — 80 ranges, 1212 code points. | |
| constexpr code_range | real::detail::binprop_Extended_Pictographic_ranges [] |
\p{Extended_Pictographic} — 78 ranges, 3537 code points. | |
| constexpr code_range | real::detail::binprop_Extender_ranges [] |
\p{Extender} — 41 ranges, 59 code points. | |
| constexpr code_range | real::detail::binprop_Grapheme_Base_ranges [] |
\p{Grapheme_Base} — 894 ranges, 152730 code points. | |
| constexpr code_range | real::detail::binprop_Grapheme_Extend_ranges [] |
\p{Grapheme_Extend} — 375 ranges, 2193 code points. | |
| constexpr code_range | real::detail::binprop_Grapheme_Link_ranges [] |
\p{Grapheme_Link} — 58 ranges, 69 code points. | |
| constexpr code_range | real::detail::binprop_Hex_Digit_ranges [] |
\p{Hex_Digit} — 6 ranges, 44 code points. | |
| constexpr code_range | real::detail::binprop_Hyphen_ranges [] |
\p{Hyphen} — 10 ranges, 11 code points. | |
| constexpr code_range | real::detail::binprop_IDS_Binary_Operator_ranges [] |
\p{IDS_Binary_Operator} — 3 ranges, 13 code points. | |
| constexpr code_range | real::detail::binprop_IDS_Trinary_Operator_ranges [] |
\p{IDS_Trinary_Operator} — 1 ranges, 2 code points. | |
| constexpr code_range | real::detail::binprop_IDS_Unary_Operator_ranges [] |
\p{IDS_Unary_Operator} — 1 ranges, 2 code points. | |
| constexpr code_range | real::detail::binprop_ID_Compat_Math_Continue_ranges [] |
\p{ID_Compat_Math_Continue} — 18 ranges, 43 code points. | |
| constexpr code_range | real::detail::binprop_ID_Compat_Math_Start_ranges [] |
\p{ID_Compat_Math_Start} — 13 ranges, 13 code points. | |
| constexpr code_range | real::detail::binprop_ID_Continue_ranges [] |
\p{ID_Continue} — 793 ranges, 144541 code points. | |
| constexpr code_range | real::detail::binprop_ID_Start_ranges [] |
\p{ID_Start} — 677 ranges, 141269 code points. | |
| constexpr code_range | real::detail::binprop_Ideographic_ranges [] |
\p{Ideographic} — 21 ranges, 106477 code points. | |
| constexpr code_range | real::detail::binprop_Join_Control_ranges [] |
\p{Join_Control} — 1 ranges, 2 code points. | |
| constexpr code_range | real::detail::binprop_Logical_Order_Exception_ranges [] |
\p{Logical_Order_Exception} — 7 ranges, 19 code points. | |
| constexpr code_range | real::detail::binprop_Lowercase_ranges [] |
\p{Lowercase} — 675 ranges, 2569 code points. | |
| constexpr code_range | real::detail::binprop_Math_ranges [] |
\p{Math} — 139 ranges, 2312 code points. | |
| constexpr code_range | real::detail::binprop_Modifier_Combining_Mark_ranges [] |
\p{Modifier_Combining_Mark} — 9 ranges, 14 code points. | |
| constexpr code_range | real::detail::binprop_Noncharacter_Code_Point_ranges [] |
\p{Noncharacter_Code_Point} — 18 ranges, 66 code points. | |
| constexpr code_range | real::detail::binprop_Other_Alphabetic_ranges [] |
\p{Other_Alphabetic} — 250 ranges, 1495 code points. | |
| constexpr code_range | real::detail::binprop_Other_Default_Ignorable_Code_Point_ranges [] |
\p{Other_Default_Ignorable_Code_Point} — 11 ranges, 3776 code points. | |
| constexpr code_range | real::detail::binprop_Other_Grapheme_Extend_ranges [] |
\p{Other_Grapheme_Extend} — 49 ranges, 160 code points. | |
| constexpr code_range | real::detail::binprop_Other_ID_Continue_ranges [] |
\p{Other_ID_Continue} — 7 ranges, 16 code points. | |
| constexpr code_range | real::detail::binprop_Other_ID_Start_ranges [] |
\p{Other_ID_Start} — 4 ranges, 6 code points. | |
| constexpr code_range | real::detail::binprop_Other_Lowercase_ranges [] |
\p{Other_Lowercase} — 28 ranges, 311 code points. | |
| constexpr code_range | real::detail::binprop_Other_Math_ranges [] |
\p{Other_Math} — 134 ranges, 1362 code points. | |
| constexpr code_range | real::detail::binprop_Other_Uppercase_ranges [] |
\p{Other_Uppercase} — 5 ranges, 120 code points. | |
| constexpr code_range | real::detail::binprop_Pattern_Syntax_ranges [] |
\p{Pattern_Syntax} — 28 ranges, 2760 code points. | |
| constexpr code_range | real::detail::binprop_Pattern_White_Space_ranges [] |
\p{Pattern_White_Space} — 5 ranges, 11 code points. | |
| constexpr code_range | real::detail::binprop_Prepended_Concatenation_Mark_ranges [] |
\p{Prepended_Concatenation_Mark} — 7 ranges, 13 code points. | |
| constexpr code_range | real::detail::binprop_Quotation_Mark_ranges [] |
\p{Quotation_Mark} — 13 ranges, 30 code points. | |
| constexpr code_range | real::detail::binprop_Radical_ranges [] |
\p{Radical} — 3 ranges, 329 code points. | |
| constexpr code_range | real::detail::binprop_Regional_Indicator_ranges [] |
\p{Regional_Indicator} — 1 ranges, 26 code points. | |
| constexpr code_range | real::detail::binprop_Sentence_Terminal_ranges [] |
\p{Sentence_Terminal} — 88 ranges, 170 code points. | |
| constexpr code_range | real::detail::binprop_Soft_Dotted_ranges [] |
\p{Soft_Dotted} — 34 ranges, 50 code points. | |
| constexpr code_range | real::detail::binprop_Terminal_Punctuation_ranges [] |
\p{Terminal_Punctuation} — 116 ranges, 291 code points. | |
| constexpr code_range | real::detail::binprop_Unified_Ideograph_ranges [] |
\p{Unified_Ideograph} — 17 ranges, 97680 code points. | |
| constexpr code_range | real::detail::binprop_Uppercase_ranges [] |
\p{Uppercase} — 656 ranges, 1978 code points. | |
| constexpr code_range | real::detail::binprop_Variation_Selector_ranges [] |
\p{Variation_Selector} — 4 ranges, 260 code points. | |
| constexpr code_range | real::detail::binprop_White_Space_ranges [] |
\p{White_Space} — 10 ranges, 25 code points. | |
| constexpr code_range | real::detail::binprop_XID_Continue_ranges [] |
\p{XID_Continue} — 800 ranges, 144522 code points. | |
| constexpr code_range | real::detail::binprop_XID_Start_ranges [] |
\p{XID_Start} — 684 ranges, 141246 code points. | |
| constexpr std::span< const code_range > | real::detail::binprop_ranges [] |
| Range table indexed by binprop (parallel to the enum order). | |
| constexpr binprop_alias_entry | real::detail::binprop_aliases [] |
Binary-property names, loose-keyed; for the \p{...} parser (no namespace prefix, same as PCRE2: \p{Alphabetic}, not \p{bp=Alphabetic}). | |
Unicode binary-property ranges for \p{...} (UCD contract; PCRE2-parity properties).
GENERATED by tools/gen_unicode_binprop_tables.py – DO NOT EDIT BY HAND.
Parsed directly from the committed tools/ucd/{DerivedCoreProperties,PropList,emoji-data}.txt (UCD 16.0.0, same version as Scripts.txt) – not derived from unicodedata, which exposes General_Category only. Each property gets its own sorted, disjoint range table (NOT a partition like General_Category/Script: a code point can satisfy several, or none). Checked at generation time to have zero loose-key collision with the General_Category / Script aliases (ast.hpp::resolve_property tries gc=/sc= first for a bare name).