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

Unicode Script ranges for \p{sc=...} (UCD contract, parsed from tools/ucd/Scripts.txt). More...

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

Classes

struct  real::detail::script_range
 One code-point range and the Script it belongs to (the table partitions the code space). More...
 
struct  real::detail::script_alias_entry
 A loose-normalized (lowercase, no _/-/space) Script 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::script : std::uint8_t {
  Unknown , Adlam , Ahom , Anatolian_Hieroglyphs ,
  Arabic , Armenian , Avestan , Balinese ,
  Bamum , Bassa_Vah , Batak , Bengali ,
  Bhaiksuki , Bopomofo , Brahmi , Braille ,
  Buginese , Buhid , Canadian_Aboriginal , Carian ,
  Caucasian_Albanian , Chakma , Cham , Cherokee ,
  Chorasmian , Common , Coptic , Cuneiform ,
  Cypriot , Cypro_Minoan , Cyrillic , Deseret ,
  Devanagari , Dives_Akuru , Dogra , Duployan ,
  Egyptian_Hieroglyphs , Elbasan , Elymaic , Ethiopic ,
  Garay , Georgian , Glagolitic , Gothic ,
  Grantha , Greek , Gujarati , Gunjala_Gondi ,
  Gurmukhi , Gurung_Khema , Han , Hangul ,
  Hanifi_Rohingya , Hanunoo , Hatran , Hebrew ,
  Hiragana , Imperial_Aramaic , Inherited , Inscriptional_Pahlavi ,
  Inscriptional_Parthian , Javanese , Kaithi , Kannada ,
  Katakana , Kawi , Kayah_Li , Kharoshthi ,
  Khitan_Small_Script , Khmer , Khojki , Khudawadi ,
  Kirat_Rai , Lao , Latin , Lepcha ,
  Limbu , Linear_A , Linear_B , Lisu ,
  Lycian , Lydian , Mahajani , Makasar ,
  Malayalam , Mandaic , Manichaean , Marchen ,
  Masaram_Gondi , Medefaidrin , Meetei_Mayek , Mende_Kikakui ,
  Meroitic_Cursive , Meroitic_Hieroglyphs , Miao , Modi ,
  Mongolian , Mro , Multani , Myanmar ,
  Nabataean , Nag_Mundari , Nandinagari , New_Tai_Lue ,
  Newa , Nko , Nushu , Nyiakeng_Puachue_Hmong ,
  Ogham , Ol_Chiki , Ol_Onal , Old_Hungarian ,
  Old_Italic , Old_North_Arabian , Old_Permic , Old_Persian ,
  Old_Sogdian , Old_South_Arabian , Old_Turkic , Old_Uyghur ,
  Oriya , Osage , Osmanya , Pahawh_Hmong ,
  Palmyrene , Pau_Cin_Hau , Phags_Pa , Phoenician ,
  Psalter_Pahlavi , Rejang , Runic , Samaritan ,
  Saurashtra , Sharada , Shavian , Siddham ,
  SignWriting , Sinhala , Sogdian , Sora_Sompeng ,
  Soyombo , Sundanese , Sunuwar , Syloti_Nagri ,
  Syriac , Tagalog , Tagbanwa , Tai_Le ,
  Tai_Tham , Tai_Viet , Takri , Tamil ,
  Tangsa , Tangut , Telugu , Thaana ,
  Thai , Tibetan , Tifinagh , Tirhuta ,
  Todhri , Toto , Tulu_Tigalari , Ugaritic ,
  Vai , Vithkuqi , Wancho , Warang_Citi ,
  Yezidi , Yi , Zanabazar_Square , count
}
 A Unicode Script value; Unknown (0) is every code point no script assigns.
 

Functions

constexpr script real::detail::script_of (char32_t cp)
 The Script of cp (binary search; Unknown when no range covers it).
 
constexpr bool real::detail::is_script_cp (script sc, char32_t cp)
 Whether cp belongs to Script sc (== the UCD).
 
constexpr script real::detail::resolve_script (std::string_view loose)
 Resolve a loose-normalized Script name to its value, or count if unknown.
 

Variables

constexpr const char * real::detail::unicode_script_unidata_version {"16.0.0"}
 The Unicode data version these tables were generated from.
 
constexpr script_range real::detail::script_ranges []
 Script partition — 979 ranges, sorted and disjoint.
 
constexpr script_alias_entry real::detail::script_aliases []
 Script names, loose-keyed; for the \p{sc=...} / \p{scx=...} parsers. Both the long name (Latin) and the short UAX24/ISO 15924 code (Latn) resolve to the same value – \p{scx=...} states its overrides in short codes only, and since this table is shared, \p{sc=...} gains the short form too.
 

Detailed Description

Unicode Script ranges for \p{sc=...} (UCD contract, parsed from tools/ucd/Scripts.txt).

GENERATED by tools/gen_unicode_script_tables.py – DO NOT EDIT BY HAND.

Every assigned code point has exactly one Script, so this is one sorted {lo, hi, script} table partitioning the code space (gaps are Unknown). Parsed from the committed Scripts.txt and, at generation, cross-checked against the regex module. Scripts data version: 16.0.0 (asserted). Wired at ast.hpp::resolve_property (\p{sc=...} / a bare name / \p{scx=...}), via the generated, loose-keyed resolve_script, which resolves both the long name (Latin) and the short UAX24/ISO 15924 code (Latn) – see tools/ucd/PropertyValueAliases.txt.