Changeset 4618


Ignore:
Timestamp:
Jun 26, 2015, 3:27:40 PM (4 years ago)
Author:
nmedfort
Message:

More modifications to UnicodeSet? class.

Location:
icGREP/icgrep-devel
Files:
3 added
19 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/cudd-2.5.1/cudd-2.5.1.creator.user

    r4597 r4618  
    11<?xml version="1.0" encoding="UTF-8"?>
    22<!DOCTYPE QtCreatorProject>
    3 <!-- Written by QtCreator 3.1.1, 2015-06-03T12:08:13. -->
     3<!-- Written by QtCreator 3.2.1, 2015-06-15T18:42:30. -->
    44<qtcreator>
     5 <data>
     6  <variable>EnvironmentId</variable>
     7  <value type="QByteArray">{068a4bc3-ede3-4f78-bbf8-c2ebe763922d}</value>
     8 </data>
    59 <data>
    610  <variable>ProjectExplorer.Project.ActiveTarget</variable>
     
    5559  <variable>ProjectExplorer.Project.Target.0</variable>
    5660  <valuemap type="QVariantMap">
    57    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.3.0 GCC 64bit</value>
    58    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.3.0 GCC 64bit</value>
     61   <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.3 GCC 64bit</value>
     62   <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.3 GCC 64bit</value>
    5963   <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.53.gcc_64_kit</value>
    6064   <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
     
    180184 </data>
    181185 <data>
    182   <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
    183   <value type="QByteArray">{0d82c381-9d2d-490b-bcda-5ab9fcbff525}</value>
     186  <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
     187  <value type="int">16</value>
    184188 </data>
    185189 <data>
    186   <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
    187   <value type="int">15</value>
     190  <variable>Version</variable>
     191  <value type="int">16</value>
    188192 </data>
    189193</qtcreator>
  • icGREP/icgrep-devel/icgrep/CMakeLists.txt

    r4617 r4618  
    6868add_library(RegExpADT re/re_re.cpp re/re_cc.cpp re/re_parser.cpp re/re_rep.cpp re/parsefailure.cpp re/re_nullable.cpp re/re_simplifier.cpp re/re_compiler.cpp re/printer_re.cpp re/re_diff.cpp re/re_intersect.cpp re/re_analysis.cpp)
    6969add_library(CCADT cc/cc_namemap.cpp cc/cc_compiler.cpp utf8_encoder.cpp UCD/CaseFolding_txt.cpp)
    70 add_library(UCDlib UCD/unicode_set.cpp UCD/ucd_compiler.cpp UCD/precompiled_gc.cpp UCD/precompiled_sc.cpp UCD/precompiled_scx.cpp UCD/precompiled_blk.cpp UCD/precompiled_derivedcoreproperties.cpp UCD/precompiled_proplist.cpp)
     70add_library(UCDlib UCD/unicode_set.cpp UCD/ucd_compiler.cpp UCD/PropertyObjects.cpp UCD/precompiled_gc.cpp UCD/precompiled_sc.cpp UCD/precompiled_scx.cpp UCD/precompiled_blk.cpp UCD/precompiled_derivedcoreproperties.cpp UCD/precompiled_proplist.cpp)
    7171
    7272
  • icGREP/icgrep-devel/icgrep/UCD/Blocks.h

    r4388 r4618  
    99 */
    1010
    11 #include <vector>
     11#include "PropertyObjects.h"
     12#include "PropertyValueAliases.h"
    1213#include "unicode_set.h"
    13 #include "PropertyAliases.h"
    14 #include "PropertyValueAliases.h"
    1514
    1615namespace UCD {
     
    1817    const UnicodeSet aegean_numbers_Set
    1918      {{{Empty, 2056}, {Full, 2}, {Empty, 32758}},
    20        {},
    21        34816};
     19       {}}
     20;
    2221    const UnicodeSet alchemical_Set
    2322      {{{Empty, 4024}, {Full, 4}, {Empty, 30788}},
    24        {},
    25        34816};
     23       {}}
     24;
    2625    const UnicodeSet alphabetic_pf_Set
    2726      {{{Empty, 2008}, {Full, 2}, {Mixed, 1}, {Empty, 32805}},
    28        {0x0000ffff},
    29        34816};
     27       {0x0000ffff}}
     28;
    3029    const UnicodeSet ancient_greek_music_Set
    3130      {{{Empty, 3728}, {Full, 2}, {Mixed, 1}, {Empty, 31085}},
    32        {0x0000ffff},
    33        34816};
     31       {0x0000ffff}}
     32;
    3433    const UnicodeSet ancient_greek_numbers_Set
    3534      {{{Empty, 2058}, {Full, 2}, {Mixed, 1}, {Empty, 32755}},
    36        {0x0000ffff},
    37        34816};
     35       {0x0000ffff}}
     36;
    3837    const UnicodeSet ancient_symbols_Set
    3938      {{{Empty, 2060}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 32753}},
    40        {0xffff0000, 0x0000ffff},
    41        34816};
     39       {0xffff0000, 0x0000ffff}}
     40;
    4241    const UnicodeSet arabic_Set
    4342      {{{Empty, 48}, {Full, 8}, {Empty, 34760}},
    44        {},
    45        34816};
     43       {}}
     44;
    4645    const UnicodeSet arabic_ext_a_Set
    4746      {{{Empty, 69}, {Full, 3}, {Empty, 34744}},
    48        {},
    49        34816};
     47       {}}
     48;
    5049    const UnicodeSet arabic_math_Set
    5150      {{{Empty, 3952}, {Full, 8}, {Empty, 30856}},
    52        {},
    53        34816};
     51       {}}
     52;
    5453    const UnicodeSet arabic_pf_a_Set
    5554      {{{Empty, 2010}, {Mixed, 1}, {Full, 21}, {Empty, 32784}},
    56        {0xffff0000},
    57        34816};
     55       {0xffff0000}}
     56;
    5857    const UnicodeSet arabic_pf_b_Set
    5958      {{{Empty, 2035}, {Mixed, 1}, {Full, 4}, {Empty, 32776}},
    60        {0xffff0000},
    61        34816};
     59       {0xffff0000}}
     60;
    6261    const UnicodeSet arabic_sup_Set
    6362      {{{Empty, 58}, {Mixed, 1}, {Full, 1}, {Empty, 34756}},
    64        {0xffff0000},
    65        34816};
     63       {0xffff0000}}
     64;
    6665    const UnicodeSet armenian_Set
    6766      {{{Empty, 41}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 34771}},
    68        {0xffff0000, 0x0000ffff},
    69        34816};
     67       {0xffff0000, 0x0000ffff}}
     68;
    7069    const UnicodeSet arrows_Set
    7170      {{{Empty, 268}, {Mixed, 1}, {Full, 3}, {Empty, 34544}},
    72        {0xffff0000},
    73        34816};
     71       {0xffff0000}}
     72;
    7473    const UnicodeSet ascii_Set
    7574      {{{Full, 4}, {Empty, 34812}},
    76        {},
    77        34816};
     75       {}}
     76;
    7877    const UnicodeSet avestan_Set
    7978      {{{Empty, 2136}, {Full, 2}, {Empty, 32678}},
    80        {},
    81        34816};
     79       {}}
     80;
    8281    const UnicodeSet balinese_Set
    8382      {{{Empty, 216}, {Full, 4}, {Empty, 34596}},
    84        {},
    85        34816};
     83       {}}
     84;
    8685    const UnicodeSet bamum_Set
    8786      {{{Empty, 1333}, {Full, 3}, {Empty, 33480}},
    88        {},
    89        34816};
     87       {}}
     88;
    9089    const UnicodeSet bamum_sup_Set
    9190      {{{Empty, 2880}, {Full, 18}, {Empty, 31918}},
    92        {},
    93        34816};
     91       {}}
     92;
    9493    const UnicodeSet bassa_vah_Set
    9594      {{{Empty, 2902}, {Mixed, 1}, {Full, 1}, {Empty, 31912}},
    96        {0xffff0000},
    97        34816};
     95       {0xffff0000}}
     96;
    9897    const UnicodeSet batak_Set
    9998      {{{Empty, 222}, {Full, 2}, {Empty, 34592}},
    100        {},
    101        34816};
     99       {}}
     100;
    102101    const UnicodeSet bengali_Set
    103102      {{{Empty, 76}, {Full, 4}, {Empty, 34736}},
    104        {},
    105        34816};
     103       {}}
     104;
    106105    const UnicodeSet block_elements_Set
    107106      {{{Empty, 300}, {Full, 1}, {Empty, 34515}},
    108        {},
    109        34816};
     107       {}}
     108;
    110109    const UnicodeSet bopomofo_Set
    111110      {{{Empty, 392}, {Full, 1}, {Mixed, 1}, {Empty, 34422}},
    112        {0x0000ffff},
    113        34816};
     111       {0x0000ffff}}
     112;
    114113    const UnicodeSet bopomofo_ext_Set
    115114      {{{Empty, 397}, {Full, 1}, {Empty, 34418}},
    116        {},
    117        34816};
     115       {}}
     116;
    118117    const UnicodeSet box_drawing_Set
    119118      {{{Empty, 296}, {Full, 4}, {Empty, 34516}},
    120        {},
    121        34816};
     119       {}}
     120;
    122121    const UnicodeSet brahmi_Set
    123122      {{{Empty, 2176}, {Full, 4}, {Empty, 32636}},
    124        {},
    125        34816};
     123       {}}
     124;
    126125    const UnicodeSet braille_Set
    127126      {{{Empty, 320}, {Full, 8}, {Empty, 34488}},
    128        {},
    129        34816};
     127       {}}
     128;
    130129    const UnicodeSet buginese_Set
    131130      {{{Empty, 208}, {Full, 1}, {Empty, 34607}},
    132        {},
    133        34816};
     131       {}}
     132;
    134133    const UnicodeSet buhid_Set
    135134      {{{Empty, 186}, {Full, 1}, {Empty, 34629}},
    136        {},
    137        34816};
     135       {}}
     136;
    138137    const UnicodeSet byzantine_music_Set
    139138      {{{Empty, 3712}, {Full, 8}, {Empty, 31096}},
    140        {},
    141        34816};
     139       {}}
     140;
    142141    const UnicodeSet carian_Set
    143142      {{{Empty, 2069}, {Full, 2}, {Empty, 32745}},
    144        {},
    145        34816};
     143       {}}
     144;
    146145    const UnicodeSet caucasian_albanian_Set
    147146      {{{Empty, 2089}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 32724}},
    148        {0xffff0000, 0x0000ffff},
    149        34816};
     147       {0xffff0000, 0x0000ffff}}
     148;
    150149    const UnicodeSet chakma_Set
    151150      {{{Empty, 2184}, {Full, 2}, {Mixed, 1}, {Empty, 32629}},
    152        {0x0000ffff},
    153        34816};
     151       {0x0000ffff}}
     152;
    154153    const UnicodeSet cham_Set
    155154      {{{Empty, 1360}, {Full, 3}, {Empty, 33453}},
    156        {},
    157        34816};
     155       {}}
     156;
    158157    const UnicodeSet cherokee_Set
    159158      {{{Empty, 157}, {Full, 3}, {Empty, 34656}},
    160        {},
    161        34816};
     159       {}}
     160;
    162161    const UnicodeSet cjk_Set
    163162      {{{Empty, 624}, {Full, 656}, {Empty, 33536}},
    164        {},
    165        34816};
     163       {}}
     164;
    166165    const UnicodeSet cjk_compat_Set
    167166      {{{Empty, 408}, {Full, 8}, {Empty, 34400}},
    168        {},
    169        34816};
     167       {}}
     168;
    170169    const UnicodeSet cjk_compat_forms_Set
    171170      {{{Empty, 2033}, {Mixed, 2}, {Empty, 32781}},
    172        {0xffff0000, 0x0000ffff},
    173        34816};
     171       {0xffff0000, 0x0000ffff}}
     172;
    174173    const UnicodeSet cjk_compat_ideographs_Set
    175174      {{{Empty, 1992}, {Full, 16}, {Empty, 32808}},
    176        {},
    177        34816};
     175       {}}
     176;
    178177    const UnicodeSet cjk_compat_ideographs_sup_Set
    179178      {{{Empty, 6080}, {Full, 17}, {Empty, 28719}},
    180        {},
    181        34816};
     179       {}}
     180;
    182181    const UnicodeSet cjk_ext_a_Set
    183182      {{{Empty, 416}, {Full, 206}, {Empty, 34194}},
    184        {},
    185        34816};
     183       {}}
     184;
    186185    const UnicodeSet cjk_ext_b_Set
    187186      {{{Empty, 4096}, {Full, 1335}, {Empty, 29385}},
    188        {},
    189        34816};
     187       {}}
     188;
    190189    const UnicodeSet cjk_ext_c_Set
    191190      {{{Empty, 5432}, {Full, 130}, {Empty, 29254}},
    192        {},
    193        34816};
     191       {}}
     192;
    194193    const UnicodeSet cjk_ext_d_Set
    195194      {{{Empty, 5562}, {Full, 7}, {Empty, 29247}},
    196        {},
    197        34816};
     195       {}}
     196;
    198197    const UnicodeSet cjk_radicals_sup_Set
    199198      {{{Empty, 372}, {Full, 4}, {Empty, 34440}},
    200        {},
    201        34816};
     199       {}}
     200;
    202201    const UnicodeSet cjk_strokes_Set
    203202      {{{Empty, 398}, {Full, 1}, {Mixed, 1}, {Empty, 34416}},
    204        {0x0000ffff},
    205        34816};
     203       {0x0000ffff}}
     204;
    206205    const UnicodeSet cjk_symbols_Set
    207206      {{{Empty, 384}, {Full, 2}, {Empty, 34430}},
    208        {},
    209        34816};
     207       {}}
     208;
    210209    const UnicodeSet compat_jamo_Set
    211210      {{{Empty, 393}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 34419}},
    212        {0xffff0000, 0x0000ffff},
    213        34816};
     211       {0xffff0000, 0x0000ffff}}
     212;
    214213    const UnicodeSet control_pictures_Set
    215214      {{{Empty, 288}, {Full, 2}, {Empty, 34526}},
    216        {},
    217        34816};
     215       {}}
     216;
    218217    const UnicodeSet coptic_Set
    219218      {{{Empty, 356}, {Full, 4}, {Empty, 34456}},
    220        {},
    221        34816};
     219       {}}
     220;
    222221    const UnicodeSet coptic_epact_numbers_Set
    223222      {{{Empty, 2071}, {Full, 1}, {Empty, 32744}},
    224        {},
    225        34816};
     223       {}}
     224;
    226225    const UnicodeSet counting_rod_Set
    227226      {{{Empty, 3739}, {Full, 1}, {Empty, 31076}},
    228        {},
    229        34816};
     227       {}}
     228;
    230229    const UnicodeSet cuneiform_Set
    231230      {{{Empty, 2304}, {Full, 32}, {Empty, 32480}},
    232        {},
    233        34816};
     231       {}}
     232;
    234233    const UnicodeSet cuneiform_numbers_Set
    235234      {{{Empty, 2336}, {Full, 4}, {Empty, 32476}},
    236        {},
    237        34816};
     235       {}}
     236;
    238237    const UnicodeSet currency_symbols_Set
    239238      {{{Empty, 261}, {Full, 1}, {Mixed, 1}, {Empty, 34553}},
    240        {0x0000ffff},
    241        34816};
     239       {0x0000ffff}}
     240;
    242241    const UnicodeSet cypriot_syllabary_Set
    243242      {{{Empty, 2112}, {Full, 2}, {Empty, 32702}},
    244        {},
    245        34816};
     243       {}}
     244;
    246245    const UnicodeSet cyrillic_Set
    247246      {{{Empty, 32}, {Full, 8}, {Empty, 34776}},
    248        {},
    249        34816};
     247       {}}
     248;
    250249    const UnicodeSet cyrillic_ext_a_Set
    251250      {{{Empty, 367}, {Full, 1}, {Empty, 34448}},
    252        {},
    253        34816};
     251       {}}
     252;
    254253    const UnicodeSet cyrillic_ext_b_Set
    255254      {{{Empty, 1330}, {Full, 3}, {Empty, 33483}},
    256        {},
    257        34816};
     255       {}}
     256;
    258257    const UnicodeSet cyrillic_sup_Set
    259258      {{{Empty, 40}, {Full, 1}, {Mixed, 1}, {Empty, 34774}},
    260        {0x0000ffff},
    261        34816};
     259       {0x0000ffff}}
     260;
    262261    const UnicodeSet deseret_Set
    263262      {{{Empty, 2080}, {Full, 2}, {Mixed, 1}, {Empty, 32733}},
    264        {0x0000ffff},
    265        34816};
     263       {0x0000ffff}}
     264;
    266265    const UnicodeSet devanagari_Set
    267266      {{{Empty, 72}, {Full, 4}, {Empty, 34740}},
    268        {},
    269        34816};
     267       {}}
     268;
    270269    const UnicodeSet devanagari_ext_Set
    271270      {{{Empty, 1351}, {Full, 1}, {Empty, 33464}},
    272        {},
    273        34816};
     271       {}}
     272;
    274273    const UnicodeSet diacriticals_Set
    275274      {{{Empty, 24}, {Full, 3}, {Mixed, 1}, {Empty, 34788}},
    276        {0x0000ffff},
    277        34816};
     275       {0x0000ffff}}
     276;
    278277    const UnicodeSet diacriticals_ext_Set
    279278      {{{Empty, 213}, {Mixed, 1}, {Full, 2}, {Empty, 34600}},
    280        {0xffff0000},
    281        34816};
     279       {0xffff0000}}
     280;
    282281    const UnicodeSet diacriticals_for_symbols_Set
    283282      {{{Empty, 262}, {Mixed, 1}, {Full, 1}, {Empty, 34552}},
    284        {0xffff0000},
    285        34816};
     283       {0xffff0000}}
     284;
    286285    const UnicodeSet diacriticals_sup_Set
    287286      {{{Empty, 238}, {Full, 2}, {Empty, 34576}},
    288        {},
    289        34816};
     287       {}}
     288;
    290289    const UnicodeSet dingbats_Set
    291290      {{{Empty, 312}, {Full, 6}, {Empty, 34498}},
    292        {},
    293        34816};
     291       {}}
     292;
    294293    const UnicodeSet domino_Set
    295294      {{{Empty, 3969}, {Mixed, 1}, {Full, 3}, {Empty, 30843}},
    296        {0xffff0000},
    297        34816};
     295       {0xffff0000}}
     296;
    298297    const UnicodeSet duployan_Set
    299298      {{{Empty, 3552}, {Full, 5}, {Empty, 31259}},
    300        {},
    301        34816};
     299       {}}
     300;
    302301    const UnicodeSet egyptian_hieroglyphs_Set
    303302      {{{Empty, 2432}, {Full, 33}, {Mixed, 1}, {Empty, 32350}},
    304        {0x0000ffff},
    305        34816};
     303       {0x0000ffff}}
     304;
    306305    const UnicodeSet elbasan_Set
    307306      {{{Empty, 2088}, {Full, 1}, {Mixed, 1}, {Empty, 32726}},
    308        {0x0000ffff},
    309        34816};
     307       {0x0000ffff}}
     308;
    310309    const UnicodeSet emoticons_Set
    311310      {{{Empty, 4016}, {Full, 2}, {Mixed, 1}, {Empty, 30797}},
    312        {0x0000ffff},
    313        34816};
     311       {0x0000ffff}}
     312;
    314313    const UnicodeSet enclosed_alphanum_Set
    315314      {{{Empty, 291}, {Full, 5}, {Empty, 34520}},
    316        {},
    317        34816};
     315       {}}
     316;
    318317    const UnicodeSet enclosed_alphanum_sup_Set
    319318      {{{Empty, 3976}, {Full, 8}, {Empty, 30832}},
    320        {},
    321        34816};
     319       {}}
     320;
    322321    const UnicodeSet enclosed_cjk_Set
    323322      {{{Empty, 400}, {Full, 8}, {Empty, 34408}},
    324        {},
    325        34816};
     323       {}}
     324;
    326325    const UnicodeSet enclosed_ideographic_sup_Set
    327326      {{{Empty, 3984}, {Full, 8}, {Empty, 30824}},
    328        {},
    329        34816};
     327       {}}
     328;
    330329    const UnicodeSet ethiopic_Set
    331330      {{{Empty, 144}, {Full, 12}, {Empty, 34660}},
    332        {},
    333        34816};
     331       {}}
     332;
    334333    const UnicodeSet ethiopic_ext_Set
    335334      {{{Empty, 364}, {Full, 3}, {Empty, 34449}},
    336        {},
    337        34816};
     335       {}}
     336;
    338337    const UnicodeSet ethiopic_ext_a_Set
    339338      {{{Empty, 1368}, {Full, 1}, {Mixed, 1}, {Empty, 33446}},
    340        {0x0000ffff},
    341        34816};
     339       {0x0000ffff}}
     340;
    342341    const UnicodeSet ethiopic_sup_Set
    343342      {{{Empty, 156}, {Full, 1}, {Empty, 34659}},
    344        {},
    345        34816};
     343       {}}
     344;
    346345    const UnicodeSet geometric_shapes_Set
    347346      {{{Empty, 301}, {Full, 3}, {Empty, 34512}},
    348        {},
    349        34816};
     347       {}}
     348;
    350349    const UnicodeSet geometric_shapes_ext_Set
    351350      {{{Empty, 4028}, {Full, 4}, {Empty, 30784}},
    352        {},
    353        34816};
     351       {}}
     352;
    354353    const UnicodeSet georgian_Set
    355354      {{{Empty, 133}, {Full, 3}, {Empty, 34680}},
    356        {},
    357        34816};
     355       {}}
     356;
    358357    const UnicodeSet georgian_sup_Set
    359358      {{{Empty, 360}, {Full, 1}, {Mixed, 1}, {Empty, 34454}},
    360        {0x0000ffff},
    361        34816};
     359       {0x0000ffff}}
     360;
    362361    const UnicodeSet glagolitic_Set
    363362      {{{Empty, 352}, {Full, 3}, {Empty, 34461}},
    364        {},
    365        34816};
     363       {}}
     364;
    366365    const UnicodeSet gothic_Set
    367366      {{{Empty, 2073}, {Mixed, 2}, {Empty, 32741}},
    368        {0xffff0000, 0x0000ffff},
    369        34816};
     367       {0xffff0000, 0x0000ffff}}
     368;
    370369    const UnicodeSet grantha_Set
    371370      {{{Empty, 2200}, {Full, 4}, {Empty, 32612}},
    372        {},
    373        34816};
     371       {}}
     372;
    374373    const UnicodeSet greek_Set
    375374      {{{Empty, 27}, {Mixed, 1}, {Full, 4}, {Empty, 34784}},
    376        {0xffff0000},
    377        34816};
     375       {0xffff0000}}
     376;
    378377    const UnicodeSet greek_ext_Set
    379378      {{{Empty, 248}, {Full, 8}, {Empty, 34560}},
    380        {},
    381        34816};
     379       {}}
     380;
    382381    const UnicodeSet gujarati_Set
    383382      {{{Empty, 84}, {Full, 4}, {Empty, 34728}},
    384        {},
    385        34816};
     383       {}}
     384;
    386385    const UnicodeSet gurmukhi_Set
    387386      {{{Empty, 80}, {Full, 4}, {Empty, 34732}},
    388        {},
    389        34816};
     387       {}}
     388;
    390389    const UnicodeSet half_and_full_forms_Set
    391390      {{{Empty, 2040}, {Full, 7}, {Mixed, 1}, {Empty, 32768}},
    392        {0x0000ffff},
    393        34816};
     391       {0x0000ffff}}
     392;
    394393    const UnicodeSet half_marks_Set
    395394      {{{Empty, 2033}, {Mixed, 1}, {Empty, 32782}},
    396        {0x0000ffff},
    397        34816};
     395       {0x0000ffff}}
     396;
    398397    const UnicodeSet hangul_Set
    399398      {{{Empty, 1376}, {Full, 349}, {Mixed, 1}, {Empty, 33090}},
    400        {0x0000ffff},
    401        34816};
     399       {0x0000ffff}}
     400;
    402401    const UnicodeSet hanunoo_Set
    403402      {{{Empty, 185}, {Full, 1}, {Empty, 34630}},
    404        {},
    405        34816};
     403       {}}
     404;
    406405    const UnicodeSet hebrew_Set
    407406      {{{Empty, 44}, {Mixed, 1}, {Full, 3}, {Empty, 34768}},
    408        {0xffff0000},
    409        34816};
     407       {0xffff0000}}
     408;
    410409    const UnicodeSet high_pu_surrogates_Set
    411410      {{{Empty, 1756}, {Full, 4}, {Empty, 33056}},
    412        {},
    413        34816};
     411       {}}
     412;
    414413    const UnicodeSet high_surrogates_Set
    415414      {{{Empty, 1728}, {Full, 28}, {Empty, 33060}},
    416        {},
    417        34816};
     415       {}}
     416;
    418417    const UnicodeSet hiragana_Set
    419418      {{{Empty, 386}, {Full, 3}, {Empty, 34427}},
    420        {},
    421        34816};
     419       {}}
     420;
    422421    const UnicodeSet idc_Set
    423422      {{{Empty, 383}, {Mixed, 1}, {Empty, 34432}},
    424        {0xffff0000},
    425        34816};
     423       {0xffff0000}}
     424;
    426425    const UnicodeSet imperial_aramaic_Set
    427426      {{{Empty, 2114}, {Full, 1}, {Empty, 32701}},
    428        {},
    429        34816};
     427       {}}
     428;
    430429    const UnicodeSet indic_number_forms_Set
    431430      {{{Empty, 1345}, {Mixed, 1}, {Empty, 33470}},
    432        {0xffff0000},
    433        34816};
     431       {0xffff0000}}
     432;
    434433    const UnicodeSet inscriptional_pahlavi_Set
    435434      {{{Empty, 2139}, {Full, 1}, {Empty, 32676}},
    436        {},
    437        34816};
     435       {}}
     436;
    438437    const UnicodeSet inscriptional_parthian_Set
    439438      {{{Empty, 2138}, {Full, 1}, {Empty, 32677}},
    440        {},
    441        34816};
     439       {}}
     440;
    442441    const UnicodeSet ipa_ext_Set
    443442      {{{Empty, 18}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Empty, 34794}},
    444        {0xffff0000, 0x0000ffff},
    445        34816};
     443       {0xffff0000, 0x0000ffff}}
     444;
    446445    const UnicodeSet jamo_Set
    447446      {{{Empty, 136}, {Full, 8}, {Empty, 34672}},
    448        {},
    449        34816};
     447       {}}
     448;
    450449    const UnicodeSet jamo_ext_a_Set
    451450      {{{Empty, 1355}, {Full, 1}, {Empty, 33460}},
    452        {},
    453        34816};
     451       {}}
     452;
    454453    const UnicodeSet jamo_ext_b_Set
    455454      {{{Empty, 1725}, {Mixed, 1}, {Full, 2}, {Empty, 33088}},
    456        {0xffff0000},
    457        34816};
     455       {0xffff0000}}
     456;
    458457    const UnicodeSet javanese_Set
    459458      {{{Empty, 1356}, {Full, 3}, {Empty, 33457}},
    460        {},
    461        34816};
     459       {}}
     460;
    462461    const UnicodeSet kaithi_Set
    463462      {{{Empty, 2180}, {Full, 2}, {Mixed, 1}, {Empty, 32633}},
    464        {0x0000ffff},
    465        34816};
     463       {0x0000ffff}}
     464;
    466465    const UnicodeSet kana_sup_Set
    467466      {{{Empty, 3456}, {Full, 8}, {Empty, 31352}},
    468        {},
    469        34816};
     467       {}}
     468;
    470469    const UnicodeSet kanbun_Set
    471470      {{{Empty, 396}, {Mixed, 1}, {Empty, 34419}},
    472        {0xffff0000},
    473        34816};
     471       {0xffff0000}}
     472;
    474473    const UnicodeSet kangxi_Set
    475474      {{{Empty, 376}, {Full, 7}, {Empty, 34433}},
    476        {},
    477        34816};
     475       {}}
     476;
    478477    const UnicodeSet kannada_Set
    479478      {{{Empty, 100}, {Full, 4}, {Empty, 34712}},
    480        {},
    481        34816};
     479       {}}
     480;
    482481    const UnicodeSet katakana_Set
    483482      {{{Empty, 389}, {Full, 3}, {Empty, 34424}},
    484        {},
    485        34816};
     483       {}}
     484;
    486485    const UnicodeSet katakana_ext_Set
    487486      {{{Empty, 399}, {Mixed, 1}, {Empty, 34416}},
    488        {0xffff0000},
    489        34816};
     487       {0xffff0000}}
     488;
    490489    const UnicodeSet kayah_li_Set
    491490      {{{Empty, 1352}, {Full, 1}, {Mixed, 1}, {Empty, 33462}},
    492        {0x0000ffff},
    493        34816};
     491       {0x0000ffff}}
     492;
    494493    const UnicodeSet kharoshthi_Set
    495494      {{{Empty, 2128}, {Full, 3}, {Empty, 32685}},
    496        {},
    497        34816};
     495       {}}
     496;
    498497    const UnicodeSet khmer_Set
    499498      {{{Empty, 188}, {Full, 4}, {Empty, 34624}},
    500        {},
    501        34816};
     499       {}}
     500;
    502501    const UnicodeSet khmer_symbols_Set
    503502      {{{Empty, 207}, {Full, 1}, {Empty, 34608}},
    504        {},
    505        34816};
     503       {}}
     504;
    506505    const UnicodeSet khojki_Set
    507506      {{{Empty, 2192}, {Full, 2}, {Mixed, 1}, {Empty, 32621}},
    508        {0x0000ffff},
    509        34816};
     507       {0x0000ffff}}
     508;
    510509    const UnicodeSet khudawadi_Set
    511510      {{{Empty, 2197}, {Mixed, 1}, {Full, 2}, {Empty, 32616}},
    512        {0xffff0000},
    513        34816};
     511       {0xffff0000}}
     512;
    514513    const UnicodeSet lao_Set
    515514      {{{Empty, 116}, {Full, 4}, {Empty, 34696}},
    516        {},
    517        34816};
     515       {}}
     516;
    518517    const UnicodeSet latin_1_sup_Set
    519518      {{{Empty, 4}, {Full, 4}, {Empty, 34808}},
    520        {},
    521        34816};
     519       {}}
     520;
    522521    const UnicodeSet latin_ext_a_Set
    523522      {{{Empty, 8}, {Full, 4}, {Empty, 34804}},
    524        {},
    525        34816};
     523       {}}
     524;
    526525    const UnicodeSet latin_ext_additional_Set
    527526      {{{Empty, 240}, {Full, 8}, {Empty, 34568}},
    528        {},
    529        34816};
     527       {}}
     528;
    530529    const UnicodeSet latin_ext_b_Set
    531530      {{{Empty, 12}, {Full, 6}, {Mixed, 1}, {Empty, 34797}},
    532        {0x0000ffff},
    533        34816};
     531       {0x0000ffff}}
     532;
    534533    const UnicodeSet latin_ext_c_Set
    535534      {{{Empty, 355}, {Full, 1}, {Empty, 34460}},
    536        {},
    537        34816};
     535       {}}
     536;
    538537    const UnicodeSet latin_ext_d_Set
    539538      {{{Empty, 1337}, {Full, 7}, {Empty, 33472}},
    540        {},
    541        34816};
     539       {}}
     540;
    542541    const UnicodeSet latin_ext_e_Set
    543542      {{{Empty, 1369}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 33444}},
    544        {0xffff0000, 0x0000ffff},
    545        34816};
     543       {0xffff0000, 0x0000ffff}}
     544;
    546545    const UnicodeSet lepcha_Set
    547546      {{{Empty, 224}, {Full, 2}, {Mixed, 1}, {Empty, 34589}},
    548        {0x0000ffff},
    549        34816};
     547       {0x0000ffff}}
     548;
    550549    const UnicodeSet letterlike_symbols_Set
    551550      {{{Empty, 264}, {Full, 2}, {Mixed, 1}, {Empty, 34549}},
    552        {0x0000ffff},
    553        34816};
     551       {0x0000ffff}}
     552;
    554553    const UnicodeSet limbu_Set
    555554      {{{Empty, 200}, {Full, 2}, {Mixed, 1}, {Empty, 34613}},
    556        {0x0000ffff},
    557        34816};
     555       {0x0000ffff}}
     556;
    558557    const UnicodeSet linear_a_Set
    559558      {{{Empty, 2096}, {Full, 12}, {Empty, 32708}},
    560        {},
    561        34816};
     559       {}}
     560;
    562561    const UnicodeSet linear_b_ideograms_Set
    563562      {{{Empty, 2052}, {Full, 4}, {Empty, 32760}},
    564        {},
    565        34816};
     563       {}}
     564;
    566565    const UnicodeSet linear_b_syllabary_Set
    567566      {{{Empty, 2048}, {Full, 4}, {Empty, 32764}},
    568        {},
    569        34816};
     567       {}}
     568;
    570569    const UnicodeSet lisu_Set
    571570      {{{Empty, 1318}, {Mixed, 1}, {Full, 1}, {Empty, 33496}},
    572        {0xffff0000},
    573        34816};
     571       {0xffff0000}}
     572;
    574573    const UnicodeSet low_surrogates_Set
    575574      {{{Empty, 1760}, {Full, 32}, {Empty, 33024}},
    576        {},
    577        34816};
     575       {}}
     576;
    578577    const UnicodeSet lycian_Set
    579578      {{{Empty, 2068}, {Full, 1}, {Empty, 32747}},
    580        {},
    581        34816};
     579       {}}
     580;
    582581    const UnicodeSet lydian_Set
    583582      {{{Empty, 2121}, {Full, 1}, {Empty, 32694}},
    584        {},
    585        34816};
     583       {}}
     584;
    586585    const UnicodeSet mahajani_Set
    587586      {{{Empty, 2186}, {Mixed, 1}, {Full, 1}, {Empty, 32628}},
    588        {0xffff0000},
    589        34816};
     587       {0xffff0000}}
     588;
    590589    const UnicodeSet mahjong_Set
    591590      {{{Empty, 3968}, {Full, 1}, {Mixed, 1}, {Empty, 30846}},
    592        {0x0000ffff},
    593        34816};
     591       {0x0000ffff}}
     592;
    594593    const UnicodeSet malayalam_Set
    595594      {{{Empty, 104}, {Full, 4}, {Empty, 34708}},
    596        {},
    597        34816};
     595       {}}
     596;
    598597    const UnicodeSet mandaic_Set
    599598      {{{Empty, 66}, {Full, 1}, {Empty, 34749}},
    600        {},
    601        34816};
     599       {}}
     600;
    602601    const UnicodeSet manichaean_Set
    603602      {{{Empty, 2134}, {Full, 2}, {Empty, 32680}},
    604        {},
    605        34816};
     603       {}}
     604;
    606605    const UnicodeSet math_alphanum_Set
    607606      {{{Empty, 3744}, {Full, 32}, {Empty, 31040}},
    608        {},
    609        34816};
     607       {}}
     608;
    610609    const UnicodeSet math_operators_Set
    611610      {{{Empty, 272}, {Full, 8}, {Empty, 34536}},
    612        {},
    613        34816};
     611       {}}
     612;
    614613    const UnicodeSet meetei_mayek_Set
    615614      {{{Empty, 1374}, {Full, 2}, {Empty, 33440}},
    616        {},
    617        34816};
     615       {}}
     616;
    618617    const UnicodeSet meetei_mayek_ext_Set
    619618      {{{Empty, 1367}, {Full, 1}, {Empty, 33448}},
    620        {},
    621        34816};
     619       {}}
     620;
    622621    const UnicodeSet mende_kikakui_Set
    623622      {{{Empty, 3904}, {Full, 7}, {Empty, 30905}},
    624        {},
    625        34816};
     623       {}}
     624;
    626625    const UnicodeSet meroitic_cursive_Set
    627626      {{{Empty, 2125}, {Full, 3}, {Empty, 32688}},
    628        {},
    629        34816};
     627       {}}
     628;
    630629    const UnicodeSet meroitic_hieroglyphs_Set
    631630      {{{Empty, 2124}, {Full, 1}, {Empty, 32691}},
    632        {},
    633        34816};
     631       {}}
     632;
    634633    const UnicodeSet miao_Set
    635634      {{{Empty, 2936}, {Full, 5}, {Empty, 31875}},
    636        {},
    637        34816};
     635       {}}
     636;
    638637    const UnicodeSet misc_arrows_Set
    639638      {{{Empty, 344}, {Full, 8}, {Empty, 34464}},
    640        {},
    641        34816};
     639       {}}
     640;
    642641    const UnicodeSet misc_math_symbols_a_Set
    643642      {{{Empty, 318}, {Full, 1}, {Mixed, 1}, {Empty, 34496}},
    644        {0x0000ffff},
    645        34816};
     643       {0x0000ffff}}
     644;
    646645    const UnicodeSet misc_math_symbols_b_Set
    647646      {{{Empty, 332}, {Full, 4}, {Empty, 34480}},
    648        {},
    649        34816};
     647       {}}
     648;
    650649    const UnicodeSet misc_pictographs_Set
    651650      {{{Empty, 3992}, {Full, 24}, {Empty, 30800}},
    652        {},
    653        34816};
     651       {}}
     652;
    654653    const UnicodeSet misc_symbols_Set
    655654      {{{Empty, 304}, {Full, 8}, {Empty, 34504}},
    656        {},
    657        34816};
     655       {}}
     656;
    658657    const UnicodeSet misc_technical_Set
    659658      {{{Empty, 280}, {Full, 8}, {Empty, 34528}},
    660        {},
    661        34816};
     659       {}}
     660;
    662661    const UnicodeSet modi_Set
    663662      {{{Empty, 2224}, {Full, 3}, {Empty, 32589}},
    664        {},
    665        34816};
     663       {}}
     664;
    666665    const UnicodeSet modifier_letters_Set
    667666      {{{Empty, 21}, {Mixed, 1}, {Full, 2}, {Empty, 34792}},
    668        {0xffff0000},
    669        34816};
     667       {0xffff0000}}
     668;
    670669    const UnicodeSet modifier_tone_letters_Set
    671670      {{{Empty, 1336}, {Full, 1}, {Empty, 33479}},
    672        {},
    673        34816};
     671       {}}
     672;
    674673    const UnicodeSet mongolian_Set
    675674      {{{Empty, 192}, {Full, 5}, {Mixed, 1}, {Empty, 34618}},
    676        {0x0000ffff},
    677        34816};
     675       {0x0000ffff}}
     676;
    678677    const UnicodeSet mro_Set
    679678      {{{Empty, 2898}, {Full, 1}, {Mixed, 1}, {Empty, 31916}},
    680        {0x0000ffff},
    681        34816};
     679       {0x0000ffff}}
     680;
    682681    const UnicodeSet music_Set
    683682      {{{Empty, 3720}, {Full, 8}, {Empty, 31088}},
    684        {},
    685        34816};
     683       {}}
     684;
    686685    const UnicodeSet myanmar_Set
    687686      {{{Empty, 128}, {Full, 5}, {Empty, 34683}},
    688        {},
    689        34816};
     687       {}}
     688;
    690689    const UnicodeSet myanmar_ext_a_Set
    691690      {{{Empty, 1363}, {Full, 1}, {Empty, 33452}},
    692        {},
    693        34816};
     691       {}}
     692;
    694693    const UnicodeSet myanmar_ext_b_Set
    695694      {{{Empty, 1359}, {Full, 1}, {Empty, 33456}},
    696        {},
    697        34816};
     695       {}}
     696;
    698697    const UnicodeSet nabataean_Set
    699698      {{{Empty, 2116}, {Full, 1}, {Mixed, 1}, {Empty, 32698}},
    700        {0x0000ffff},
    701        34816};
     699       {0x0000ffff}}
     700;
    702701    const UnicodeSet nb_Set
    703702      {{{Empty, 67}, {Full, 2}, {Empty, 159}, {Full, 2}, {Empty, 153},
     
    723722        0xffff0000, 0xffff0000, 0xffff0000, 0x0000ffff, 0xffff0000,
    724723        0xffff0000, 0xffff0000, 0x0000ffff, 0xffff0000, 0xffff0000,
    725         0xffff0000, 0xffff0000},
    726        34816};
     724        0xffff0000, 0xffff0000}}
     725;
    727726    const UnicodeSet new_tai_lue_Set
    728727      {{{Empty, 204}, {Full, 3}, {Empty, 34609}},
    729        {},
    730        34816};
     728       {}}
     729;
    731730    const UnicodeSet nko_Set
    732731      {{{Empty, 62}, {Full, 2}, {Empty, 34752}},
    733        {},
    734        34816};
     732       {}}
     733;
    735734    const UnicodeSet number_forms_Set
    736735      {{{Empty, 266}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 34547}},
    737        {0xffff0000, 0x0000ffff},
    738        34816};
     736       {0xffff0000, 0x0000ffff}}
     737;
    739738    const UnicodeSet ocr_Set
    740739      {{{Empty, 290}, {Full, 1}, {Empty, 34525}},
    741        {},
    742        34816};
     740       {}}
     741;
    743742    const UnicodeSet ogham_Set
    744743      {{{Empty, 180}, {Full, 1}, {Empty, 34635}},
    745        {},
    746        34816};
     744       {}}
     745;
    747746    const UnicodeSet ol_chiki_Set
    748747      {{{Empty, 226}, {Mixed, 1}, {Full, 1}, {Empty, 34588}},
    749        {0xffff0000},
    750        34816};
     748       {0xffff0000}}
     749;
    751750    const UnicodeSet old_italic_Set
    752751      {{{Empty, 2072}, {Full, 1}, {Mixed, 1}, {Empty, 32742}},
    753        {0x0000ffff},
    754        34816};
     752       {0x0000ffff}}
     753;
    755754    const UnicodeSet old_north_arabian_Set
    756755      {{{Empty, 2132}, {Full, 1}, {Empty, 32683}},
    757        {},
    758        34816};
     756       {}}
     757;
    759758    const UnicodeSet old_permic_Set
    760759      {{{Empty, 2074}, {Mixed, 1}, {Full, 1}, {Empty, 32740}},
    761        {0xffff0000},
    762        34816};
     760       {0xffff0000}}
     761;
    763762    const UnicodeSet old_persian_Set
    764763      {{{Empty, 2077}, {Full, 2}, {Empty, 32737}},
    765        {},
    766        34816};
     764       {}}
     765;
    767766    const UnicodeSet old_south_arabian_Set
    768767      {{{Empty, 2131}, {Full, 1}, {Empty, 32684}},
    769        {},
    770        34816};
     768       {}}
     769;
    771770    const UnicodeSet old_turkic_Set
    772771      {{{Empty, 2144}, {Full, 2}, {Mixed, 1}, {Empty, 32669}},
    773        {0x0000ffff},
    774        34816};
     772       {0x0000ffff}}
     773;
    775774    const UnicodeSet oriya_Set
    776775      {{{Empty, 88}, {Full, 4}, {Empty, 34724}},
    777        {},
    778        34816};
     776       {}}
     777;
    779778    const UnicodeSet ornamental_dingbats_Set
    780779      {{{Empty, 4018}, {Mixed, 1}, {Full, 1}, {Empty, 30796}},
    781        {0xffff0000},
    782        34816};
     780       {0xffff0000}}
     781;
    783782    const UnicodeSet osmanya_Set
    784783      {{{Empty, 2084}, {Full, 1}, {Mixed, 1}, {Empty, 32730}},
    785        {0x0000ffff},
    786        34816};
     784       {0x0000ffff}}
     785;
    787786    const UnicodeSet pahawh_hmong_Set
    788787      {{{Empty, 2904}, {Full, 4}, {Mixed, 1}, {Empty, 31907}},
    789        {0x0000ffff},
    790        34816};
     788       {0x0000ffff}}
     789;
    791790    const UnicodeSet palmyrene_Set
    792791      {{{Empty, 2115}, {Full, 1}, {Empty, 32700}},
    793        {},
    794        34816};
     792       {}}
     793;
    795794    const UnicodeSet pau_cin_hau_Set
    796795      {{{Empty, 2262}, {Full, 2}, {Empty, 32552}},
    797        {},
    798        34816};
     796       {}}
     797;
    799798    const UnicodeSet phags_pa_Set
    800799      {{{Empty, 1346}, {Full, 2}, {Empty, 33468}},
    801        {},
    802        34816};
     800       {}}
     801;
    803802    const UnicodeSet phaistos_Set
    804803      {{{Empty, 2062}, {Mixed, 1}, {Full, 1}, {Empty, 32752}},
    805        {0xffff0000},
    806        34816};
     804       {0xffff0000}}
     805;
    807806    const UnicodeSet phoenician_Set
    808807      {{{Empty, 2120}, {Full, 1}, {Empty, 32695}},
    809        {},
    810        34816};
     808       {}}
     809;
    811810    const UnicodeSet phonetic_ext_Set
    812811      {{{Empty, 232}, {Full, 4}, {Empty, 34580}},
    813        {},
    814        34816};
     812       {}}
     813;
    815814    const UnicodeSet phonetic_ext_sup_Set
    816815      {{{Empty, 236}, {Full, 2}, {Empty, 34578}},
    817        {},
    818        34816};
     816       {}}
     817;
    819818    const UnicodeSet playing_cards_Set
    820819      {{{Empty, 3973}, {Full, 3}, {Empty, 30840}},
    821        {},
    822        34816};
     820       {}}
     821;
    823822    const UnicodeSet psalter_pahlavi_Set
    824823      {{{Empty, 2140}, {Full, 1}, {Mixed, 1}, {Empty, 32674}},
    825        {0x0000ffff},
    826        34816};
     824       {0x0000ffff}}
     825;
    827826    const UnicodeSet pua_Set
    828827      {{{Empty, 1792}, {Full, 200}, {Empty, 32824}},
    829        {},
    830        34816};
     828       {}}
     829;
    831830    const UnicodeSet punctuation_Set
    832831      {{{Empty, 256}, {Full, 3}, {Mixed, 1}, {Empty, 34556}},
    833        {0x0000ffff},
    834        34816};
     832       {0x0000ffff}}
     833;
    835834    const UnicodeSet rejang_Set
    836835      {{{Empty, 1353}, {Mixed, 1}, {Full, 1}, {Empty, 33461}},
    837        {0xffff0000},
    838        34816};
     836       {0xffff0000}}
     837;
    839838    const UnicodeSet rumi_Set
    840839      {{{Empty, 2163}, {Full, 1}, {Empty, 32652}},
    841        {},
    842        34816};
     840       {}}
     841;
    843842    const UnicodeSet runic_Set
    844843      {{{Empty, 181}, {Full, 3}, {Empty, 34632}},
    845        {},
    846        34816};
     844       {}}
     845;
    847846    const UnicodeSet samaritan_Set
    848847      {{{Empty, 64}, {Full, 2}, {Empty, 34750}},
    849        {},
    850        34816};
     848       {}}
     849;
    851850    const UnicodeSet saurashtra_Set
    852851      {{{Empty, 1348}, {Full, 3}, {Empty, 33465}},
    853        {},
    854        34816};
     852       {}}
     853;
    855854    const UnicodeSet sharada_Set
    856855      {{{Empty, 2188}, {Full, 3}, {Empty, 32625}},
    857        {},
    858        34816};
     856       {}}
     857;
    859858    const UnicodeSet shavian_Set
    860859      {{{Empty, 2082}, {Mixed, 1}, {Full, 1}, {Empty, 32732}},
    861        {0xffff0000},
    862        34816};
     860       {0xffff0000}}
     861;
    863862    const UnicodeSet shorthand_format_controls_Set
    864863      {{{Empty, 3557}, {Mixed, 1}, {Empty, 31258}},
    865        {0x0000ffff},
    866        34816};
     864       {0x0000ffff}}
     865;
    867866    const UnicodeSet siddham_Set
    868867      {{{Empty, 2220}, {Full, 4}, {Empty, 32592}},
    869        {},
    870        34816};
     868       {}}
     869;
    871870    const UnicodeSet sinhala_Set
    872871      {{{Empty, 108}, {Full, 4}, {Empty, 34704}},
    873        {},
    874        34816};
     872       {}}
     873;
    875874    const UnicodeSet sinhala_archaic_numbers_Set
    876875      {{{Empty, 2191}, {Full, 1}, {Empty, 32624}},
    877        {},
    878        34816};
     876       {}}
     877;
    879878    const UnicodeSet small_forms_Set
    880879      {{{Empty, 2034}, {Mixed, 2}, {Empty, 32780}},
    881        {0xffff0000, 0x0000ffff},
    882        34816};
     880       {0xffff0000, 0x0000ffff}}
     881;
    883882    const UnicodeSet sora_sompeng_Set
    884883      {{{Empty, 2182}, {Mixed, 1}, {Full, 1}, {Empty, 32632}},
    885        {0xffff0000},
    886        34816};
     884       {0xffff0000}}
     885;
    887886    const UnicodeSet specials_Set
    888887      {{{Empty, 2047}, {Mixed, 1}, {Empty, 32768}},
    889        {0xffff0000},
    890        34816};
     888       {0xffff0000}}
     889;
    891890    const UnicodeSet sundanese_Set
    892891      {{{Empty, 220}, {Full, 2}, {Empty, 34594}},
    893        {},
    894        34816};
     892       {}}
     893;
    895894    const UnicodeSet sundanese_sup_Set
    896895      {{{Empty, 230}, {Mixed, 1}, {Empty, 34585}},
    897        {0x0000ffff},
    898        34816};
     896       {0x0000ffff}}
     897;
    899898    const UnicodeSet sup_arrows_a_Set
    900899      {{{Empty, 319}, {Mixed, 1}, {Empty, 34496}},
    901        {0xffff0000},
    902        34816};
     900       {0xffff0000}}
     901;
    903902    const UnicodeSet sup_arrows_b_Set
    904903      {{{Empty, 328}, {Full, 4}, {Empty, 34484}},
    905        {},
    906        34816};
     904       {}}
     905;
    907906    const UnicodeSet sup_arrows_c_Set
    908907      {{{Empty, 4032}, {Full, 8}, {Empty, 30776}},
    909        {},
    910        34816};
     908       {}}
     909;
    911910    const UnicodeSet sup_math_operators_Set
    912911      {{{Empty, 336}, {Full, 8}, {Empty, 34472}},
    913        {},
    914        34816};
     912       {}}
     913;
    915914    const UnicodeSet sup_pua_a_Set
    916915      {{{Empty, 30720}, {Full, 2048}, {Empty, 2048}},
    917        {},
    918        34816};
     916       {}}
     917;
    919918    const UnicodeSet sup_pua_b_Set
    920919      {{{Empty, 32768}, {Full, 2048}},
    921        {},
    922        34816};
     920       {}}
     921;
    923922    const UnicodeSet sup_punctuation_Set
    924923      {{{Empty, 368}, {Full, 4}, {Empty, 34444}},
    925        {},
    926        34816};
     924       {}}
     925;
    927926    const UnicodeSet super_and_sub_Set
    928927      {{{Empty, 259}, {Mixed, 1}, {Full, 1}, {Empty, 34555}},
    929        {0xffff0000},
    930        34816};
     928       {0xffff0000}}
     929;
    931930    const UnicodeSet syloti_nagri_Set
    932931      {{{Empty, 1344}, {Full, 1}, {Mixed, 1}, {Empty, 33470}},
    933        {0x0000ffff},
    934        34816};
     932       {0x0000ffff}}
     933;
    935934    const UnicodeSet syriac_Set
    936935      {{{Empty, 56}, {Full, 2}, {Mixed, 1}, {Empty, 34757}},
    937        {0x0000ffff},
    938        34816};
     936       {0x0000ffff}}
     937;
    939938    const UnicodeSet tagalog_Set
    940939      {{{Empty, 184}, {Full, 1}, {Empty, 34631}},
    941        {},
    942        34816};
     940       {}}
     941;
    943942    const UnicodeSet tagbanwa_Set
    944943      {{{Empty, 187}, {Full, 1}, {Empty, 34628}},
    945        {},
    946        34816};
     944       {}}
     945;
    947946    const UnicodeSet tags_Set
    948947      {{{Empty, 28672}, {Full, 4}, {Empty, 6140}},
    949        {},
    950        34816};
     948       {}}
     949;
    951950    const UnicodeSet tai_le_Set
    952951      {{{Empty, 202}, {Mixed, 1}, {Full, 1}, {Empty, 34612}},
    953        {0xffff0000},
    954        34816};
     952       {0xffff0000}}
     953;
    955954    const UnicodeSet tai_tham_Set
    956955      {{{Empty, 209}, {Full, 4}, {Mixed, 1}, {Empty, 34602}},
    957        {0x0000ffff},
    958        34816};
     956       {0x0000ffff}}
     957;
    959958    const UnicodeSet tai_viet_Set
    960959      {{{Empty, 1364}, {Full, 3}, {Empty, 33449}},
    961        {},
    962        34816};
     960       {}}
     961;
    963962    const UnicodeSet tai_xuan_jing_Set
    964963      {{{Empty, 3736}, {Full, 3}, {Empty, 31077}},
    965        {},
    966        34816};
     964       {}}
     965;
    967966    const UnicodeSet takri_Set
    968967      {{{Empty, 2228}, {Full, 2}, {Mixed, 1}, {Empty, 32585}},
    969        {0x0000ffff},
    970        34816};
     968       {0x0000ffff}}
     969;
    971970    const UnicodeSet tamil_Set
    972971      {{{Empty, 92}, {Full, 4}, {Empty, 34720}},
    973        {},
    974        34816};
     972       {}}
     973;
    975974    const UnicodeSet telugu_Set
    976975      {{{Empty, 96}, {Full, 4}, {Empty, 34716}},
    977        {},
    978        34816};
     976       {}}
     977;
    979978    const UnicodeSet thaana_Set
    980979      {{{Empty, 60}, {Full, 2}, {Empty, 34754}},
    981        {},
    982        34816};
     980       {}}
     981;
    983982    const UnicodeSet thai_Set
    984983      {{{Empty, 112}, {Full, 4}, {Empty, 34700}},
    985        {},
    986        34816};
     984       {}}
     985;
    987986    const UnicodeSet tibetan_Set
    988987      {{{Empty, 120}, {Full, 8}, {Empty, 34688}},
    989        {},
    990        34816};
     988       {}}
     989;
    991990    const UnicodeSet tifinagh_Set
    992991      {{{Empty, 361}, {Mixed, 1}, {Full, 2}, {Empty, 34452}},
    993        {0xffff0000},
    994        34816};
     992       {0xffff0000}}
     993;
    995994    const UnicodeSet tirhuta_Set
    996995      {{{Empty, 2212}, {Full, 3}, {Empty, 32601}},
    997        {},
    998        34816};
     996       {}}
     997;
    999998    const UnicodeSet transport_and_map_Set
    1000999      {{{Empty, 4020}, {Full, 4}, {Empty, 30792}},
    1001        {},
    1002        34816};
     1000       {}}
     1001;
    10031002    const UnicodeSet ucas_Set
    10041003      {{{Empty, 160}, {Full, 20}, {Empty, 34636}},
    1005        {},
    1006        34816};
     1004       {}}
     1005;
    10071006    const UnicodeSet ucas_ext_Set
    10081007      {{{Empty, 197}, {Mixed, 1}, {Full, 2}, {Empty, 34616}},
    1009        {0xffff0000},
    1010        34816};
     1008       {0xffff0000}}
     1009;
    10111010    const UnicodeSet ugaritic_Set
    10121011      {{{Empty, 2076}, {Full, 1}, {Empty, 32739}},
    1013        {},
    1014        34816};
     1012       {}}
     1013;
    10151014    const UnicodeSet vai_Set
    10161015      {{{Empty, 1320}, {Full, 10}, {Empty, 33486}},
    1017        {},
    1018        34816};
     1016       {}}
     1017;
    10191018    const UnicodeSet vedic_ext_Set
    10201019      {{{Empty, 230}, {Mixed, 1}, {Full, 1}, {Empty, 34584}},
    1021        {0xffff0000},
    1022        34816};
     1020       {0xffff0000}}
     1021;
    10231022    const UnicodeSet vertical_forms_Set
    10241023      {{{Empty, 2032}, {Mixed, 1}, {Empty, 32783}},
    1025        {0xffff0000},
    1026        34816};
     1024       {0xffff0000}}
     1025;
    10271026    const UnicodeSet vs_Set
    10281027      {{{Empty, 2032}, {Mixed, 1}, {Empty, 32783}},
    1029        {0x0000ffff},
    1030        34816};
     1028       {0x0000ffff}}
     1029;
    10311030    const UnicodeSet vs_sup_Set
    10321031      {{{Empty, 28680}, {Full, 7}, {Mixed, 1}, {Empty, 6128}},
    1033        {0x0000ffff},
    1034        34816};
     1032       {0x0000ffff}}
     1033;
    10351034    const UnicodeSet warang_citi_Set
    10361035      {{{Empty, 2245}, {Full, 3}, {Empty, 32568}},
    1037        {},
    1038        34816};
     1036       {}}
     1037;
    10391038    const UnicodeSet yi_radicals_Set
    10401039      {{{Empty, 1316}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 33497}},
    1041        {0xffff0000, 0x0000ffff},
    1042        34816};
     1040       {0xffff0000, 0x0000ffff}}
     1041;
    10431042    const UnicodeSet yi_syllables_Set
    10441043      {{{Empty, 1280}, {Full, 36}, {Mixed, 1}, {Empty, 33499}},
    1045        {0x0000ffff},
    1046        34816};
     1044       {0x0000ffff}}
     1045;
    10471046    const UnicodeSet yijing_Set
    10481047      {{{Empty, 622}, {Full, 2}, {Empty, 34192}},
    1049        {},
    1050        34816};
    1051     EnumeratedPropertyObject property_object
     1048       {}}
     1049;
     1050    static EnumeratedPropertyObject property_object
    10521051      {blk,
    10531052       BLK_ns::enum_names,
  • icGREP/icgrep-devel/icgrep/UCD/DerivedCoreProperties.h

    r4388 r4618  
    99 */
    1010
     11#include "PropertyAliases.h"
     12#include "unicode_set.h"
    1113#include <vector>
    12 #include "unicode_set.h"
    13 #include "PropertyAliases.h"
    1414
    1515namespace UCD {
     
    144144        0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff,
    145145        0x0ffffbee, 0xffff0000, 0xffff03ff, 0xffff03ff, 0x000003ff,
    146         0x007fffff, 0x001fffff, 0x3fffffff, 0x3fffffff},
    147        34816};
    148     BinaryPropertyObject property_object{Alpha, codepoint_set};
     146        0x007fffff, 0x001fffff, 0x3fffffff, 0x3fffffff}}
     147;
     148    static BinaryPropertyObject property_object{Alpha, codepoint_set};
    149149  }
    150150  namespace CI_ns {
     
    230230        0x001f0000, 0x007f0000, 0x0000000f, 0xffff8000, 0x60000000,
    231231        0x0000000f, 0xfff80380, 0x00000fe7, 0x00003c00, 0x0000001c,
    232         0x007f0000, 0x00000002, 0x0000ffff},
    233        34816};
    234     BinaryPropertyObject property_object{CI, codepoint_set};
     232        0x007f0000, 0x00000002, 0x0000ffff}}
     233;
     234    static BinaryPropertyObject property_object{CI, codepoint_set};
    235235  }
    236236  namespace CWCF_ns {
     
    259259        0x55555555, 0x00042805, 0x55555555, 0x00001555, 0x05555555,
    260260        0x55545554, 0x55555555, 0x6a005555, 0x55452855, 0x00033d55,
    261         0x00f8007f, 0x07fffffe, 0x000000ff},
    262        34816};
    263     BinaryPropertyObject property_object{CWCF, codepoint_set};
     261        0x00f8007f, 0x07fffffe, 0x000000ff}}
     262;
     263    static BinaryPropertyObject property_object{CWCF, codepoint_set};
    264264  }
    265265  namespace CWCM_ns {
     
    288288        0xc06dffff, 0x000c780f, 0x000020bf, 0x00003fff, 0x0fffffff,
    289289        0xfffcfffc, 0xfe00ffff, 0xffcf38ff, 0x00033fff, 0x00f8007f,
    290         0x07fffffe, 0x07fffffe, 0x0000ffff},
    291        34816};
    292     BinaryPropertyObject property_object{CWCM, codepoint_set};
     290        0x07fffffe, 0x07fffffe, 0x0000ffff}}
     291;
     292    static BinaryPropertyObject property_object{CWCM, codepoint_set};
    293293  }
    294294  namespace CWL_ns {
     
    314314        0xc025ea9d, 0x55555555, 0x55555555, 0x55555555, 0x00042805,
    315315        0x55555555, 0x00001555, 0x05555555, 0x55545554, 0x55555555,
    316         0x6a005555, 0x55452855, 0x00033d55, 0x07fffffe, 0x000000ff},
    317        34816};
    318     BinaryPropertyObject property_object{CWL, codepoint_set};
     316        0x6a005555, 0x55452855, 0x00033d55, 0x07fffffe, 0x000000ff}}
     317;
     318    static BinaryPropertyObject property_object{CWL, codepoint_set};
    319319  }
    320320  namespace CWT_ns {
     
    342342        0xaaaaaaaa, 0x0008500a, 0x000020bf, 0xaaaaaaaa, 0x00002aaa,
    343343        0x0aaaaaaa, 0xaaa8aaa8, 0xaaaaaaaa, 0x9400aaaa, 0xaa8a10aa,
    344         0x000002aa, 0x00f8007f, 0x07fffffe, 0xffffff00, 0x0000ffff},
    345        34816};
    346     BinaryPropertyObject property_object{CWT, codepoint_set};
     344        0x000002aa, 0x00f8007f, 0x07fffffe, 0xffffff00, 0x0000ffff}}
     345;
     346    static BinaryPropertyObject property_object{CWT, codepoint_set};
    347347  }
    348348  namespace CWU_ns {
     
    370370        0x0008500a, 0x000020bf, 0xaaaaaaaa, 0x00002aaa, 0x0aaaaaaa,
    371371        0xaaa8aaa8, 0xaaaaaaaa, 0x9400aaaa, 0xaa8a10aa, 0x000002aa,
    372         0x00f8007f, 0x07fffffe, 0xffffff00, 0x0000ffff},
    373        34816};
    374     BinaryPropertyObject property_object{CWU, codepoint_set};
     372        0x00f8007f, 0x07fffffe, 0xffffff00, 0x0000ffff}}
     373;
     374    static BinaryPropertyObject property_object{CWU, codepoint_set};
    375375  }
    376376  namespace CASED_ns {
     
    405405        0xffffff3f, 0xf7fffffd, 0xf7ffffff, 0xffdfffff, 0xffdfffff,
    406406        0xffff7fff, 0xffff7fff, 0xfffffdff, 0xfffffdff, 0x00000ff7,
    407         0xffff0000, 0xffff03ff, 0xffff03ff, 0x000003ff},
    408        34816};
    409     BinaryPropertyObject property_object{Cased, codepoint_set};
     407        0xffff0000, 0xffff03ff, 0xffff03ff, 0x000003ff}}
     408;
     409    static BinaryPropertyObject property_object{Cased, codepoint_set};
    410410  }
    411411  namespace DI_ns {
     
    421421        0x00300000, 0x00007800, 0x0000f800, 0x00007c00, 0x0000ffff,
    422422        0x00000010, 0x0000ffff, 0x80000000, 0x00000001, 0x01ff0000,
    423         0x0000000f, 0x07f80000},
    424        34816};
    425     BinaryPropertyObject property_object{DI, codepoint_set};
     423        0x0000000f, 0x07f80000}}
     424;
     425    static BinaryPropertyObject property_object{DI, codepoint_set};
    426426  }
    427427  namespace GR_BASE_ns {
     
    569569        0xffffffef, 0xffffffe7, 0x0000ffff, 0x000f1fff, 0x000fffff,
    570570        0x001fffff, 0xffff0fff, 0x03ff00ff, 0xffff00ff, 0x00003fff,
    571         0x007fffff, 0x001fffff, 0x3fffffff, 0x3fffffff},
    572        34816};
    573     BinaryPropertyObject property_object{Gr_Base, codepoint_set};
     571        0x007fffff, 0x001fffff, 0x3fffffff, 0x3fffffff}}
     572;
     573    static BinaryPropertyObject property_object{Gr_Base, codepoint_set};
    574574  }
    575575  namespace GR_EXT_ns {
     
    637637        0xb03c8000, 0x00000001, 0xa7f80000, 0x00000001, 0x00bf2800,
    638638        0x001f0000, 0x007f0000, 0x00078000, 0x60000000, 0xf807c3a0,
    639         0x00000fe7, 0x00003c00, 0x0000001c, 0x007f0000, 0x0000ffff},
    640        34816};
    641     BinaryPropertyObject property_object{Gr_Ext, codepoint_set};
     639        0x00000fe7, 0x00003c00, 0x0000001c, 0x007f0000, 0x0000ffff}}
     640;
     641    static BinaryPropertyObject property_object{Gr_Ext, codepoint_set};
    642642  }
    643643  namespace GR_LINK_ns {
     
    666666        0x00400000, 0x00002000, 0x80000000, 0x00000040, 0x80000000,
    667667        0x02000000, 0x00180000, 0x00000001, 0x00200000, 0x00000400,
    668         0x00002000, 0x00000004, 0x80000000, 0x80000000, 0x00400000},
    669        34816};
    670     BinaryPropertyObject property_object{Gr_Link, codepoint_set};
     668        0x00002000, 0x00000004, 0x80000000, 0x80000000, 0x00400000}}
     669;
     670    static BinaryPropertyObject property_object{Gr_Link, codepoint_set};
    671671  }
    672672  namespace IDC_ns {
     
    799799        0xfffffdff, 0xfffffdff, 0xffffcff7, 0x007f001f, 0xffffffef,
    800800        0x0af7fe96, 0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee,
    801         0x007fffff, 0x001fffff, 0x3fffffff, 0x3fffffff, 0x0000ffff},
    802        34816};
    803     BinaryPropertyObject property_object{IDC, codepoint_set};
     801        0x007fffff, 0x001fffff, 0x3fffffff, 0x3fffffff, 0x0000ffff}}
     802;
     803    static BinaryPropertyObject property_object{IDC, codepoint_set};
    804804  }
    805805  namespace IDS_ns {
     
    930930        0xfffffdff, 0x00000ff7, 0x0000001f, 0xffffffef, 0x0af7fe96,
    931931        0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0x007fffff,
    932         0x001fffff, 0x3fffffff, 0x3fffffff},
    933        34816};
    934     BinaryPropertyObject property_object{IDS, codepoint_set};
     932        0x001fffff, 0x3fffffff, 0x3fffffff}}
     933;
     934    static BinaryPropertyObject property_object{IDS, codepoint_set};
    935935  }
    936936  namespace LOWER_ns {
     
    968968        0x000000ff, 0x0ffffffc, 0xffc00000, 0x0000ffff, 0xfffffc00,
    969969        0x0000003f, 0xf7fffffc, 0xf0000003, 0x0fdfffff, 0xffc00000,
    970         0x003f7fff, 0xffff0000, 0x0000fdff, 0xfffffc00, 0x00000bf7},
    971        34816};
    972     BinaryPropertyObject property_object{Lower, codepoint_set};
     970        0x003f7fff, 0xffff0000, 0x0000fdff, 0xfffffc00, 0x00000bf7}}
     971;
     972    static BinaryPropertyObject property_object{Lower, codepoint_set};
    973973  }
    974974  namespace MATH_ns {
     
    996996        0xdfffffff, 0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff,
    997997        0xfffdfc5f, 0xffffff3f, 0xffffcfff, 0xffffffef, 0x0af7fe96,
    998         0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0x00030000},
    999        34816};
    1000     BinaryPropertyObject property_object{Math, codepoint_set};
     998        0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0x00030000}}
     999;
     1000    static BinaryPropertyObject property_object{Math, codepoint_set};
    10011001  }
    10021002  namespace UPPER_ns {
     
    10311031        0xf0000000, 0x001fffff, 0xffc00000, 0x00007fff, 0xffff0000,
    10321032        0x000001ff, 0x00000400, 0xffff0000, 0xffff03ff, 0xffff03ff,
    1033         0x000003ff},
    1034        34816};
    1035     BinaryPropertyObject property_object{Upper, codepoint_set};
     1033        0x000003ff}}
     1034;
     1035    static BinaryPropertyObject property_object{Upper, codepoint_set};
    10361036  }
    10371037  namespace XIDC_ns {
     
    11661166        0x007f001f, 0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796,
    11671167        0x0ffffbff, 0x0ffffbee, 0x007fffff, 0x001fffff, 0x3fffffff,
    1168         0x3fffffff, 0x0000ffff},
    1169        34816};
    1170     BinaryPropertyObject property_object{XIDC, codepoint_set};
     1168        0x3fffffff, 0x0000ffff}}
     1169;
     1170    static BinaryPropertyObject property_object{XIDC, codepoint_set};
    11711171  }
    11721172  namespace XIDS_ns {
     
    12981298        0x0000001f, 0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796,
    12991299        0x0ffffbff, 0x0ffffbee, 0x007fffff, 0x001fffff, 0x3fffffff,
    1300         0x3fffffff},
    1301        34816};
    1302     BinaryPropertyObject property_object{XIDS, codepoint_set};
     1300        0x3fffffff}}
     1301;
     1302    static BinaryPropertyObject property_object{XIDS, codepoint_set};
    13031303  }
    13041304}
  • icGREP/icgrep-devel/icgrep/UCD/DerivedGeneralCategory.h

    r4388 r4618  
    99 */
    1010
    11 #include <vector>
     11#include "PropertyObjects.h"
     12#include "PropertyValueAliases.h"
    1213#include "unicode_set.h"
    13 #include "PropertyAliases.h"
    14 #include "PropertyValueAliases.h"
    1514
    1615namespace UCD {
     
    160159        0xfff00000, 0xffe00000, 0x0000f000, 0xfc00ff00, 0x0000ff00,
    161160        0xffffc000, 0xff800000, 0xffe00000, 0xc0000000, 0xc0000000,
    162         0xffff0000},
    163        34816};
     161        0xffff0000}}
     162;
    164163    const UnicodeSet cc_Set
    165164      {{{Full, 1}, {Empty, 2}, {Mixed, 1}, {Full, 1}, {Empty, 34811}},
    166        {0x80000000},
    167        34816};
     165       {0x80000000}}
     166;
    168167    const UnicodeSet cf_Set
    169168      {{{Empty, 5}, {Mixed, 1}, {Empty, 42}, {Mixed, 1}, {Empty, 5},
     
    175174       {0x00002000, 0x1000003f, 0x20000000, 0x00008000, 0x00004000,
    176175        0x0000f800, 0x00007c00, 0x0000ffdf, 0x80000000, 0x0e000000,
    177         0x20000000, 0x0000000f, 0x07f80000, 0x00000002},
    178        34816};
     176        0x20000000, 0x0000000f, 0x07f80000, 0x00000002}}
     177;
    179178    const UnicodeSet cn_Set
    180179      {{{Empty, 27}, {Mixed, 3}, {Empty, 11}, {Mixed, 4}, {Empty, 1},
     
    319318        0xffe00000, 0x0000f000, 0xfc00ff00, 0x0000ff00, 0xffffc000,
    320319        0xff800000, 0xffe00000, 0xc0000000, 0xc0000000, 0xfffffffd,
    321         0xffff0000, 0xc0000000, 0xc0000000},
    322        34816};
     320        0xffff0000, 0xc0000000, 0xc0000000}}
     321;
    323322    const UnicodeSet co_Set
    324323      {{{Empty, 1792}, {Full, 200}, {Empty, 28728}, {Full, 2047},
    325324        {Mixed, 1}, {Full, 2047}, {Mixed, 1}},
    326        {0x3fffffff, 0x3fffffff},
    327        34816};
     325       {0x3fffffff, 0x3fffffff}}
     326;
    328327    const UnicodeSet cs_Set
    329328      {{{Empty, 1728}, {Full, 64}, {Empty, 33024}},
    330        {},
    331        34816};
     329       {}}
     330;
    332331    const UnicodeSet l_Set
    333332      {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 14},
     
    455454        0x00000ff7, 0x0000001f, 0xffffffef, 0x0af7fe96, 0xaa96ea84,
    456455        0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0x007fffff, 0x001fffff,
    457         0x3fffffff, 0x3fffffff},
    458        34816};
     456        0x3fffffff, 0x3fffffff}}
     457;
    459458    const UnicodeSet lc_Set
    460459      {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 5},
     
    485484        0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f, 0xffffff3f, 0xf7fffffd,
    486485        0xf7ffffff, 0xffdfffff, 0xffdfffff, 0xffff7fff, 0xffff7fff,
    487         0xfffffdff, 0xfffffdff, 0x00000ff7},
    488        34816};
     486        0xfffffdff, 0xfffffdff, 0x00000ff7}}
     487;
    489488    const UnicodeSet ll_Set
    490489      {{{Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 14}, {Full, 1},
     
    519518        0x000000ff, 0x0ffffffc, 0xffc00000, 0x0000ffff, 0xfffffc00,
    520519        0x0000003f, 0xf7fffffc, 0xf0000003, 0x0fdfffff, 0xffc00000,
    521         0x003f7fff, 0xffff0000, 0x0000fdff, 0xfffffc00, 0x00000bf7},
    522        34816};
     520        0x003f7fff, 0xffff0000, 0x0000fdff, 0xfffffc00, 0x00000bf7}}
     521;
    523522    const UnicodeSet lm_Set
    524523      {{{Empty, 21}, {Mixed, 3}, {Empty, 3}, {Mixed, 1}, {Empty, 14},
     
    547546        0xff800000, 0x00010000, 0x00000100, 0x03000000, 0x00008000,
    548547        0x00000040, 0x00010000, 0x20000000, 0x00180000, 0xf0000000,
    549         0x00010000, 0xc0000000, 0x0000000f, 0xfff80000},
    550        34816};
     548        0x00010000, 0xc0000000, 0x0000000f, 0xfff80000}}
     549;
    551550    const UnicodeSet lo_Set
    552551      {{{Empty, 5}, {Mixed, 1}, {Empty, 7}, {Mixed, 2}, {Empty, 5},
     
    656655        0x1fff07ff, 0x03ff01ff, 0x0000001f, 0xffffffef, 0x0af7fe96,
    657656        0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0x007fffff,
    658         0x001fffff, 0x3fffffff, 0x3fffffff},
    659        34816};
     657        0x001fffff, 0x3fffffff, 0x3fffffff}}
     658;
    660659    const UnicodeSet lt_Set
    661660      {{{Empty, 14}, {Mixed, 2}, {Empty, 236}, {Mixed, 4}, {Empty, 34560}},
    662661       {0x00000920, 0x00040000, 0xff00ff00, 0x1000ff00, 0x00001000,
    663         0x10000000},
    664        34816};
     662        0x10000000}}
     663;
    665664    const UnicodeSet lu_Set
    666665      {{{Empty, 2}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 1},
     
    691690        0xf0000003, 0x003fffff, 0xffff0000, 0x000003ff, 0xffffff00,
    692691        0x00000001, 0x07fffffc, 0xf0000000, 0x001fffff, 0xffc00000,
    693         0x00007fff, 0xffff0000, 0x000001ff, 0x00000400},
    694        34816};
     692        0x00007fff, 0xffff0000, 0x000001ff, 0x00000400}}
     693;
    695694    const UnicodeSet m_Set
    696695      {{{Empty, 24}, {Full, 3}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
     
    757756        0x00fff800, 0x001f0000, 0x007f0000, 0xfffe0000, 0x7fffffff,
    758757        0x00078000, 0x60000000, 0xf807e3e0, 0x00000fe7, 0x00003c00,
    759         0x0000001c, 0x007f0000, 0x0000ffff},
    760        34816};
     758        0x0000001c, 0x007f0000, 0x0000ffff}}
     759;
    761760    const UnicodeSet mc_Set
    762761      {{{Empty, 72}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 1},
     
    795794        0x00000001, 0x002c7000, 0x00000007, 0x0000000c, 0xc0000000,
    796795        0x0080399e, 0x0000000c, 0x7a070000, 0x00000002, 0x4f038000,
    797         0x58070000, 0x0040d000, 0xfffe0000, 0x7fffffff, 0x0007e060},
    798        34816};
     796        0x58070000, 0x0040d000, 0xfffe0000, 0x7fffffff, 0x0007e060}}
     797;
    799798    const UnicodeSet me_Set
    800799      {{{Empty, 36}, {Mixed, 1}, {Empty, 176}, {Mixed, 1}, {Empty, 48},
    801800        {Mixed, 2}, {Empty, 1067}, {Mixed, 1}, {Empty, 33484}},
    802        {0x00000300, 0x40000000, 0xe0000000, 0x0000001d, 0x00070000},
    803        34816};
     801       {0x00000300, 0x40000000, 0xe0000000, 0x0000001d, 0x00070000}}
     802;
    804803    const UnicodeSet mn_Set
    805804      {{{Empty, 24}, {Full, 3}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
     
    865864        0x00bf2800, 0x001f0000, 0x007f0000, 0x00078000, 0x60000000,
    866865        0xf8000380, 0x00000fe7, 0x00003c00, 0x0000001c, 0x007f0000,
    867         0x0000ffff},
    868        34816};
     866        0x0000ffff}}
     867;
    869868    const UnicodeSet n_Set
    870869      {{{Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 45},
     
    920919        0x03ff0000, 0x000003ff, 0x0007ffff, 0x00007fff, 0x000003ff,
    921920        0xfbff0000, 0x00000003, 0x0003ffff, 0xffffc000, 0x0000ff80,
    922         0x00001fff},
    923        34816};
     921        0x00001fff}}
     922;
    924923    const UnicodeSet nd_Set
    925924      {{{Empty, 1}, {Mixed, 1}, {Empty, 49}, {Mixed, 1}, {Empty, 3},
     
    951950        0x000003ff, 0x0000ffc0, 0x03ff0000, 0xffc00000, 0x03ff0000,
    952951        0x03ff0000, 0x03ff0000, 0x03ff0000, 0x000003ff, 0x000003ff,
    953         0x000003ff, 0x03ff0000, 0xffffc000},
    954        34816};
     952        0x000003ff, 0x03ff0000, 0xffffc000}}
     953;
    955954    const UnicodeSet nl_Set
    956955      {{{Empty, 183}, {Mixed, 1}, {Empty, 83}, {Full, 1}, {Mixed, 1},
     
    959958        {Mixed, 1}, {Empty, 257}, {Full, 3}, {Mixed, 1}, {Empty, 32476}},
    960959       {0x0001c000, 0x000001e7, 0x00000080, 0x070003fe, 0x0000ffc0,
    961         0x001fffff, 0x00000402, 0x003e0000, 0x00007fff},
    962        34816};
     960        0x001fffff, 0x00000402, 0x003e0000, 0x00007fff}}
     961;
    963962    const UnicodeSet no_Set
    964963      {{{Empty, 5}, {Mixed, 1}, {Empty, 73}, {Mixed, 1}, {Empty, 11},
     
    989988        0xff000000, 0x0000fe00, 0x7fffffff, 0xfffc0000, 0x0000003f,
    990989        0x001ffffe, 0x0007fc00, 0xf8000000, 0x00000003, 0x0003ffff,
    991         0x0000ff80, 0x00001fff},
    992        34816};
     990        0x0000ff80, 0x00001fff}}
     991;
    993992    const UnicodeSet p_Set
    994993      {{{Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 21},
     
    10491048        0x00300000, 0x000021e0, 0x3f000000, 0x00000040, 0x000003fe,
    10501049        0x0000000e, 0x001f0000, 0x0000c000, 0x00200000, 0x0f800000,
    1051         0x00000010, 0x80000000},
    1052        34816};
     1050        0x00000010, 0x80000000}}
     1051;
    10531052    const UnicodeSet pc_Set
    10541053      {{{Empty, 2}, {Mixed, 1}, {Empty, 254}, {Mixed, 2}, {Empty, 1774},
    10551054        {Mixed, 2}, {Empty, 6}, {Mixed, 1}, {Empty, 32774}},
    10561055       {0x80000000, 0x80000000, 0x00100001, 0x00180000, 0x0000e000,
    1057         0x80000000},
    1058        34816};
     1056        0x80000000}}
     1057;
    10591058    const UnicodeSet pd_Set
    10601059      {{{Empty, 1}, {Mixed, 1}, {Empty, 42}, {Mixed, 2}, {Empty, 114},
     
    10661065        0x003f0000, 0x04800000, 0x0c000000, 0x00000001, 0x10000000,
    10671066        0x00010000, 0x00000001, 0x00060000, 0x01000000, 0x00000008,
    1068         0x00002000},
    1069        34816};
     1067        0x00002000}}
     1068;
    10701069    const UnicodeSet pe_Set
    10711070      {{{Empty, 1}, {Mixed, 3}, {Empty, 117}, {Mixed, 1}, {Empty, 58},
     
    10801079        0x20000000, 0x000002a8, 0xcaa2aa00, 0x40000000, 0x01000000,
    10811080        0x55400000, 0x54000115, 0x00000200, 0x20000000, 0x20000000,
    1082         0x00000009},
    1083        34816};
     1081        0x00000009}}
     1082;
    10841083    const UnicodeSet pf_Set
    10851084      {{{Empty, 5}, {Mixed, 1}, {Empty, 250}, {Mixed, 2}, {Empty, 110},
    10861085        {Mixed, 2}, {Empty, 34446}},
    1087        {0x08000000, 0x22000000, 0x04000000, 0x20002428, 0x00000002},
    1088        34816};
     1086       {0x08000000, 0x22000000, 0x04000000, 0x20002428, 0x00000002}}
     1087;
    10891088    const UnicodeSet pi_Set
    10901089      {{{Empty, 5}, {Mixed, 1}, {Empty, 250}, {Mixed, 2}, {Empty, 110},
    10911090        {Mixed, 2}, {Empty, 34446}},
    1092        {0x00000800, 0x99000000, 0x02000000, 0x10001214, 0x00000001},
    1093        34816};
     1091       {0x00000800, 0x99000000, 0x02000000, 0x10001214, 0x00000001}}
     1092;
    10941093    const UnicodeSet po_Set
    10951094      {{{Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 21},
     
    11431142        0xd8000000, 0x00000003, 0x0000000f, 0x00300000, 0x000021e0,
    11441143        0x3f000000, 0x00000040, 0x000003fe, 0x0000000e, 0x001f0000,
    1145         0x0000c000, 0x00200000, 0x0f800000, 0x00000010, 0x80000000},
    1146        34816};
     1144        0x0000c000, 0x00200000, 0x0f800000, 0x00000010, 0x80000000}}
     1145;
    11471146    const UnicodeSet ps_Set
    11481147      {{{Empty, 1}, {Mixed, 3}, {Empty, 117}, {Mixed, 1}, {Empty, 58},
     
    11581157        0x05000000, 0x10000000, 0x00000154, 0x00000004, 0x25515500,
    11591158        0x80000000, 0x00800000, 0xaaa00000, 0x2a00008a, 0x00000100,
    1160         0x08000000, 0x88000000, 0x00000004},
    1161        34816};
     1159        0x08000000, 0x88000000, 0x00000004}}
     1160;
    11621161    const UnicodeSet s_Set
    11631162      {{{Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 14},
     
    12291228        0xfff07fff, 0x00ffffff, 0x7fffffff, 0xffff07ff, 0xfbffffff,
    12301229        0xffffffef, 0xffffffe7, 0x0000ffff, 0x000f1fff, 0x000fffff,
    1231         0x001fffff, 0xffff0fff, 0x03ff00ff, 0xffff00ff, 0x00003fff},
    1232        34816};
     1230        0x001fffff, 0xffff0fff, 0x03ff00ff, 0xffff00ff, 0x00003fff}}
     1231;
    12331232    const UnicodeSet sc_Set
    12341233      {{{Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 38},
     
    12411240       {0x00000010, 0x0000003c, 0x00008000, 0x00000800, 0x080c0000,
    12421241        0x00020000, 0x02000000, 0x80000000, 0x08000000, 0x3fffffff,
    1243         0x01000000, 0x10000000, 0x00000200, 0x00000010, 0x00000063},
    1244        34816};
     1242        0x01000000, 0x10000000, 0x00000200, 0x00000010, 0x00000063}}
     1243;
    12451244    const UnicodeSet sk_Set
    12461245      {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 16},
     
    12521251        0x00200000, 0x00000030, 0xa0000000, 0xe000e003, 0x6000e000,
    12531252        0x18000000, 0x007fffff, 0x00000003, 0x00000600, 0x08000000,
    1254         0xfffc0000, 0x00000003, 0x40000000, 0x00000001, 0x00000008},
    1255        34816};
     1253        0xfffc0000, 0x00000003, 0x40000000, 0x00000001, 0x00000008}}
     1254;
    12561255    const UnicodeSet sm_Set
    12571256      {{{Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
     
    12751274        0x70000800, 0x50000000, 0x00001e04, 0x08000002, 0x08000000,
    12761275        0x00200000, 0x00200000, 0x00008000, 0x00008000, 0x00000200,
    1277         0x00000200, 0x00000008, 0x00030000},
    1278        34816};
     1276        0x00000200, 0x00000008, 0x00030000}}
     1277;
    12791278    const UnicodeSet so_Set
    12801279      {{{Empty, 5}, {Mixed, 1}, {Empty, 30}, {Mixed, 1}, {Empty, 7},
     
    13331332        0xfbffffff, 0xffffffef, 0xffffffe7, 0x0000ffff, 0x000f1fff,
    13341333        0x000fffff, 0x001fffff, 0xffff0fff, 0x03ff00ff, 0xffff00ff,
    1335         0x00003fff},
    1336        34816};
     1334        0x00003fff}}
     1335;
    13371336    const UnicodeSet z_Set
    13381337      {{{Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 174},
     
    13401339        {Empty, 34431}},
    13411340       {0x00000001, 0x00000001, 0x00000001, 0x000007ff, 0x00008300,
    1342         0x80000000, 0x00000001},
    1343        34816};
     1341        0x80000000, 0x00000001}}
     1342;
    13441343    const UnicodeSet zl_Set
    13451344      {{{Empty, 257}, {Mixed, 1}, {Empty, 34558}},
    1346        {0x00000100},
    1347        34816};
     1345       {0x00000100}}
     1346;
    13481347    const UnicodeSet zp_Set
    13491348      {{{Empty, 257}, {Mixed, 1}, {Empty, 34558}},
    1350        {0x00000200},
    1351        34816};
     1349       {0x00000200}}
     1350;
    13521351    const UnicodeSet zs_Set
    13531352      {{{Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 174},
     
    13551354        {Empty, 34431}},
    13561355       {0x00000001, 0x00000001, 0x00000001, 0x000007ff, 0x00008000,
    1357         0x80000000, 0x00000001},
    1358        34816};
    1359     EnumeratedPropertyObject property_object
     1356        0x80000000, 0x00000001}}
     1357;
     1358    static EnumeratedPropertyObject property_object
    13601359      {gc,
    13611360       GC_ns::enum_names,
  • icGREP/icgrep-devel/icgrep/UCD/EastAsianWidth.h

    r4388 r4618  
    99 */
    1010
    11 #include <vector>
     11#include "PropertyObjects.h"
     12#include "PropertyValueAliases.h"
    1213#include "unicode_set.h"
    13 #include "PropertyAliases.h"
    14 #include "PropertyValueAliases.h"
    1514
    1615namespace UCD {
     
    4039        0xffffff0b, 0x20000000, 0x00800000, 0xffc00000, 0x03e00000,
    4140        0x0000ff00, 0x0000ffff, 0x20000000, 0xffff07ff, 0xffff3fff,
    42         0xffff03ff, 0x07ffffff, 0x0000ffff, 0x3fffffff, 0x3fffffff},
    43        34816};
     41        0xffff03ff, 0x07ffffff, 0x0000ffff, 0x3fffffff, 0x3fffffff}}
     42;
    4443    const UnicodeSet f_Set
    4544      {{{Empty, 384}, {Mixed, 1}, {Empty, 1655}, {Mixed, 1}, {Full, 2},
    4645        {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 32768}},
    47        {0x00000001, 0xfffffffe, 0x00000001, 0x0000007f},
    48        34816};
     46       {0x00000001, 0xfffffffe, 0x00000001, 0x0000007f}}
     47;
    4948    const UnicodeSet h_Set
    5049      {{{Empty, 261}, {Mixed, 1}, {Empty, 1781}, {Mixed, 1}, {Full, 1},
    5150        {Mixed, 3}, {Empty, 32768}},
    52        {0x00000200, 0xfffffffe, 0x7fffffff, 0x1cfcfcfc, 0x00007f00},
    53        34816};
     51       {0x00000200, 0xfffffffe, 0x7fffffff, 0x1cfcfcfc, 0x00007f00}}
     52;
    5453    const UnicodeSet n_Set
    5554      {{{Full, 1}, {Empty, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 7}, {Full, 2},
     
    9291        0xfffffffc, 0x0000f800, 0x0000c000, 0x0000fc00, 0xf8000000,
    9392        0x0000fff8, 0xf8000000, 0xfffcfe00, 0xc0000000, 0xc0000000,
    94         0xffff0000, 0xc0000000, 0xc0000000},
    95        34816};
     93        0xffff0000, 0xc0000000, 0xc0000000}}
     94;
    9695    const UnicodeSet na_Set
    9796      {{{Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
    9897        {Empty, 313}, {Mixed, 1}, {Empty, 12}, {Mixed, 1}, {Empty, 34483}},
    99        {0x7fffffff, 0x0000906c, 0x00003fc0, 0x00000060},
    100        34816};
     98       {0x7fffffff, 0x0000906c, 0x00003fc0, 0x00000060}}
     99;
    101100    const UnicodeSet w_Set
    102101      {{{Empty, 136}, {Full, 3}, {Empty, 142}, {Mixed, 1}, {Empty, 90},
     
    115114        0x0000000f, 0x03ff0000, 0xffff0000, 0xfff7ffff, 0x00000f7f,
    116115        0x00000003, 0xffff0007, 0x07ffffff, 0x000301ff, 0x3fffffff,
    117         0x3fffffff},
    118        34816};
    119     EnumeratedPropertyObject property_object
     116        0x3fffffff}}
     117;
     118    static EnumeratedPropertyObject property_object
    120119      {ea,
    121120       EA_ns::enum_names,
  • icGREP/icgrep-devel/icgrep/UCD/HangulSyllableType.h

    r4388 r4618  
    99 */
    1010
    11 #include <vector>
     11#include "PropertyObjects.h"
     12#include "PropertyValueAliases.h"
    1213#include "unicode_set.h"
    13 #include "PropertyAliases.h"
    14 #include "PropertyValueAliases.h"
    1514
    1615namespace UCD {
     
    1817    const UnicodeSet l_Set
    1918      {{{Empty, 136}, {Full, 3}, {Empty, 1216}, {Mixed, 1}, {Empty, 33460}},
    20        {0x1fffffff},
    21        34816};
     19       {0x1fffffff}}
     20;
    2221    const UnicodeSet lv_Set
    2322      {{{Empty, 1376}, {Mixed, 349}, {Empty, 33091}},
     
    9190        0x00000010, 0x10000001, 0x01000000, 0x00100000, 0x00010000,
    9291        0x00001000, 0x00000100, 0x00000010, 0x10000001, 0x01000000,
    93         0x00100000, 0x00010000, 0x00001000, 0x00000100},
    94        34816};
     92        0x00100000, 0x00010000, 0x00001000, 0x00000100}}
     93;
    9594    const UnicodeSet lvt_Set
    9695      {{{Empty, 1376}, {Mixed, 350}, {Empty, 33090}},
     
    164163        0xffffffef, 0xeffffffe, 0xfeffffff, 0xffefffff, 0xfffeffff,
    165164        0xffffefff, 0xfffffeff, 0xffffffef, 0xeffffffe, 0xfeffffff,
    166         0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff, 0x0000000f},
    167        34816};
     165        0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff, 0x0000000f}}
     166;
    168167    const UnicodeSet na_Set
    169168      {{{Full, 136}, {Empty, 8}, {Full, 1211}, {Mixed, 1}, {Full, 20},
    170169        {Empty, 349}, {Mixed, 3}, {Full, 33088}},
    171        {0xe0000000, 0x0000fff0, 0x00000780, 0xf0000000},
    172        34816};
     170       {0xe0000000, 0x0000fff0, 0x00000780, 0xf0000000}}
     171;
    173172    const UnicodeSet t_Set
    174173      {{{Empty, 141}, {Mixed, 1}, {Full, 2}, {Empty, 1582}, {Mixed, 2},
    175174        {Empty, 33088}},
    176        {0xffffff00, 0xfffff800, 0x0fffffff},
    177        34816};
     175       {0xffffff00, 0xfffff800, 0x0fffffff}}
     176;
    178177    const UnicodeSet v_Set
    179178      {{{Empty, 139}, {Full, 2}, {Mixed, 1}, {Empty, 1583}, {Mixed, 2},
    180179        {Empty, 33089}},
    181        {0x000000ff, 0xffff0000, 0x0000007f},
    182        34816};
    183     EnumeratedPropertyObject property_object
     180       {0x000000ff, 0xffff0000, 0x0000007f}}
     181;
     182    static EnumeratedPropertyObject property_object
    184183      {hst,
    185184       HST_ns::enum_names,
  • icGREP/icgrep-devel/icgrep/UCD/LineBreak.h

    r4388 r4618  
    99 */
    1010
    11 #include <vector>
     11#include "PropertyObjects.h"
     12#include "PropertyValueAliases.h"
    1213#include "unicode_set.h"
    13 #include "PropertyAliases.h"
    14 #include "PropertyValueAliases.h"
    1514
    1615namespace UCD {
     
    3332        0x0000b6bb, 0xc0000000, 0x6ce41e00, 0x1841fb08, 0x00800000,
    3433        0xffc00000, 0x000fffff, 0x03e00000, 0x0000ff00, 0x20000000,
    35         0xffff1fff, 0xffff3fff, 0xffff03ff, 0x07ffffff},
    36        34816};
     34        0xffff1fff, 0xffff3fff, 0xffff03ff, 0x07ffffff}}
     35;
    3736    const UnicodeSet al_Set
    3837      {{{Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Full, 14},
     
    172171        0xff80007f, 0xfffc001f, 0x000003ff, 0x0ff00000, 0x03f00000,
    173172        0xffff0000, 0xf03fffff, 0x000fffff, 0x001fffff, 0xffff0fff,
    174         0x03ff00ff, 0xffff00ff, 0x00003fff},
    175        34816};
     173        0x03ff00ff, 0xffff00ff, 0x00003fff}}
     174;
    176175    const UnicodeSet b2_Set
    177176      {{{Empty, 256}, {Mixed, 1}, {Empty, 112}, {Mixed, 1}, {Empty, 34446}},
    178        {0x00100000, 0x0c000000},
    179        34816};
     177       {0x00100000, 0x0c000000}}
     178;
    180179    const UnicodeSet ba_Set
    181180      {{{Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
     
    213212        0xfe000000, 0x00000180, 0xc0000000, 0x00000003, 0x0000000f,
    214213        0x00000160, 0x1b000000, 0x0000020c, 0x00000006, 0x001f0000,
    215         0x0000c000, 0x00200000, 0x03800000, 0x00000010, 0x80000000},
    216        34816};
     214        0x0000c000, 0x00200000, 0x03800000, 0x00000010, 0x80000000}}
     215;
    217216    const UnicodeSet bb_Set
    218217      {{{Empty, 5}, {Mixed, 1}, {Empty, 16}, {Mixed, 1}, {Empty, 97},
     
    221220        {Mixed, 1}, {Empty, 34}, {Mixed, 1}, {Empty, 32593}},
    222221       {0x00100000, 0x80001100, 0x000006de, 0x000b0000, 0x00000040,
    223         0x20000000, 0x00300000, 0x00200000, 0x00000002},
    224        34816};
     222        0x20000000, 0x00300000, 0x00200000, 0x00000002}}
     223;
    225224    const UnicodeSet bk_Set
    226225      {{{Mixed, 1}, {Empty, 256}, {Mixed, 1}, {Empty, 34558}},
    227        {0x00001800, 0x00000300},
    228        34816};
     226       {0x00001800, 0x00000300}}
     227;
    229228    const UnicodeSet cb_Set
    230229      {{{Empty, 2047}, {Mixed, 1}, {Empty, 32768}},
    231        {0x10000000},
    232        34816};
     230       {0x10000000}}
     231;
    233232    const UnicodeSet cj_Set
    234233      {{{Empty, 386}, {Mixed, 6}, {Empty, 7}, {Mixed, 1}, {Empty, 1643},
    235234        {Mixed, 1}, {Empty, 32772}},
    236235       {0x000002aa, 0x00000008, 0x006040a8, 0x000002aa, 0x00000008,
    237         0x106040a8, 0xffff0000, 0x0001ff80},
    238        34816};
     236        0x106040a8, 0xffff0000, 0x0001ff80}}
     237;
    239238    const UnicodeSet cl_Set
    240239      {{{Empty, 3}, {Mixed, 1}, {Empty, 117}, {Mixed, 1}, {Empty, 58},
     
    250249        0xcaa2aa06, 0x40000000, 0x01060000, 0x55400000, 0x54050115,
    251250        0x00005200, 0x20000000, 0x20000000, 0x0000001b, 0x38000000,
    252         0x00000284, 0x0c000000},
    253        34816};
     251        0x00000284, 0x0c000000}}
     252;
    254253    const UnicodeSet cm_Set
    255254      {{{Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 19}, {Full, 2},
     
    316315        0x7fffffff, 0x00078000, 0x60000000, 0x0000000f, 0xffffe3e0,
    317316        0x00000fe7, 0x00003c00, 0x0000001c, 0x007f0000, 0x00000002,
    318         0x0000ffff},
    319        34816};
     317        0x0000ffff}}
     318;
    320319    const UnicodeSet cp_Set
    321320      {{{Empty, 1}, {Mixed, 2}, {Empty, 34813}},
    322        {0x00000200, 0x20000000},
    323        34816};
     321       {0x00000200, 0x20000000}}
     322;
    324323    const UnicodeSet cr_Set
    325324      {{{Mixed, 1}, {Empty, 34815}},
    326        {0x00002000},
    327        34816};
     325       {0x00002000}}
     326;
    328327    const UnicodeSet ex_Set
    329328      {{{Empty, 1}, {Mixed, 1}, {Empty, 44}, {Mixed, 1}, {Empty, 1},
     
    337336        0x0013e000, 0x0000030c, 0x00000030, 0x0000000c, 0x42000000,
    338337        0x00004000, 0x00004000, 0x00c00000, 0x00600000, 0x00c00000,
    339         0x80000002, 0x00000030},
    340        34816};
     338        0x80000002, 0x00000030}}
     339;
    341340    const UnicodeSet gl_Set
    342341      {{{Empty, 5}, {Mixed, 1}, {Empty, 20}, {Mixed, 2}, {Empty, 92},
     
    344343        {Empty, 63}, {Mixed, 2}, {Empty, 34558}},
    345344       {0x00000001, 0xf0008000, 0x00000007, 0x00041100, 0x06000000,
    346         0x00004000, 0x00020080, 0x00008000},
    347        34816};
     345        0x00004000, 0x00020080, 0x00008000}}
     346;
    348347    const UnicodeSet h2_Set
    349348      {{{Empty, 1376}, {Mixed, 349}, {Empty, 33091}},
     
    417416        0x00000010, 0x10000001, 0x01000000, 0x00100000, 0x00010000,
    418417        0x00001000, 0x00000100, 0x00000010, 0x10000001, 0x01000000,
    419         0x00100000, 0x00010000, 0x00001000, 0x00000100},
    420        34816};
     418        0x00100000, 0x00010000, 0x00001000, 0x00000100}}
     419;
    421420    const UnicodeSet h3_Set
    422421      {{{Empty, 1376}, {Mixed, 350}, {Empty, 33090}},
     
    490489        0xffffffef, 0xeffffffe, 0xfeffffff, 0xffefffff, 0xfffeffff,
    491490        0xffffefff, 0xfffffeff, 0xffffffef, 0xeffffffe, 0xfeffffff,
    492         0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff, 0x0000000f},
    493        34816};
     491        0xffefffff, 0xfffeffff, 0xffffefff, 0xfffffeff, 0x0000000f}}
     492;
    494493    const UnicodeSet hl_Set
    495494      {{{Empty, 46}, {Mixed, 2}, {Empty, 1960}, {Mixed, 3}, {Empty, 32805}},
    496        {0xffff0000, 0x000707ff, 0xa0000000, 0x5f7ffdff, 0x0000ffdb},
    497        34816};
     495       {0xffff0000, 0x000707ff, 0xa0000000, 0x5f7ffdff, 0x0000ffdb}}
     496;
    498497    const UnicodeSet hy_Set
    499498      {{{Empty, 1}, {Mixed, 1}, {Empty, 34814}},
    500        {0x00002000},
    501        34816};
     499       {0x00002000}}
     500;
    502501    const UnicodeSet id_Set
    503502      {{{Empty, 280}, {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 16},
     
    528527        0x7fffffff, 0x007fff80, 0x0003ffe0, 0xffff0400, 0xfbffffff,
    529528        0xffffffef, 0xf00fffff, 0xfc0fffff, 0x0000ffe7, 0x0000ffff,
    530         0x000f1fff, 0x3fffffff, 0x3fffffff},
    531        34816};
     529        0x000f1fff, 0x3fffffff, 0x3fffffff}}
     530;
    532531    const UnicodeSet in_Set
    533532      {{{Empty, 257}, {Mixed, 1}, {Empty, 1774}, {Mixed, 1}, {Empty, 102},
    534533        {Mixed, 1}, {Empty, 32680}},
    535        {0x00000070, 0x02000000, 0x00400000},
    536        34816};
     534       {0x00000070, 0x02000000, 0x00400000}}
     535;
    537536    const UnicodeSet is_Set
    538537      {{{Empty, 1}, {Mixed, 1}, {Empty, 25}, {Mixed, 1}, {Empty, 16},
     
    540539        {Empty, 194}, {Mixed, 1}, {Empty, 1773}, {Mixed, 1}, {Empty, 32783}},
    541540       {0x0c005000, 0x40000000, 0x00000200, 0x00003000, 0x01000000,
    542         0x00000010, 0x00190000},
    543        34816};
     541        0x00000010, 0x00190000}}
     542;
    544543    const UnicodeSet jl_Set
    545544      {{{Empty, 136}, {Full, 3}, {Empty, 1216}, {Mixed, 1}, {Empty, 33460}},
    546        {0x1fffffff},
    547        34816};
     545       {0x1fffffff}}
     546;
    548547    const UnicodeSet jt_Set
    549548      {{{Empty, 141}, {Mixed, 1}, {Full, 2}, {Empty, 1582}, {Mixed, 2},
    550549        {Empty, 33088}},
    551        {0xffffff00, 0xfffff800, 0x0fffffff},
    552        34816};
     550       {0xffffff00, 0xfffff800, 0x0fffffff}}
     551;
    553552    const UnicodeSet jv_Set
    554553      {{{Empty, 139}, {Full, 2}, {Mixed, 1}, {Empty, 1583}, {Mixed, 2},
    555554        {Empty, 33089}},
    556        {0x000000ff, 0xffff0000, 0x0000007f},
    557        34816};
     555       {0x000000ff, 0xffff0000, 0x0000007f}}
     556;
    558557    const UnicodeSet lf_Set
    559558      {{{Mixed, 1}, {Empty, 34815}},
    560        {0x00000400},
    561        34816};
     559       {0x00000400}}
     560;
    562561    const UnicodeSet nl_Set
    563562      {{{Empty, 4}, {Mixed, 1}, {Empty, 34811}},
    564        {0x00000020},
    565        34816};
     563       {0x00000020}}
     564;
    566565    const UnicodeSet ns_Set
    567566      {{{Empty, 190}, {Mixed, 1}, {Empty, 66}, {Mixed, 2}, {Empty, 125},
     
    572571       {0x00400000, 0x30000000, 0x00000380, 0x10000020, 0x18000000,
    573572        0x78000000, 0x00000001, 0x68000000, 0x00200000, 0x00300000,
    574         0x0c000000, 0x00000020, 0xc0000000, 0x0e000000},
    575        34816};
     573        0x0c000000, 0x00000020, 0xc0000000, 0x0e000000}}
     574;
    576575    const UnicodeSet nu_Set
    577576      {{{Empty, 1}, {Mixed, 1}, {Empty, 49}, {Mixed, 1}, {Empty, 3},
     
    603602        0x0000ffc0, 0x03ff0000, 0xffc00000, 0x03ff0000, 0x03ff0000,
    604603        0x03ff0000, 0x03ff0000, 0x000003ff, 0x000003ff, 0x000003ff,
    605         0x03ff0000, 0xffffc000},
    606        34816};
     604        0x03ff0000, 0xffffc000}}
     605;
    607606    const UnicodeSet op_Set
    608607      {{{Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 115},
     
    620619        0x00000004, 0x25515500, 0x80000000, 0x00800000, 0xaaa00000,
    621620        0x2a00008a, 0x00000100, 0x08000000, 0x88000000, 0x00000004,
    622         0x07000000, 0x00000140, 0x02000000},
    623        34816};
     621        0x07000000, 0x00000140, 0x02000000}}
     622;
    624623    const UnicodeSet po_Set
    625624      {{{Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 42},
     
    631630       {0x00000020, 0x00010004, 0x00000e00, 0x00000400, 0x020c0000,
    632631        0x02000000, 0x00ff0000, 0x08400080, 0x00000208, 0x01000000,
    633         0x10000000, 0x00000400, 0x00000020, 0x00000001},
    634        34816};
     632        0x10000000, 0x00000400, 0x00000020, 0x00000001}}
     633;
    635634    const UnicodeSet pr_Set
    636635      {{{Empty, 1}, {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 38},
     
    643642        0x00020000, 0x02000000, 0x80000000, 0x08000000, 0xf7bfff7f,
    644643        0x0000ffff, 0x00400000, 0x000c0000, 0x00000200, 0x00000010,
    645         0x00000062},
    646        34816};
     644        0x00000062}}
     645;
    647646    const UnicodeSet qu_Set
    648647      {{{Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 250},
     
    650649        {Empty, 3649}, {Mixed, 1}, {Empty, 30796}},
    651650       {0x00000084, 0x08000800, 0xbb000000, 0x06000000, 0xf8000000,
    652         0x00000001, 0x30003fff, 0x00000003, 0x01c00000},
    653        34816};
     651        0x00000001, 0x30003fff, 0x00000003, 0x01c00000}}
     652;
    654653    const UnicodeSet ri_Set
    655654      {{{Empty, 3983}, {Mixed, 1}, {Empty, 30832}},
    656        {0xffffffc0},
    657        34816};
     655       {0xffffffc0}}
     656;
    658657    const UnicodeSet sa_Set
    659658      {{{Empty, 112}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 9},
     
    666665        0xf0003f5f, 0xffff0000, 0xfc00ffff, 0x308fffff, 0xffff0000,
    667666        0x001f3fff, 0xffff0fff, 0xc40003ff, 0x7fffffff, 0x1fffffff,
    668         0x00003fff, 0x7c00ffff, 0xf8000007},
    669        34816};
     667        0x00003fff, 0x7c00ffff, 0xf8000007}}
     668;
    670669    const UnicodeSet sg_Set
    671670      {{{Empty, 1728}, {Full, 64}, {Empty, 33024}},
    672        {},
    673        34816};
     671       {}}
     672;
    674673    const UnicodeSet sp_Set
    675674      {{{Empty, 1}, {Mixed, 1}, {Empty, 34814}},
    676        {0x00000001},
    677        34816};
     675       {0x00000001}}
     676;
    678677    const UnicodeSet sy_Set
    679678      {{{Empty, 1}, {Mixed, 1}, {Empty, 34814}},
    680        {0x00008000},
    681        34816};
     679       {0x00008000}}
     680;
    682681    const UnicodeSet wj_Set
    683682      {{{Empty, 259}, {Mixed, 1}, {Empty, 1779}, {Mixed, 1}, {Empty, 32776}},
    684        {0x00000001, 0x80000000},
    685        34816};
     683       {0x00000001, 0x80000000}}
     684;
    686685    const UnicodeSet xx_Set
    687686      {{{Empty, 27}, {Mixed, 3}, {Empty, 11}, {Mixed, 4}, {Empty, 1},
     
    821820        0x00000018, 0xffff0000, 0xfff0e000, 0xfff00000, 0xffe00000,
    822821        0x0000f000, 0xfc00ff00, 0x0000ff00, 0xffffc000, 0xc0000000,
    823         0xc0000000, 0xfffffffd, 0xffff0000},
    824        34816};
     822        0xc0000000, 0xfffffffd, 0xffff0000}}
     823;
    825824    const UnicodeSet zw_Set
    826825      {{{Empty, 256}, {Mixed, 1}, {Empty, 34559}},
    827        {0x00000800},
    828        34816};
    829     EnumeratedPropertyObject property_object
     826       {0x00000800}}
     827;
     828    static EnumeratedPropertyObject property_object
    830829      {lb,
    831830       LB_ns::enum_names,
  • icGREP/icgrep-devel/icgrep/UCD/PropList.h

    r4388 r4618  
    99 */
    1010
     11#include "PropertyAliases.h"
     12#include "unicode_set.h"
    1113#include <vector>
    12 #include "unicode_set.h"
    13 #include "PropertyAliases.h"
    1414
    1515namespace UCD {
     
    1717    const UnicodeSet codepoint_set
    1818      {{{Empty, 1}, {Mixed, 3}, {Empty, 34812}},
    19        {0x03ff0000, 0x0000007e, 0x0000007e},
    20        34816};
    21     BinaryPropertyObject property_object{AHex, codepoint_set};
     19       {0x03ff0000, 0x0000007e, 0x0000007e}}
     20;
     21    static BinaryPropertyObject property_object{AHex, codepoint_set};
    2222  }
    2323  namespace BIDI_C_ns {
     
    2525      {{{Empty, 48}, {Mixed, 1}, {Empty, 207}, {Mixed, 2}, {Empty, 1},
    2626        {Mixed, 1}, {Empty, 34556}},
    27        {0x10000000, 0x0000c000, 0x00007c00, 0x000003c0},
    28        34816};
    29     BinaryPropertyObject property_object{Bidi_C, codepoint_set};
     27       {0x10000000, 0x0000c000, 0x00007c00, 0x000003c0}}
     28;
     29    static BinaryPropertyObject property_object{Bidi_C, codepoint_set};
    3030  }
    3131  namespace DASH_ns {
     
    3939        0x003f0000, 0x00080000, 0x08000000, 0x00000800, 0x00040000,
    4040        0x04800000, 0x0c000000, 0x00000001, 0x10000000, 0x00010000,
    41         0x00000001, 0x00060000, 0x01000000, 0x00000008, 0x00002000},
    42        34816};
    43     BinaryPropertyObject property_object{Dash, codepoint_set};
     41        0x00000001, 0x00060000, 0x01000000, 0x00000008, 0x00002000}}
     42;
     43    static BinaryPropertyObject property_object{Dash, codepoint_set};
    4444  }
    4545  namespace DEP_ns {
     
    5050        {Empty, 6140}},
    5151       {0x00000200, 0x00080000, 0x02800000, 0x00000018, 0x0000fc00,
    52         0x00000600, 0x00000002},
    53        34816};
    54     BinaryPropertyObject property_object{Dep, codepoint_set};
     52        0x00000600, 0x00000002}}
     53;
     54    static BinaryPropertyObject property_object{Dep, codepoint_set};
    5555  }
    5656  namespace DIA_ns {
     
    112112        0x10000000, 0x00002000, 0x001f1fc0, 0x0000000c, 0x80000000,
    113113        0x00000001, 0x80000000, 0x00c00000, 0x001f0000, 0xffff8000,
    114         0xf807e380, 0x00000fe7, 0x00003c00, 0x007f0000},
    115        34816};
    116     BinaryPropertyObject property_object{Dia, codepoint_set};
     114        0xf807e380, 0x00000fe7, 0x00003c00, 0x007f0000}}
     115;
     116    static BinaryPropertyObject property_object{Dia, codepoint_set};
    117117  }
    118118  namespace EXT_ns {
     
    133133        0x00200000, 0x00001000, 0x00008000, 0x00000040, 0x00010000,
    134134        0x20000000, 0x00180000, 0x00010000, 0x20000000, 0x000001c0,
    135         0x0000000c},
    136        34816};
    137     BinaryPropertyObject property_object{Ext, codepoint_set};
     135        0x0000000c}}
     136;
     137    static BinaryPropertyObject property_object{Ext, codepoint_set};
    138138  }
    139139  namespace HEX_ns {
     
    141141      {{{Empty, 1}, {Mixed, 3}, {Empty, 2036}, {Mixed, 3}, {Empty, 32773}},
    142142       {0x03ff0000, 0x0000007e, 0x0000007e, 0x03ff0000, 0x0000007e,
    143         0x0000007e},
    144        34816};
    145     BinaryPropertyObject property_object{Hex, codepoint_set};
     143        0x0000007e}}
     144;
     145    static BinaryPropertyObject property_object{Hex, codepoint_set};
    146146  }
    147147  namespace HYPHEN_ns {
     
    153153        {Empty, 32772}},
    154154       {0x00002000, 0x00002000, 0x00000400, 0x00000040, 0x00030000,
    155         0x00800000, 0x08000000, 0x00000008, 0x00002000, 0x00000020},
    156        34816};
    157     BinaryPropertyObject property_object{Hyphen, codepoint_set};
     155        0x00800000, 0x08000000, 0x00000008, 0x00002000, 0x00000020}}
     156;
     157    static BinaryPropertyObject property_object{Hyphen, codepoint_set};
    158158  }
    159159  namespace IDSB_ns {
    160160    const UnicodeSet codepoint_set
    161161      {{{Empty, 383}, {Mixed, 1}, {Empty, 34432}},
    162        {0x0ff30000},
    163        34816};
    164     BinaryPropertyObject property_object{IDSB, codepoint_set};
     162       {0x0ff30000}}
     163;
     164    static BinaryPropertyObject property_object{IDSB, codepoint_set};
    165165  }
    166166  namespace IDST_ns {
    167167    const UnicodeSet codepoint_set
    168168      {{{Empty, 383}, {Mixed, 1}, {Empty, 34432}},
    169        {0x000c0000},
    170        34816};
    171     BinaryPropertyObject property_object{IDST, codepoint_set};
     169       {0x000c0000}}
     170;
     171    static BinaryPropertyObject property_object{IDST, codepoint_set};
    172172  }
    173173  namespace IDEO_ns {
     
    179179        {Mixed, 1}, {Empty, 511}, {Full, 16}, {Mixed, 1}, {Empty, 28719}},
    180180       {0x000000c0, 0x070003fe, 0x003fffff, 0x00001fff, 0xffff3fff,
    181         0x03ffffff, 0x007fffff, 0x001fffff, 0x3fffffff, 0x3fffffff},
    182        34816};
    183     BinaryPropertyObject property_object{Ideo, codepoint_set};
     181        0x03ffffff, 0x007fffff, 0x001fffff, 0x3fffffff, 0x3fffffff}}
     182;
     183    static BinaryPropertyObject property_object{Ideo, codepoint_set};
    184184  }
    185185  namespace JOIN_C_ns {
    186186    const UnicodeSet codepoint_set
    187187      {{{Empty, 256}, {Mixed, 1}, {Empty, 34559}},
    188        {0x00003000},
    189        34816};
    190     BinaryPropertyObject property_object{Join_C, codepoint_set};
     188       {0x00003000}}
     189;
     190    static BinaryPropertyObject property_object{Join_C, codepoint_set};
    191191  }
    192192  namespace LOE_ns {
     
    194194      {{{Empty, 114}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 1246},
    195195        {Mixed, 1}, {Empty, 33450}},
    196        {0x0000001f, 0x0000001f, 0x1a600000},
    197        34816};
    198     BinaryPropertyObject property_object{LOE, codepoint_set};
     196       {0x0000001f, 0x0000001f, 0x1a600000}}
     197;
     198    static BinaryPropertyObject property_object{LOE, codepoint_set};
    199199  }
    200200  namespace NCHAR_ns {
     
    211211        0xc0000000, 0xc0000000, 0xc0000000, 0xc0000000, 0xc0000000,
    212212        0xc0000000, 0xc0000000, 0xc0000000, 0xc0000000, 0xc0000000,
    213         0xc0000000, 0xc0000000, 0xc0000000, 0xc0000000},
    214        34816};
    215     BinaryPropertyObject property_object{NChar, codepoint_set};
     213        0xc0000000, 0xc0000000, 0xc0000000, 0xc0000000}}
     214;
     215    static BinaryPropertyObject property_object{NChar, codepoint_set};
    216216  }
    217217  namespace OALPHA_ns {
     
    267267        0x7fff0000, 0x00000001, 0x003ff800, 0x007f0000, 0xfffe0000,
    268268        0x7fffffff, 0x40000000, 0xffff0000, 0xffff03ff, 0xffff03ff,
    269         0x000003ff},
    270        34816};
    271     BinaryPropertyObject property_object{OAlpha, codepoint_set};
     269        0x000003ff}}
     270;
     271    static BinaryPropertyObject property_object{OAlpha, codepoint_set};
    272272  }
    273273  namespace ODI_ns {
     
    279279        {Full, 112}, {Empty, 6016}},
    280280       {0x00008000, 0x80000000, 0x00000001, 0x00300000, 0x00000020,
    281         0x00000010, 0x00000001, 0x01ff0000, 0xfffffffd, 0xffff0000},
    282        34816};
    283     BinaryPropertyObject property_object{ODI, codepoint_set};
     281        0x00000010, 0x00000001, 0x01ff0000, 0xfffffffd, 0xffff0000}}
     282;
     283    static BinaryPropertyObject property_object{ODI, codepoint_set};
    284284  }
    285285  namespace OGR_EXT_ns {
     
    294294        0x00800000, 0x00600004, 0x40000000, 0x00800000, 0x80008000,
    295295        0x00003000, 0x0000c000, 0xc0000000, 0x40000000, 0x00800000,
    296         0x20010000, 0x00008000, 0x0007c020},
    297        34816};
    298     BinaryPropertyObject property_object{OGr_Ext, codepoint_set};
     296        0x20010000, 0x00008000, 0x0007c020}}
     297;
     298    static BinaryPropertyObject property_object{OGr_Ext, codepoint_set};
    299299  }
    300300  namespace OIDC_ns {
     
    302302      {{{Empty, 5}, {Mixed, 1}, {Empty, 22}, {Mixed, 1}, {Empty, 126},
    303303        {Mixed, 1}, {Empty, 50}, {Mixed, 1}, {Empty, 34609}},
    304        {0x00800000, 0x00000080, 0x0003fe00, 0x04000000},
    305        34816};
    306     BinaryPropertyObject property_object{OIDC, codepoint_set};
     304       {0x00800000, 0x00000080, 0x0003fe00, 0x04000000}}
     305;
     306    static BinaryPropertyObject property_object{OIDC, codepoint_set};
    307307  }
    308308  namespace OIDS_ns {
    309309    const UnicodeSet codepoint_set
    310310      {{{Empty, 264}, {Mixed, 2}, {Empty, 122}, {Mixed, 1}, {Empty, 34427}},
    311        {0x01000000, 0x00004000, 0x18000000},
    312        34816};
    313     BinaryPropertyObject property_object{OIDS, codepoint_set};
     311       {0x01000000, 0x00004000, 0x18000000}}
     312;
     313    static BinaryPropertyObject property_object{OIDS, codepoint_set};
    314314  }
    315315  namespace OLOWER_ns {
     
    324324        0x04000000, 0xfffff000, 0x010007ff, 0xf8000000, 0x80020000,
    325325        0x1fff0000, 0xffff0000, 0xffff0000, 0x000003ff, 0x30000000,
    326         0x30000000, 0x00010000, 0x03000000, 0xf0000000},
    327        34816};
    328     BinaryPropertyObject property_object{OLower, codepoint_set};
     326        0x30000000, 0x00010000, 0x03000000, 0xf0000000}}
     327;
     328    static BinaryPropertyObject property_object{OLower, codepoint_set};
    329329  }
    330330  namespace OMATH_ns {
     
    350350        0xffdfffff, 0xffff7fff, 0xffff7fff, 0xfffffdff, 0xfffffdff,
    351351        0xffffcff7, 0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796,
    352         0x0ffffbff, 0x0ffffbee},
    353        34816};
    354     BinaryPropertyObject property_object{OMath, codepoint_set};
     352        0x0ffffbff, 0x0ffffbee}}
     353;
     354    static BinaryPropertyObject property_object{OMath, codepoint_set};
    355355  }
    356356  namespace OUPPER_ns {
     
    359359        {Mixed, 4}, {Empty, 30835}},
    360360       {0x0000ffff, 0xffc00000, 0x0000ffff, 0xffff0000, 0xffff03ff,
    361         0xffff03ff, 0x000003ff},
    362        34816};
    363     BinaryPropertyObject property_object{OUpper, codepoint_set};
     361        0xffff03ff, 0x000003ff}}
     362;
     363    static BinaryPropertyObject property_object{OUpper, codepoint_set};
    364364  }
    365365  namespace PAT_SYN_ns {
     
    373373        0x00800000, 0xffff0000, 0x7fff00ff, 0x7feffffe, 0xffff0000,
    374374        0x003fffff, 0xfff00000, 0xffffff0e, 0x00010001, 0xc0000000,
    375         0x00000060},
    376        34816};
    377     BinaryPropertyObject property_object{Pat_Syn, codepoint_set};
     375        0x00000060}}
     376;
     377    static BinaryPropertyObject property_object{Pat_Syn, codepoint_set};
    378378  }
    379379  namespace PAT_WS_ns {
     
    381381      {{{Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 251}, {Mixed, 2},
    382382        {Empty, 34558}},
    383        {0x00003e00, 0x00000001, 0x00000020, 0x0000c000, 0x00000300},
    384        34816};
    385     BinaryPropertyObject property_object{Pat_WS, codepoint_set};
     383       {0x00003e00, 0x00000001, 0x00000020, 0x0000c000, 0x00000300}}
     384;
     385    static BinaryPropertyObject property_object{Pat_WS, codepoint_set};
    386386  }
    387387  namespace QMARK_ns {
     
    392392        {Mixed, 1}, {Empty, 32772}},
    393393       {0x00000084, 0x08000800, 0xff000000, 0x06000000, 0x00000004,
    394         0xe000f000, 0x0000001e, 0x00000084, 0x0000000c},
    395        34816};
    396     BinaryPropertyObject property_object{QMark, codepoint_set};
     394        0xe000f000, 0x0000001e, 0x00000084, 0x0000000c}}
     395;
     396    static BinaryPropertyObject property_object{QMark, codepoint_set};
    397397  }
    398398  namespace RADICAL_ns {
     
    400400      {{{Empty, 372}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 6},
    401401        {Mixed, 1}, {Empty, 34433}},
    402        {0xfbffffff, 0x000fffff, 0x003fffff},
    403        34816};
    404     BinaryPropertyObject property_object{Radical, codepoint_set};
     402       {0xfbffffff, 0x000fffff, 0x003fffff}}
     403;
     404    static BinaryPropertyObject property_object{Radical, codepoint_set};
    405405  }
    406406  namespace SD_ns {
     
    419419        0x10000000, 0x0000000c, 0x00c00000, 0x00000c00, 0xc0000000,
    420420        0x000c0000, 0x000000c0, 0x0c000000, 0x0000c000, 0x0000000c,
    421         0x00c00000, 0x00000c00, 0xc0000000, 0x000c0000},
    422        34816};
    423     BinaryPropertyObject property_object{SD, codepoint_set};
     421        0x00c00000, 0x00000c00, 0xc0000000, 0x000c0000}}
     422;
     423    static BinaryPropertyObject property_object{SD, codepoint_set};
    424424  }
    425425  namespace STERM_ns {
     
    453453        0x00000180, 0xc0000000, 0x00000003, 0x0000000e, 0x00002060,
    454454        0x1b000000, 0x0000020c, 0x00000006, 0x0000c000, 0x00200000,
    455         0x01800000, 0x00000010, 0x80000000},
    456        34816};
    457     BinaryPropertyObject property_object{STerm, codepoint_set};
     455        0x01800000, 0x00000010, 0x80000000}}
     456;
     457    static BinaryPropertyObject property_object{STerm, codepoint_set};
    458458  }
    459459  namespace TERM_ns {
     
    497497        0x00000003, 0x0000000e, 0x00002060, 0x1f000000, 0x0000023c,
    498498        0x00000006, 0x001f0000, 0x0000c000, 0x00200000, 0x03800000,
    499         0x00000010, 0x80000000},
    500        34816};
    501     BinaryPropertyObject property_object{Term, codepoint_set};
     499        0x00000010, 0x80000000}}
     500;
     501    static BinaryPropertyObject property_object{Term, codepoint_set};
    502502  }
    503503  namespace UIDEO_ns {
     
    508508        {Mixed, 1}, {Empty, 29247}},
    509509       {0x003fffff, 0x00001fff, 0x801ac000, 0x0000039a, 0x007fffff,
    510         0x001fffff, 0x3fffffff},
    511        34816};
    512     BinaryPropertyObject property_object{UIdeo, codepoint_set};
     510        0x001fffff, 0x3fffffff}}
     511;
     512    static BinaryPropertyObject property_object{UIdeo, codepoint_set};
    513513  }
    514514  namespace VS_ns {
     
    516516      {{{Empty, 192}, {Mixed, 1}, {Empty, 1839}, {Mixed, 1}, {Empty, 26647},
    517517        {Full, 7}, {Mixed, 1}, {Empty, 6128}},
    518        {0x00003800, 0x0000ffff, 0x0000ffff},
    519        34816};
    520     BinaryPropertyObject property_object{VS, codepoint_set};
     518       {0x00003800, 0x0000ffff, 0x0000ffff}}
     519;
     520    static BinaryPropertyObject property_object{VS, codepoint_set};
    521521  }
    522522  namespace WSPACE_ns {
     
    525525        {Empty, 75}, {Mixed, 3}, {Empty, 125}, {Mixed, 1}, {Empty, 34431}},
    526526       {0x00003e00, 0x00000001, 0x00000020, 0x00000001, 0x00000001,
    527         0x000007ff, 0x00008300, 0x80000000, 0x00000001},
    528        34816};
    529     BinaryPropertyObject property_object{WSpace, codepoint_set};
     527        0x000007ff, 0x00008300, 0x80000000, 0x00000001}}
     528;
     529    static BinaryPropertyObject property_object{WSpace, codepoint_set};
    530530  }
    531531}
  • icGREP/icgrep-devel/icgrep/UCD/PropertyObjectTable.h

    r4435 r4618  
    1111#include "PropertyObjects.h"
    1212#include "PropertyAliases.h"
     13#include <array>
    1314#include "Blocks.h"
    1415#include "Scripts.h"
     
    2324namespace UCD {
    2425
    25   PropertyObject* property_object_table[] = {
    26       new UnsupportedPropertyObject(cjkAccountingNumeric, PropertyObject::ClassTypeId::NumericProperty),
     26  const std::array<PropertyObject *, 117> property_object_table = {{
     27    new UnsupportedPropertyObject(cjkAccountingNumeric, PropertyObject::ClassTypeId::NumericProperty),
    2728    new UnsupportedPropertyObject(cjkOtherNumeric, PropertyObject::ClassTypeId::NumericProperty),
    2829    new UnsupportedPropertyObject(cjkPrimaryNumeric, PropertyObject::ClassTypeId::NumericProperty),
     
    140141    new UnsupportedPropertyObject(XO_NFD, PropertyObject::ClassTypeId::BinaryProperty),
    141142    new UnsupportedPropertyObject(XO_NFKC, PropertyObject::ClassTypeId::BinaryProperty),
    142     new UnsupportedPropertyObject(XO_NFKD, PropertyObject::ClassTypeId::BinaryProperty)  };
     143    new UnsupportedPropertyObject(XO_NFKD, PropertyObject::ClassTypeId::BinaryProperty)  }};
    143144}
    144145
  • icGREP/icgrep-devel/icgrep/UCD/PropertyObjects.h

    r4538 r4618  
    88 */
    99
     10#include "PropertyAliases.h"
     11#include "PropertyValueAliases.h"
     12#include "unicode_set.h"
    1013#include <string>
    1114#include <vector>
    12 #include <iostream>
    1315#include <unordered_map>
    14 #include <stdexcept>
    15 #include "unicode_set.h"
    16 #include "PropertyAliases.h"
    17 #include "PropertyValueAliases.h"
    18 
    19 std::string canonicalize_value_name(std::string prop_or_val) {
    20         std::locale loc;
    21         std::string s = "";
    22         for (unsigned int i = 0; i < prop_or_val.length(); ++i) {
    23                 char c = prop_or_val.at(i);
    24                 if ((c != '_') && (c != ' ') && (c != '-')) {
    25                         s += std::tolower(c, loc);
    26                 }
    27         }
    28         return s;
    29 }
    30 
    3116
    3217namespace UCD {
    33    
     18
     19    std::string canonicalize_value_name(const std::string prop_or_val);
     20
    3421        class PropertyObject {
    3522        public:
     
    4532                ClassTypeId the_kind;
    4633               
    47                 virtual UnicodeSet GetCodepointSet(std::string value_spec) = 0;
     34        virtual UnicodeSet GetCodepointSet(const std::string value_spec) = 0;
    4835        };
    4936       
     
    5845       
    5946                UnsupportedPropertyObject(property_t p, ClassTypeId k) : PropertyObject(p, k) {}
    60                 UnicodeSet GetCodepointSet(std::string value_spec);     
     47        UnicodeSet GetCodepointSet(const std::string value_spec);
    6148        };
    62        
    63         UnicodeSet UnsupportedPropertyObject::GetCodepointSet(std::string value_spec) {
    64                 throw std::runtime_error("Property " + UCD::property_full_name[the_property] + " unsupported.");
    65         }
    6649       
    6750        class EnumeratedPropertyObject : public PropertyObject {
     
    8063                                         const std::vector<UnicodeSet> sets) :
    8164                PropertyObject(p, ClassTypeId::EnumeratedProperty), property_value_enum_names(enum_names), property_value_full_names(names), property_value_aliases(aliases), aliases_initialized(false), property_value_sets(sets) {}
    82                 int GetPropertyValueEnumCode(std::string s);
    83                 UnicodeSet GetCodepointSet(std::string value_spec);     
     65        int GetPropertyValueEnumCode(const std::string s);
     66        UnicodeSet GetCodepointSet(const std::string value_spec);
    8467               
    8568        private:
     
    9073                std::vector<UnicodeSet> property_value_sets;                 
    9174        };
    92        
    93         UnicodeSet EnumeratedPropertyObject::GetCodepointSet(std::string value_spec) {
    94                 int property_enum_val = GetPropertyValueEnumCode(value_spec);
    95                 if (property_enum_val == -1) {
    96                         throw std::runtime_error("Enumerated Property " + UCD::property_full_name[the_property] +  ": unknown value: " + value_spec);
    97                 }
    98                 else {
    99                         //std::cout << "Enumerated Property: " << UCD::property_full_name[the_property] << ", value: " << property_value_full_names[property_enum_val] << "(" << property_enum_val << ").\n";
    100                         return property_value_sets[property_enum_val];
    101                 }
    102         }
    103        
    104         int EnumeratedPropertyObject::GetPropertyValueEnumCode(std::string s) {
    105                 // The canonical full names are not stored in the precomputed alias map,
    106                 // to save space in the executable.   Add them if the property is used.
    107                 if (!aliases_initialized) {
    108             for (auto v = 0; v < property_value_full_names.size(); v++) {
    109                 property_value_aliases.insert({canonicalize_value_name(property_value_full_names[v]), v});
    110             }
    111             for (auto v = 0; v < property_value_enum_names.size(); v++) {
    112                 property_value_aliases.insert({canonicalize_value_name(property_value_enum_names[v]), v});
    113             }
    114                         aliases_initialized = true;
    115                 }
    116                 auto valit = property_value_aliases.find(s);
    117                 if (valit == property_value_aliases.end()) return -1;
    118                 else return valit->second;
    119         }
    12075       
    12176        class BinaryPropertyObject : public PropertyObject {
     
    12984               
    13085                BinaryPropertyObject(UCD::property_t p, UnicodeSet s) : PropertyObject(p, ClassTypeId::BinaryProperty), the_codepoint_set(s) {}
    131                 UnicodeSet GetCodepointSet(std::string value_spec);     
     86        UnicodeSet GetCodepointSet(const std::string value_spec);
    13287    private:
    13388                UnicodeSet the_codepoint_set;       
    13489        };
    13590       
    136         UnicodeSet BinaryPropertyObject::GetCodepointSet(std::string value_spec) {
    137                 int property_enum_val = Binary_ns::Y; // default value
    138                 if (value_spec != "") {
    139                         auto valit = Binary_ns::aliases_only_map.find(value_spec);
    140                         if (valit == Binary_ns::aliases_only_map.end()) {
    141                                 throw std::runtime_error("Binary Property " + UCD::property_full_name[the_property] +  ": bad value: " + value_spec);
    142                         }
    143                         else property_enum_val = valit->second;
    144                         if (property_enum_val == Binary_ns::Y) return the_codepoint_set;
    145                         else return uset_complement(the_codepoint_set);
    146                 }
    147         else return the_codepoint_set;
    148         }
    14991}
    15092       
  • icGREP/icgrep-devel/icgrep/UCD/ScriptExtensions.h

    r4388 r4618  
    99 */
    1010
    11 #include <vector>
    12 #include "PropertyAliases.h"
     11#include "PropertyObjects.h"
    1312#include "PropertyValueAliases.h"
    1413#include "unicode_set.h"
     
    1817    const UnicodeSet aghb_Ext
    1918      {{{Empty, 2089}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 32724}},
    20        {0xffff0000, 0x0000800f},
    21        34816};
     19       {0xffff0000, 0x0000800f}}
     20;
    2221    const UnicodeSet arab_Ext
    2322      {{{Empty, 48}, {Mixed, 1}, {Full, 5}, {Mixed, 1}, {Full, 1},
     
    3231        0x000000ff, 0x3fff0000, 0xffdf0000, 0x1fffffff, 0x0fffffff,
    3332        0x7fffffff, 0xffffffef, 0x0af7fe96, 0xaa96ea84, 0x5ef7f796,
    34         0x0ffffbff, 0x0ffffbee, 0x00030000},
    35        34816};
     33        0x0ffffbff, 0x0ffffbee, 0x00030000}}
     34;
    3635    const UnicodeSet armi_Ext
    3736      {{{Empty, 2114}, {Mixed, 1}, {Empty, 32701}},
    38        {0xffbfffff},
    39        34816};
     37       {0xffbfffff}}
     38;
    4039    const UnicodeSet armn_Ext
    4140      {{{Empty, 41}, {Mixed, 4}, {Empty, 1963}, {Mixed, 1}, {Empty, 32807}},
    42        {0xfffe0000, 0xfe7fffff, 0xfffffffe, 0x0000e6ff, 0x00f80000},
    43        34816};
     41       {0xfffe0000, 0xfe7fffff, 0xfffffffe, 0x0000e6ff, 0x00f80000}}
     42;
    4443    const UnicodeSet avst_Ext
    4544      {{{Empty, 2136}, {Full, 1}, {Mixed, 1}, {Empty, 32678}},
    46        {0xfe3fffff},
    47        34816};
     45       {0xfe3fffff}}
     46;
    4847    const UnicodeSet bali_Ext
    4948      {{{Empty, 216}, {Full, 2}, {Mixed, 2}, {Empty, 34596}},
    50        {0xffff0fff, 0x1fffffff},
    51        34816};
     49       {0xffff0fff, 0x1fffffff}}
     50;
    5251    const UnicodeSet bamu_Ext
    5352      {{{Empty, 1333}, {Full, 2}, {Mixed, 1}, {Empty, 1544}, {Full, 17},
    5453        {Mixed, 1}, {Empty, 31918}},
    55        {0x00ffffff, 0x01ffffff},
    56        34816};
     54       {0x00ffffff, 0x01ffffff}}
     55;
    5756    const UnicodeSet bass_Ext
    5857      {{{Empty, 2902}, {Mixed, 2}, {Empty, 31912}},
    59        {0xffff0000, 0x003f3fff},
    60        34816};
     58       {0xffff0000, 0x003f3fff}}
     59;
    6160    const UnicodeSet batk_Ext
    6261      {{{Empty, 222}, {Full, 1}, {Mixed, 1}, {Empty, 34592}},
    63        {0xf00fffff},
    64        34816};
     62       {0xf00fffff}}
     63;
    6564    const UnicodeSet beng_Ext
    6665      {{{Empty, 75}, {Mixed, 5}, {Empty, 34736}},
    67        {0x00000030, 0xfff99fef, 0xf3c5fdff, 0xb080799f, 0x0fffffcf},
    68        34816};
     66       {0x00000030, 0xfff99fef, 0xf3c5fdff, 0xb080799f, 0x0fffffcf}}
     67;
    6968    const UnicodeSet bopo_Ext
    7069      {{{Empty, 23}, {Mixed, 1}, {Empty, 360}, {Mixed, 2}, {Empty, 5},
     
    7675        0x00003fff, 0x07ffffff, 0x0000000f, 0x0000000f, 0x0001ffff,
    7776        0x00000fff, 0xff000000, 0xf801ffff, 0x7fffffff, 0x00000060,
    78         0x0000003e},
    79        34816};
     77        0x0000003e}}
     78;
    8079    const UnicodeSet brah_Ext
    8180      {{{Empty, 2176}, {Full, 2}, {Mixed, 2}, {Empty, 32636}},
    82        {0xfffc3fff, 0x8000ffff},
    83        34816};
     81       {0xfffc3fff, 0x8000ffff}}
     82;
    8483    const UnicodeSet brai_Ext
    8584      {{{Empty, 320}, {Full, 8}, {Empty, 34488}},
    86        {},
    87        34816};
     85       {}}
     86;
    8887    const UnicodeSet bugi_Ext
    8988      {{{Empty, 208}, {Mixed, 1}, {Empty, 1149}, {Mixed, 1}, {Empty, 33457}},
    90        {0xcfffffff, 0x00008000},
    91        34816};
     89       {0xcfffffff, 0x00008000}}
     90;
    9291    const UnicodeSet buhd_Ext
    9392      {{{Empty, 185}, {Mixed, 2}, {Empty, 34629}},
    94        {0x00600000, 0x000fffff},
    95        34816};
     93       {0x00600000, 0x000fffff}}
     94;
    9695    const UnicodeSet cakm_Ext
    9796      {{{Empty, 79}, {Mixed, 1}, {Empty, 50}, {Mixed, 1}, {Empty, 2053},
    9897        {Full, 1}, {Mixed, 2}, {Empty, 32629}},
    99        {0x0000ffc0, 0x000003ff, 0xffdfffff, 0x0000000f},
    100        34816};
     98       {0x0000ffc0, 0x000003ff, 0xffdfffff, 0x0000000f}}
     99;
    101100    const UnicodeSet cans_Ext
    102101      {{{Empty, 160}, {Full, 20}, {Empty, 17}, {Mixed, 1}, {Full, 1},
    103102        {Mixed, 1}, {Empty, 34616}},
    104        {0xffff0000, 0x003fffff},
    105        34816};
     103       {0xffff0000, 0x003fffff}}
     104;
    106105    const UnicodeSet cari_Ext
    107106      {{{Empty, 2069}, {Full, 1}, {Mixed, 1}, {Empty, 32745}},
    108        {0x0001ffff},
    109        34816};
     107       {0x0001ffff}}
     108;
    110109    const UnicodeSet cham_Ext
    111110      {{{Empty, 1360}, {Full, 1}, {Mixed, 2}, {Empty, 33453}},
    112        {0x007fffff, 0xf3ff3fff},
    113        34816};
     111       {0x007fffff, 0xf3ff3fff}}
     112;
    114113    const UnicodeSet cher_Ext
    115114      {{{Empty, 157}, {Full, 2}, {Mixed, 1}, {Empty, 34656}},
    116        {0x001fffff},
    117        34816};
     115       {0x001fffff}}
     116;
    118117    const UnicodeSet copt_Ext
    119118      {{{Empty, 31}, {Mixed, 1}, {Empty, 324}, {Full, 3}, {Mixed, 1},
    120119        {Empty, 1711}, {Mixed, 1}, {Empty, 32744}},
    121        {0x0000fffc, 0xfe0fffff, 0x0fffffff},
    122        34816};
     120       {0x0000fffc, 0xfe0fffff, 0x0fffffff}}
     121;
    123122    const UnicodeSet cprt_Ext
    124123      {{{Empty, 2056}, {Mixed, 2}, {Empty, 54}, {Mixed, 2}, {Empty, 32702}},
    125        {0xffffff87, 0xff8fffff, 0xfffffd3f, 0x91bfffff},
    126        34816};
     124       {0xffffff87, 0xff8fffff, 0xfffffd3f, 0x91bfffff}}
     125;
    127126    const UnicodeSet cyrl_Ext
    128127      {{{Empty, 32}, {Full, 9}, {Mixed, 1}, {Empty, 191}, {Mixed, 1},
    129128        {Empty, 1}, {Mixed, 1}, {Empty, 131}, {Full, 1}, {Empty, 962},
    130129        {Full, 2}, {Mixed, 1}, {Empty, 33483}},
    131        {0x0000ffff, 0x00000800, 0x01000000, 0xbfffffff},
    132        34816};
     130       {0x0000ffff, 0x00000800, 0x01000000, 0xbfffffff}}
     131;
    133132    const UnicodeSet deva_Ext
    134133      {{{Empty, 72}, {Full, 4}, {Empty, 154}, {Mixed, 2}, {Empty, 1113},
    135134        {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 33464}},
    136        {0xfff70000, 0x031c21ff, 0x03ff0000, 0x0fffffff},
    137        34816};
     135       {0xfff70000, 0x031c21ff, 0x03ff0000, 0x0fffffff}}
     136;
    138137    const UnicodeSet dsrt_Ext
    139138      {{{Empty, 2080}, {Full, 2}, {Mixed, 1}, {Empty, 32733}},
    140        {0x0000ffff},
    141        34816};
     139       {0x0000ffff}}
     140;
    142141    const UnicodeSet dupl_Ext
    143142      {{{Empty, 3552}, {Full, 3}, {Mixed, 3}, {Empty, 31258}},
    144        {0x1fff07ff, 0xf3ff01ff, 0x0000000f},
    145        34816};
     143       {0x1fff07ff, 0xf3ff01ff, 0x0000000f}}
     144;
    146145    const UnicodeSet egyp_Ext
    147146      {{{Empty, 2432}, {Full, 33}, {Mixed, 1}, {Empty, 32350}},
    148        {0x00007fff},
    149        34816};
     147       {0x00007fff}}
     148;
    150149    const UnicodeSet elba_Ext
    151150      {{{Empty, 2088}, {Full, 1}, {Mixed, 1}, {Empty, 32726}},
    152        {0x000000ff},
    153        34816};
     151       {0x000000ff}}
     152;
    154153    const UnicodeSet ethi_Ext
    155154      {{{Empty, 144}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
     
    158157       {0x3d7f3dff, 0xffff3dff, 0x7f3dffff, 0xff7fff3d, 0xff3dffff,
    159158        0xe7ffffff, 0x1fffffff, 0x03ffffff, 0x007fffff, 0x7f7f7f7f,
    160         0x7f7f7f7f, 0x007e7e7e, 0x00007f7f},
    161        34816};
     159        0x7f7f7f7f, 0x007e7e7e, 0x00007f7f}}
     160;
    162161    const UnicodeSet geor_Ext
    163162      {{{Empty, 44}, {Mixed, 1}, {Empty, 88}, {Full, 1}, {Mixed, 2},
    164163        {Empty, 224}, {Full, 1}, {Mixed, 1}, {Empty, 34454}},
    165        {0x00000200, 0xffff20bf, 0xf7ffffff, 0x000020bf},
    166        34816};
     164       {0x00000200, 0xffff20bf, 0xf7ffffff, 0x000020bf}}
     165;
    167166    const UnicodeSet glag_Ext
    168167      {{{Empty, 352}, {Full, 1}, {Mixed, 2}, {Empty, 34461}},
    169        {0xffff7fff, 0x7fffffff},
    170        34816};
     168       {0xffff7fff, 0x7fffffff}}
     169;
    171170    const UnicodeSet goth_Ext
    172171      {{{Empty, 2073}, {Mixed, 2}, {Empty, 32741}},
    173        {0xffff0000, 0x000007ff},
    174        34816};
     172       {0xffff0000, 0x000007ff}}
     173;
    175174    const UnicodeSet gran_Ext
    176175      {{{Empty, 75}, {Mixed, 1}, {Empty, 2124}, {Mixed, 4}, {Empty, 32612}},
    177        {0x00000030, 0xfff99fee, 0xf3edfdff, 0xe080399f, 0x001f1fcf},
    178        34816};
     176       {0x00000030, 0xfff99fee, 0xf3edfdff, 0xe080399f, 0x001f1fcf}}
     177;
    179178    const UnicodeSet grek_Ext
    180179      {{{Empty, 26}, {Mixed, 4}, {Full, 1}, {Mixed, 1}, {Empty, 201},
     
    187186        0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0xffdfffff, 0xefcfffdf,
    188187        0x7fdcffff, 0x00000040, 0x00000020, 0x00001fff, 0x00000001,
    189         0x0000003f},
    190        34816};
     188        0x0000003f}}
     189;
    191190    const UnicodeSet gujr_Ext
    192191      {{{Empty, 75}, {Mixed, 1}, {Empty, 8}, {Mixed, 4}, {Empty, 1257},
    193192        {Mixed, 1}, {Empty, 33470}},
    194193       {0x00000030, 0xfffbbfee, 0xf3edfdff, 0x00013bbf, 0x0003ffcf,
    195         0x03ff0000},
    196        34816};
     194        0x03ff0000}}
     195;
    197196    const UnicodeSet guru_Ext
    198197      {{{Empty, 75}, {Mixed, 1}, {Empty, 4}, {Mixed, 4}, {Empty, 1261},
    199198        {Mixed, 1}, {Empty, 33470}},
    200199       {0x00000030, 0xfff987ee, 0xd36dfdff, 0x5e023987, 0x003fffc0,
    201         0x03ff0000},
    202        34816};
     200        0x03ff0000}}
     201;
    203202    const UnicodeSet hang_Ext
    204203      {{{Empty, 136}, {Full, 8}, {Empty, 240}, {Mixed, 2}, {Empty, 5},
     
    213212        0x00000fff, 0xff000000, 0xf801ffff, 0x7fffffff, 0x1fffffff,
    214213        0xffff000f, 0xfffff87f, 0x0fffffff, 0x00000060, 0x0000003e,
    215         0x7fffffff, 0x1cfcfcfc},
    216        34816};
     214        0x7fffffff, 0x1cfcfcfc}}
     215;
    217216    const UnicodeSet hani_Ext
    218217      {{{Empty, 372}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 6},
     
    231230        0x00000fff, 0xff000000, 0xf801ffff, 0x7fffffff, 0x003fffff,
    232231        0x00001fff, 0xffff3fff, 0x03ffffff, 0x00000060, 0x0000003e,
    233         0x007fffff, 0x001fffff, 0x3fffffff, 0x3fffffff},
    234        34816};
     232        0x007fffff, 0x001fffff, 0x3fffffff, 0x3fffffff}}
     233;
    235234    const UnicodeSet hano_Ext
    236235      {{{Empty, 185}, {Mixed, 1}, {Empty, 34630}},
    237        {0x007fffff},
    238        34816};
     236       {0x007fffff}}
     237;
    239238    const UnicodeSet hebr_Ext
    240239      {{{Empty, 44}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 1960},
    241240        {Mixed, 3}, {Empty, 32805}},
    242241       {0xfffe0000, 0xffff00ff, 0x001f07ff, 0xe0000000, 0x5f7fffff,
    243         0x0000ffdb},
    244        34816};
     242        0x0000ffdb}}
     243;
    245244    const UnicodeSet hira_Ext
    246245      {{{Empty, 384}, {Mixed, 3}, {Full, 1}, {Mixed, 2}, {Empty, 1},
     
    253252        0x18000000, 0xffff0000, 0x0000000f, 0x0000000f, 0x0001ffff,
    254253        0x00000fff, 0xff000000, 0xf801ffff, 0x7fffffff, 0x00000060,
    255         0x0001003e, 0xc0000000, 0x00000002, 0x00000001},
    256        34816};
     254        0x0001003e, 0xc0000000, 0x00000002, 0x00000001}}
     255;
    257256    const UnicodeSet hmng_Ext
    258257      {{{Empty, 2904}, {Full, 2}, {Mixed, 3}, {Empty, 31907}},
    259        {0xfbff003f, 0xe0fffffb, 0x0000ffff},
    260        34816};
     258       {0xfbff003f, 0xe0fffffb, 0x0000ffff}}
     259;
    261260    const UnicodeSet hrkt_Ext
    262261      {{{Empty, 34816}},
    263        {},
    264        34816};
     262       {}}
     263;
    265264    const UnicodeSet ital_Ext
    266265      {{{Empty, 2072}, {Full, 1}, {Mixed, 1}, {Empty, 32742}},
    267        {0x0000000f},
    268        34816};
     266       {0x0000000f}}
     267;
    269268    const UnicodeSet java_Ext
    270269      {{{Empty, 1356}, {Full, 2}, {Mixed, 1}, {Empty, 33457}},
    271        {0xc3ffbfff},
    272        34816};
     270       {0xc3ffbfff}}
     271;
    273272    const UnicodeSet kali_Ext
    274273      {{{Empty, 1352}, {Full, 1}, {Mixed, 1}, {Empty, 33462}},
    275        {0x0000ffff},
    276        34816};
     274       {0x0000ffff}}
     275;
    277276    const UnicodeSet kana_Ext
    278277      {{{Empty, 384}, {Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Full, 3},
     
    284283       {0xfffbff4e, 0xf0bf0000, 0x1e000000, 0xffff0000, 0xffff000f,
    285284        0x0000000f, 0x0001ffff, 0xffff0fff, 0x7fffffff, 0xf801ffff,
    286         0x7fffffff, 0x00000060, 0xfffffffe, 0x00000001},
    287        34816};
     285        0x7fffffff, 0x00000060, 0xfffffffe, 0x00000001}}
     286;
    288287    const UnicodeSet khar_Ext
    289288      {{{Empty, 2128}, {Mixed, 3}, {Empty, 32685}},
    290        {0xfeeff06f, 0x870fffff, 0x01ff00ff},
    291        34816};
     289       {0xfeeff06f, 0x870fffff, 0x01ff00ff}}
     290;
    292291    const UnicodeSet khmr_Ext
    293292      {{{Empty, 188}, {Full, 2}, {Mixed, 2}, {Empty, 15}, {Full, 1},
    294293        {Empty, 34608}},
    295        {0x3fffffff, 0x03ff03ff},
    296        34816};
     294       {0x3fffffff, 0x03ff03ff}}
     295;
    297296    const UnicodeSet khoj_Ext
    298297      {{{Empty, 87}, {Mixed, 1}, {Empty, 2104}, {Mixed, 2}, {Empty, 32622}},
    299        {0x0000ffc0, 0xfffbffff, 0x3fffffff},
    300        34816};
     298       {0x0000ffc0, 0xfffbffff, 0x3fffffff}}
     299;
    301300    const UnicodeSet knda_Ext
    302301      {{{Empty, 75}, {Mixed, 1}, {Empty, 24}, {Mixed, 4}, {Empty, 34712}},
    303        {0x00000030, 0xfffddfee, 0xf3effdff, 0x40603ddf, 0x0006ffcf},
    304        34816};
     302       {0x00000030, 0xfffddfee, 0xf3effdff, 0x40603ddf, 0x0006ffcf}}
     303;
    305304    const UnicodeSet kthi_Ext
    306305      {{{Empty, 75}, {Mixed, 1}, {Empty, 1269}, {Mixed, 1}, {Empty, 834},
    307306        {Full, 2}, {Mixed, 1}, {Empty, 32633}},
    308        {0x0000ffc0, 0x03ff0000, 0x00000003},
    309        34816};
     307       {0x0000ffc0, 0x03ff0000, 0x00000003}}
     308;
    310309    const UnicodeSet lana_Ext
    311310      {{{Empty, 209}, {Full, 1}, {Mixed, 4}, {Empty, 34602}},
    312        {0x7fffffff, 0x9fffffff, 0x03ff03ff, 0x00003fff},
    313        34816};
     311       {0x7fffffff, 0x9fffffff, 0x03ff03ff, 0x00003fff}}
     312;
    314313    const UnicodeSet laoo_Ext
    315314      {{{Empty, 116}, {Mixed, 3}, {Empty, 34697}},
    316        {0xfef02596, 0x3bffecae, 0xf3ff3f5f},
    317        34816};
     315       {0xfef02596, 0x3bffecae, 0xf3ff3f5f}}
     316;
    318317    const UnicodeSet latn_Ext
    319318      {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 13},
     
    331330        0x1fff0000, 0x00040c00, 0x00004000, 0x000001ff, 0xfffffffc,
    332331        0xffff78ff, 0x00033fff, 0xff800000, 0x00004000, 0xffff0000,
    333         0xf7ffffff, 0x00000010, 0x0000007f, 0x07fffffe, 0x07fffffe},
    334        34816};
     332        0xf7ffffff, 0x00000010, 0x0000007f, 0x07fffffe, 0x07fffffe}}
     333;
    335334    const UnicodeSet lepc_Ext
    336335      {{{Empty, 224}, {Full, 1}, {Mixed, 2}, {Empty, 34589}},
    337        {0xf8ffffff, 0x0000e3ff},
    338        34816};
     336       {0xf8ffffff, 0x0000e3ff}}
     337;
    339338    const UnicodeSet limb_Ext
    340339      {{{Empty, 75}, {Mixed, 1}, {Empty, 124}, {Mixed, 3}, {Empty, 34613}},
    341        {0x00000020, 0x7fffffff, 0x0fff0fff, 0x0000fff1},
    342        34816};
     340       {0x00000020, 0x7fffffff, 0x0fff0fff, 0x0000fff1}}
     341;
    343342    const UnicodeSet lina_Ext
    344343      {{{Empty, 2096}, {Full, 9}, {Mixed, 3}, {Empty, 32708}},
    345        {0x007fffff, 0x003fffff, 0x000000ff},
    346        34816};
     344       {0x007fffff, 0x003fffff, 0x000000ff}}
     345;
    347346    const UnicodeSet linb_Ext
    348347      {{{Empty, 2048}, {Mixed, 3}, {Empty, 1}, {Full, 3}, {Mixed, 3},
    349348        {Empty, 32758}},
    350349       {0xffffefff, 0xb7ffff7f, 0x3fff3fff, 0x07ffffff, 0xffffff87,
    351         0xff8fffff},
    352        34816};
     350        0xff8fffff}}
     351;
    353352    const UnicodeSet lisu_Ext
    354353      {{{Empty, 1318}, {Mixed, 1}, {Full, 1}, {Empty, 33496}},
    355        {0xffff0000},
    356        34816};
     354       {0xffff0000}}
     355;
    357356    const UnicodeSet lyci_Ext
    358357      {{{Empty, 2068}, {Mixed, 1}, {Empty, 32747}},
    359        {0x1fffffff},
    360        34816};
     358       {0x1fffffff}}
     359;
    361360    const UnicodeSet lydi_Ext
    362361      {{{Empty, 2121}, {Mixed, 1}, {Empty, 32694}},
    363        {0x83ffffff},
    364        34816};
     362       {0x83ffffff}}
     363;
    365364    const UnicodeSet mahj_Ext
    366365      {{{Empty, 75}, {Mixed, 1}, {Empty, 1269}, {Mixed, 1}, {Empty, 840},
    367366        {Mixed, 2}, {Empty, 32628}},
    368        {0x0000fff0, 0x03ff0000, 0xffff0000, 0x007fffff},
    369        34816};
     367       {0x0000fff0, 0x03ff0000, 0xffff0000, 0x007fffff}}
     368;
    370369    const UnicodeSet mand_Ext
    371370      {{{Empty, 50}, {Mixed, 1}, {Empty, 15}, {Mixed, 1}, {Empty, 34749}},
    372        {0x00000001, 0x4fffffff},
    373        34816};
     371       {0x00000001, 0x4fffffff}}
     372;
    374373    const UnicodeSet mani_Ext
    375374      {{{Empty, 50}, {Mixed, 1}, {Empty, 2083}, {Full, 1}, {Mixed, 1},
    376375        {Empty, 32680}},
    377        {0x00000001, 0x007ff87f},
    378        34816};
     376       {0x00000001, 0x007ff87f}}
     377;
    379378    const UnicodeSet mend_Ext
    380379      {{{Empty, 3904}, {Full, 6}, {Mixed, 1}, {Empty, 30905}},
    381        {0x007fff9f},
    382        34816};
     380       {0x007fff9f}}
     381;
    383382    const UnicodeSet merc_Ext
    384383      {{{Empty, 2125}, {Mixed, 1}, {Empty, 32690}},
    385        {0xc0ffffff},
    386        34816};
     384       {0xc0ffffff}}
     385;
    387386    const UnicodeSet mero_Ext
    388387      {{{Empty, 2124}, {Full, 1}, {Empty, 32691}},
    389        {},
    390        34816};
     388       {}}
     389;
    391390    const UnicodeSet mlym_Ext
    392391      {{{Empty, 75}, {Mixed, 1}, {Empty, 28}, {Mixed, 4}, {Empty, 34708}},
    393        {0x00000030, 0xfffddfee, 0xe7ffffff, 0x00807ddf, 0xfe3fffcf},
    394        34816};
     392       {0x00000030, 0xfffddfee, 0xe7ffffff, 0x00807ddf, 0xfe3fffcf}}
     393;
    395394    const UnicodeSet modi_Ext
    396395      {{{Empty, 1345}, {Mixed, 1}, {Empty, 878}, {Full, 2}, {Mixed, 1},
    397396        {Empty, 32589}},
    398        {0x03ff0000, 0x03ff001f},
    399        34816};
     397       {0x03ff0000, 0x03ff001f}}
     398;
    400399    const UnicodeSet mong_Ext
    401400      {{{Empty, 192}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 1},
    402401        {Mixed, 1}, {Empty, 34618}},
    403        {0x03ff7fff, 0x00ffffff, 0x000007ff},
    404        34816};
     402       {0x03ff7fff, 0x00ffffff, 0x000007ff}}
     403;
    405404    const UnicodeSet mroo_Ext
    406405      {{{Empty, 2898}, {Mixed, 2}, {Empty, 31916}},
    407        {0x7fffffff, 0x0000c3ff},
    408        34816};
     406       {0x7fffffff, 0x0000c3ff}}
     407;
    409408    const UnicodeSet mtei_Ext
    410409      {{{Empty, 1367}, {Mixed, 1}, {Empty, 6}, {Full, 1}, {Mixed, 1},
    411410        {Empty, 33440}},
    412        {0x007fffff, 0x03ff3fff},
    413        34816};
     411       {0x007fffff, 0x03ff3fff}}
     412;
    414413    const UnicodeSet mymr_Ext
    415414      {{{Empty, 128}, {Full, 5}, {Empty, 1220}, {Mixed, 1}, {Empty, 5},
    416415        {Mixed, 1}, {Empty, 3}, {Full, 1}, {Empty, 33452}},
    417        {0x00004000, 0x7fffffff},
    418        34816};
     416       {0x00004000, 0x7fffffff}}
     417;
    419418    const UnicodeSet narb_Ext
    420419      {{{Empty, 2132}, {Full, 1}, {Empty, 32683}},
    421        {},
    422        34816};
     420       {}}
     421;
    423422    const UnicodeSet nbat_Ext
    424423      {{{Empty, 2116}, {Mixed, 2}, {Empty, 32698}},
    425        {0x7fffffff, 0x0000ff80},
    426        34816};
     424       {0x7fffffff, 0x0000ff80}}
     425;
    427426    const UnicodeSet nkoo_Ext
    428427      {{{Empty, 62}, {Full, 1}, {Mixed, 1}, {Empty, 34752}},
    429        {0x07ffffff},
    430        34816};
     428       {0x07ffffff}}
     429;
    431430    const UnicodeSet ogam_Ext
    432431      {{{Empty, 180}, {Mixed, 1}, {Empty, 34635}},
    433        {0x1fffffff},
    434        34816};
     432       {0x1fffffff}}
     433;
    435434    const UnicodeSet olck_Ext
    436435      {{{Empty, 226}, {Mixed, 1}, {Full, 1}, {Empty, 34588}},
    437        {0xffff0000},
    438        34816};
     436       {0xffff0000}}
     437;
    439438    const UnicodeSet orkh_Ext
    440439      {{{Empty, 2144}, {Full, 2}, {Mixed, 1}, {Empty, 32669}},
    441        {0x000001ff},
    442        34816};
     440       {0x000001ff}}
     441;
    443442    const UnicodeSet orya_Ext
    444443      {{{Empty, 75}, {Mixed, 1}, {Empty, 12}, {Mixed, 4}, {Empty, 34724}},
    445        {0x00000030, 0xfff99fee, 0xf3edfdff, 0xb0c0399f, 0x00ffffcf},
    446        34816};
     444       {0x00000030, 0xfff99fee, 0xf3edfdff, 0xb0c0399f, 0x00ffffcf}}
     445;
    447446    const UnicodeSet osma_Ext
    448447      {{{Empty, 2084}, {Mixed, 2}, {Empty, 32730}},
    449        {0x3fffffff, 0x000003ff},
    450        34816};
     448       {0x3fffffff, 0x000003ff}}
     449;
    451450    const UnicodeSet palm_Ext
    452451      {{{Empty, 2115}, {Full, 1}, {Empty, 32700}},
    453        {},
    454        34816};
     452       {}}
     453;
    455454    const UnicodeSet pauc_Ext
    456455      {{{Empty, 2262}, {Full, 1}, {Mixed, 1}, {Empty, 32552}},
    457        {0x01ffffff},
    458        34816};
     456       {0x01ffffff}}
     457;
    459458    const UnicodeSet perm_Ext
    460459      {{{Empty, 2074}, {Mixed, 2}, {Empty, 32740}},
    461        {0xffff0000, 0x07ffffff},
    462        34816};
     460       {0xffff0000, 0x07ffffff}}
     461;
    463462    const UnicodeSet phag_Ext
    464463      {{{Empty, 192}, {Mixed, 1}, {Empty, 1153}, {Full, 1}, {Mixed, 1},
    465464        {Empty, 33468}},
    466        {0x0000002c, 0x00ffffff},
    467        34816};
     465       {0x0000002c, 0x00ffffff}}
     466;
    468467    const UnicodeSet phli_Ext
    469468      {{{Empty, 2139}, {Mixed, 1}, {Empty, 32676}},
    470        {0xff07ffff},
    471        34816};
     469       {0xff07ffff}}
     470;
    472471    const UnicodeSet phlp_Ext
    473472      {{{Empty, 50}, {Mixed, 1}, {Empty, 2089}, {Mixed, 2}, {Empty, 32674}},
    474        {0x00000001, 0x1e03ffff, 0x0000fe00},
    475        34816};
     473       {0x00000001, 0x1e03ffff, 0x0000fe00}}
     474;
    476475    const UnicodeSet phnx_Ext
    477476      {{{Empty, 2120}, {Mixed, 1}, {Empty, 32695}},
    478        {0x8fffffff},
    479        34816};
     477       {0x8fffffff}}
     478;
    480479    const UnicodeSet plrd_Ext
    481480      {{{Empty, 2936}, {Full, 2}, {Mixed, 3}, {Empty, 31875}},
    482        {0xffff001f, 0x7fffffff, 0xffff8000},
    483        34816};
     481       {0xffff001f, 0x7fffffff, 0xffff8000}}
     482;
    484483    const UnicodeSet prti_Ext
    485484      {{{Empty, 2138}, {Mixed, 1}, {Empty, 32677}},
    486        {0xff3fffff},
    487        34816};
     485       {0xff3fffff}}
     486;
    488487    const UnicodeSet rjng_Ext
    489488      {{{Empty, 1353}, {Mixed, 2}, {Empty, 33461}},
    490        {0xffff0000, 0x800fffff},
    491        34816};
     489       {0xffff0000, 0x800fffff}}
     490;
    492491    const UnicodeSet runr_Ext
    493492      {{{Empty, 181}, {Full, 2}, {Mixed, 1}, {Empty, 34632}},
    494        {0x01ffc7ff},
    495        34816};
     493       {0x01ffc7ff}}
     494;
    496495    const UnicodeSet samr_Ext
    497496      {{{Empty, 64}, {Full, 1}, {Mixed, 1}, {Empty, 34750}},
    498        {0x7fff3fff},
    499        34816};
     497       {0x7fff3fff}}
     498;
    500499    const UnicodeSet sarb_Ext
    501500      {{{Empty, 2131}, {Full, 1}, {Empty, 32684}},
    502        {},
    503        34816};
     501       {}}
     502;
    504503    const UnicodeSet saur_Ext
    505504      {{{Empty, 1348}, {Full, 2}, {Mixed, 1}, {Empty, 33465}},
    506        {0x03ffc01f},
    507        34816};
     505       {0x03ffc01f}}
     506;
    508507    const UnicodeSet shaw_Ext
    509508      {{{Empty, 2082}, {Mixed, 1}, {Full, 1}, {Empty, 32732}},
    510        {0xffff0000},
    511        34816};
     509       {0xffff0000}}
     510;
    512511    const UnicodeSet shrd_Ext
    513512      {{{Empty, 2188}, {Full, 2}, {Mixed, 1}, {Empty, 32625}},
    514        {0x07ff21ff},
    515        34816};
     513       {0x07ff21ff}}
     514;
    516515    const UnicodeSet sidd_Ext
    517516      {{{Empty, 2220}, {Full, 1}, {Mixed, 2}, {Empty, 32593}},
    518        {0xff3fffff, 0x000003ff},
    519        34816};
     517       {0xff3fffff, 0x000003ff}}
     518;
    520519    const UnicodeSet sind_Ext
    521520      {{{Empty, 75}, {Mixed, 1}, {Empty, 1269}, {Mixed, 1}, {Empty, 851},
    522521        {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 32616}},
    523        {0x00000030, 0x03ff0000, 0xffff0000, 0x03ff07ff},
    524        34816};
     522       {0x00000030, 0x03ff0000, 0xffff0000, 0x03ff07ff}}
     523;
    525524    const UnicodeSet sinh_Ext
    526525      {{{Empty, 75}, {Mixed, 1}, {Empty, 32}, {Mixed, 4}, {Empty, 2079},
    527526        {Mixed, 1}, {Empty, 32624}},
    528527       {0x00000030, 0xfc7fffec, 0x2ffbffff, 0xff5f847f, 0x001cffc0,
    529         0x001ffffe},
    530        34816};
     528        0x001ffffe}}
     529;
    531530    const UnicodeSet sora_Ext
    532531      {{{Empty, 2182}, {Mixed, 2}, {Empty, 32632}},
    533        {0xffff0000, 0x03ff01ff},
    534        34816};
     532       {0xffff0000, 0x03ff01ff}}
     533;
    535534    const UnicodeSet sund_Ext
    536535      {{{Empty, 220}, {Full, 2}, {Empty, 8}, {Mixed, 1}, {Empty, 34585}},
    537        {0x000000ff},
    538        34816};
     536       {0x000000ff}}
     537;
    539538    const UnicodeSet sylo_Ext
    540539      {{{Empty, 75}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 1264},
    541540        {Full, 1}, {Mixed, 1}, {Empty, 33470}},
    542        {0x00000030, 0x0000ffc0, 0x00000fff},
    543        34816};
     541       {0x00000030, 0x0000ffc0, 0x00000fff}}
     542;
    544543    const UnicodeSet syrc_Ext
    545544      {{{Empty, 48}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 4},
    546545        {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 34757}},
    547        {0x88001000, 0x003ff801, 0x00010000, 0xffffbfff, 0x0000e7ff},
    548        34816};
     546       {0x88001000, 0x003ff801, 0x00010000, 0xffffbfff, 0x0000e7ff}}
     547;
    549548    const UnicodeSet tagb_Ext
    550549      {{{Empty, 185}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 34628}},
    551        {0x00600000, 0x000ddfff},
    552        34816};
     550       {0x00600000, 0x000ddfff}}
     551;
    553552    const UnicodeSet takr_Ext
    554553      {{{Empty, 75}, {Mixed, 1}, {Empty, 1269}, {Mixed, 1}, {Empty, 882},
    555554        {Full, 1}, {Mixed, 2}, {Empty, 32585}},
    556        {0x00000030, 0x03ff0000, 0x00ffffff, 0x000003ff},
    557        34816};
     555       {0x00000030, 0x03ff0000, 0x00ffffff, 0x000003ff}}
     556;
    558557    const UnicodeSet tale_Ext
    559558      {{{Empty, 130}, {Mixed, 1}, {Empty, 71}, {Mixed, 2}, {Empty, 34612}},
    560        {0x000003ff, 0xffff0000, 0x001f3fff},
    561        34816};
     559       {0x000003ff, 0xffff0000, 0x001f3fff}}
     560;
    562561    const UnicodeSet talu_Ext
    563562      {{{Empty, 204}, {Full, 1}, {Mixed, 2}, {Empty, 34609}},
    564        {0xffff0fff, 0xc7ff03ff},
    565        34816};
     563       {0xffff0fff, 0xc7ff03ff}}
     564;
    566565    const UnicodeSet taml_Ext
    567566      {{{Empty, 75}, {Mixed, 1}, {Empty, 16}, {Mixed, 4}, {Empty, 34720}},
    568        {0x00000030, 0xd63dc7ec, 0xc3ffc718, 0x00813dc7, 0x07ffffc0},
    569        34816};
     567       {0x00000030, 0xd63dc7ec, 0xc3ffc718, 0x00813dc7, 0x07ffffc0}}
     568;
    570569    const UnicodeSet tavt_Ext
    571570      {{{Empty, 1364}, {Full, 2}, {Mixed, 1}, {Empty, 33449}},
    572        {0xf8000007},
    573        34816};
     571       {0xf8000007}}
     572;
    574573    const UnicodeSet telu_Ext
    575574      {{{Empty, 75}, {Mixed, 1}, {Empty, 20}, {Mixed, 4}, {Empty, 34716}},
    576        {0x00000030, 0xfffddfef, 0xe3fffdff, 0x03603ddf, 0xff00ffcf},
    577        34816};
     575       {0x00000030, 0xfffddfef, 0xe3fffdff, 0x03603ddf, 0xff00ffcf}}
     576;
    578577    const UnicodeSet tfng_Ext
    579578      {{{Empty, 361}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 34452}},
    580        {0xffff0000, 0x800180ff},
    581        34816};
     579       {0xffff0000, 0x800180ff}}
     580;
    582581    const UnicodeSet tglg_Ext
    583582      {{{Empty, 184}, {Mixed, 2}, {Empty, 34630}},
    584        {0x001fdfff, 0x00600000},
    585        34816};
     583       {0x001fdfff, 0x00600000}}
     584;
    586585    const UnicodeSet thaa_Ext
    587586      {{{Empty, 48}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 8},
    588587        {Full, 1}, {Mixed, 1}, {Empty, 1969}, {Mixed, 1}, {Empty, 32784}},
    589        {0x88001000, 0x000003ff, 0x0003ffff, 0x20040000},
    590        34816};
     588       {0x88001000, 0x000003ff, 0x0003ffff, 0x20040000}}
     589;
    591590    const UnicodeSet thai_Ext
    592591      {{{Empty, 112}, {Mixed, 3}, {Empty, 34701}},
    593        {0xfffffffe, 0x07ffffff, 0x0fffffff},
    594        34816};
     592       {0xfffffffe, 0x07ffffff, 0x0fffffff}}
     593;
    595594    const UnicodeSet tibt_Ext
    596595      {{{Empty, 120}, {Full, 2}, {Mixed, 5}, {Empty, 34689}},
    597        {0xfffffeff, 0xfffe1fff, 0xfeffffff, 0xdfffffff, 0x061fdfff},
    598        34816};
     596       {0xfffffeff, 0xfffe1fff, 0xfeffffff, 0xdfffffff, 0x061fdfff}}
     597;
    599598    const UnicodeSet tirh_Ext
    600599      {{{Empty, 75}, {Mixed, 1}, {Empty, 1269}, {Mixed, 1}, {Empty, 866},
    601600        {Full, 2}, {Mixed, 1}, {Empty, 32601}},
    602        {0x00000030, 0x03ff0000, 0x03ff00ff},
    603        34816};
     601       {0x00000030, 0x03ff0000, 0x03ff00ff}}
     602;
    604603    const UnicodeSet ugar_Ext
    605604      {{{Empty, 2076}, {Mixed, 1}, {Empty, 32739}},
    606        {0xbfffffff},
    607        34816};
     605       {0xbfffffff}}
     606;
    608607    const UnicodeSet vaii_Ext
    609608      {{{Empty, 1320}, {Full, 9}, {Mixed, 1}, {Empty, 33486}},
    610        {0x00000fff},
    611        34816};
     609       {0x00000fff}}
     610;
    612611    const UnicodeSet wara_Ext
    613612      {{{Empty, 2245}, {Full, 2}, {Mixed, 1}, {Empty, 32568}},
    614        {0x8007ffff},
    615        34816};
     613       {0x8007ffff}}
     614;
    616615    const UnicodeSet xpeo_Ext
    617616      {{{Empty, 2077}, {Full, 1}, {Mixed, 1}, {Empty, 32737}},
    618        {0x003fff0f},
    619        34816};
     617       {0x003fff0f}}
     618;
    620619    const UnicodeSet xsux_Ext
    621620      {{{Empty, 2304}, {Full, 28}, {Mixed, 1}, {Empty, 3}, {Full, 3},
    622621        {Mixed, 1}, {Empty, 32476}},
    623        {0x01ffffff, 0x001f7fff},
    624        34816};
     622       {0x01ffffff, 0x001f7fff}}
     623;
    625624    const UnicodeSet yiii_Ext
    626625      {{{Empty, 384}, {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 888},
    627626        {Full, 36}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 724},
    628627        {Mixed, 1}, {Empty, 32772}},
    629        {0x0ff3ff06, 0x08000000, 0xffff1fff, 0x0000007f, 0x0000003e},
    630        34816};
     628       {0x0ff3ff06, 0x08000000, 0xffff1fff, 0x0000007f, 0x0000003e}}
     629;
    631630    const UnicodeSet zinh_Ext
    632631      {{{Empty, 24}, {Full, 3}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
     
    642641        0xffff0000, 0x0001ffff, 0x00003c00, 0x06000000, 0x0000ffff,
    643642        0x00003fff, 0x20000000, 0x00000001, 0xf8000380, 0x00000fe7,
    644         0x00003c00, 0x0000ffff},
    645        34816};
     643        0x00003c00, 0x0000ffff}}
     644;
    646645    const UnicodeSet zyyy_Ext
    647646      {{{Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Empty, 13},
     
    702701        0xfbffffff, 0xffffffef, 0xffffffe7, 0x0000ffff, 0x000f1fff,
    703702        0x000fffff, 0x001fffff, 0xffff0fff, 0x03ff00ff, 0xffff00ff,
    704         0x00003fff, 0x00000002},
    705        34816};
     703        0x00003fff, 0x00000002}}
     704;
    706705    const UnicodeSet zzzz_Ext
    707706      {{{Empty, 27}, {Mixed, 3}, {Empty, 11}, {Mixed, 4}, {Empty, 1},
     
    846845        0xffe00000, 0x0000f000, 0xfc00ff00, 0x0000ff00, 0xffffc000,
    847846        0xff800000, 0xffe00000, 0xc0000000, 0xc0000000, 0xfffffffd,
    848         0xffff0000},
    849        34816};
    850     EnumeratedPropertyObject property_object
     847        0xffff0000}}
     848;
     849    static EnumeratedPropertyObject property_object
    851850      {scx,
    852851       SC_ns::enum_names,
  • icGREP/icgrep-devel/icgrep/UCD/Scripts.h

    r4388 r4618  
    99 */
    1010
    11 #include <vector>
     11#include "PropertyObjects.h"
     12#include "PropertyValueAliases.h"
    1213#include "unicode_set.h"
    13 #include "PropertyAliases.h"
    14 #include "PropertyValueAliases.h"
    1514
    1615namespace UCD {
     
    1817    const UnicodeSet aghb_Set
    1918      {{{Empty, 2089}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 32724}},
    20        {0xffff0000, 0x0000800f},
    21        34816};
     19       {0xffff0000, 0x0000800f}}
     20;
    2221    const UnicodeSet arab_Set
    2322      {{{Empty, 48}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 2},
     
    3231        0xffff0000, 0xfffcffff, 0x000000ff, 0x3fff0000, 0xffdf0000,
    3332        0x1fffffff, 0x7fffffff, 0xffffffef, 0x0af7fe96, 0xaa96ea84,
    34         0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0x00030000},
    35        34816};
     33        0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0x00030000}}
     34;
    3635    const UnicodeSet armi_Set
    3736      {{{Empty, 2114}, {Mixed, 1}, {Empty, 32701}},
    38        {0xffbfffff},
    39        34816};
     37       {0xffbfffff}}
     38;
    4039    const UnicodeSet armn_Set
    4140      {{{Empty, 41}, {Mixed, 4}, {Empty, 1963}, {Mixed, 1}, {Empty, 32807}},
    42        {0xfffe0000, 0xfe7fffff, 0xfffffffe, 0x0000e4ff, 0x00f80000},
    43        34816};
     41       {0xfffe0000, 0xfe7fffff, 0xfffffffe, 0x0000e4ff, 0x00f80000}}
     42;
    4443    const UnicodeSet avst_Set
    4544      {{{Empty, 2136}, {Full, 1}, {Mixed, 1}, {Empty, 32678}},
    46        {0xfe3fffff},
    47        34816};
     45       {0xfe3fffff}}
     46;
    4847    const UnicodeSet bali_Set
    4948      {{{Empty, 216}, {Full, 2}, {Mixed, 2}, {Empty, 34596}},
    50        {0xffff0fff, 0x1fffffff},
    51        34816};
     49       {0xffff0fff, 0x1fffffff}}
     50;
    5251    const UnicodeSet bamu_Set
    5352      {{{Empty, 1333}, {Full, 2}, {Mixed, 1}, {Empty, 1544}, {Full, 17},
    5453        {Mixed, 1}, {Empty, 31918}},
    55        {0x00ffffff, 0x01ffffff},
    56        34816};
     54       {0x00ffffff, 0x01ffffff}}
     55;
    5756    const UnicodeSet bass_Set
    5857      {{{Empty, 2902}, {Mixed, 2}, {Empty, 31912}},
    59        {0xffff0000, 0x003f3fff},
    60        34816};
     58       {0xffff0000, 0x003f3fff}}
     59;
    6160    const UnicodeSet batk_Set
    6261      {{{Empty, 222}, {Full, 1}, {Mixed, 1}, {Empty, 34592}},
    63        {0xf00fffff},
    64        34816};
     62       {0xf00fffff}}
     63;
    6564    const UnicodeSet beng_Set
    6665      {{{Empty, 76}, {Mixed, 4}, {Empty, 34736}},
    67        {0xfff99fef, 0xf3c5fdff, 0xb080799f, 0x0fffffcf},
    68        34816};
     66       {0xfff99fef, 0xf3c5fdff, 0xb080799f, 0x0fffffcf}}
     67;
    6968    const UnicodeSet bopo_Set
    7069      {{{Empty, 23}, {Mixed, 1}, {Empty, 368}, {Mixed, 2}, {Empty, 3},
    7170        {Mixed, 1}, {Empty, 34418}},
    72        {0x00000c00, 0xffffffe0, 0x00003fff, 0x07ffffff},
    73        34816};
     71       {0x00000c00, 0xffffffe0, 0x00003fff, 0x07ffffff}}
     72;
    7473    const UnicodeSet brah_Set
    7574      {{{Empty, 2176}, {Full, 2}, {Mixed, 2}, {Empty, 32636}},
    76        {0xfffc3fff, 0x8000ffff},
    77        34816};
     75       {0xfffc3fff, 0x8000ffff}}
     76;
    7877    const UnicodeSet brai_Set
    7978      {{{Empty, 320}, {Full, 8}, {Empty, 34488}},
    80        {},
    81        34816};
     79       {}}
     80;
    8281    const UnicodeSet bugi_Set
    8382      {{{Empty, 208}, {Mixed, 1}, {Empty, 34607}},
    84        {0xcfffffff},
    85        34816};
     83       {0xcfffffff}}
     84;
    8685    const UnicodeSet buhd_Set
    8786      {{{Empty, 186}, {Mixed, 1}, {Empty, 34629}},
    88        {0x000fffff},
    89        34816};
     87       {0x000fffff}}
     88;
    9089    const UnicodeSet cakm_Set
    9190      {{{Empty, 2184}, {Full, 1}, {Mixed, 2}, {Empty, 32629}},
    92        {0xffdfffff, 0x0000000f},
    93        34816};
     91       {0xffdfffff, 0x0000000f}}
     92;
    9493    const UnicodeSet cans_Set
    9594      {{{Empty, 160}, {Full, 20}, {Empty, 17}, {Mixed, 1}, {Full, 1},
    9695        {Mixed, 1}, {Empty, 34616}},
    97        {0xffff0000, 0x003fffff},
    98        34816};
     96       {0xffff0000, 0x003fffff}}
     97;
    9998    const UnicodeSet cari_Set
    10099      {{{Empty, 2069}, {Full, 1}, {Mixed, 1}, {Empty, 32745}},
    101        {0x0001ffff},
    102        34816};
     100       {0x0001ffff}}
     101;
    103102    const UnicodeSet cham_Set
    104103      {{{Empty, 1360}, {Full, 1}, {Mixed, 2}, {Empty, 33453}},
    105        {0x007fffff, 0xf3ff3fff},
    106        34816};
     104       {0x007fffff, 0xf3ff3fff}}
     105;
    107106    const UnicodeSet cher_Set
    108107      {{{Empty, 157}, {Full, 2}, {Mixed, 1}, {Empty, 34656}},
    109        {0x001fffff},
    110        34816};
     108       {0x001fffff}}
     109;
    111110    const UnicodeSet copt_Set
    112111      {{{Empty, 31}, {Mixed, 1}, {Empty, 324}, {Full, 3}, {Mixed, 1},
    113112        {Empty, 34456}},
    114        {0x0000fffc, 0xfe0fffff},
    115        34816};
     113       {0x0000fffc, 0xfe0fffff}}
     114;
    116115    const UnicodeSet cprt_Set
    117116      {{{Empty, 2112}, {Mixed, 2}, {Empty, 32702}},
    118        {0xfffffd3f, 0x91bfffff},
    119        34816};
     117       {0xfffffd3f, 0x91bfffff}}
     118;
    120119    const UnicodeSet cyrl_Set
    121120      {{{Empty, 32}, {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 1},
    122121        {Empty, 191}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 131},
    123122        {Full, 1}, {Empty, 962}, {Full, 2}, {Mixed, 1}, {Empty, 33483}},
    124        {0xffffff9f, 0x0000ffff, 0x00000800, 0x01000000, 0xbfffffff},
    125        34816};
     123       {0xffffff9f, 0x0000ffff, 0x00000800, 0x01000000, 0xbfffffff}}
     124;
    126125    const UnicodeSet deva_Set
    127126      {{{Empty, 72}, {Full, 2}, {Mixed, 2}, {Empty, 1275}, {Mixed, 1},
    128127        {Empty, 33464}},
    129        {0xfff9ffff, 0xffffffcf, 0x0fffffff},
    130        34816};
     128       {0xfff9ffff, 0xffffffcf, 0x0fffffff}}
     129;
    131130    const UnicodeSet dsrt_Set
    132131      {{{Empty, 2080}, {Full, 2}, {Mixed, 1}, {Empty, 32733}},
    133        {0x0000ffff},
    134        34816};
     132       {0x0000ffff}}
     133;
    135134    const UnicodeSet dupl_Set
    136135      {{{Empty, 3552}, {Full, 3}, {Mixed, 2}, {Empty, 31259}},
    137        {0x1fff07ff, 0xf3ff01ff},
    138        34816};
     136       {0x1fff07ff, 0xf3ff01ff}}
     137;
    139138    const UnicodeSet egyp_Set
    140139      {{{Empty, 2432}, {Full, 33}, {Mixed, 1}, {Empty, 32350}},
    141        {0x00007fff},
    142        34816};
     140       {0x00007fff}}
     141;
    143142    const UnicodeSet elba_Set
    144143      {{{Empty, 2088}, {Full, 1}, {Mixed, 1}, {Empty, 32726}},
    145        {0x000000ff},
    146        34816};
     144       {0x000000ff}}
     145;
    147146    const UnicodeSet ethi_Set
    148147      {{{Empty, 144}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 3},
     
    151150       {0x3d7f3dff, 0xffff3dff, 0x7f3dffff, 0xff7fff3d, 0xff3dffff,
    152151        0xe7ffffff, 0x1fffffff, 0x03ffffff, 0x007fffff, 0x7f7f7f7f,
    153         0x7f7f7f7f, 0x007e7e7e, 0x00007f7f},
    154        34816};
     152        0x7f7f7f7f, 0x007e7e7e, 0x00007f7f}}
     153;
    155154    const UnicodeSet geor_Set
    156155      {{{Empty, 133}, {Full, 1}, {Mixed, 2}, {Empty, 224}, {Full, 1},
    157156        {Mixed, 1}, {Empty, 34454}},
    158        {0xffff20bf, 0xf7ffffff, 0x000020bf},
    159        34816};
     157       {0xffff20bf, 0xf7ffffff, 0x000020bf}}
     158;
    160159    const UnicodeSet glag_Set
    161160      {{{Empty, 352}, {Full, 1}, {Mixed, 2}, {Empty, 34461}},
    162        {0xffff7fff, 0x7fffffff},
    163        34816};
     161       {0xffff7fff, 0x7fffffff}}
     162;
    164163    const UnicodeSet goth_Set
    165164      {{{Empty, 2073}, {Mixed, 2}, {Empty, 32741}},
    166        {0xffff0000, 0x000007ff},
    167        34816};
     165       {0xffff0000, 0x000007ff}}
     166;
    168167    const UnicodeSet gran_Set
    169168      {{{Empty, 2200}, {Mixed, 4}, {Empty, 32612}},
    170        {0xfff99fee, 0xf3edfdff, 0xe080399f, 0x001f1fcf},
    171        34816};
     169       {0xfff99fee, 0xf3edfdff, 0xe080399f, 0x001f1fcf}}
     170;
    172171    const UnicodeSet grek_Set
    173172      {{{Empty, 27}, {Mixed, 3}, {Full, 1}, {Mixed, 1}, {Empty, 201},
     
    179178        0xe0000000, 0x000007c3, 0x80000000, 0x3f3fffff, 0xaaff3f3f,
    180179        0x3fffffff, 0xffdfffff, 0xefcfffdf, 0x7fdcffff, 0x00000040,
    181         0x00000020, 0x00001fff, 0x00000001, 0x0000003f},
    182        34816};
     180        0x00000020, 0x00001fff, 0x00000001, 0x0000003f}}
     181;
    183182    const UnicodeSet gujr_Set
    184183      {{{Empty, 84}, {Mixed, 4}, {Empty, 34728}},
    185        {0xfffbbfee, 0xf3edfdff, 0x00013bbf, 0x0003ffcf},
    186        34816};
     184       {0xfffbbfee, 0xf3edfdff, 0x00013bbf, 0x0003ffcf}}
     185;
    187186    const UnicodeSet guru_Set
    188187      {{{Empty, 80}, {Mixed, 4}, {Empty, 34732}},
    189        {0xfff987ee, 0xd36dfdff, 0x5e023987, 0x003fffc0},
    190        34816};
     188       {0xfff987ee, 0xd36dfdff, 0x5e023987, 0x003fffc0}}
     189;
    191190    const UnicodeSet hang_Set
    192191      {{{Empty, 136}, {Full, 8}, {Empty, 241}, {Mixed, 1}, {Empty, 7},
     
    196195       {0x0000c000, 0xfffe0000, 0x00007fff, 0x7fffffff, 0x7fffffff,
    197196        0x1fffffff, 0xffff000f, 0xfffff87f, 0x0fffffff, 0x7fffffff,
    198         0x1cfcfcfc},
    199        34816};
     197        0x1cfcfcfc}}
     198;
    200199    const UnicodeSet hani_Set
    201200      {{{Empty, 372}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 6},
     
    208207       {0xfbffffff, 0x000fffff, 0x003fffff, 0x000000a0, 0x0f0003fe,
    209208        0x003fffff, 0x00001fff, 0xffff3fff, 0x03ffffff, 0x007fffff,
    210         0x001fffff, 0x3fffffff, 0x3fffffff},
    211        34816};
     209        0x001fffff, 0x3fffffff, 0x3fffffff}}
     210;
    212211    const UnicodeSet hano_Set
    213212      {{{Empty, 185}, {Mixed, 1}, {Empty, 34630}},
    214        {0x001fffff},
    215        34816};
     213       {0x001fffff}}
     214;
    216215    const UnicodeSet hebr_Set
    217216      {{{Empty, 44}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 1960},
    218217        {Mixed, 3}, {Empty, 32805}},
    219218       {0xfffe0000, 0xffff00ff, 0x001f07ff, 0xe0000000, 0x5f7fffff,
    220         0x0000ffdb},
    221        34816};
     219        0x0000ffdb}}
     220;
    222221    const UnicodeSet hira_Set
    223222      {{{Empty, 386}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 3067},
    224223        {Mixed, 1}, {Empty, 527}, {Mixed, 1}, {Empty, 30831}},
    225        {0xfffffffe, 0xe07fffff, 0x00000002, 0x00000001},
    226        34816};
     224       {0xfffffffe, 0xe07fffff, 0x00000002, 0x00000001}}
     225;
    227226    const UnicodeSet hmng_Set
    228227      {{{Empty, 2904}, {Full, 2}, {Mixed, 3}, {Empty, 31907}},
    229        {0xfbff003f, 0xe0fffffb, 0x0000ffff},
    230        34816};
     228       {0xfbff003f, 0xe0fffffb, 0x0000ffff}}
     229;
    231230    const UnicodeSet hrkt_Set
    232231      {{{Empty, 34816}},
    233        {},
    234        34816};
     232       {}}
     233;
    235234    const UnicodeSet ital_Set
    236235      {{{Empty, 2072}, {Full, 1}, {Mixed, 1}, {Empty, 32742}},
    237        {0x0000000f},
    238        34816};
     236       {0x0000000f}}
     237;
    239238    const UnicodeSet java_Set
    240239      {{{Empty, 1356}, {Full, 2}, {Mixed, 1}, {Empty, 33457}},
    241        {0xc3ff3fff},
    242        34816};
     240       {0xc3ff3fff}}
     241;
    243242    const UnicodeSet kali_Set
    244243      {{{Empty, 1352}, {Full, 1}, {Mixed, 1}, {Empty, 33462}},
    245        {0x0000bfff},
    246        34816};
     244       {0x0000bfff}}
     245;
    247246    const UnicodeSet kana_Set
    248247      {{{Empty, 389}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 7},
     
    251250        {Empty, 31359}},
    252251       {0xfffffffe, 0xe7ffffff, 0xffff0000, 0xffff0000, 0x7fffffff,
    253         0x00ffffff, 0xfffeffc0, 0x3fffffff, 0x00000001},
    254        34816};
     252        0x00ffffff, 0xfffeffc0, 0x3fffffff, 0x00000001}}
     253;
    255254    const UnicodeSet khar_Set
    256255      {{{Empty, 2128}, {Mixed, 3}, {Empty, 32685}},
    257        {0xfeeff06f, 0x870fffff, 0x01ff00ff},
    258        34816};
     256       {0xfeeff06f, 0x870fffff, 0x01ff00ff}}
     257;
    259258    const UnicodeSet khmr_Set
    260259      {{{Empty, 188}, {Full, 2}, {Mixed, 2}, {Empty, 15}, {Full, 1},
    261260        {Empty, 34608}},
    262        {0x3fffffff, 0x03ff03ff},
    263        34816};
     261       {0x3fffffff, 0x03ff03ff}}
     262;
    264263    const UnicodeSet khoj_Set
    265264      {{{Empty, 2192}, {Mixed, 2}, {Empty, 32622}},
    266        {0xfffbffff, 0x3fffffff},
    267        34816};
     265       {0xfffbffff, 0x3fffffff}}
     266;
    268267    const UnicodeSet knda_Set
    269268      {{{Empty, 100}, {Mixed, 4}, {Empty, 34712}},
    270        {0xfffddfee, 0xf3effdff, 0x40603ddf, 0x0006ffcf},
    271        34816};
     269       {0xfffddfee, 0xf3effdff, 0x40603ddf, 0x0006ffcf}}
     270;
    272271    const UnicodeSet kthi_Set
    273272      {{{Empty, 2180}, {Full, 2}, {Mixed, 1}, {Empty, 32633}},
    274        {0x00000003},
    275        34816};
     273       {0x00000003}}
     274;
    276275    const UnicodeSet lana_Set
    277276      {{{Empty, 209}, {Full, 1}, {Mixed, 4}, {Empty, 34602}},
    278        {0x7fffffff, 0x9fffffff, 0x03ff03ff, 0x00003fff},
    279        34816};
     277       {0x7fffffff, 0x9fffffff, 0x03ff03ff, 0x00003fff}}
     278;
    280279    const UnicodeSet laoo_Set
    281280      {{{Empty, 116}, {Mixed, 3}, {Empty, 34697}},
    282        {0xfef02596, 0x3bffecae, 0xf3ff3f5f},
    283        34816};
     281       {0xfef02596, 0x3bffecae, 0xf3ff3f5f}}
     282;
    284283    const UnicodeSet latn_Set
    285284      {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 13},
     
    296295        0x000001ff, 0xfffffffc, 0xffff78ff, 0x00033fff, 0xff800000,
    297296        0xffff0000, 0xf7ffffff, 0x00000010, 0x0000007f, 0x07fffffe,
    298         0x07fffffe},
    299        34816};
     297        0x07fffffe}}
     298;
    300299    const UnicodeSet lepc_Set
    301300      {{{Empty, 224}, {Full, 1}, {Mixed, 2}, {Empty, 34589}},
    302        {0xf8ffffff, 0x0000e3ff},
    303        34816};
     301       {0xf8ffffff, 0x0000e3ff}}
     302;
    304303    const UnicodeSet limb_Set
    305304      {{{Empty, 200}, {Mixed, 3}, {Empty, 34613}},
    306        {0x7fffffff, 0x0fff0fff, 0x0000fff1},
    307        34816};
     305       {0x7fffffff, 0x0fff0fff, 0x0000fff1}}
     306;
    308307    const UnicodeSet lina_Set
    309308      {{{Empty, 2096}, {Full, 9}, {Mixed, 3}, {Empty, 32708}},
    310        {0x007fffff, 0x003fffff, 0x000000ff},
    311        34816};
     309       {0x007fffff, 0x003fffff, 0x000000ff}}
     310;
    312311    const UnicodeSet linb_Set
    313312      {{{Empty, 2048}, {Mixed, 3}, {Empty, 1}, {Full, 3}, {Mixed, 1},
    314313        {Empty, 32760}},
    315        {0xffffefff, 0xb7ffff7f, 0x3fff3fff, 0x07ffffff},
    316        34816};
     314       {0xffffefff, 0xb7ffff7f, 0x3fff3fff, 0x07ffffff}}
     315;
    317316    const UnicodeSet lisu_Set
    318317      {{{Empty, 1318}, {Mixed, 1}, {Full, 1}, {Empty, 33496}},
    319        {0xffff0000},
    320        34816};
     318       {0xffff0000}}
     319;
    321320    const UnicodeSet lyci_Set
    322321      {{{Empty, 2068}, {Mixed, 1}, {Empty, 32747}},
    323        {0x1fffffff},
    324        34816};
     322       {0x1fffffff}}
     323;
    325324    const UnicodeSet lydi_Set
    326325      {{{Empty, 2121}, {Mixed, 1}, {Empty, 32694}},
    327        {0x83ffffff},
    328        34816};
     326       {0x83ffffff}}
     327;
    329328    const UnicodeSet mahj_Set
    330329      {{{Empty, 2186}, {Mixed, 2}, {Empty, 32628}},
    331        {0xffff0000, 0x007fffff},
    332        34816};
     330       {0xffff0000, 0x007fffff}}
     331;
    333332    const UnicodeSet mand_Set
    334333      {{{Empty, 66}, {Mixed, 1}, {Empty, 34749}},
    335        {0x4fffffff},
    336        34816};
     334       {0x4fffffff}}
     335;
    337336    const UnicodeSet mani_Set
    338337      {{{Empty, 2134}, {Full, 1}, {Mixed, 1}, {Empty, 32680}},
    339        {0x007ff87f},
    340        34816};
     338       {0x007ff87f}}
     339;
    341340    const UnicodeSet mend_Set
    342341      {{{Empty, 3904}, {Full, 6}, {Mixed, 1}, {Empty, 30905}},
    343        {0x007fff9f},
    344        34816};
     342       {0x007fff9f}}
     343;
    345344    const UnicodeSet merc_Set
    346345      {{{Empty, 2125}, {Mixed, 1}, {Empty, 32690}},
    347        {0xc0ffffff},
    348        34816};
     346       {0xc0ffffff}}
     347;
    349348    const UnicodeSet mero_Set
    350349      {{{Empty, 2124}, {Full, 1}, {Empty, 32691}},
    351        {},
    352        34816};
     350       {}}
     351;
    353352    const UnicodeSet mlym_Set
    354353      {{{Empty, 104}, {Mixed, 4}, {Empty, 34708}},
    355        {0xfffddfee, 0xe7ffffff, 0x00807ddf, 0xfe3fffcf},
    356        34816};
     354       {0xfffddfee, 0xe7ffffff, 0x00807ddf, 0xfe3fffcf}}
     355;
    357356    const UnicodeSet modi_Set
    358357      {{{Empty, 2224}, {Full, 2}, {Mixed, 1}, {Empty, 32589}},
    359        {0x03ff001f},
    360        34816};
     358       {0x03ff001f}}
     359;
    361360    const UnicodeSet mong_Set
    362361      {{{Empty, 192}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 1},
    363362        {Mixed, 1}, {Empty, 34618}},
    364        {0x03ff7fd3, 0x00ffffff, 0x000007ff},
    365        34816};
     363       {0x03ff7fd3, 0x00ffffff, 0x000007ff}}
     364;
    366365    const UnicodeSet mroo_Set
    367366      {{{Empty, 2898}, {Mixed, 2}, {Empty, 31916}},
    368        {0x7fffffff, 0x0000c3ff},
    369        34816};
     367       {0x7fffffff, 0x0000c3ff}}
     368;
    370369    const UnicodeSet mtei_Set
    371370      {{{Empty, 1367}, {Mixed, 1}, {Empty, 6}, {Full, 1}, {Mixed, 1},
    372371        {Empty, 33440}},
    373        {0x007fffff, 0x03ff3fff},
    374        34816};
     372       {0x007fffff, 0x03ff3fff}}
     373;
    375374    const UnicodeSet mymr_Set
    376375      {{{Empty, 128}, {Full, 5}, {Empty, 1226}, {Mixed, 1}, {Empty, 3},
    377376        {Full, 1}, {Empty, 33452}},
    378        {0x7fffffff},
    379        34816};
     377       {0x7fffffff}}
     378;
    380379    const UnicodeSet narb_Set
    381380      {{{Empty, 2132}, {Full, 1}, {Empty, 32683}},
    382        {},
    383        34816};
     381       {}}
     382;
    384383    const UnicodeSet nbat_Set
    385384      {{{Empty, 2116}, {Mixed, 2}, {Empty, 32698}},
    386        {0x7fffffff, 0x0000ff80},
    387        34816};
     385       {0x7fffffff, 0x0000ff80}}
     386;
    388387    const UnicodeSet nkoo_Set
    389388      {{{Empty, 62}, {Full, 1}, {Mixed, 1}, {Empty, 34752}},
    390        {0x07ffffff},
    391        34816};
     389       {0x07ffffff}}
     390;
    392391    const UnicodeSet ogam_Set
    393392      {{{Empty, 180}, {Mixed, 1}, {Empty, 34635}},
    394        {0x1fffffff},
    395        34816};
     393       {0x1fffffff}}
     394;
    396395    const UnicodeSet olck_Set
    397396      {{{Empty, 226}, {Mixed, 1}, {Full, 1}, {Empty, 34588}},
    398        {0xffff0000},
    399        34816};
     397       {0xffff0000}}
     398;
    400399    const UnicodeSet orkh_Set
    401400      {{{Empty, 2144}, {Full, 2}, {Mixed, 1}, {Empty, 32669}},
    402        {0x000001ff},
    403        34816};
     401       {0x000001ff}}
     402;
    404403    const UnicodeSet orya_Set
    405404      {{{Empty, 88}, {Mixed, 4}, {Empty, 34724}},
    406        {0xfff99fee, 0xf3edfdff, 0xb0c0399f, 0x00ffffcf},
    407        34816};
     405       {0xfff99fee, 0xf3edfdff, 0xb0c0399f, 0x00ffffcf}}
     406;
    408407    const UnicodeSet osma_Set
    409408      {{{Empty, 2084}, {Mixed, 2}, {Empty, 32730}},
    410        {0x3fffffff, 0x000003ff},
    411        34816};
     409       {0x3fffffff, 0x000003ff}}
     410;
    412411    const UnicodeSet palm_Set
    413412      {{{Empty, 2115}, {Full, 1}, {Empty, 32700}},
    414        {},
    415        34816};
     413       {}}
     414;
    416415    const UnicodeSet pauc_Set
    417416      {{{Empty, 2262}, {Full, 1}, {Mixed, 1}, {Empty, 32552}},
    418        {0x01ffffff},
    419        34816};
     417       {0x01ffffff}}
     418;
    420419    const UnicodeSet perm_Set
    421420      {{{Empty, 2074}, {Mixed, 2}, {Empty, 32740}},
    422        {0xffff0000, 0x07ffffff},
    423        34816};
     421       {0xffff0000, 0x07ffffff}}
     422;
    424423    const UnicodeSet phag_Set
    425424      {{{Empty, 1346}, {Full, 1}, {Mixed, 1}, {Empty, 33468}},
    426        {0x00ffffff},
    427        34816};
     425       {0x00ffffff}}
     426;
    428427    const UnicodeSet phli_Set
    429428      {{{Empty, 2139}, {Mixed, 1}, {Empty, 32676}},
    430        {0xff07ffff},
    431        34816};
     429       {0xff07ffff}}
     430;
    432431    const UnicodeSet phlp_Set
    433432      {{{Empty, 2140}, {Mixed, 2}, {Empty, 32674}},
    434        {0x1e03ffff, 0x0000fe00},
    435        34816};
     433       {0x1e03ffff, 0x0000fe00}}
     434;
    436435    const UnicodeSet phnx_Set
    437436      {{{Empty, 2120}, {Mixed, 1}, {Empty, 32695}},
    438        {0x8fffffff},
    439        34816};
     437       {0x8fffffff}}
     438;
    440439    const UnicodeSet plrd_Set
    441440      {{{Empty, 2936}, {Full, 2}, {Mixed, 3}, {Empty, 31875}},
    442        {0xffff001f, 0x7fffffff, 0xffff8000},
    443        34816};
     441       {0xffff001f, 0x7fffffff, 0xffff8000}}
     442;
    444443    const UnicodeSet prti_Set
    445444      {{{Empty, 2138}, {Mixed, 1}, {Empty, 32677}},
    446        {0xff3fffff},
    447        34816};
     445       {0xff3fffff}}
     446;
    448447    const UnicodeSet rjng_Set
    449448      {{{Empty, 1353}, {Mixed, 2}, {Empty, 33461}},
    450        {0xffff0000, 0x800fffff},
    451        34816};
     449       {0xffff0000, 0x800fffff}}
     450;
    452451    const UnicodeSet runr_Set
    453452      {{{Empty, 181}, {Full, 2}, {Mixed, 1}, {Empty, 34632}},
    454        {0x01ffc7ff},
    455        34816};
     453       {0x01ffc7ff}}
     454;
    456455    const UnicodeSet samr_Set
    457456      {{{Empty, 64}, {Full, 1}, {Mixed, 1}, {Empty, 34750}},
    458        {0x7fff3fff},
    459        34816};
     457       {0x7fff3fff}}
     458;
    460459    const UnicodeSet sarb_Set
    461460      {{{Empty, 2131}, {Full, 1}, {Empty, 32684}},
    462        {},
    463        34816};
     461       {}}
     462;
    464463    const UnicodeSet saur_Set
    465464      {{{Empty, 1348}, {Full, 2}, {Mixed, 1}, {Empty, 33465}},
    466        {0x03ffc01f},
    467        34816};
     465       {0x03ffc01f}}
     466;
    468467    const UnicodeSet shaw_Set
    469468      {{{Empty, 2082}, {Mixed, 1}, {Full, 1}, {Empty, 32732}},
    470        {0xffff0000},
    471        34816};
     469       {0xffff0000}}
     470;
    472471    const UnicodeSet shrd_Set
    473472      {{{Empty, 2188}, {Full, 2}, {Mixed, 1}, {Empty, 32625}},
    474        {0x07ff21ff},
    475        34816};
     473       {0x07ff21ff}}
     474;
    476475    const UnicodeSet sidd_Set
    477476      {{{Empty, 2220}, {Full, 1}, {Mixed, 2}, {Empty, 32593}},
    478        {0xff3fffff, 0x000003ff},
    479        34816};
     477       {0xff3fffff, 0x000003ff}}
     478;
    480479    const UnicodeSet sind_Set
    481480      {{{Empty, 2197}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 32616}},
    482        {0xffff0000, 0x03ff07ff},
    483        34816};
     481       {0xffff0000, 0x03ff07ff}}
     482;
    484483    const UnicodeSet sinh_Set
    485484      {{{Empty, 108}, {Mixed, 4}, {Empty, 2079}, {Mixed, 1}, {Empty, 32624}},
    486        {0xfc7fffec, 0x2ffbffff, 0xff5f847f, 0x001cffc0, 0x001ffffe},
    487        34816};
     485       {0xfc7fffec, 0x2ffbffff, 0xff5f847f, 0x001cffc0, 0x001ffffe}}
     486;
    488487    const UnicodeSet sora_Set
    489488      {{{Empty, 2182}, {Mixed, 2}, {Empty, 32632}},
    490        {0xffff0000, 0x03ff01ff},
    491        34816};
     489       {0xffff0000, 0x03ff01ff}}
     490;
    492491    const UnicodeSet sund_Set
    493492      {{{Empty, 220}, {Full, 2}, {Empty, 8}, {Mixed, 1}, {Empty, 34585}},
    494        {0x000000ff},
    495        34816};
     493       {0x000000ff}}
     494;
    496495    const UnicodeSet sylo_Set
    497496      {{{Empty, 1344}, {Full, 1}, {Mixed, 1}, {Empty, 33470}},
    498        {0x00000fff},
    499        34816};
     497       {0x00000fff}}
     498;
    500499    const UnicodeSet syrc_Set
    501500      {{{Empty, 56}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 34757}},
    502        {0xffffbfff, 0x0000e7ff},
    503        34816};
     501       {0xffffbfff, 0x0000e7ff}}
     502;
    504503    const UnicodeSet tagb_Set
    505504      {{{Empty, 187}, {Mixed, 1}, {Empty, 34628}},
    506        {0x000ddfff},
    507        34816};
     505       {0x000ddfff}}
     506;
    508507    const UnicodeSet takr_Set
    509508      {{{Empty, 2228}, {Full, 1}, {Mixed, 2}, {Empty, 32585}},
    510        {0x00ffffff, 0x000003ff},
    511        34816};
     509       {0x00ffffff, 0x000003ff}}
     510;
    512511    const UnicodeSet tale_Set
    513512      {{{Empty, 202}, {Mixed, 2}, {Empty, 34612}},
    514        {0xffff0000, 0x001f3fff},
    515        34816};
     513       {0xffff0000, 0x001f3fff}}
     514;
    516515    const UnicodeSet talu_Set
    517516      {{{Empty, 204}, {Full, 1}, {Mixed, 2}, {Empty, 34609}},
    518        {0xffff0fff, 0xc7ff03ff},
    519        34816};
     517       {0xffff0fff, 0xc7ff03ff}}
     518;
    520519    const UnicodeSet taml_Set
    521520      {{{Empty, 92}, {Mixed, 4}, {Empty, 34720}},
    522        {0xd63dc7ec, 0xc3ffc718, 0x00813dc7, 0x07ffffc0},
    523        34816};
     521       {0xd63dc7ec, 0xc3ffc718, 0x00813dc7, 0x07ffffc0}}
     522;
    524523    const UnicodeSet tavt_Set
    525524      {{{Empty, 1364}, {Full, 2}, {Mixed, 1}, {Empty, 33449}},
    526        {0xf8000007},
    527        34816};
     525       {0xf8000007}}
     526;
    528527    const UnicodeSet telu_Set
    529528      {{{Empty, 96}, {Mixed, 4}, {Empty, 34716}},
    530        {0xfffddfef, 0xe3fffdff, 0x03603ddf, 0xff00ffcf},
    531        34816};
     529       {0xfffddfef, 0xe3fffdff, 0x03603ddf, 0xff00ffcf}}
     530;
    532531    const UnicodeSet tfng_Set
    533532      {{{Empty, 361}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 34452}},
    534        {0xffff0000, 0x800180ff},
    535        34816};
     533       {0xffff0000, 0x800180ff}}
     534;
    536535    const UnicodeSet tglg_Set
    537536      {{{Empty, 184}, {Mixed, 1}, {Empty, 34631}},
    538        {0x001fdfff},
    539        34816};
     537       {0x001fdfff}}
     538;
    540539    const UnicodeSet thaa_Set
    541540      {{{Empty, 60}, {Full, 1}, {Mixed, 1}, {Empty, 34754}},
    542        {0x0003ffff},
    543        34816};
     541       {0x0003ffff}}
     542;
    544543    const UnicodeSet thai_Set
    545544      {{{Empty, 112}, {Mixed, 3}, {Empty, 34701}},
    546        {0xfffffffe, 0x07ffffff, 0x0fffffff},
    547        34816};
     545       {0xfffffffe, 0x07ffffff, 0x0fffffff}}
     546;
    548547    const UnicodeSet tibt_Set
    549548      {{{Empty, 120}, {Full, 2}, {Mixed, 5}, {Empty, 34689}},
    550        {0xfffffeff, 0xfffe1fff, 0xfeffffff, 0xdfffffff, 0x061fdfff},
    551        34816};
     549       {0xfffffeff, 0xfffe1fff, 0xfeffffff, 0xdfffffff, 0x061fdfff}}
     550;
    552551    const UnicodeSet tirh_Set
    553552      {{{Empty, 2212}, {Full, 2}, {Mixed, 1}, {Empty, 32601}},
    554        {0x03ff00ff},
    555        34816};
     553       {0x03ff00ff}}
     554;
    556555    const UnicodeSet ugar_Set
    557556      {{{Empty, 2076}, {Mixed, 1}, {Empty, 32739}},
    558        {0xbfffffff},
    559        34816};
     557       {0xbfffffff}}
     558;
    560559    const UnicodeSet vaii_Set
    561560      {{{Empty, 1320}, {Full, 9}, {Mixed, 1}, {Empty, 33486}},
    562        {0x00000fff},
    563        34816};
     561       {0x00000fff}}
     562;
    564563    const UnicodeSet wara_Set
    565564      {{{Empty, 2245}, {Full, 2}, {Mixed, 1}, {Empty, 32568}},
    566        {0x8007ffff},
    567        34816};
     565       {0x8007ffff}}
     566;
    568567    const UnicodeSet xpeo_Set
    569568      {{{Empty, 2077}, {Full, 1}, {Mixed, 1}, {Empty, 32737}},
    570        {0x003fff0f},
    571        34816};
     569       {0x003fff0f}}
     570;
    572571    const UnicodeSet xsux_Set
    573572      {{{Empty, 2304}, {Full, 28}, {Mixed, 1}, {Empty, 3}, {Full, 3},
    574573        {Mixed, 1}, {Empty, 32476}},
    575        {0x01ffffff, 0x001f7fff},
    576        34816};
     574       {0x01ffffff, 0x001f7fff}}
     575;
    577576    const UnicodeSet yiii_Set
    578577      {{{Empty, 1280}, {Full, 36}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
    579578        {Empty, 33497}},
    580        {0xffff1fff, 0x0000007f},
    581        34816};
     579       {0xffff1fff, 0x0000007f}}
     580;
    582581    const UnicodeSet zinh_Set
    583582      {{{Empty, 24}, {Full, 3}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
     
    593592        0xffff0000, 0x0001ffff, 0x00003c00, 0x06000000, 0x0000ffff,
    594593        0x00003fff, 0x20000000, 0x00000001, 0xf8000380, 0x00000fe7,
    595         0x00003c00, 0x0000ffff},
    596        34816};
     594        0x00003c00, 0x0000ffff}}
     595;
    597596    const UnicodeSet zyyy_Set
    598597      {{{Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 3}, {Empty, 13},
     
    653652        0xfbffffff, 0xffffffef, 0xffffffe7, 0x0000ffff, 0x000f1fff,
    654653        0x000fffff, 0x001fffff, 0xffff0fff, 0x03ff00ff, 0xffff00ff,
    655         0x00003fff, 0x00000002},
    656        34816};
     654        0x00003fff, 0x00000002}}
     655;
    657656    const UnicodeSet zzzz_Set
    658657      {{{Empty, 27}, {Mixed, 3}, {Empty, 11}, {Mixed, 4}, {Empty, 1},
     
    797796        0xffe00000, 0x0000f000, 0xfc00ff00, 0x0000ff00, 0xffffc000,
    798797        0xff800000, 0xffe00000, 0xc0000000, 0xc0000000, 0xfffffffd,
    799         0xffff0000},
    800        34816};
    801     EnumeratedPropertyObject property_object
     798        0xffff0000}}
     799;
     800    static EnumeratedPropertyObject property_object
    802801      {sc,
    803802       SC_ns::enum_names,
  • icGREP/icgrep-devel/icgrep/UCD/unicode_set.cpp

    <
    r4617 r4618  
    2121#include "assert.h"
    2222#include <string>
     23#include <llvm/Support/raw_ostream.h>
     24#include <include/simd-lib/builtins.hpp>
    2325#include <iostream>
    24 #include <include/simd-lib/builtins.hpp>
    2526
    2627const size_t QUAD_BITS = (8 * sizeof(bitquad_t));
     
    2930const bitquad_t FULL_QUAD_MASK = -1;
    3031
    31 inline const RunStructure & get_run(UnicodeSet::quad_iterator i) {
    32     return std::get<0>(*i);
    33 }
    34 
    35 inline bitquad_t get_quad(UnicodeSet::quad_iterator i) {
    36     return std::get<1>(*i);
    37 }
    38 
    39 const std::pair<RunStructure, bitquad_t> UnicodeSet::quad_iterator::dereference() const {
    40     const RunStructure & t = mUnicodeSet.runs[mRunIndex];
    41     RunStructure s(t.mType, t.mRunLength - mOffset);
    42     const bitquad_t q = ((t.mType == Empty) ? 0 : (t.mType == Full) ? FULL_QUAD_MASK : mUnicodeSet.quads[mQuadIndex]);
    43     return std::make_pair(s, q);
    44 }
    45 
     32/** ------------------------------------------------------------------------------------------------------------- *
     33 * @brief append_run
     34 ** ------------------------------------------------------------------------------------------------------------- */
     35inline void UnicodeSet::append_run(const run_type_t type, const unsigned length) {
     36    if (length == 0) {
     37        return;
     38    }
     39    else if (runs.size() == 0) {
     40        runs.emplace_back(type, length);
     41    }
     42    else {
     43        RunStructure last_run = runs[runs.size()-1];
     44        if (last_run.mType == type) {
     45            runs.back().mRunLength += length;
     46        }
     47        else {
     48            runs.emplace_back(type, length);
     49        }
     50    }
     51}
     52
     53/** ------------------------------------------------------------------------------------------------------------- *
     54 * @brief append_quad
     55 ** ------------------------------------------------------------------------------------------------------------- */
     56inline void UnicodeSet::append_quad(const bitquad_t quad) {
     57    if (quad == 0) {
     58        append_run(Empty, 1);
     59    }
     60    else if (quad == FULL_QUAD_MASK) {
     61        append_run(Full, 1);
     62    }
     63    else {
     64        quads.push_back(quad);
     65        append_run(Mixed, 1);
     66    }
     67}
     68
     69/** ------------------------------------------------------------------------------------------------------------- *
     70 * @brief dump
     71 ** ------------------------------------------------------------------------------------------------------------- */
     72void UnicodeSet::dump(llvm::raw_ostream & out) const {
     73    auto quad_itr = quads.cbegin();
     74    for (const RunStructure & run : runs) {
     75        if (run.mType == Empty) {
     76            out << "Empty(" << run.mRunLength << ")\n";
     77        }
     78        else if (run.mType == Empty) {
     79            out << "Full(" << run.mRunLength << ")\n";
     80        }
     81        else {
     82            for (unsigned i = 0; i != run.mRunLength; ++i, ++quad_itr) {
     83                assert (quad_itr != quads.cend());
     84                out << "Mixed("; out.write_hex(*quad_itr) << ")\n";
     85            }
     86        }
     87    }
     88}
     89
     90/** ------------------------------------------------------------------------------------------------------------- *
     91 * @brief complement
     92 ** ------------------------------------------------------------------------------------------------------------- */
     93UnicodeSet UnicodeSet::complement() const {
     94    UnicodeSet set;
     95    auto quad_itr = quads.cbegin();
     96    for (const RunStructure & run : runs) {
     97        if (run.mType == Empty) {
     98            set.append_run(Full, run.mRunLength);
     99        }
     100        else if (run.mType == Empty) {
     101            set.append_run(Empty, run.mRunLength);
     102        }
     103        else {
     104            for (unsigned i = 0; i != run.mRunLength; ++i, ++quad_itr) {
     105                assert (quad_itr != quads.cend());
     106                set.append_quad(FULL_QUAD_MASK ^ *quad_itr);
     107            }
     108        }
     109    }
     110    return set;
     111}
     112
     113/** ------------------------------------------------------------------------------------------------------------- *
     114 * @brief intersection
     115 ** ------------------------------------------------------------------------------------------------------------- */
     116UnicodeSet UnicodeSet::operator&(const UnicodeSet & other) const {
     117    UnicodeSet iset;
     118    const auto e1 = quad_end();
     119    const auto e2 = other.quad_end();
     120    for (auto i1 = quad_begin(), i2 = other.quad_begin(); i1 != e1 && i2 != e2; ) {
     121        const auto run1 = i1.getRun();
     122        const auto run2 = i2.getRun();
     123        const auto n = std::min(run1.mRunLength, run2.mRunLength);
     124        if (run1.mType == run2.mType && run1.mType != Mixed) {
     125            iset.append_run(run1.mType, n);
     126            i1 += n;
     127            i2 += n;
     128        }
     129        else if (run1.mType == Full) {
     130            for (unsigned i = 0; i != n; ++i, ++i2) {
     131                iset.append_quad(i2.getQuad());
     132            }
     133            i1 += n;
     134        }
     135        else if (run2.mType == Full) {
     136            for (unsigned i = 0; i != n; ++i, ++i1) {
     137                iset.append_quad(i1.getQuad());
     138            }
     139            i2 += n;
     140        }
     141        else {
     142            for (unsigned i = 0; i < n; ++i, ++i1, ++i2) {
     143                iset.append_quad(i1.getQuad() & i2.getQuad());
     144            }
     145        }
     146    }
     147    return iset;
     148}
     149
     150/** ------------------------------------------------------------------------------------------------------------- *
     151 * @brief union
     152 ** ------------------------------------------------------------------------------------------------------------- */
     153UnicodeSet UnicodeSet::operator+(const UnicodeSet & other) const {
     154    UnicodeSet iset;
     155    const auto e1 = quad_end();
     156    const auto e2 = other.quad_end();
     157    for (auto i1 = quad_begin(), i2 = other.quad_begin(); i1 != e1 && i2 != e2; ) {
     158        const auto run1 = i1.getRun();
     159        const auto run2 = i2.getRun();
     160        const auto n = std::min(run1.mRunLength, run2.mRunLength);
     161        if (run1.mType == run2.mType && run1.mType != Mixed) {
     162            iset.append_run(run1.mType, n);
     163            i1 += n;
     164            i2 += n;
     165        }
     166        else if (run1.mType == Empty) {
     167            for (unsigned i = 0; i != n; ++i, ++i2) {
     168                iset.append_quad(i2.getQuad());
     169            }
     170            i1 += n;
     171        }
     172        else if (run2.mType == Empty) {
     173            for (unsigned i = 0; i != n; ++i, ++i1) {
     174                iset.append_quad(i1.getQuad());
     175            }
     176            i2 += n;
     177        }
     178        else {
     179            for (unsigned i = 0; i < n; ++i, ++i1, ++i2) {
     180                iset.append_quad(i1.getQuad() | i2.getQuad());
     181            }
     182        }
     183    }
     184    return iset;
     185}
     186
     187/** ------------------------------------------------------------------------------------------------------------- *
     188 * @brief difference
     189 ** ------------------------------------------------------------------------------------------------------------- */
     190UnicodeSet UnicodeSet::operator-(const UnicodeSet & other) const {
     191    UnicodeSet iset;
     192    const auto e1 = quad_end();
     193    const auto e2 = other.quad_end();
     194    for (auto i1 = quad_begin(), i2 = other.quad_begin(); i1 != e1 && i2 != e2; ) {
     195        const auto run1 = i1.getRun();
     196        const auto run2 = i2.getRun();
     197        unsigned n = std::min(run1.mRunLength, run2.mRunLength);
     198        if ((run1.mType == Empty) || (run2.mType == Full) || (run1.mType == Full && run2.mType == Empty)) {
     199            iset.append_run(run1.mType, n);
     200            i1 += n;
     201            i2 += n;
     202        }
     203        else if (run1.mType == Full) {
     204            for (unsigned i = 0; i != n; ++i, ++i2) {
     205                iset.append_quad(FULL_QUAD_MASK ^ i2.getQuad());
     206            }
     207            i1 += n;
     208        }
     209        else if (run2.mType == Empty) {
     210            for (unsigned i = 0; i != n; ++i, ++i1) {
     211                iset.append_quad(i1.getQuad());
     212            }
     213            i2 += n;
     214        }
     215        else {
     216            for (unsigned i = 0; i != n; ++i, ++i1, ++i2) {
     217                iset.append_quad(i1.getQuad() &~ i2.getQuad());
     218            }
     219        }
     220    }
     221    return iset;
     222}
     223
     224/** ------------------------------------------------------------------------------------------------------------- *
     225 * @brief symmetric difference
     226 ** ------------------------------------------------------------------------------------------------------------- */
     227UnicodeSet UnicodeSet::operator^(const UnicodeSet & other) const {
     228    UnicodeSet iset;
     229    const auto e1 = quad_end();
     230    const auto e2 = other.quad_end();
     231    for (auto i1 = quad_begin(), i2 = other.quad_begin(); i1 != e1 && i2 != e2; ) {
     232        const auto run1 = i1.getRun();
     233        const auto run2 = i2.getRun();
     234        unsigned n = std::min(run1.mRunLength, run2.mRunLength);
     235        if (run1.mType != Mixed && run2.mType != Mixed) {
     236            iset.append_run(run1.mType == run2.mType ? Empty : Full, n);
     237            i1 += n;
     238            i2 += n;
     239        }
     240        else if (run1.mType == Empty) {
     241            for (int i = 0; i < n; ++i, ++i2) {
     242                iset.append_quad(i2.getQuad());
     243            }
     244            i1 += n;
     245        }
     246        else if (run2.mType == Empty) {
     247            for (int i = 0; i < n; ++i, ++i1) {
     248                iset.append_quad(i1.getQuad());
     249            }
     250            i2 += n;
     251        }
     252        else if (run1.mType == Full) {
     253            for (int i = 0; i < n; ++i, ++i2) {
     254                iset.append_quad(FULL_QUAD_MASK ^ i2.getQuad());
     255            }
     256            i1 += n;
     257        }
     258        else if (run2.mType == Empty) {
     259            for (unsigned i = 0; i < n; ++i, ++i1) {
     260                iset.append_quad(FULL_QUAD_MASK ^ i1.getQuad());
     261            }
     262            i2 += n;
     263        }
     264        else {
     265            for (unsigned i = 0; i != n; ++i, ++i1, ++i2) {
     266                iset.append_quad(i1.getQuad() ^ i2.getQuad());
     267            }
     268        }
     269    }
     270    return iset;
     271}
     272
     273/** ------------------------------------------------------------------------------------------------------------- *
     274 * @brief contains
     275 * @param codepoint
     276 *
     277 * Return whether this UnicodeSet contains the specified code point
     278 ** ------------------------------------------------------------------------------------------------------------- */
     279bool UnicodeSet::contains(const codepoint_t codepoint) const {
     280
     281    auto n = codepoint / QUAD_BITS;
     282    unsigned runIndex = 0;
     283    unsigned quadIndex = 0;
     284
     285    for (;;) {
     286        const RunStructure & t = runs[runIndex];
     287        if (t.mRunLength >= n) {
     288            if (t.mType == Mixed) {
     289                return (quads[quadIndex + n - 1] & (static_cast<bitquad_t>(1) << (codepoint & MOD_QUAD_BIT_MASK))) != 0;
     290            }
     291            return (t.mType == Full);
     292        }
     293        if (t.mType == Mixed) {
     294            quadIndex += n;
     295        }
     296        ++runIndex;
     297        n -= t.mRunLength;
     298    }
     299
     300}
     301
     302/** ------------------------------------------------------------------------------------------------------------- *
     303 * @brief UnicodeSet::quad_iterator::advance
     304 ** ------------------------------------------------------------------------------------------------------------- */
    46305void UnicodeSet::quad_iterator::advance(unsigned n) {
    47306    while (n > 0) {
    48307        const RunStructure & t = mUnicodeSet.runs[mRunIndex];
    49         int remain = t.mRunLength - mOffset;
     308        const unsigned remain = t.mRunLength - mOffset;
    50309        if (remain > n) {
    51310            mOffset += n;
     
    74333}
    75334
    76 void UnicodeSet::append_run(run_type_t run_type, int run_length) {
    77     if (run_length == 0) {
    78         return;
    79     }
    80     else if (runs.size() == 0) {
    81         runs.emplace_back(run_type, run_length);
    82     }
    83     else {
    84         RunStructure last_run = runs[runs.size()-1];
    85         if (last_run.mType == run_type) {
    86             runs.back().mRunLength += run_length;
    87         }
    88         else {
    89             runs.emplace_back(run_type, run_length);
    90         }
    91     }
    92     quad_count += run_length;
    93 }
    94 
    95 void UnicodeSet::append_quad(bitquad_t q) {
    96     if (q == 0) {
    97         append_run(Empty, 1);
    98     }
    99     else if (q == FULL_QUAD_MASK) {
    100         append_run(Full, 1);
    101     }
    102     else {
    103         quads.push_back(q);
    104         append_run(Mixed, 1);
    105     }
    106 }
    107 
    108 void Dump_uset(const UnicodeSet & s) {
    109     for (auto it = s.quad_begin(); it != s.quad_end(); ++it) {
    110         RunStructure this_run = get_run(it);
    111         if (this_run.mType == Empty) {
    112             std::cout << "Empty(" << this_run.mRunLength << ")\n";
    113             it += this_run.mRunLength;
    114         }
    115         else if (this_run.mType == Full) {
    116             std::cout << "Full(" << this_run.mRunLength << ")\n";
    117             it += this_run.mRunLength;
    118         }
    119         else {
    120             for (int i = 0; i != this_run.mRunLength; i++) {
    121                 std::cout << "Mixed(" << std::hex << get_quad(it) << std::dec << ")\n";
    122                 ++it;
    123             }
    124         }
    125     }
    126 }
    127 
    128 UnicodeSet empty_uset() {
    129     UnicodeSet iset;
    130     iset.runs.emplace_back(Empty, UNICODE_QUAD_COUNT);
    131     iset.quad_count = UNICODE_QUAD_COUNT;
    132     return iset;
    133 }
    134 
    135 // singleton set constructor
    136 UnicodeSet singleton_uset(int codepoint) {
    137     UnicodeSet iset;
    138     int quad_no = codepoint / QUAD_BITS;
    139     bitquad_t quad_val = 1 << (codepoint & MOD_QUAD_BIT_MASK);
    140     if (quad_no > 0) iset.append_run(Empty, quad_no);
    141     iset.append_run(Mixed, 1);
    142     iset.quads.push_back(quad_val);
    143     if (quad_no < UNICODE_QUAD_COUNT - 1) iset.append_run(Empty, UNICODE_QUAD_COUNT - (quad_no + 1));
    144     iset.quad_count =  UNICODE_QUAD_COUNT;
    145     return iset;
    146 }
    147 
    148 // range set constructor
    149 UnicodeSet range_uset(int lo_codepoint, int hi_codepoint) {
    150     UnicodeSet iset;
    151     int lo_quad_no = lo_codepoint / QUAD_BITS;
    152     int hi_quad_no = hi_codepoint / QUAD_BITS;
    153     int lo_offset = lo_codepoint & MOD_QUAD_BIT_MASK;
    154     int hi_offset = hi_codepoint & MOD_QUAD_BIT_MASK;
    155     if (lo_quad_no > 0) iset.append_run(Empty, lo_quad_no);
    156     if (lo_quad_no == hi_quad_no) {
    157         bitquad_t quad = (FULL_QUAD_MASK << lo_offset) & (FULL_QUAD_MASK >> (QUAD_BITS - 1 - hi_offset));
    158         iset.append_quad(quad);
    159     }
    160     else {
    161         iset.append_quad((FULL_QUAD_MASK << lo_offset) & FULL_QUAD_MASK);
    162         iset.append_run(Full, hi_quad_no - (lo_quad_no + 1));
    163         iset.append_quad((FULL_QUAD_MASK >> (QUAD_BITS - 1 - hi_offset)) & FULL_QUAD_MASK);
    164     }
    165     if (hi_quad_no < UNICODE_QUAD_COUNT - 1) iset.append_run(Empty, UNICODE_QUAD_COUNT - (hi_quad_no + 1));
    166     return iset;
    167 }
    168 
    169 UnicodeSet uset_complement (const UnicodeSet & s) {
    170     assert(s.quad_count == UNICODE_QUAD_COUNT);
    171     UnicodeSet iset;
    172     for (auto itr = s.quad_begin(); itr != s.quad_end(); ) {
    173         auto run = get_run(itr);
    174         if (run.mType == Empty) {
    175             iset.append_run(Full, run.mRunLength);
    176             itr += run.mRunLength;
    177         }
    178         else if (run.mType == Full) {
    179             iset.append_run(Empty, run.mRunLength);
    180             itr += run.mRunLength;
    181         }
    182         else {
    183             for (unsigned i = 0; i != run.mRunLength; i++) {
    184                 iset.append_quad(FULL_QUAD_MASK ^ get_quad(itr++));
    185             }
    186         }
    187     }
    188     return iset;
    189 }
    190 
    191 UnicodeSet uset_intersection (const UnicodeSet & s1, const UnicodeSet & s2) {
    192     assert(s1.quad_count == UNICODE_QUAD_COUNT);
    193     assert(s2.quad_count == UNICODE_QUAD_COUNT);
    194     UnicodeSet iset;
    195     for (auto i1 = s1.quad_begin(), i2 = s2.quad_begin(); i1 != s1.quad_end(); ) {
    196         auto run1 = get_run(i1);
    197         auto run2 = get_run(i2);
    198         unsigned n = std::min(run1.mRunLength, run2.mRunLength);
    199         if ((run1.mType == Empty) || (run2.mType == Empty)) {
    200             iset.append_run(Empty, n);
    201             i1 += n;
    202             i2 += n;
    203         }
    204         else if ((run1.mType == Full) && (run2.mType == Full)) {
    205             iset.append_run(Full, n);
    206             i1 += n;
    207             i2 += n;
    208         }
    209         else if (run1.mType == Full) {
    210             for (unsigned i = 0; i != n; ++i, ++i2) {
    211                 iset.append_quad(get_quad(i2));
    212             }
    213             i1 += n;
    214         }
    215         else if (run2.mType == Full) {
    216             for (unsigned i = 0; i != n; ++i, ++i1) {
    217                 iset.append_quad(get_quad(i1));
    218             }
    219             i2 += n;
    220         }
    221         else {
    222             for (unsigned i = 0; i < n; ++i, ++i1, ++i2) {
    223                 iset.append_quad(get_quad(i1) & get_quad(i2));
    224             }
    225         }
    226     }
    227     return iset;
    228 }
    229 
    230 UnicodeSet uset_union (const UnicodeSet & s1, const UnicodeSet & s2) {
    231     assert(s1.quad_count == UNICODE_QUAD_COUNT);
    232     assert(s2.quad_count == UNICODE_QUAD_COUNT);
    233     UnicodeSet iset;
    234     for (auto i1 = s1.quad_begin(), i2 = s2.quad_begin(); i1 != s1.quad_end(); ) {
    235         auto run1 = get_run(i1);
    236         auto run2 = get_run(i2);
    237         unsigned n = std::min(run1.mRunLength, run2.mRunLength);
    238         if ((run1.mType == Empty) && (run2.mType == Empty)) {
    239             iset.append_run(Empty, n);
    240             i1 += n;
    241             i2 += n;
    242         }
    243         else if ((run1.mType == Full) || (run2.mType == Full)) {
    244             iset.append_run(Full, n);
    245             i1 += n;
    246             i2 += n;
    247         }
    248         else if (run1.mType == Empty) {
    249             for (unsigned i = 0; i < n; ++i, ++i2) {
    250                 iset.append_quad(get_quad(i2));
    251             }
    252             i1 += n;
    253         }
    254         else if (run2.mType == Empty) {
    255             for (unsigned i = 0; i < n; ++i, ++i1) {
    256                 iset.append_quad(get_quad(i1));
    257             }
    258             i2 += n;
    259         }
    260         else {
    261             for (unsigned i = 0; i != n; ++i, ++i1, ++i2) {
    262                 iset.append_quad(get_quad(i1) | get_quad(i2));
    263             }
    264         }
    265     }
    266     return iset;
    267 }
    268 
    269 UnicodeSet uset_difference (const UnicodeSet & s1, const UnicodeSet & s2) {
    270     assert(s1.quad_count == UNICODE_QUAD_COUNT);
    271     assert(s2.quad_count == UNICODE_QUAD_COUNT);
    272     UnicodeSet iset;
    273     for (auto i1 = s1.quad_begin(), i2 = s2.quad_begin(); i1 != s1.quad_end(); ) {
    274         auto run1 = get_run(i1);
    275         auto run2 = get_run(i2);
    276         unsigned n = std::min(run1.mRunLength, run2.mRunLength);
    277         if ((run1.mType == Empty) || (run2.mType == Full)) {
    278             iset.append_run(Empty, n);
    279             i1 += n;
    280             i2 += n;
    281         }
    282         else if ((run1.mType == Full) && (run2.mType == Empty)) {
    283             iset.append_run(Full, n);
    284             i1 += n;
    285             i2 += n;
    286         }
    287         else if (run1.mType == Full) {
    288             for (unsigned i = 0; i != n; ++i, ++i2) {
    289                 iset.append_quad(FULL_QUAD_MASK ^ get_quad(i2));
    290             }
    291             i1 += n;
    292         }
    293         else if (run2.mType == Empty) {
    294             for (unsigned i = 0; i != n; ++i, ++i1) {
    295                 iset.append_quad(get_quad(i1));
    296             }
    297             i2 += n;
    298         }
    299         else {
    300             for (unsigned i = 0; i != n; ++i, ++i1, ++i2) {
    301                 iset.append_quad(get_quad(i1) & ~get_quad(i2));
    302             }
    303         }
    304     }
    305     return iset;
    306 }
    307 
    308 UnicodeSet uset_symmetric_difference (const UnicodeSet & s1, const UnicodeSet & s2) {
    309     assert(s1.quad_count == UNICODE_QUAD_COUNT);
    310     assert(s2.quad_count == UNICODE_QUAD_COUNT);
    311     UnicodeSet iset;
    312     for (auto i1 = s1.quad_begin(), i2 = s2.quad_begin(); i1 != s1.quad_end(); ) {
    313         auto run1 = get_run(i1);
    314         auto run2 = get_run(i2);
    315         unsigned n = std::min(run1.mRunLength, run2.mRunLength);
    316         if (((run1.mType == Empty) && (run2.mType == Full)) || ((run1.mType == Full) && (run2.mType == Empty))) {
    317             iset.append_run(Full, n);
    318             i1 += n;