Changeset 4380


Ignore:
Timestamp:
Dec 31, 2014, 9:44:46 PM (4 years ago)
Author:
cameron
Message:

UCD property resolution initial check in

Location:
icGREP/icgrep-devel/icgrep
Files:
1 added
16 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/CMakeLists.txt

    r4356 r4380  
    5656add_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)
    5757add_library(CCADT cc/cc_namemap.cpp cc/cc_compiler.cpp utf_encoding.cpp utf8_encoder.cpp unicode_categories.h UCD/CaseFolding_txt.cpp)
     58add_library(UCDlib UCD/unicode_set.cpp)
    5859
    5960include_directories("${PROJECT_SOURCE_DIR}")
     
    7172target_link_libraries (CCADT PabloADT RegExpADT)
    7273target_link_libraries (PabloADT ${REQ_LLVM_LIBRARIES})
    73 target_link_libraries (icgrep PabloADT RegExpADT CCADT ${REQ_LLVM_LIBRARIES})
     74target_link_libraries (icgrep UCDlib PabloADT RegExpADT CCADT ${REQ_LLVM_LIBRARIES})
    7475# If Boost is on the system, include the headers and libraries
    7576IF(Boost_FOUND)
  • icGREP/icgrep-devel/icgrep/UCD/Blocks.h

    r4366 r4380  
    1515
    1616namespace UCD {
    17   namespace BLK {
     17  namespace BLK_ns {
    1818    const UnicodeSet aegean_numbers_Set
    1919      {{{Empty, 2056}, {Full, 2}, {Empty, 32758}},
     
    10491049       {},
    10501050       34816};
    1051     const EnumeratedPropertyObject property_object
     1051    EnumeratedPropertyObject property_object
    10521052      {blk,
    1053        BLK::value_names,
    1054        BLK::aliases_only_map,
     1053       BLK_ns::enum_names,
     1054       BLK_ns::value_names,
     1055       BLK_ns::aliases_only_map,
    10551056       {aegean_numbers_Set, alchemical_Set, alphabetic_pf_Set,
    10561057        ancient_greek_music_Set, ancient_greek_numbers_Set,
  • icGREP/icgrep-devel/icgrep/UCD/DerivedCoreProperties.h

    r4366 r4380  
    1414
    1515namespace UCD {
    16   namespace ALPHA {
     16  namespace ALPHA_ns {
    1717    const UnicodeSet codepoint_set
    1818      {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 14},
     
    146146        0x007fffff, 0x001fffff, 0x3fffffff, 0x3fffffff},
    147147       34816};
    148     const BinaryPropertyObject property_object{alpha, codepoint_set};
    149   }
    150   namespace CASED {
    151     const UnicodeSet codepoint_set
    152       {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 5},
    153         {Mixed, 2}, {Full, 5}, {Mixed, 4}, {Empty, 2}, {Mixed, 4},
    154         {Full, 1}, {Mixed, 1}, {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 4},
    155         {Empty, 88}, {Full, 1}, {Mixed, 1}, {Empty, 97}, {Full, 6},
    156         {Empty, 2}, {Full, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1},
    157         {Mixed, 3}, {Empty, 3}, {Mixed, 2}, {Empty, 3}, {Mixed, 3},
    158         {Full, 1}, {Mixed, 1}, {Empty, 24}, {Mixed, 1}, {Full, 1},
    159         {Mixed, 1}, {Empty, 56}, {Full, 1}, {Mixed, 2}, {Full, 4},
    160         {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 968}, {Full, 1},
    161         {Mixed, 2}, {Empty, 4}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
    162         {Empty, 1}, {Mixed, 1}, {Empty, 25}, {Mixed, 3}, {Empty, 636},
    163         {Mixed, 1}, {Empty, 32}, {Mixed, 2}, {Empty, 37}, {Full, 2},
    164         {Mixed, 1}, {Empty, 162}, {Full, 2}, {Empty, 1497}, {Full, 2},
    165         {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3},
    166         {Full, 10}, {Mixed, 10}, {Empty, 202}, {Mixed, 4}, {Empty, 30835}},
    167        {0x07fffffe, 0x07fffffe, 0x04200400, 0xff7fffff, 0xff7fffff,
    168         0xf7ffffff, 0xfffffff0, 0xffefffff, 0x01ffffff, 0x00000003,
    169         0x0000001f, 0x00000020, 0xbccf0000, 0xffffd740, 0xfffffffb,
    170         0xffbfffff, 0xfffffc03, 0xfffeffff, 0x007fffff, 0xfffffffe,
    171         0x000000ff, 0x000020bf, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff,
    172         0x5fdfffff, 0x0fcf1fdc, 0x1fdc1fff, 0x80020000, 0x1fff0000,
    173         0x3e2ffc84, 0xf21fbd50, 0x000043e0, 0x00000018, 0xffc00000,
    174         0x000003ff, 0xffff7fff, 0x7fffffff, 0x000c781f, 0x000020bf,
    175         0x00003fff, 0x3fffffff, 0xfffffffc, 0xffff78ff, 0x00033fff,
    176         0x07000000, 0xffff0000, 0xf7ffffff, 0x00000030, 0x00f8007f,
    177         0x07fffffe, 0x07fffffe, 0x0000ffff, 0xffdfffff, 0xdfffffff,
    178         0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f,
    179         0xffffff3f, 0xf7fffffd, 0xf7ffffff, 0xffdfffff, 0xffdfffff,
    180         0xffff7fff, 0xffff7fff, 0xfffffdff, 0xfffffdff, 0x00000ff7,
    181         0xffff0000, 0xffff03ff, 0xffff03ff, 0x000003ff},
    182        34816};
    183     const BinaryPropertyObject property_object{cased, codepoint_set};
    184   }
    185   namespace CI {
     148    BinaryPropertyObject property_object{Alpha, codepoint_set};
     149  }
     150  namespace CI_ns {
    186151    const UnicodeSet codepoint_set
    187152      {{{Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 1}, {Empty, 15},
     
    267232        0x007f0000, 0x00000002, 0x0000ffff},
    268233       34816};
    269     const BinaryPropertyObject property_object{ci, codepoint_set};
    270   }
    271   namespace CWCF {
     234    BinaryPropertyObject property_object{CI, codepoint_set};
     235  }
     236  namespace CWCF_ns {
    272237    const UnicodeSet codepoint_set
    273238      {{{Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
     
    296261        0x00f8007f, 0x07fffffe, 0x000000ff},
    297262       34816};
    298     const BinaryPropertyObject property_object{cwcf, codepoint_set};
    299   }
    300   namespace CWCM {
     263    BinaryPropertyObject property_object{CWCF, codepoint_set};
     264  }
     265  namespace CWCM_ns {
    301266    const UnicodeSet codepoint_set
    302267      {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 1},
     
    325290        0x07fffffe, 0x07fffffe, 0x0000ffff},
    326291       34816};
    327     const BinaryPropertyObject property_object{cwcm, codepoint_set};
    328   }
    329   namespace CWL {
     292    BinaryPropertyObject property_object{CWCM, codepoint_set};
     293  }
     294  namespace CWL_ns {
    330295    const UnicodeSet codepoint_set
    331296      {{{Empty, 2}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 1},
     
    351316        0x6a005555, 0x55452855, 0x00033d55, 0x07fffffe, 0x000000ff},
    352317       34816};
    353     const BinaryPropertyObject property_object{cwl, codepoint_set};
    354   }
    355   namespace CWT {
     318    BinaryPropertyObject property_object{CWL, codepoint_set};
     319  }
     320  namespace CWT_ns {
    356321    const UnicodeSet codepoint_set
    357322      {{{Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 16}, {Empty, 5},
     
    379344        0x000002aa, 0x00f8007f, 0x07fffffe, 0xffffff00, 0x0000ffff},
    380345       34816};
    381     const BinaryPropertyObject property_object{cwt, codepoint_set};
    382   }
    383   namespace CWU {
     346    BinaryPropertyObject property_object{CWT, codepoint_set};
     347  }
     348  namespace CWU_ns {
    384349    const UnicodeSet codepoint_set
    385350      {{{Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 16}, {Empty, 5},
     
    407372        0x00f8007f, 0x07fffffe, 0xffffff00, 0x0000ffff},
    408373       34816};
    409     const BinaryPropertyObject property_object{cwu, codepoint_set};
    410   }
    411   namespace DI {
     374    BinaryPropertyObject property_object{CWU, codepoint_set};
     375  }
     376  namespace CASED_ns {
     377    const UnicodeSet codepoint_set
     378      {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 5},
     379        {Mixed, 2}, {Full, 5}, {Mixed, 4}, {Empty, 2}, {Mixed, 4},
     380        {Full, 1}, {Mixed, 1}, {Full, 4}, {Mixed, 1}, {Full, 4}, {Mixed, 4},
     381        {Empty, 88}, {Full, 1}, {Mixed, 1}, {Empty, 97}, {Full, 6},
     382        {Empty, 2}, {Full, 8}, {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Full, 1},
     383        {Mixed, 3}, {Empty, 3}, {Mixed, 2}, {Empty, 3}, {Mixed, 3},
     384        {Full, 1}, {Mixed, 1}, {Empty, 24}, {Mixed, 1}, {Full, 1},
     385        {Mixed, 1}, {Empty, 56}, {Full, 1}, {Mixed, 2}, {Full, 4},
     386        {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 968}, {Full, 1},
     387        {Mixed, 2}, {Empty, 4}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
     388        {Empty, 1}, {Mixed, 1}, {Empty, 25}, {Mixed, 3}, {Empty, 636},
     389        {Mixed, 1}, {Empty, 32}, {Mixed, 2}, {Empty, 37}, {Full, 2},
     390        {Mixed, 1}, {Empty, 162}, {Full, 2}, {Empty, 1497}, {Full, 2},
     391        {Mixed, 1}, {Full, 1}, {Mixed, 3}, {Full, 1}, {Mixed, 3},
     392        {Full, 10}, {Mixed, 10}, {Empty, 202}, {Mixed, 4}, {Empty, 30835}},
     393       {0x07fffffe, 0x07fffffe, 0x04200400, 0xff7fffff, 0xff7fffff,
     394        0xf7ffffff, 0xfffffff0, 0xffefffff, 0x01ffffff, 0x00000003,
     395        0x0000001f, 0x00000020, 0xbccf0000, 0xffffd740, 0xfffffffb,
     396        0xffbfffff, 0xfffffc03, 0xfffeffff, 0x007fffff, 0xfffffffe,
     397        0x000000ff, 0x000020bf, 0x3f3fffff, 0xaaff3f3f, 0x3fffffff,
     398        0x5fdfffff, 0x0fcf1fdc, 0x1fdc1fff, 0x80020000, 0x1fff0000,
     399        0x3e2ffc84, 0xf21fbd50, 0x000043e0, 0x00000018, 0xffc00000,
     400        0x000003ff, 0xffff7fff, 0x7fffffff, 0x000c781f, 0x000020bf,
     401        0x00003fff, 0x3fffffff, 0xfffffffc, 0xffff78ff, 0x00033fff,
     402        0x07000000, 0xffff0000, 0xf7ffffff, 0x00000030, 0x00f8007f,
     403        0x07fffffe, 0x07fffffe, 0x0000ffff, 0xffdfffff, 0xdfffffff,
     404        0xebffde64, 0xffffffef, 0xdfdfe7bf, 0x7bffffff, 0xfffdfc5f,
     405        0xffffff3f, 0xf7fffffd, 0xf7ffffff, 0xffdfffff, 0xffdfffff,
     406        0xffff7fff, 0xffff7fff, 0xfffffdff, 0xfffffdff, 0x00000ff7,
     407        0xffff0000, 0xffff03ff, 0xffff03ff, 0x000003ff},
     408       34816};
     409    BinaryPropertyObject property_object{Cased, codepoint_set};
     410  }
     411  namespace DI_ns {
    412412    const UnicodeSet codepoint_set
    413413      {{{Empty, 5}, {Mixed, 1}, {Empty, 20}, {Mixed, 1}, {Empty, 21},
     
    423423        0x0000000f, 0x07f80000},
    424424       34816};
    425     const BinaryPropertyObject property_object{di, codepoint_set};
    426   }
    427   namespace GR_BASE {
     425    BinaryPropertyObject property_object{DI, codepoint_set};
     426  }
     427  namespace GR_BASE_ns {
    428428    const UnicodeSet codepoint_set
    429429      {{{Empty, 1}, {Full, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
     
    571571        0x007fffff, 0x001fffff, 0x3fffffff, 0x3fffffff},
    572572       34816};
    573     const BinaryPropertyObject property_object{gr_base, codepoint_set};
    574   }
    575   namespace GR_EXT {
     573    BinaryPropertyObject property_object{Gr_Base, codepoint_set};
     574  }
     575  namespace GR_EXT_ns {
    576576    const UnicodeSet codepoint_set
    577577      {{{Empty, 24}, {Full, 3}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
     
    639639        0x00000fe7, 0x00003c00, 0x0000001c, 0x007f0000, 0x0000ffff},
    640640       34816};
    641     const BinaryPropertyObject property_object{gr_ext, codepoint_set};
    642   }
    643   namespace GR_LINK {
     641    BinaryPropertyObject property_object{Gr_Ext, codepoint_set};
     642  }
     643  namespace GR_LINK_ns {
    644644    const UnicodeSet codepoint_set
    645645      {{{Empty, 74}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
     
    668668        0x00002000, 0x00000004, 0x80000000, 0x80000000, 0x00400000},
    669669       34816};
    670     const BinaryPropertyObject property_object{gr_link, codepoint_set};
    671   }
    672   namespace IDC {
     670    BinaryPropertyObject property_object{Gr_Link, codepoint_set};
     671  }
     672  namespace IDC_ns {
    673673    const UnicodeSet codepoint_set
    674674      {{{Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Full, 14},
     
    801801        0x007fffff, 0x001fffff, 0x3fffffff, 0x3fffffff, 0x0000ffff},
    802802       34816};
    803     const BinaryPropertyObject property_object{idc, codepoint_set};
    804   }
    805   namespace IDS {
     803    BinaryPropertyObject property_object{IDC, codepoint_set};
     804  }
     805  namespace IDS_ns {
    806806    const UnicodeSet codepoint_set
    807807      {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 14},
     
    932932        0x001fffff, 0x3fffffff, 0x3fffffff},
    933933       34816};
    934     const BinaryPropertyObject property_object{ids, codepoint_set};
    935   }
    936   namespace LOWER {
     934    BinaryPropertyObject property_object{IDS, codepoint_set};
     935  }
     936  namespace LOWER_ns {
    937937    const UnicodeSet codepoint_set
    938938      {{{Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 14}, {Full, 1},
     
    970970        0x003f7fff, 0xffff0000, 0x0000fdff, 0xfffffc00, 0x00000bf7},
    971971       34816};
    972     const BinaryPropertyObject property_object{lower, codepoint_set};
    973   }
    974   namespace MATH {
     972    BinaryPropertyObject property_object{Lower, codepoint_set};
     973  }
     974  namespace MATH_ns {
    975975    const UnicodeSet codepoint_set
    976976      {{{Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 22},
     
    998998        0xaa96ea84, 0x5ef7f796, 0x0ffffbff, 0x0ffffbee, 0x00030000},
    999999       34816};
    1000     const BinaryPropertyObject property_object{math, codepoint_set};
    1001   }
    1002   namespace UPPER {
     1000    BinaryPropertyObject property_object{Math, codepoint_set};
     1001  }
     1002  namespace UPPER_ns {
    10031003    const UnicodeSet codepoint_set
    10041004      {{{Empty, 2}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 1},
     
    10331033        0x000003ff},
    10341034       34816};
    1035     const BinaryPropertyObject property_object{upper, codepoint_set};
    1036   }
    1037   namespace XIDC {
     1035    BinaryPropertyObject property_object{Upper, codepoint_set};
     1036  }
     1037  namespace XIDC_ns {
    10381038    const UnicodeSet codepoint_set
    10391039      {{{Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Full, 14},
     
    11681168        0x3fffffff, 0x0000ffff},
    11691169       34816};
    1170     const BinaryPropertyObject property_object{xidc, codepoint_set};
    1171   }
    1172   namespace XIDS {
     1170    BinaryPropertyObject property_object{XIDC, codepoint_set};
     1171  }
     1172  namespace XIDS_ns {
    11731173    const UnicodeSet codepoint_set
    11741174      {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 3}, {Full, 14},
     
    13001300        0x3fffffff},
    13011301       34816};
    1302     const BinaryPropertyObject property_object{xids, codepoint_set};
     1302    BinaryPropertyObject property_object{XIDS, codepoint_set};
    13031303  }
    13041304}
  • icGREP/icgrep-devel/icgrep/UCD/DerivedGeneralCategory.h

    r4366 r4380  
    1515
    1616namespace UCD {
    17   namespace GC {
     17  namespace GC_ns {
    1818    const UnicodeSet c_Set
    1919      {{{Full, 1}, {Empty, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     
    13571357        0x80000000, 0x00000001},
    13581358       34816};
    1359     const EnumeratedPropertyObject property_object
     1359    EnumeratedPropertyObject property_object
    13601360      {gc,
    1361        GC::value_names,
    1362        GC::aliases_only_map,
     1361       GC_ns::enum_names,
     1362       GC_ns::value_names,
     1363       GC_ns::aliases_only_map,
    13631364       {c_Set, cc_Set, cf_Set, cn_Set, co_Set, cs_Set, l_Set, lc_Set,
    13641365        ll_Set, lm_Set, lo_Set, lt_Set, lu_Set, m_Set, mc_Set, me_Set,
  • icGREP/icgrep-devel/icgrep/UCD/EastAsianWidth.h

    r4366 r4380  
    1515
    1616namespace UCD {
    17   namespace EA {
     17  namespace EA_ns {
    1818    const UnicodeSet a_Set
    1919      {{{Empty, 5}, {Mixed, 7}, {Empty, 2}, {Mixed, 1}, {Empty, 3},
     
    117117        0x3fffffff},
    118118       34816};
    119     const EnumeratedPropertyObject property_object
     119    EnumeratedPropertyObject property_object
    120120      {ea,
    121        EA::value_names,
    122        EA::aliases_only_map,
     121       EA_ns::enum_names,
     122       EA_ns::value_names,
     123       EA_ns::aliases_only_map,
    123124       {a_Set, f_Set, h_Set, n_Set, na_Set, w_Set
    124125       }};
  • icGREP/icgrep-devel/icgrep/UCD/HangulSyllableType.h

    r4366 r4380  
    1515
    1616namespace UCD {
    17   namespace HST {
     17  namespace HST_ns {
    1818    const UnicodeSet l_Set
    1919      {{{Empty, 136}, {Full, 3}, {Empty, 1216}, {Mixed, 1}, {Empty, 33460}},
     
    181181       {0x000000ff, 0xffff0000, 0x0000007f},
    182182       34816};
    183     const EnumeratedPropertyObject property_object
     183    EnumeratedPropertyObject property_object
    184184      {hst,
    185        HST::value_names,
    186        HST::aliases_only_map,
     185       HST_ns::enum_names,
     186       HST_ns::value_names,
     187       HST_ns::aliases_only_map,
    187188       {l_Set, lv_Set, lvt_Set, na_Set, t_Set, v_Set
    188189       }};
  • icGREP/icgrep-devel/icgrep/UCD/LineBreak.h

    r4366 r4380  
    1515
    1616namespace UCD {
    17   namespace LB {
     17  namespace LB_ns {
    1818    const UnicodeSet ai_Set
    1919      {{{Empty, 5}, {Mixed, 3}, {Empty, 14}, {Mixed, 1}, {Empty, 233},
     
    827827       {0x00000800},
    828828       34816};
    829     const EnumeratedPropertyObject property_object
     829    EnumeratedPropertyObject property_object
    830830      {lb,
    831        LB::value_names,
    832        LB::aliases_only_map,
     831       LB_ns::enum_names,
     832       LB_ns::value_names,
     833       LB_ns::aliases_only_map,
    833834       {ai_Set, al_Set, b2_Set, ba_Set, bb_Set, bk_Set, cb_Set, cj_Set,
    834835        cl_Set, cm_Set, cp_Set, cr_Set, ex_Set, gl_Set, h2_Set, h3_Set,
  • icGREP/icgrep-devel/icgrep/UCD/PropList.h

    r4366 r4380  
    1414
    1515namespace UCD {
    16   namespace AHEX {
     16  namespace AHEX_ns {
    1717    const UnicodeSet codepoint_set
    1818      {{{Empty, 1}, {Mixed, 3}, {Empty, 34812}},
    1919       {0x03ff0000, 0x0000007e, 0x0000007e},
    2020       34816};
    21     const BinaryPropertyObject property_object{ahex, codepoint_set};
    22   }
    23   namespace BIDI_C {
     21    BinaryPropertyObject property_object{AHex, codepoint_set};
     22  }
     23  namespace BIDI_C_ns {
    2424    const UnicodeSet codepoint_set
    2525      {{{Empty, 48}, {Mixed, 1}, {Empty, 207}, {Mixed, 2}, {Empty, 1},
     
    2727       {0x10000000, 0x0000c000, 0x00007c00, 0x000003c0},
    2828       34816};
    29     const BinaryPropertyObject property_object{bidi_c, codepoint_set};
    30   }
    31   namespace DASH {
     29    BinaryPropertyObject property_object{Bidi_C, codepoint_set};
     30  }
     31  namespace DASH_ns {
    3232    const UnicodeSet codepoint_set
    3333      {{{Empty, 1}, {Mixed, 1}, {Empty, 42}, {Mixed, 2}, {Empty, 114},
     
    4141        0x00000001, 0x00060000, 0x01000000, 0x00000008, 0x00002000},
    4242       34816};
    43     const BinaryPropertyObject property_object{dash, codepoint_set};
    44   }
    45   namespace DEP {
     43    BinaryPropertyObject property_object{Dash, codepoint_set};
     44  }
     45  namespace DEP_ns {
    4646    const UnicodeSet codepoint_set
    4747      {{{Empty, 10}, {Mixed, 1}, {Empty, 40}, {Mixed, 1}, {Empty, 71},
     
    5252        0x00000600, 0x00000002},
    5353       34816};
    54     const BinaryPropertyObject property_object{dep, codepoint_set};
    55   }
    56   namespace DIA {
     54    BinaryPropertyObject property_object{Dep, codepoint_set};
     55  }
     56  namespace DIA_ns {
    5757    const UnicodeSet codepoint_set
    5858      {{{Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 15},
     
    114114        0xf807e380, 0x00000fe7, 0x00003c00, 0x007f0000},
    115115       34816};
    116     const BinaryPropertyObject property_object{dia, codepoint_set};
    117   }
    118   namespace EXT {
     116    BinaryPropertyObject property_object{Dia, codepoint_set};
     117  }
     118  namespace EXT_ns {
    119119    const UnicodeSet codepoint_set
    120120      {{{Empty, 5}, {Mixed, 1}, {Empty, 16}, {Mixed, 1}, {Empty, 27},
     
    135135        0x0000000c},
    136136       34816};
    137     const BinaryPropertyObject property_object{ext, codepoint_set};
    138   }
    139   namespace HEX {
     137    BinaryPropertyObject property_object{Ext, codepoint_set};
     138  }
     139  namespace HEX_ns {
    140140    const UnicodeSet codepoint_set
    141141      {{{Empty, 1}, {Mixed, 3}, {Empty, 2036}, {Mixed, 3}, {Empty, 32773}},
     
    143143        0x0000007e},
    144144       34816};
    145     const BinaryPropertyObject property_object{hex, codepoint_set};
    146   }
    147   namespace HYPHEN {
     145    BinaryPropertyObject property_object{Hex, codepoint_set};
     146  }
     147  namespace HYPHEN_ns {
    148148    const UnicodeSet codepoint_set
    149149      {{{Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 38},
     
    155155        0x00800000, 0x08000000, 0x00000008, 0x00002000, 0x00000020},
    156156       34816};
    157     const BinaryPropertyObject property_object{hyphen, codepoint_set};
    158   }
    159   namespace IDEO {
     157    BinaryPropertyObject property_object{Hyphen, codepoint_set};
     158  }
     159  namespace IDSB_ns {
     160    const UnicodeSet codepoint_set
     161      {{{Empty, 383}, {Mixed, 1}, {Empty, 34432}},
     162       {0x0ff30000},
     163       34816};
     164    BinaryPropertyObject property_object{IDSB, codepoint_set};
     165  }
     166  namespace IDST_ns {
     167    const UnicodeSet codepoint_set
     168      {{{Empty, 383}, {Mixed, 1}, {Empty, 34432}},
     169       {0x000c0000},
     170       34816};
     171    BinaryPropertyObject property_object{IDST, codepoint_set};
     172  }
     173  namespace IDEO_ns {
    160174    const UnicodeSet codepoint_set
    161175      {{{Empty, 384}, {Mixed, 2}, {Empty, 30}, {Full, 205}, {Mixed, 1},
     
    167181        0x03ffffff, 0x007fffff, 0x001fffff, 0x3fffffff, 0x3fffffff},
    168182       34816};
    169     const BinaryPropertyObject property_object{ideo, codepoint_set};
    170   }
    171   namespace IDSB {
    172     const UnicodeSet codepoint_set
    173       {{{Empty, 383}, {Mixed, 1}, {Empty, 34432}},
    174        {0x0ff30000},
    175        34816};
    176     const BinaryPropertyObject property_object{idsb, codepoint_set};
    177   }
    178   namespace IDST {
    179     const UnicodeSet codepoint_set
    180       {{{Empty, 383}, {Mixed, 1}, {Empty, 34432}},
    181        {0x000c0000},
    182        34816};
    183     const BinaryPropertyObject property_object{idst, codepoint_set};
    184   }
    185   namespace JOIN_C {
     183    BinaryPropertyObject property_object{Ideo, codepoint_set};
     184  }
     185  namespace JOIN_C_ns {
    186186    const UnicodeSet codepoint_set
    187187      {{{Empty, 256}, {Mixed, 1}, {Empty, 34559}},
    188188       {0x00003000},
    189189       34816};
    190     const BinaryPropertyObject property_object{join_c, codepoint_set};
    191   }
    192   namespace LOE {
     190    BinaryPropertyObject property_object{Join_C, codepoint_set};
     191  }
     192  namespace LOE_ns {
    193193    const UnicodeSet codepoint_set
    194194      {{{Empty, 114}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 1246},
     
    196196       {0x0000001f, 0x0000001f, 0x1a600000},
    197197       34816};
    198     const BinaryPropertyObject property_object{loe, codepoint_set};
    199   }
    200   namespace NCHAR {
     198    BinaryPropertyObject property_object{LOE, codepoint_set};
     199  }
     200  namespace NCHAR_ns {
    201201    const UnicodeSet codepoint_set
    202202      {{{Empty, 2030}, {Mixed, 2}, {Empty, 15}, {Mixed, 1}, {Empty, 2047},
     
    213213        0xc0000000, 0xc0000000, 0xc0000000, 0xc0000000},
    214214       34816};
    215     const BinaryPropertyObject property_object{nchar, codepoint_set};
    216   }
    217   namespace OALPHA {
     215    BinaryPropertyObject property_object{NChar, codepoint_set};
     216  }
     217  namespace OALPHA_ns {
    218218    const UnicodeSet codepoint_set
    219219      {{{Empty, 26}, {Mixed, 1}, {Empty, 18}, {Mixed, 2}, {Empty, 1},
     
    269269        0x000003ff},
    270270       34816};
    271     const BinaryPropertyObject property_object{oalpha, codepoint_set};
    272   }
    273   namespace ODI {
     271    BinaryPropertyObject property_object{OAlpha, codepoint_set};
     272  }
     273  namespace ODI_ns {
    274274    const UnicodeSet codepoint_set
    275275      {{{Empty, 26}, {Mixed, 1}, {Empty, 111}, {Mixed, 2}, {Empty, 49},
     
    281281        0x00000010, 0x00000001, 0x01ff0000, 0xfffffffd, 0xffff0000},
    282282       34816};
    283     const BinaryPropertyObject property_object{odi, codepoint_set};
    284   }
    285   namespace OGR_EXT {
     283    BinaryPropertyObject property_object{ODI, codepoint_set};
     284  }
     285  namespace OGR_EXT_ns {
    286286    const UnicodeSet codepoint_set
    287287      {{{Empty, 77}, {Mixed, 2}, {Empty, 10}, {Mixed, 2}, {Empty, 2},
     
    296296        0x20010000, 0x00008000, 0x0007c020},
    297297       34816};
    298     const BinaryPropertyObject property_object{ogr_ext, codepoint_set};
    299   }
    300   namespace OIDC {
     298    BinaryPropertyObject property_object{OGr_Ext, codepoint_set};
     299  }
     300  namespace OIDC_ns {
    301301    const UnicodeSet codepoint_set
    302302      {{{Empty, 5}, {Mixed, 1}, {Empty, 22}, {Mixed, 1}, {Empty, 126},
     
    304304       {0x00800000, 0x00000080, 0x0003fe00, 0x04000000},
    305305       34816};
    306     const BinaryPropertyObject property_object{oidc, codepoint_set};
    307   }
    308   namespace OIDS {
     306    BinaryPropertyObject property_object{OIDC, codepoint_set};
     307  }
     308  namespace OIDS_ns {
    309309    const UnicodeSet codepoint_set
    310310      {{{Empty, 264}, {Mixed, 2}, {Empty, 122}, {Mixed, 1}, {Empty, 34427}},
    311311       {0x01000000, 0x00004000, 0x18000000},
    312312       34816};
    313     const BinaryPropertyObject property_object{oids, codepoint_set};
    314   }
    315   namespace OLOWER {
     313    BinaryPropertyObject property_object{OIDS, codepoint_set};
     314  }
     315  namespace OLOWER_ns {
    316316    const UnicodeSet codepoint_set
    317317      {{{Empty, 5}, {Mixed, 1}, {Empty, 15}, {Mixed, 3}, {Empty, 2},
     
    326326        0x30000000, 0x00010000, 0x03000000, 0xf0000000},
    327327       34816};
    328     const BinaryPropertyObject property_object{olower, codepoint_set};
    329   }
    330   namespace OMATH {
     328    BinaryPropertyObject property_object{OLower, codepoint_set};
     329  }
     330  namespace OMATH_ns {
    331331    const UnicodeSet codepoint_set
    332332      {{{Empty, 2}, {Mixed, 1}, {Empty, 27}, {Mixed, 2}, {Empty, 224},
     
    352352        0x0ffffbff, 0x0ffffbee},
    353353       34816};
    354     const BinaryPropertyObject property_object{omath, codepoint_set};
    355   }
    356   namespace OUPPER {
     354    BinaryPropertyObject property_object{OMath, codepoint_set};
     355  }
     356  namespace OUPPER_ns {
    357357    const UnicodeSet codepoint_set
    358358      {{{Empty, 267}, {Mixed, 1}, {Empty, 25}, {Mixed, 2}, {Empty, 3682},
     
    361361        0xffff03ff, 0x000003ff},
    362362       34816};
    363     const BinaryPropertyObject property_object{oupper, codepoint_set};
    364   }
    365   namespace PAT_SYN {
     363    BinaryPropertyObject property_object{OUpper, codepoint_set};
     364  }
     365  namespace PAT_SYN_ns {
    366366    const UnicodeSet codepoint_set
    367367      {{{Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3}, {Empty, 248},
     
    375375        0x00000060},
    376376       34816};
    377     const BinaryPropertyObject property_object{pat_syn, codepoint_set};
    378   }
    379   namespace PAT_WS {
     377    BinaryPropertyObject property_object{Pat_Syn, codepoint_set};
     378  }
     379  namespace PAT_WS_ns {
    380380    const UnicodeSet codepoint_set
    381381      {{{Mixed, 2}, {Empty, 2}, {Mixed, 1}, {Empty, 251}, {Mixed, 2},
     
    383383       {0x00003e00, 0x00000001, 0x00000020, 0x0000c000, 0x00000300},
    384384       34816};
    385     const BinaryPropertyObject property_object{pat_ws, codepoint_set};
    386   }
    387   namespace QMARK {
     385    BinaryPropertyObject property_object{Pat_WS, codepoint_set};
     386  }
     387  namespace QMARK_ns {
    388388    const UnicodeSet codepoint_set
    389389      {{{Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 250},
     
    394394        0xe000f000, 0x0000001e, 0x00000084, 0x0000000c},
    395395       34816};
    396     const BinaryPropertyObject property_object{qmark, codepoint_set};
    397   }
    398   namespace RADICAL {
     396    BinaryPropertyObject property_object{QMark, codepoint_set};
     397  }
     398  namespace RADICAL_ns {
    399399    const UnicodeSet codepoint_set
    400400      {{{Empty, 372}, {Mixed, 1}, {Full, 2}, {Mixed, 1}, {Full, 6},
     
    402402       {0xfbffffff, 0x000fffff, 0x003fffff},
    403403       34816};
    404     const BinaryPropertyObject property_object{radical, codepoint_set};
    405   }
    406   namespace SD {
     404    BinaryPropertyObject property_object{Radical, codepoint_set};
     405  }
     406  namespace SD_ns {
    407407    const UnicodeSet codepoint_set
    408408      {{{Empty, 3}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 8},
     
    421421        0x00c00000, 0x00000c00, 0xc0000000, 0x000c0000},
    422422       34816};
    423     const BinaryPropertyObject property_object{sd, codepoint_set};
    424   }
    425   namespace STERM {
     423    BinaryPropertyObject property_object{SD, codepoint_set};
     424  }
     425  namespace STERM_ns {
    426426    const UnicodeSet codepoint_set
    427427      {{{Empty, 1}, {Mixed, 1}, {Empty, 42}, {Mixed, 1}, {Empty, 3},
     
    455455        0x01800000, 0x00000010, 0x80000000},
    456456       34816};
    457     const BinaryPropertyObject property_object{sterm, codepoint_set};
    458   }
    459   namespace TERM {
     457    BinaryPropertyObject property_object{STerm, codepoint_set};
     458  }
     459  namespace TERM_ns {
    460460    const UnicodeSet codepoint_set
    461461      {{{Empty, 1}, {Mixed, 1}, {Empty, 25}, {Mixed, 2}, {Empty, 15},
     
    499499        0x00000010, 0x80000000},
    500500       34816};
    501     const BinaryPropertyObject property_object{term, codepoint_set};
    502   }
    503   namespace UIDEO {
     501    BinaryPropertyObject property_object{Term, codepoint_set};
     502  }
     503  namespace UIDEO_ns {
    504504    const UnicodeSet codepoint_set
    505505      {{{Empty, 416}, {Full, 205}, {Mixed, 1}, {Empty, 2}, {Full, 654},
     
    510510        0x001fffff, 0x3fffffff},
    511511       34816};
    512     const BinaryPropertyObject property_object{uideo, codepoint_set};
    513   }
    514   namespace VS {
     512    BinaryPropertyObject property_object{UIdeo, codepoint_set};
     513  }
     514  namespace VS_ns {
    515515    const UnicodeSet codepoint_set
    516516      {{{Empty, 192}, {Mixed, 1}, {Empty, 1839}, {Mixed, 1}, {Empty, 26647},
     
    518518       {0x00003800, 0x0000ffff, 0x0000ffff},
    519519       34816};
    520     const BinaryPropertyObject property_object{vs, codepoint_set};
    521   }
    522   namespace WSPACE {
     520    BinaryPropertyObject property_object{VS, codepoint_set};
     521  }
     522  namespace WSPACE_ns {
    523523    const UnicodeSet codepoint_set
    524524      {{{Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 174}, {Mixed, 1},
     
    527527        0x000007ff, 0x00008300, 0x80000000, 0x00000001},
    528528       34816};
    529     const BinaryPropertyObject property_object{wspace, codepoint_set};
     529    BinaryPropertyObject property_object{WSpace, codepoint_set};
    530530  }
    531531}
  • icGREP/icgrep-devel/icgrep/UCD/PropertyAliases.h

    r4366 r4380  
    1515namespace UCD {
    1616  enum property_t {
    17 cjkaccountingnumeric, cjkothernumeric, cjkprimarynumeric, nv, cf,
    18     cjkcompatibilityvariant, dm, fc_nfkc, lc, nfkc_cf, scf, slc, stc, suc,
    19     tc, uc, bmg, bpb, cjkiicore, cjkirg_gsource, cjkirg_hsource,
    20     cjkirg_jsource, cjkirg_kpsource, cjkirg_ksource, cjkirg_msource,
    21     cjkirg_tsource, cjkirg_usource, cjkirg_vsource, cjkrsunicode, isc, jsn,
    22     na, na1, name_alias, scx, age, blk, sc, bc, bpt, ccc, dt, ea, gc, gcb,
    23     hst, inmc, insc, jg, jt, lb, nfc_qc, nfd_qc, nfkc_qc, nfkd_qc, nt, sb,
    24     wb, ahex, alpha, bidi_c, bidi_m, cased, ce, ci, comp_ex, cwcf, cwcm,
    25     cwkcf, cwl, cwt, cwu, dash, dep, di, dia, ext, gr_base, gr_ext, gr_link,
    26     hex, hyphen, idc, ideo, ids, idsb, idst, join_c, loe, lower, math,
    27     nchar, oalpha, odi, ogr_ext, oidc, oids, olower, omath, oupper, pat_syn,
    28     pat_ws, qmark, radical, sd, sterm, term, uideo, upper, vs, wspace, xidc,
    29     xids, xo_nfc, xo_nfd, xo_nfkc, xo_nfkd
     17cjkAccountingNumeric, cjkOtherNumeric, cjkPrimaryNumeric, nv, cf,
     18    cjkCompatibilityVariant, dm, FC_NFKC, lc, NFKC_CF, scf, slc, stc, suc,
     19    tc, uc, bmg, bpb, cjkIICore, cjkIRG_GSource, cjkIRG_HSource,
     20    cjkIRG_JSource, cjkIRG_KPSource, cjkIRG_KSource, cjkIRG_MSource,
     21    cjkIRG_TSource, cjkIRG_USource, cjkIRG_VSource, cjkRSUnicode, isc, JSN,
     22    na, na1, Name_Alias, scx, age, blk, sc, bc, bpt, ccc, dt, ea, gc, GCB,
     23    hst, InMC, InSC, jg, jt, lb, NFC_QC, NFD_QC, NFKC_QC, NFKD_QC, nt, SB,
     24    WB, AHex, Alpha, Bidi_C, Bidi_M, Cased, CE, CI, Comp_Ex, CWCF, CWCM,
     25    CWKCF, CWL, CWT, CWU, Dash, Dep, DI, Dia, Ext, Gr_Base, Gr_Ext, Gr_Link,
     26    Hex, Hyphen, IDC, Ideo, IDS, IDSB, IDST, Join_C, LOE, Lower, Math,
     27    NChar, OAlpha, ODI, OGr_Ext, OIDC, OIDS, OLower, OMath, OUpper, Pat_Syn,
     28    Pat_WS, QMark, Radical, SD, STerm, Term, UIdeo, Upper, VS, WSpace, XIDC,
     29    XIDS, XO_NFC, XO_NFD, XO_NFKC, XO_NFKD
    3030  };
    3131  const std::vector<std::string> property_full_name = {
     
    6969  };
    7070  const std::unordered_map<std::string, property_t> alias_map = {
    71 {"age", age}, {"ahex", ahex}, {"alpha", alpha}, {"alphabetic", alpha},
    72     {"asciihexdigit", ahex}, {"bc", bc}, {"bidic", bidi_c},
    73     {"bidiclass", bc}, {"bidicontrol", bidi_c}, {"bidim", bidi_m},
    74     {"bidimirrored", bidi_m}, {"bidimirroringglyph", bmg},
     71{"age", age}, {"ahex", AHex}, {"alpha", Alpha}, {"alphabetic", Alpha},
     72    {"asciihexdigit", AHex}, {"bc", bc}, {"bidic", Bidi_C},
     73    {"bidiclass", bc}, {"bidicontrol", Bidi_C}, {"bidim", Bidi_M},
     74    {"bidimirrored", Bidi_M}, {"bidimirroringglyph", bmg},
    7575    {"bidipairedbracket", bpb}, {"bidipairedbrackettype", bpt},
    7676    {"blk", blk}, {"block", blk}, {"bmg", bmg}, {"bpb", bpb}, {"bpt", bpt},
    77     {"c", isc}, {"canonicalcombiningclass", ccc}, {"cased", cased},
    78     {"casefolding", cf}, {"caseignorable", ci}, {"ccc", ccc}, {"ce", ce},
    79     {"cf", cf}, {"changeswhencasefolded", cwcf},
    80     {"changeswhencasemapped", cwcm}, {"changeswhenlowercased", cwl},
    81     {"changeswhennfkccasefolded", cwkcf}, {"changeswhentitlecased", cwt},
    82     {"changeswhenuppercased", cwu}, {"ci", ci},
    83     {"cjkaccountingnumeric", cjkaccountingnumeric},
    84     {"cjkcompatibilityvariant", cjkcompatibilityvariant},
    85     {"cjkiicore", cjkiicore}, {"cjkirggsource", cjkirg_gsource},
    86     {"cjkirghsource", cjkirg_hsource}, {"cjkirgjsource", cjkirg_jsource},
    87     {"cjkirgkpsource", cjkirg_kpsource}, {"cjkirgksource", cjkirg_ksource},
    88     {"cjkirgmsource", cjkirg_msource}, {"cjkirgtsource", cjkirg_tsource},
    89     {"cjkirgusource", cjkirg_usource}, {"cjkirgvsource", cjkirg_vsource},
    90     {"cjkothernumeric", cjkothernumeric},
    91     {"cjkprimarynumeric", cjkprimarynumeric},
    92     {"cjkrsunicode", cjkrsunicode}, {"compex", comp_ex},
    93     {"compositionexclusion", ce}, {"cwcf", cwcf}, {"cwcm", cwcm},
    94     {"cwkcf", cwkcf}, {"cwl", cwl}, {"cwt", cwt}, {"cwu", cwu},
    95     {"dash", dash}, {"decompositionmapping", dm}, {"decompositiontype", dt},
    96     {"defaultignorablecodepoint", di}, {"dep", dep}, {"deprecated", dep},
    97     {"di", di}, {"dia", dia}, {"diacritic", dia}, {"dm", dm}, {"dt", dt},
    98     {"ea", ea}, {"eastasianwidth", ea}, {"expandsonnfc", xo_nfc},
    99     {"expandsonnfd", xo_nfd}, {"expandsonnfkc", xo_nfkc},
    100     {"expandsonnfkd", xo_nfkd}, {"ext", ext}, {"extender", ext},
    101     {"fcnfkc", fc_nfkc}, {"fcnfkcclosure", fc_nfkc},
    102     {"fullcompositionexclusion", comp_ex}, {"gc", gc}, {"gcb", gcb},
    103     {"generalcategory", gc}, {"graphemebase", gr_base},
    104     {"graphemeclusterbreak", gcb}, {"graphemeextend", gr_ext},
    105     {"graphemelink", gr_link}, {"grbase", gr_base}, {"grext", gr_ext},
    106     {"grlink", gr_link}, {"hangulsyllabletype", hst}, {"hex", hex},
    107     {"hexdigit", hex}, {"hst", hst}, {"hyphen", hyphen}, {"idc", idc},
    108     {"idcontinue", idc}, {"ideo", ideo}, {"ideographic", ideo},
    109     {"ids", ids}, {"idsb", idsb}, {"idsbinaryoperator", idsb},
    110     {"idst", idst}, {"idstart", ids}, {"idstrinaryoperator", idst},
    111     {"indicmatracategory", inmc}, {"indicsyllabiccategory", insc},
    112     {"inmc", inmc}, {"insc", insc}, {"jamoshortname", jsn}, {"jg", jg},
    113     {"joinc", join_c}, {"joincontrol", join_c}, {"joininggroup", jg},
    114     {"joiningtype", jt}, {"jsn", jsn}, {"jt", jt},
    115     {"kaccountingnumeric", cjkaccountingnumeric},
    116     {"kcompatibilityvariant", cjkcompatibilityvariant},
    117     {"kiicore", cjkiicore}, {"kirggsource", cjkirg_gsource},
    118     {"kirghsource", cjkirg_hsource}, {"kirgjsource", cjkirg_jsource},
    119     {"kirgkpsource", cjkirg_kpsource}, {"kirgksource", cjkirg_ksource},
    120     {"kirgmsource", cjkirg_msource}, {"kirgtsource", cjkirg_tsource},
    121     {"kirgusource", cjkirg_usource}, {"kirgvsource", cjkirg_vsource},
    122     {"kothernumeric", cjkothernumeric},
    123     {"kprimarynumeric", cjkprimarynumeric}, {"krsunicode", cjkrsunicode},
    124     {"lb", lb}, {"lc", lc}, {"linebreak", lb}, {"loe", loe},
    125     {"logicalorderexception", loe}, {"lower", lower}, {"lowercase", lower},
    126     {"lowercasemapping", lc}, {"math", math}, {"na", na}, {"na1", na1},
    127     {"name", na}, {"namealias", name_alias}, {"nchar", nchar},
    128     {"nfcqc", nfc_qc}, {"nfcquickcheck", nfc_qc}, {"nfdqc", nfd_qc},
    129     {"nfdquickcheck", nfd_qc}, {"nfkccasefold", nfkc_cf},
    130     {"nfkccf", nfkc_cf}, {"nfkcqc", nfkc_qc}, {"nfkcquickcheck", nfkc_qc},
    131     {"nfkdqc", nfkd_qc}, {"nfkdquickcheck", nfkd_qc},
    132     {"noncharactercodepoint", nchar}, {"nt", nt}, {"numerictype", nt},
    133     {"numericvalue", nv}, {"nv", nv}, {"oalpha", oalpha}, {"ocomment", isc},
    134     {"odi", odi}, {"ogrext", ogr_ext}, {"oidc", oidc}, {"oids", oids},
    135     {"olower", olower}, {"omath", omath}, {"otheralphabetic", oalpha},
    136     {"otherdefaultignorablecodepoint", odi},
    137     {"othergraphemeextend", ogr_ext}, {"otheridcontinue", oidc},
    138     {"otheridstart", oids}, {"otherlowercase", olower},
    139     {"othermath", omath}, {"otheruppercase", oupper}, {"oupper", oupper},
    140     {"patsyn", pat_syn}, {"patternsyntax", pat_syn},
    141     {"patternwhitespace", pat_ws}, {"patws", pat_ws}, {"qmark", qmark},
    142     {"quotationmark", qmark}, {"radical", radical}, {"sb", sb}, {"sc", sc},
     77    {"canonicalcombiningclass", ccc}, {"cased", Cased}, {"casefolding", cf},
     78    {"caseignorable", CI}, {"ccc", ccc}, {"ce", CE}, {"cf", cf},
     79    {"changeswhencasefolded", CWCF}, {"changeswhencasemapped", CWCM},
     80    {"changeswhenlowercased", CWL}, {"changeswhennfkccasefolded", CWKCF},
     81    {"changeswhentitlecased", CWT}, {"changeswhenuppercased", CWU},
     82    {"ci", CI}, {"cjkaccountingnumeric", cjkAccountingNumeric},
     83    {"cjkcompatibilityvariant", cjkCompatibilityVariant},
     84    {"cjkiicore", cjkIICore}, {"cjkirggsource", cjkIRG_GSource},
     85    {"cjkirghsource", cjkIRG_HSource}, {"cjkirgjsource", cjkIRG_JSource},
     86    {"cjkirgkpsource", cjkIRG_KPSource}, {"cjkirgksource", cjkIRG_KSource},
     87    {"cjkirgmsource", cjkIRG_MSource}, {"cjkirgtsource", cjkIRG_TSource},
     88    {"cjkirgusource", cjkIRG_USource}, {"cjkirgvsource", cjkIRG_VSource},
     89    {"cjkothernumeric", cjkOtherNumeric},
     90    {"cjkprimarynumeric", cjkPrimaryNumeric},
     91    {"cjkrsunicode", cjkRSUnicode}, {"compex", Comp_Ex},
     92    {"compositionexclusion", CE}, {"cwcf", CWCF}, {"cwcm", CWCM},
     93    {"cwkcf", CWKCF}, {"cwl", CWL}, {"cwt", CWT}, {"cwu", CWU},
     94    {"dash", Dash}, {"decompositionmapping", dm}, {"decompositiontype", dt},
     95    {"defaultignorablecodepoint", DI}, {"dep", Dep}, {"deprecated", Dep},
     96    {"di", DI}, {"dia", Dia}, {"diacritic", Dia}, {"dm", dm}, {"dt", dt},
     97    {"ea", ea}, {"eastasianwidth", ea}, {"expandsonnfc", XO_NFC},
     98    {"expandsonnfd", XO_NFD}, {"expandsonnfkc", XO_NFKC},
     99    {"expandsonnfkd", XO_NFKD}, {"ext", Ext}, {"extender", Ext},
     100    {"fcnfkc", FC_NFKC}, {"fcnfkcclosure", FC_NFKC},
     101    {"fullcompositionexclusion", Comp_Ex}, {"gc", gc}, {"gcb", GCB},
     102    {"generalcategory", gc}, {"graphemebase", Gr_Base},
     103    {"graphemeclusterbreak", GCB}, {"graphemeextend", Gr_Ext},
     104    {"graphemelink", Gr_Link}, {"grbase", Gr_Base}, {"grext", Gr_Ext},
     105    {"grlink", Gr_Link}, {"hangulsyllabletype", hst}, {"hex", Hex},
     106    {"hexdigit", Hex}, {"hst", hst}, {"hyphen", Hyphen}, {"idc", IDC},
     107    {"idcontinue", IDC}, {"ideo", Ideo}, {"ideographic", Ideo},
     108    {"ids", IDS}, {"idsb", IDSB}, {"idsbinaryoperator", IDSB},
     109    {"idst", IDST}, {"idstart", IDS}, {"idstrinaryoperator", IDST},
     110    {"indicmatracategory", InMC}, {"indicsyllabiccategory", InSC},
     111    {"inmc", InMC}, {"insc", InSC}, {"isc", isc}, {"isocomment", isc},
     112    {"jamoshortname", JSN}, {"jg", jg}, {"joinc", Join_C},
     113    {"joincontrol", Join_C}, {"joininggroup", jg}, {"joiningtype", jt},
     114    {"jsn", JSN}, {"jt", jt}, {"kaccountingnumeric", cjkAccountingNumeric},
     115    {"kcompatibilityvariant", cjkCompatibilityVariant},
     116    {"kiicore", cjkIICore}, {"kirggsource", cjkIRG_GSource},
     117    {"kirghsource", cjkIRG_HSource}, {"kirgjsource", cjkIRG_JSource},
     118    {"kirgkpsource", cjkIRG_KPSource}, {"kirgksource", cjkIRG_KSource},
     119    {"kirgmsource", cjkIRG_MSource}, {"kirgtsource", cjkIRG_TSource},
     120    {"kirgusource", cjkIRG_USource}, {"kirgvsource", cjkIRG_VSource},
     121    {"kothernumeric", cjkOtherNumeric},
     122    {"kprimarynumeric", cjkPrimaryNumeric}, {"krsunicode", cjkRSUnicode},
     123    {"lb", lb}, {"lc", lc}, {"linebreak", lb}, {"loe", LOE},
     124    {"logicalorderexception", LOE}, {"lower", Lower}, {"lowercase", Lower},
     125    {"lowercasemapping", lc}, {"math", Math}, {"na", na}, {"na1", na1},
     126    {"name", na}, {"namealias", Name_Alias}, {"nchar", NChar},
     127    {"nfcqc", NFC_QC}, {"nfcquickcheck", NFC_QC}, {"nfdqc", NFD_QC},
     128    {"nfdquickcheck", NFD_QC}, {"nfkccasefold", NFKC_CF},
     129    {"nfkccf", NFKC_CF}, {"nfkcqc", NFKC_QC}, {"nfkcquickcheck", NFKC_QC},
     130    {"nfkdqc", NFKD_QC}, {"nfkdquickcheck", NFKD_QC},
     131    {"noncharactercodepoint", NChar}, {"nt", nt}, {"numerictype", nt},
     132    {"numericvalue", nv}, {"nv", nv}, {"oalpha", OAlpha}, {"odi", ODI},
     133    {"ogrext", OGr_Ext}, {"oidc", OIDC}, {"oids", OIDS}, {"olower", OLower},
     134    {"omath", OMath}, {"otheralphabetic", OAlpha},
     135    {"otherdefaultignorablecodepoint", ODI},
     136    {"othergraphemeextend", OGr_Ext}, {"otheridcontinue", OIDC},
     137    {"otheridstart", OIDS}, {"otherlowercase", OLower},
     138    {"othermath", OMath}, {"otheruppercase", OUpper}, {"oupper", OUpper},
     139    {"patsyn", Pat_Syn}, {"patternsyntax", Pat_Syn},
     140    {"patternwhitespace", Pat_WS}, {"patws", Pat_WS}, {"qmark", QMark},
     141    {"quotationmark", QMark}, {"radical", Radical}, {"sb", SB}, {"sc", sc},
    143142    {"scf", scf}, {"script", sc}, {"scriptextensions", scx}, {"scx", scx},
    144     {"sd", sd}, {"sentencebreak", sb}, {"sfc", scf},
     143    {"sd", SD}, {"sentencebreak", SB}, {"sfc", scf},
    145144    {"simplecasefolding", scf}, {"simplelowercasemapping", slc},
    146145    {"simpletitlecasemapping", stc}, {"simpleuppercasemapping", suc},
    147     {"slc", slc}, {"softdotted", sd}, {"space", wspace}, {"stc", stc},
    148     {"sterm", sterm}, {"suc", suc}, {"tc", tc}, {"term", term},
    149     {"terminalpunctuation", term}, {"titlecasemapping", tc}, {"uc", uc},
    150     {"uideo", uideo}, {"unicode1name", na1},
    151     {"unicoderadicalstroke", cjkrsunicode}, {"unifiedideograph", uideo},
    152     {"upper", upper}, {"uppercase", upper}, {"uppercasemapping", uc},
    153     {"urs", cjkrsunicode}, {"variationselector", vs}, {"vs", vs},
    154     {"wb", wb}, {"whitespace", wspace}, {"wordbreak", wb},
    155     {"wspace", wspace}, {"xidc", xidc}, {"xidcontinue", xidc},
    156     {"xids", xids}, {"xidstart", xids}, {"xonfc", xo_nfc},
    157     {"xonfd", xo_nfd}, {"xonfkc", xo_nfkc}, {"xonfkd", xo_nfkd}
     146    {"slc", slc}, {"softdotted", SD}, {"space", WSpace}, {"stc", stc},
     147    {"sterm", STerm}, {"suc", suc}, {"tc", tc}, {"term", Term},
     148    {"terminalpunctuation", Term}, {"titlecasemapping", tc}, {"uc", uc},
     149    {"uideo", UIdeo}, {"unicode1name", na1},
     150    {"unicoderadicalstroke", cjkRSUnicode}, {"unifiedideograph", UIdeo},
     151    {"upper", Upper}, {"uppercase", Upper}, {"uppercasemapping", uc},
     152    {"urs", cjkRSUnicode}, {"variationselector", VS}, {"vs", VS},
     153    {"wb", WB}, {"whitespace", WSpace}, {"wordbreak", WB},
     154    {"wspace", WSpace}, {"xidc", XIDC}, {"xidcontinue", XIDC},
     155    {"xids", XIDS}, {"xidstart", XIDS}, {"xonfc", XO_NFC},
     156    {"xonfd", XO_NFD}, {"xonfkc", XO_NFKC}, {"xonfkd", XO_NFKD}
    158157  };
    159158}
  • icGREP/icgrep-devel/icgrep/UCD/PropertyObjectTable.h

    r4366 r4380  
    2323namespace UCD {
    2424
    25   const PropertyObject* property_object_table[] = {
    26     new UnsupportedPropertyObject(cjkaccountingnumeric, NumericProperty),
    27     new UnsupportedPropertyObject(cjkothernumeric, NumericProperty),
    28     new UnsupportedPropertyObject(cjkprimarynumeric, NumericProperty),
     25  PropertyObject* property_object_table[] = {
     26    new UnsupportedPropertyObject(cjkAccountingNumeric, NumericProperty),
     27    new UnsupportedPropertyObject(cjkOtherNumeric, NumericProperty),
     28    new UnsupportedPropertyObject(cjkPrimaryNumeric, NumericProperty),
    2929    new UnsupportedPropertyObject(nv, NumericProperty),
    3030    new UnsupportedPropertyObject(cf, StringProperty),
    31     new UnsupportedPropertyObject(cjkcompatibilityvariant, StringProperty),
     31    new UnsupportedPropertyObject(cjkCompatibilityVariant, StringProperty),
    3232    new UnsupportedPropertyObject(dm, StringProperty),
    33     new UnsupportedPropertyObject(fc_nfkc, StringProperty),
     33    new UnsupportedPropertyObject(FC_NFKC, StringProperty),
    3434    new UnsupportedPropertyObject(lc, StringProperty),
    35     new UnsupportedPropertyObject(nfkc_cf, StringProperty),
     35    new UnsupportedPropertyObject(NFKC_CF, StringProperty),
    3636    new UnsupportedPropertyObject(scf, CodepointProperty),
    3737    new UnsupportedPropertyObject(slc, CodepointProperty),
     
    4242    new UnsupportedPropertyObject(bmg, MiscellaneousProperty),
    4343    new UnsupportedPropertyObject(bpb, MiscellaneousProperty),
    44     new UnsupportedPropertyObject(cjkiicore, MiscellaneousProperty),
    45     new UnsupportedPropertyObject(cjkirg_gsource, MiscellaneousProperty),
    46     new UnsupportedPropertyObject(cjkirg_hsource, MiscellaneousProperty),
    47     new UnsupportedPropertyObject(cjkirg_jsource, MiscellaneousProperty),
    48     new UnsupportedPropertyObject(cjkirg_kpsource, MiscellaneousProperty),
    49     new UnsupportedPropertyObject(cjkirg_ksource, MiscellaneousProperty),
    50     new UnsupportedPropertyObject(cjkirg_msource, MiscellaneousProperty),
    51     new UnsupportedPropertyObject(cjkirg_tsource, MiscellaneousProperty),
    52     new UnsupportedPropertyObject(cjkirg_usource, MiscellaneousProperty),
    53     new UnsupportedPropertyObject(cjkirg_vsource, MiscellaneousProperty),
    54     new UnsupportedPropertyObject(cjkrsunicode, MiscellaneousProperty),
     44    new UnsupportedPropertyObject(cjkIICore, MiscellaneousProperty),
     45    new UnsupportedPropertyObject(cjkIRG_GSource, MiscellaneousProperty),
     46    new UnsupportedPropertyObject(cjkIRG_HSource, MiscellaneousProperty),
     47    new UnsupportedPropertyObject(cjkIRG_JSource, MiscellaneousProperty),
     48    new UnsupportedPropertyObject(cjkIRG_KPSource, MiscellaneousProperty),
     49    new UnsupportedPropertyObject(cjkIRG_KSource, MiscellaneousProperty),
     50    new UnsupportedPropertyObject(cjkIRG_MSource, MiscellaneousProperty),
     51    new UnsupportedPropertyObject(cjkIRG_TSource, MiscellaneousProperty),
     52    new UnsupportedPropertyObject(cjkIRG_USource, MiscellaneousProperty),
     53    new UnsupportedPropertyObject(cjkIRG_VSource, MiscellaneousProperty),
     54    new UnsupportedPropertyObject(cjkRSUnicode, MiscellaneousProperty),
    5555    new UnsupportedPropertyObject(isc, MiscellaneousProperty),
    56     new UnsupportedPropertyObject(jsn, MiscellaneousProperty),
     56    new UnsupportedPropertyObject(JSN, MiscellaneousProperty),
    5757    new UnsupportedPropertyObject(na, MiscellaneousProperty),
    5858    new UnsupportedPropertyObject(na1, MiscellaneousProperty),
    59     new UnsupportedPropertyObject(name_alias, MiscellaneousProperty),
     59    new UnsupportedPropertyObject(Name_Alias, MiscellaneousProperty),
    6060    new UnsupportedPropertyObject(scx, MiscellaneousProperty),
    6161    new UnsupportedPropertyObject(age, CatalogProperty),
    62     &BLK::property_object,
    63     &SC::property_object,
     62    &BLK_ns::property_object,
     63    &SC_ns::property_object,
    6464    new UnsupportedPropertyObject(bc, EnumeratedProperty),
    6565    new UnsupportedPropertyObject(bpt, EnumeratedProperty),
    6666    new UnsupportedPropertyObject(ccc, EnumeratedProperty),
    6767    new UnsupportedPropertyObject(dt, EnumeratedProperty),
    68     &EA::property_object,
    69     &GC::property_object,
    70     new UnsupportedPropertyObject(gcb, EnumeratedProperty),
    71     &HST::property_object,
    72     new UnsupportedPropertyObject(inmc, EnumeratedProperty),
    73     new UnsupportedPropertyObject(insc, EnumeratedProperty),
     68    &EA_ns::property_object,
     69    &GC_ns::property_object,
     70    new UnsupportedPropertyObject(GCB, EnumeratedProperty),
     71    &HST_ns::property_object,
     72    new UnsupportedPropertyObject(InMC, EnumeratedProperty),
     73    new UnsupportedPropertyObject(InSC, EnumeratedProperty),
    7474    new UnsupportedPropertyObject(jg, EnumeratedProperty),
    7575    new UnsupportedPropertyObject(jt, EnumeratedProperty),
    76     &LB::property_object,
    77     new UnsupportedPropertyObject(nfc_qc, EnumeratedProperty),
    78     new UnsupportedPropertyObject(nfd_qc, EnumeratedProperty),
    79     new UnsupportedPropertyObject(nfkc_qc, EnumeratedProperty),
    80     new UnsupportedPropertyObject(nfkd_qc, EnumeratedProperty),
     76    &LB_ns::property_object,
     77    new UnsupportedPropertyObject(NFC_QC, EnumeratedProperty),
     78    new UnsupportedPropertyObject(NFD_QC, EnumeratedProperty),
     79    new UnsupportedPropertyObject(NFKC_QC, EnumeratedProperty),
     80    new UnsupportedPropertyObject(NFKD_QC, EnumeratedProperty),
    8181    new UnsupportedPropertyObject(nt, EnumeratedProperty),
    82     new UnsupportedPropertyObject(sb, EnumeratedProperty),
    83     new UnsupportedPropertyObject(wb, EnumeratedProperty),
    84     &AHEX::property_object,
    85     &ALPHA::property_object,
    86     &BIDI_C::property_object,
    87     new UnsupportedPropertyObject(bidi_m, BinaryProperty),
    88     &CASED::property_object,
    89     new UnsupportedPropertyObject(ce, BinaryProperty),
    90     &CI::property_object,
    91     new UnsupportedPropertyObject(comp_ex, BinaryProperty),
    92     &CWCF::property_object,
    93     &CWCM::property_object,
    94     new UnsupportedPropertyObject(cwkcf, BinaryProperty),
    95     &CWL::property_object,
    96     &CWT::property_object,
    97     &CWU::property_object,
    98     &DASH::property_object,
    99     &DEP::property_object,
    100     &DI::property_object,
    101     &DIA::property_object,
    102     &EXT::property_object,
    103     &GR_BASE::property_object,
    104     &GR_EXT::property_object,
    105     &GR_LINK::property_object,
    106     &HEX::property_object,
    107     &HYPHEN::property_object,
    108     &IDC::property_object,
    109     &IDEO::property_object,
    110     &IDS::property_object,
    111     &IDSB::property_object,
    112     &IDST::property_object,
    113     &JOIN_C::property_object,
    114     &LOE::property_object,
    115     &LOWER::property_object,
    116     &MATH::property_object,
    117     &NCHAR::property_object,
    118     &OALPHA::property_object,
    119     &ODI::property_object,
    120     &OGR_EXT::property_object,
    121     &OIDC::property_object,
    122     &OIDS::property_object,
    123     &OLOWER::property_object,
    124     &OMATH::property_object,
    125     &OUPPER::property_object,
    126     &PAT_SYN::property_object,
    127     &PAT_WS::property_object,
    128     &QMARK::property_object,
    129     &RADICAL::property_object,
    130     &SD::property_object,
    131     &STERM::property_object,
    132     &TERM::property_object,
    133     &UIDEO::property_object,
    134     &UPPER::property_object,
    135     &VS::property_object,
    136     &WSPACE::property_object,
    137     &XIDC::property_object,
    138     &XIDS::property_object,
    139     new UnsupportedPropertyObject(xo_nfc, BinaryProperty),
    140     new UnsupportedPropertyObject(xo_nfd, BinaryProperty),
    141     new UnsupportedPropertyObject(xo_nfkc, BinaryProperty),
    142     new UnsupportedPropertyObject(xo_nfkd, BinaryProperty)  };
     82    new UnsupportedPropertyObject(SB, EnumeratedProperty),
     83    new UnsupportedPropertyObject(WB, EnumeratedProperty),
     84    &AHEX_ns::property_object,
     85    &ALPHA_ns::property_object,
     86    &BIDI_C_ns::property_object,
     87    new UnsupportedPropertyObject(Bidi_M, BinaryProperty),
     88    &CASED_ns::property_object,
     89    new UnsupportedPropertyObject(CE, BinaryProperty),
     90    &CI_ns::property_object,
     91    new UnsupportedPropertyObject(Comp_Ex, BinaryProperty),
     92    &CWCF_ns::property_object,
     93    &CWCM_ns::property_object,
     94    new UnsupportedPropertyObject(CWKCF, BinaryProperty),
     95    &CWL_ns::property_object,
     96    &CWT_ns::property_object,
     97    &CWU_ns::property_object,
     98    &DASH_ns::property_object,
     99    &DEP_ns::property_object,
     100    &DI_ns::property_object,
     101    &DIA_ns::property_object,
     102    &EXT_ns::property_object,
     103    &GR_BASE_ns::property_object,
     104    &GR_EXT_ns::property_object,
     105    &GR_LINK_ns::property_object,
     106    &HEX_ns::property_object,
     107    &HYPHEN_ns::property_object,
     108    &IDC_ns::property_object,
     109    &IDEO_ns::property_object,
     110    &IDS_ns::property_object,
     111    &IDSB_ns::property_object,
     112    &IDST_ns::property_object,
     113    &JOIN_C_ns::property_object,
     114    &LOE_ns::property_object,
     115    &LOWER_ns::property_object,
     116    &MATH_ns::property_object,
     117    &NCHAR_ns::property_object,
     118    &OALPHA_ns::property_object,
     119    &ODI_ns::property_object,
     120    &OGR_EXT_ns::property_object,
     121    &OIDC_ns::property_object,
     122    &OIDS_ns::property_object,
     123    &OLOWER_ns::property_object,
     124    &OMATH_ns::property_object,
     125    &OUPPER_ns::property_object,
     126    &PAT_SYN_ns::property_object,
     127    &PAT_WS_ns::property_object,
     128    &QMARK_ns::property_object,
     129    &RADICAL_ns::property_object,
     130    &SD_ns::property_object,
     131    &STERM_ns::property_object,
     132    &TERM_ns::property_object,
     133    &UIDEO_ns::property_object,
     134    &UPPER_ns::property_object,
     135    &VS_ns::property_object,
     136    &WSPACE_ns::property_object,
     137    &XIDC_ns::property_object,
     138    &XIDS_ns::property_object,
     139    new UnsupportedPropertyObject(XO_NFC, BinaryProperty),
     140    new UnsupportedPropertyObject(XO_NFD, BinaryProperty),
     141    new UnsupportedPropertyObject(XO_NFKC, BinaryProperty),
     142    new UnsupportedPropertyObject(XO_NFKD, BinaryProperty)  };
    143143}
    144144
  • icGREP/icgrep-devel/icgrep/UCD/PropertyObjects.h

    r4189 r4380  
    1010#include <string>
    1111#include <vector>
     12#include <iostream>
    1213#include <unordered_map>
    1314#include "unicode_set.h"
     
    2021        for (unsigned int i = 0; i < prop_or_val.length(); ++i) {
    2122                char c = prop_or_val.at(i);
    22                 if ((c != '_') && (c != '.') && (c != '-')) {
     23                if ((c != '_') && (c != ' ') && (c != '-')) {
    2324                        s += std::tolower(c, loc);
    2425                }
    2526        }
    26         return s;
     27        return s;
    2728}
    2829
     
    4041                property_kind_t the_kind;
    4142               
    42                 virtual UnicodeSet GetCodepointSet(std::string value_spec) = 0; 
     43                virtual UnicodeSet GetCodepointSet(std::string value_spec) = 0;
    4344        };
    4445       
     
    5859               
    5960                EnumeratedPropertyObject(UCD::property_t p,
    60                                          const std::vector<std::string> names,
     61                                 const std::vector<std::string> enum_names,
     62                                 const std::vector<std::string> names,
    6163                                         const std::unordered_map<std::string, int> aliases,
    6264                                         const std::vector<UnicodeSet> sets) :
    63                 PropertyObject(p, EnumeratedProperty), property_value_full_names(names), property_value_aliases(aliases), aliases_initialized(false), property_value_sets(sets) {}
     65                PropertyObject(p, EnumeratedProperty), property_value_enum_names(enum_names), property_value_full_names(names), property_value_aliases(aliases), aliases_initialized(false), property_value_sets(sets) {}
    6466                int GetPropertyValueEnumCode(std::string s);
    6567                UnicodeSet GetCodepointSet(std::string value_spec);     
    6668               
    6769        private:
    68                 const std::vector<std::string> property_value_full_names;  // never changes
    69                 std::unordered_map<std::string, int> property_value_aliases;
     70        const std::vector<std::string> property_value_enum_names;  // never changes
     71        const std::vector<std::string> property_value_full_names;  // never changes
     72                std::unordered_map<std::string, int> property_value_aliases;
    7073                bool aliases_initialized; // full names must be added dynamically.
    7174                std::vector<UnicodeSet> property_value_sets;                 
     
    8891                // to save space in the executable.   Add them if the property is used.
    8992                if (!aliases_initialized) {
    90                         for (int v = 0; v < property_value_full_names.size(); v++) {
    91                                 property_value_aliases.insert({canonicalize_value_name(property_value_full_names[v]), v});
    92                         }
     93            for (int v = 0; v < property_value_full_names.size(); v++) {
     94                property_value_aliases.insert({canonicalize_value_name(property_value_full_names[v]), v});
     95            }
     96            for (int v = 0; v < property_value_enum_names.size(); v++) {
     97                property_value_aliases.insert({canonicalize_value_name(property_value_enum_names[v]), v});
     98            }
    9399                        aliases_initialized = true;
    94100                }
     
    106112       
    107113        UnicodeSet BinaryPropertyObject::GetCodepointSet(std::string value_spec) {
    108                 int property_enum_val = Binary::Y; // default value
     114                int property_enum_val = Binary_ns::Y; // default value
    109115                if (value_spec != "") {
    110                         auto valit = Binary::aliases_only_map.find(value_spec);
    111                         if (valit == Binary::aliases_only_map.end()) {
     116                        auto valit = Binary_ns::aliases_only_map.find(value_spec);
     117                        if (valit == Binary_ns::aliases_only_map.end()) {
    112118                                std::cerr << "Binary property " << property_full_name[the_property] << ": bad value: " << value_spec << ".\n";
    113119                                exit(-1);
    114120                        }
    115121                        else property_enum_val = valit->second;
    116                         if (property_enum_val == Binary::Y) return the_codepoint_set;
     122                        if (property_enum_val == Binary_ns::Y) return the_codepoint_set;
    117123                        else return uset_complement(the_codepoint_set);
    118124                }
     125        else return the_codepoint_set;
    119126        }
    120127}
  • icGREP/icgrep-devel/icgrep/UCD/PropertyValueAliases.h

    r4366 r4380  
    1414namespace UCD {
    1515
    16   namespace Binary {
     16  namespace Binary_ns {
    1717    enum value_t {
    1818      N, Y};
     19    const std::vector<std::string> enum_names = {
     20      "N", "Y"};
    1921    const std::vector<std::string> value_names = {
    2022      "No", "Yes"};
     
    2426  }
    2527
    26   namespace JSN {
     28  namespace JSN_ns {
    2729    enum value_t {
    2830      A, AE, B, BB, BS, C, D, DD, E, EO, EU, G, GG, GS, H, I, J, JJ, K, L,
    2931      LB, LG, LH, LM, LP, LS, LT, M, N, NG, NH, NJ, O, OE, P, R, S, SS, T,
    3032      U, WA, WAE, WE, WEO, WI, YA, YAE, YE, YEO, YI, YO, YU};
    31     const std::vector<std::string> value_names = {
     33    const std::vector<std::string> enum_names = {
    3234      "A", "AE", "B", "BB", "BS", "C", "D", "DD", "E", "EO", "EU", "G",
    3335      "GG", "GS", "H", "I", "J", "JJ", "K", "L", "LB", "LG", "LH", "LM",
     
    3537      "S", "SS", "T", "U", "WA", "WAE", "WE", "WEO", "WI", "YA", "YAE",
    3638      "YE", "YEO", "YI", "YO", "YU"};
    37     const std::unordered_map<std::string, int> aliases_only_map = {
    38       };
    39   }
    40 
    41   namespace AGE {
     39    const std::vector<std::string> value_names = {
     40      "A", "AE", "B", "BB", "BS", "C", "D", "DD", "E", "EO", "EU", "G",
     41      "GG", "GS", "H", "I", "J", "JJ", "K", "L", "LB", "LG", "LH", "LM",
     42      "LP", "LS", "LT", "M", "N", "NG", "NH", "NJ", "O", "OE", "P", "R",
     43      "S", "SS", "T", "U", "WA", "WAE", "WE", "WEO", "WI", "YA", "YAE",
     44      "YE", "YEO", "YI", "YO", "YU"};
     45    const std::unordered_map<std::string, int> aliases_only_map = {
     46      };
     47  }
     48
     49  namespace AGE_ns {
    4250    enum value_t {
    4351      V1_1, V2_0, V2_1, V3_0, V3_1, V3_2, V4_0, V4_1, V5_0, V5_1, V5_2,
    4452      V6_0, V6_1, V6_2, V6_3, V7_0, Unassigned};
    45     const std::vector<std::string> value_names = {
     53    const std::vector<std::string> enum_names = {
    4654      "V1_1", "V2_0", "V2_1", "V3_0", "V3_1", "V3_2", "V4_0", "V4_1",
    4755      "V5_0", "V5_1", "V5_2", "V6_0", "V6_1", "V6_2", "V6_3", "V7_0",
    4856      "Unassigned"};
    49     const std::unordered_map<std::string, int> aliases_only_map = {
    50       {"1.1", AGE::V1_1}, {"2.0", AGE::V2_0}, {"2.1", AGE::V2_1},
    51       {"3.0", AGE::V3_0}, {"3.1", AGE::V3_1}, {"3.2", AGE::V3_2},
    52       {"4.0", AGE::V4_0}, {"4.1", AGE::V4_1}, {"5.0", AGE::V5_0},
    53       {"5.1", AGE::V5_1}, {"5.2", AGE::V5_2}, {"6.0", AGE::V6_0},
    54       {"6.1", AGE::V6_1}, {"6.2", AGE::V6_2}, {"6.3", AGE::V6_3},
    55       {"7.0", AGE::V7_0}, {"na", AGE::Unassigned}};
    56   }
    57 
    58   namespace BLK {
     57    const std::vector<std::string> value_names = {
     58      "V1_1", "V2_0", "V2_1", "V3_0", "V3_1", "V3_2", "V4_0", "V4_1",
     59      "V5_0", "V5_1", "V5_2", "V6_0", "V6_1", "V6_2", "V6_3", "V7_0",
     60      "Unassigned"};
     61    const std::unordered_map<std::string, int> aliases_only_map = {
     62      {"1.1", AGE_ns::V1_1}, {"2.0", AGE_ns::V2_0}, {"2.1", AGE_ns::V2_1},
     63      {"3.0", AGE_ns::V3_0}, {"3.1", AGE_ns::V3_1}, {"3.2", AGE_ns::V3_2},
     64      {"4.0", AGE_ns::V4_0}, {"4.1", AGE_ns::V4_1}, {"5.0", AGE_ns::V5_0},
     65      {"5.1", AGE_ns::V5_1}, {"5.2", AGE_ns::V5_2}, {"6.0", AGE_ns::V6_0},
     66      {"6.1", AGE_ns::V6_1}, {"6.2", AGE_ns::V6_2}, {"6.3", AGE_ns::V6_3},
     67      {"7.0", AGE_ns::V7_0}, {"na", AGE_ns::Unassigned}};
     68  }
     69
     70  namespace BLK_ns {
    5971    enum value_t {
    6072      Aegean_Numbers, Alchemical, Alphabetic_PF, Ancient_Greek_Music,
     
    109121      Vertical_Forms, VS, VS_Sup, Warang_Citi, Yi_Radicals, Yi_Syllables,
    110122      Yijing};
     123    const std::vector<std::string> enum_names = {
     124      "Aegean_Numbers", "Alchemical", "Alphabetic_PF",
     125      "Ancient_Greek_Music", "Ancient_Greek_Numbers", "Ancient_Symbols",
     126      "Arabic", "Arabic_Ext_A", "Arabic_Math", "Arabic_PF_A", "Arabic_PF_B",
     127      "Arabic_Sup", "Armenian", "Arrows", "ASCII", "Avestan", "Balinese",
     128      "Bamum", "Bamum_Sup", "Bassa_Vah", "Batak", "Bengali",
     129      "Block_Elements", "Bopomofo", "Bopomofo_Ext", "Box_Drawing", "Brahmi",
     130      "Braille", "Buginese", "Buhid", "Byzantine_Music", "Carian",
     131      "Caucasian_Albanian", "Chakma", "Cham", "Cherokee", "CJK",
     132      "CJK_Compat", "CJK_Compat_Forms", "CJK_Compat_Ideographs",
     133      "CJK_Compat_Ideographs_Sup", "CJK_Ext_A", "CJK_Ext_B", "CJK_Ext_C",
     134      "CJK_Ext_D", "CJK_Radicals_Sup", "CJK_Strokes", "CJK_Symbols",
     135      "Compat_Jamo", "Control_Pictures", "Coptic", "Coptic_Epact_Numbers",
     136      "Counting_Rod", "Cuneiform", "Cuneiform_Numbers", "Currency_Symbols",
     137      "Cypriot_Syllabary", "Cyrillic", "Cyrillic_Ext_A", "Cyrillic_Ext_B",
     138      "Cyrillic_Sup", "Deseret", "Devanagari", "Devanagari_Ext",
     139      "Diacriticals", "Diacriticals_Ext", "Diacriticals_For_Symbols",
     140      "Diacriticals_Sup", "Dingbats", "Domino", "Duployan",
     141      "Egyptian_Hieroglyphs", "Elbasan", "Emoticons", "Enclosed_Alphanum",
     142      "Enclosed_Alphanum_Sup", "Enclosed_CJK", "Enclosed_Ideographic_Sup",
     143      "Ethiopic", "Ethiopic_Ext", "Ethiopic_Ext_A", "Ethiopic_Sup",
     144      "Geometric_Shapes", "Geometric_Shapes_Ext", "Georgian",
     145      "Georgian_Sup", "Glagolitic", "Gothic", "Grantha", "Greek",
     146      "Greek_Ext", "Gujarati", "Gurmukhi", "Half_And_Full_Forms",
     147      "Half_Marks", "Hangul", "Hanunoo", "Hebrew", "High_PU_Surrogates",
     148      "High_Surrogates", "Hiragana", "IDC", "Imperial_Aramaic",
     149      "Indic_Number_Forms", "Inscriptional_Pahlavi",
     150      "Inscriptional_Parthian", "IPA_Ext", "Jamo", "Jamo_Ext_A",
     151      "Jamo_Ext_B", "Javanese", "Kaithi", "Kana_Sup", "Kanbun", "Kangxi",
     152      "Kannada", "Katakana", "Katakana_Ext", "Kayah_Li", "Kharoshthi",
     153      "Khmer", "Khmer_Symbols", "Khojki", "Khudawadi", "Lao", "Latin_1_Sup",
     154      "Latin_Ext_A", "Latin_Ext_Additional", "Latin_Ext_B", "Latin_Ext_C",
     155      "Latin_Ext_D", "Latin_Ext_E", "Lepcha", "Letterlike_Symbols", "Limbu",
     156      "Linear_A", "Linear_B_Ideograms", "Linear_B_Syllabary", "Lisu",
     157      "Low_Surrogates", "Lycian", "Lydian", "Mahajani", "Mahjong",
     158      "Malayalam", "Mandaic", "Manichaean", "Math_Alphanum",
     159      "Math_Operators", "Meetei_Mayek", "Meetei_Mayek_Ext", "Mende_Kikakui",
     160      "Meroitic_Cursive", "Meroitic_Hieroglyphs", "Miao", "Misc_Arrows",
     161      "Misc_Math_Symbols_A", "Misc_Math_Symbols_B", "Misc_Pictographs",
     162      "Misc_Symbols", "Misc_Technical", "Modi", "Modifier_Letters",
     163      "Modifier_Tone_Letters", "Mongolian", "Mro", "Music", "Myanmar",
     164      "Myanmar_Ext_A", "Myanmar_Ext_B", "Nabataean", "NB", "New_Tai_Lue",
     165      "NKo", "Number_Forms", "OCR", "Ogham", "Ol_Chiki", "Old_Italic",
     166      "Old_North_Arabian", "Old_Permic", "Old_Persian", "Old_South_Arabian",
     167      "Old_Turkic", "Oriya", "Ornamental_Dingbats", "Osmanya",
     168      "Pahawh_Hmong", "Palmyrene", "Pau_Cin_Hau", "Phags_Pa", "Phaistos",
     169      "Phoenician", "Phonetic_Ext", "Phonetic_Ext_Sup", "Playing_Cards",
     170      "Psalter_Pahlavi", "PUA", "Punctuation", "Rejang", "Rumi", "Runic",
     171      "Samaritan", "Saurashtra", "Sharada", "Shavian",
     172      "Shorthand_Format_Controls", "Siddham", "Sinhala",
     173      "Sinhala_Archaic_Numbers", "Small_Forms", "Sora_Sompeng", "Specials",
     174      "Sundanese", "Sundanese_Sup", "Sup_Arrows_A", "Sup_Arrows_B",
     175      "Sup_Arrows_C", "Sup_Math_Operators", "Sup_PUA_A", "Sup_PUA_B",
     176      "Sup_Punctuation", "Super_And_Sub", "Syloti_Nagri", "Syriac",
     177      "Tagalog", "Tagbanwa", "Tags", "Tai_Le", "Tai_Tham", "Tai_Viet",
     178      "Tai_Xuan_Jing", "Takri", "Tamil", "Telugu", "Thaana", "Thai",
     179      "Tibetan", "Tifinagh", "Tirhuta", "Transport_And_Map", "UCAS",
     180      "UCAS_Ext", "Ugaritic", "Vai", "Vedic_Ext", "Vertical_Forms", "VS",
     181      "VS_Sup", "Warang_Citi", "Yi_Radicals", "Yi_Syllables", "Yijing"};
    111182    const std::vector<std::string> value_names = {
    112183      "Aegean_Numbers", "Alchemical_Symbols",
     
    197268      "Yi_Syllables", "Yijing_Hexagram_Symbols"};
    198269    const std::unordered_map<std::string, int> aliases_only_map = {
    199       {"alchemical", BLK::Alchemical}, {"alphabeticpf", BLK::Alphabetic_PF},
    200       {"ancientgreekmusic", BLK::Ancient_Greek_Music},
    201       {"arabicexta", BLK::Arabic_Ext_A}, {"arabicmath", BLK::Arabic_Math},
    202       {"arabicpfa", BLK::Arabic_PF_A}, {"arabicpfb", BLK::Arabic_PF_B},
    203       {"arabicsup", BLK::Arabic_Sup}, {"ascii", BLK::ASCII},
    204       {"bamumsup", BLK::Bamum_Sup}, {"bopomofoext", BLK::Bopomofo_Ext},
    205       {"braille", BLK::Braille}, {"byzantinemusic", BLK::Byzantine_Music},
    206       {"canadiansyllabics", BLK::UCAS}, {"cjk", BLK::CJK},
    207       {"cjkcompat", BLK::CJK_Compat},
    208       {"cjkcompatforms", BLK::CJK_Compat_Forms},
    209       {"cjkcompatideographs", BLK::CJK_Compat_Ideographs},
    210       {"cjkcompatideographssup", BLK::CJK_Compat_Ideographs_Sup},
    211       {"cjkexta", BLK::CJK_Ext_A}, {"cjkextb", BLK::CJK_Ext_B},
    212       {"cjkextc", BLK::CJK_Ext_C}, {"cjkextd", BLK::CJK_Ext_D},
    213       {"cjkradicalssup", BLK::CJK_Radicals_Sup},
    214       {"cjksymbols", BLK::CJK_Symbols},
    215       {"combiningmarksforsymbols", BLK::Diacriticals_For_Symbols},
    216       {"compatjamo", BLK::Compat_Jamo}, {"countingrod", BLK::Counting_Rod},
    217       {"cuneiformnumbers", BLK::Cuneiform_Numbers},
    218       {"cyrillicexta", BLK::Cyrillic_Ext_A},
    219       {"cyrillicextb", BLK::Cyrillic_Ext_B},
    220       {"cyrillicsup", BLK::Cyrillic_Sup},
    221       {"cyrillicsupplementary", BLK::Cyrillic_Sup},
    222       {"devanagariext", BLK::Devanagari_Ext},
    223       {"diacriticals", BLK::Diacriticals},
    224       {"diacriticalsext", BLK::Diacriticals_Ext},
    225       {"diacriticalsforsymbols", BLK::Diacriticals_For_Symbols},
    226       {"diacriticalssup", BLK::Diacriticals_Sup}, {"domino", BLK::Domino},
    227       {"enclosedalphanum", BLK::Enclosed_Alphanum},
    228       {"enclosedalphanumsup", BLK::Enclosed_Alphanum_Sup},
    229       {"enclosedcjk", BLK::Enclosed_CJK},
    230       {"enclosedideographicsup", BLK::Enclosed_Ideographic_Sup},
    231       {"ethiopicext", BLK::Ethiopic_Ext},
    232       {"ethiopicexta", BLK::Ethiopic_Ext_A},
    233       {"ethiopicsup", BLK::Ethiopic_Sup},
    234       {"geometricshapesext", BLK::Geometric_Shapes_Ext},
    235       {"georgiansup", BLK::Georgian_Sup}, {"greek", BLK::Greek},
    236       {"greekext", BLK::Greek_Ext},
    237       {"halfandfullforms", BLK::Half_And_Full_Forms},
    238       {"halfmarks", BLK::Half_Marks}, {"hangul", BLK::Hangul},
    239       {"highpusurrogates", BLK::High_PU_Surrogates}, {"idc", BLK::IDC},
    240       {"indicnumberforms", BLK::Indic_Number_Forms},
    241       {"ipaext", BLK::IPA_Ext}, {"jamo", BLK::Jamo},
    242       {"jamoexta", BLK::Jamo_Ext_A}, {"jamoextb", BLK::Jamo_Ext_B},
    243       {"kanasup", BLK::Kana_Sup}, {"kangxi", BLK::Kangxi},
    244       {"katakanaext", BLK::Katakana_Ext}, {"latin1", BLK::Latin_1_Sup},
    245       {"latin1sup", BLK::Latin_1_Sup}, {"latinexta", BLK::Latin_Ext_A},
    246       {"latinextadditional", BLK::Latin_Ext_Additional},
    247       {"latinextb", BLK::Latin_Ext_B}, {"latinextc", BLK::Latin_Ext_C},
    248       {"latinextd", BLK::Latin_Ext_D}, {"latinexte", BLK::Latin_Ext_E},
    249       {"mahjong", BLK::Mahjong}, {"mathalphanum", BLK::Math_Alphanum},
    250       {"mathoperators", BLK::Math_Operators},
    251       {"meeteimayekext", BLK::Meetei_Mayek_Ext},
    252       {"miscarrows", BLK::Misc_Arrows},
    253       {"miscmathsymbolsa", BLK::Misc_Math_Symbols_A},
    254       {"miscmathsymbolsb", BLK::Misc_Math_Symbols_B},
    255       {"miscpictographs", BLK::Misc_Pictographs},
    256       {"miscsymbols", BLK::Misc_Symbols},
    257       {"misctechnical", BLK::Misc_Technical},
    258       {"modifierletters", BLK::Modifier_Letters}, {"music", BLK::Music},
    259       {"myanmarexta", BLK::Myanmar_Ext_A},
    260       {"myanmarextb", BLK::Myanmar_Ext_B}, {"nb", BLK::NB},
    261       {"ocr", BLK::OCR}, {"phaistos", BLK::Phaistos},
    262       {"phoneticext", BLK::Phonetic_Ext},
    263       {"phoneticextsup", BLK::Phonetic_Ext_Sup}, {"privateuse", BLK::PUA},
    264       {"pua", BLK::PUA}, {"punctuation", BLK::Punctuation},
    265       {"rumi", BLK::Rumi}, {"smallforms", BLK::Small_Forms},
    266       {"sundanesesup", BLK::Sundanese_Sup},
    267       {"suparrowsa", BLK::Sup_Arrows_A}, {"suparrowsb", BLK::Sup_Arrows_B},
    268       {"suparrowsc", BLK::Sup_Arrows_C},
    269       {"superandsub", BLK::Super_And_Sub},
    270       {"supmathoperators", BLK::Sup_Math_Operators},
    271       {"suppuaa", BLK::Sup_PUA_A}, {"suppuab", BLK::Sup_PUA_B},
    272       {"suppunctuation", BLK::Sup_Punctuation},
    273       {"taixuanjing", BLK::Tai_Xuan_Jing},
    274       {"transportandmap", BLK::Transport_And_Map}, {"ucas", BLK::UCAS},
    275       {"ucasext", BLK::UCAS_Ext}, {"vedicext", BLK::Vedic_Ext},
    276       {"vs", BLK::VS}, {"vssup", BLK::VS_Sup}, {"yijing", BLK::Yijing}};
    277   }
    278 
    279   namespace SC {
     270      {"canadiansyllabics", BLK_ns::UCAS},
     271      {"combiningmarksforsymbols", BLK_ns::Diacriticals_For_Symbols},
     272      {"cyrillicsupplementary", BLK_ns::Cyrillic_Sup},
     273      {"latin1", BLK_ns::Latin_1_Sup}, {"privateuse", BLK_ns::PUA}};
     274  }
     275
     276  namespace SC_ns {
    280277    enum value_t {
    281278      Aghb, Arab, Armi, Armn, Avst, Bali, Bamu, Bass, Batk, Beng, Bopo,
     
    291288      Tavt, Telu, Tfng, Tglg, Thaa, Thai, Tibt, Tirh, Ugar, Vaii, Wara,
    292289      Xpeo, Xsux, Yiii, Zinh, Zyyy, Zzzz};
     290    const std::vector<std::string> enum_names = {
     291      "Aghb", "Arab", "Armi", "Armn", "Avst", "Bali", "Bamu", "Bass",
     292      "Batk", "Beng", "Bopo", "Brah", "Brai", "Bugi", "Buhd", "Cakm",
     293      "Cans", "Cari", "Cham", "Cher", "Copt", "Cprt", "Cyrl", "Deva",
     294      "Dsrt", "Dupl", "Egyp", "Elba", "Ethi", "Geor", "Glag", "Goth",
     295      "Gran", "Grek", "Gujr", "Guru", "Hang", "Hani", "Hano", "Hebr",
     296      "Hira", "Hmng", "Hrkt", "Ital", "Java", "Kali", "Kana", "Khar",
     297      "Khmr", "Khoj", "Knda", "Kthi", "Lana", "Laoo", "Latn", "Lepc",
     298      "Limb", "Lina", "Linb", "Lisu", "Lyci", "Lydi", "Mahj", "Mand",
     299      "Mani", "Mend", "Merc", "Mero", "Mlym", "Modi", "Mong", "Mroo",
     300      "Mtei", "Mymr", "Narb", "Nbat", "Nkoo", "Ogam", "Olck", "Orkh",
     301      "Orya", "Osma", "Palm", "Pauc", "Perm", "Phag", "Phli", "Phlp",
     302      "Phnx", "Plrd", "Prti", "Rjng", "Runr", "Samr", "Sarb", "Saur",
     303      "Shaw", "Shrd", "Sidd", "Sind", "Sinh", "Sora", "Sund", "Sylo",
     304      "Syrc", "Tagb", "Takr", "Tale", "Talu", "Taml", "Tavt", "Telu",
     305      "Tfng", "Tglg", "Thaa", "Thai", "Tibt", "Tirh", "Ugar", "Vaii",
     306      "Wara", "Xpeo", "Xsux", "Yiii", "Zinh", "Zyyy", "Zzzz"};
    293307    const std::vector<std::string> value_names = {
    294308      "Caucasian_Albanian", "Arabic", "Imperial_Aramaic", "Armenian",
     
    318332      "Common", "Unknown"};
    319333    const std::unordered_map<std::string, int> aliases_only_map = {
    320       {"aghb", SC::Aghb}, {"arab", SC::Arab}, {"armi", SC::Armi},
    321       {"armn", SC::Armn}, {"avst", SC::Avst}, {"bali", SC::Bali},
    322       {"bamu", SC::Bamu}, {"bass", SC::Bass}, {"batk", SC::Batk},
    323       {"beng", SC::Beng}, {"bopo", SC::Bopo}, {"brah", SC::Brah},
    324       {"brai", SC::Brai}, {"bugi", SC::Bugi}, {"buhd", SC::Buhd},
    325       {"cakm", SC::Cakm}, {"cans", SC::Cans}, {"cari", SC::Cari},
    326       {"cher", SC::Cher}, {"copt", SC::Copt}, {"cprt", SC::Cprt},
    327       {"cyrl", SC::Cyrl}, {"deva", SC::Deva}, {"dsrt", SC::Dsrt},
    328       {"dupl", SC::Dupl}, {"egyp", SC::Egyp}, {"elba", SC::Elba},
    329       {"ethi", SC::Ethi}, {"geor", SC::Geor}, {"glag", SC::Glag},
    330       {"goth", SC::Goth}, {"gran", SC::Gran}, {"grek", SC::Grek},
    331       {"gujr", SC::Gujr}, {"guru", SC::Guru}, {"hang", SC::Hang},
    332       {"hani", SC::Hani}, {"hano", SC::Hano}, {"hebr", SC::Hebr},
    333       {"hira", SC::Hira}, {"hmng", SC::Hmng}, {"hrkt", SC::Hrkt},
    334       {"ital", SC::Ital}, {"java", SC::Java}, {"kali", SC::Kali},
    335       {"kana", SC::Kana}, {"khar", SC::Khar}, {"khmr", SC::Khmr},
    336       {"khoj", SC::Khoj}, {"knda", SC::Knda}, {"kthi", SC::Kthi},
    337       {"lana", SC::Lana}, {"laoo", SC::Laoo}, {"latn", SC::Latn},
    338       {"lepc", SC::Lepc}, {"limb", SC::Limb}, {"lina", SC::Lina},
    339       {"linb", SC::Linb}, {"lyci", SC::Lyci}, {"lydi", SC::Lydi},
    340       {"mahj", SC::Mahj}, {"mand", SC::Mand}, {"mani", SC::Mani},
    341       {"mend", SC::Mend}, {"merc", SC::Merc}, {"mero", SC::Mero},
    342       {"mlym", SC::Mlym}, {"mong", SC::Mong}, {"mroo", SC::Mroo},
    343       {"mtei", SC::Mtei}, {"mymr", SC::Mymr}, {"narb", SC::Narb},
    344       {"nbat", SC::Nbat}, {"nkoo", SC::Nkoo}, {"ogam", SC::Ogam},
    345       {"olck", SC::Olck}, {"orkh", SC::Orkh}, {"orya", SC::Orya},
    346       {"osma", SC::Osma}, {"palm", SC::Palm}, {"pauc", SC::Pauc},
    347       {"perm", SC::Perm}, {"phag", SC::Phag}, {"phli", SC::Phli},
    348       {"phlp", SC::Phlp}, {"phnx", SC::Phnx}, {"plrd", SC::Plrd},
    349       {"prti", SC::Prti}, {"qaac", SC::Copt}, {"qaai", SC::Zinh},
    350       {"rjng", SC::Rjng}, {"runr", SC::Runr}, {"samr", SC::Samr},
    351       {"sarb", SC::Sarb}, {"saur", SC::Saur}, {"shaw", SC::Shaw},
    352       {"shrd", SC::Shrd}, {"sidd", SC::Sidd}, {"sind", SC::Sind},
    353       {"sinh", SC::Sinh}, {"sora", SC::Sora}, {"sund", SC::Sund},
    354       {"sylo", SC::Sylo}, {"syrc", SC::Syrc}, {"tagb", SC::Tagb},
    355       {"takr", SC::Takr}, {"tale", SC::Tale}, {"talu", SC::Talu},
    356       {"taml", SC::Taml}, {"tavt", SC::Tavt}, {"telu", SC::Telu},
    357       {"tfng", SC::Tfng}, {"tglg", SC::Tglg}, {"thaa", SC::Thaa},
    358       {"tibt", SC::Tibt}, {"tirh", SC::Tirh}, {"ugar", SC::Ugar},
    359       {"vaii", SC::Vaii}, {"wara", SC::Wara}, {"xpeo", SC::Xpeo},
    360       {"xsux", SC::Xsux}, {"yiii", SC::Yiii}, {"zinh", SC::Zinh},
    361       {"zyyy", SC::Zyyy}, {"zzzz", SC::Zzzz}};
    362   }
    363 
    364   namespace BC {
     334      {"qaac", SC_ns::Copt}, {"qaai", SC_ns::Zinh}};
     335  }
     336
     337  namespace BC_ns {
    365338    enum value_t {
    366339      AL, AN, B, BN, CS, EN, ES, ET, FSI, L, LRE, LRI, LRO, NSM, ON, PDF,
    367340      PDI, R, RLE, RLI, RLO, S, WS};
     341    const std::vector<std::string> enum_names = {
     342      "AL", "AN", "B", "BN", "CS", "EN", "ES", "ET", "FSI", "L", "LRE",
     343      "LRI", "LRO", "NSM", "ON", "PDF", "PDI", "R", "RLE", "RLI", "RLO",
     344      "S", "WS"};
    368345    const std::vector<std::string> value_names = {
    369346      "Arabic_Letter", "Arabic_Number", "Paragraph_Separator",
     
    376353      "Right_To_Left_Override", "Segment_Separator", "White_Space"};
    377354    const std::unordered_map<std::string, int> aliases_only_map = {
    378       {"al", BC::AL}, {"an", BC::AN}, {"b", BC::B}, {"bn", BC::BN},
    379       {"cs", BC::CS}, {"en", BC::EN}, {"es", BC::ES}, {"et", BC::ET},
    380       {"fsi", BC::FSI}, {"l", BC::L}, {"lre", BC::LRE}, {"lri", BC::LRI},
    381       {"lro", BC::LRO}, {"nsm", BC::NSM}, {"on", BC::ON}, {"pdf", BC::PDF},
    382       {"pdi", BC::PDI}, {"r", BC::R}, {"rle", BC::RLE}, {"rli", BC::RLI},
    383       {"rlo", BC::RLO}, {"s", BC::S}, {"ws", BC::WS}};
    384   }
    385 
    386   namespace BPT {
     355      };
     356  }
     357
     358  namespace BPT_ns {
    387359    enum value_t {
    388360      c, n, o};
     361    const std::vector<std::string> enum_names = {
     362      "c", "n", "o"};
    389363    const std::vector<std::string> value_names = {
    390364      "Close", "None", "Open"};
    391365    const std::unordered_map<std::string, int> aliases_only_map = {
    392       {"c", BPT::c}, {"n", BPT::n}, {"o", BPT::o}};
    393   }
    394 
    395   namespace CCC {
     366      };
     367  }
     368
     369  namespace CCC_ns {
    396370    enum value_t {
    397371      NR, OV, NK, KV, VR, CCC10, CCC11, CCC12, CCC13, CCC14, CCC15, CCC16,
     
    406380      118, 122, 129, 130, 132, 133, 200, 202, 214, 216, 218, 220, 222, 224,
    407381      226, 228, 230, 232, 233, 234, 240};
     382    const std::vector<std::string> enum_names = {
     383      "NR", "OV", "NK", "KV", "VR", "CCC10", "CCC11", "CCC12", "CCC13",
     384      "CCC14", "CCC15", "CCC16", "CCC17", "CCC18", "CCC19", "CCC20",
     385      "CCC21", "CCC22", "CCC23", "CCC24", "CCC25", "CCC26", "CCC27",
     386      "CCC28", "CCC29", "CCC30", "CCC31", "CCC32", "CCC33", "CCC34",
     387      "CCC35", "CCC36", "CCC84", "CCC91", "CCC103", "CCC107", "CCC118",
     388      "CCC122", "CCC129", "CCC130", "CCC132", "CCC133", "ATBL", "ATB",
     389      "ATA", "ATAR", "BL", "B", "BR", "L", "R", "AL", "A", "AR", "DB", "DA",
     390      "IS"};
    408391    const std::vector<std::string> value_names = {
    409392      "Not_Reordered", "Overlay", "Nukta", "Kana_Voicing", "Virama",
     
    418401      "Double_Below", "Double_Above", "Iota_Subscript"};
    419402    const std::unordered_map<std::string, int> aliases_only_map = {
    420       {"a", CCC::A}, {"al", CCC::AL}, {"ar", CCC::AR}, {"ata", CCC::ATA},
    421       {"atar", CCC::ATAR}, {"atb", CCC::ATB}, {"atbl", CCC::ATBL},
    422       {"b", CCC::B}, {"bl", CCC::BL}, {"br", CCC::BR}, {"da", CCC::DA},
    423       {"db", CCC::DB}, {"is", CCC::IS}, {"kv", CCC::KV}, {"l", CCC::L},
    424       {"nk", CCC::NK}, {"nr", CCC::NR}, {"ov", CCC::OV}, {"r", CCC::R},
    425       {"vr", CCC::VR}};
    426   }
    427 
    428   namespace DT {
     403      };
     404  }
     405
     406  namespace DT_ns {
    429407    enum value_t {
    430408      Can, Com, Enc, Fin, Font, Fra, Init, Iso, Med, Nar, Nb, None, Sml,
    431409      Sqr, Sub, Sup, Vert, Wide};
     410    const std::vector<std::string> enum_names = {
     411      "Can", "Com", "Enc", "Fin", "Font", "Fra", "Init", "Iso", "Med",
     412      "Nar", "Nb", "None", "Sml", "Sqr", "Sub", "Sup", "Vert", "Wide"};
    432413    const std::vector<std::string> value_names = {
    433414      "Canonical", "Compat", "Circle", "Final", "Font", "Fraction",
     
    435416      "Square", "Sub", "Super", "Vertical", "Wide"};
    436417    const std::unordered_map<std::string, int> aliases_only_map = {
    437       {"can", DT::Can}, {"com", DT::Com}, {"enc", DT::Enc},
    438       {"fin", DT::Fin}, {"fra", DT::Fra}, {"init", DT::Init},
    439       {"med", DT::Med}, {"nar", DT::Nar}, {"nb", DT::Nb}, {"o", DT::Iso},
    440       {"sml", DT::Sml}, {"sqr", DT::Sqr}, {"sup", DT::Sup},
    441       {"vert", DT::Vert}};
    442   }
    443 
    444   namespace EA {
     418      };
     419  }
     420
     421  namespace EA_ns {
    445422    enum value_t {
    446423      A, F, H, N, Na, W};
     424    const std::vector<std::string> enum_names = {
     425      "A", "F", "H", "N", "Na", "W"};
    447426    const std::vector<std::string> value_names = {
    448427      "Ambiguous", "Fullwidth", "Halfwidth", "Neutral", "Narrow", "Wide"};
    449428    const std::unordered_map<std::string, int> aliases_only_map = {
    450       {"a", EA::A}, {"f", EA::F}, {"h", EA::H}, {"n", EA::N},
    451       {"na", EA::Na}, {"w", EA::W}};
    452   }
    453 
    454   namespace GC {
     429      };
     430  }
     431
     432  namespace GC_ns {
    455433    enum value_t {
    456434      C, Cc, Cf, Cn, Co, Cs, L, LC, Ll, Lm, Lo, Lt, Lu, M, Mc, Me, Mn, N,
    457435      Nd, Nl, No, P, Pc, Pd, Pe, Pf, Pi, Po, Ps, S, Sc, Sk, Sm, So, Z, Zl,
    458436      Zp, Zs};
     437    const std::vector<std::string> enum_names = {
     438      "C", "Cc", "Cf", "Cn", "Co", "Cs", "L", "LC", "Ll", "Lm", "Lo", "Lt",
     439      "Lu", "M", "Mc", "Me", "Mn", "N", "Nd", "Nl", "No", "P", "Pc", "Pd",
     440      "Pe", "Pf", "Pi", "Po", "Ps", "S", "Sc", "Sk", "Sm", "So", "Z", "Zl",
     441      "Zp", "Zs"};
    459442    const std::vector<std::string> value_names = {
    460443      "Other", "Control", "Format", "Unassigned", "Private_Use",
     
    470453      "Space_Separator"};
    471454    const std::unordered_map<std::string, int> aliases_only_map = {
    472       {"c", GC::C}, {"cc", GC::Cc}, {"cf", GC::Cf}, {"cn", GC::Cn},
    473       {"cntrl", GC::Cc}, {"co", GC::Co}, {"combiningmark", GC::M},
    474       {"cs", GC::Cs}, {"digit", GC::Nd}, {"l", GC::L}, {"lc", GC::LC},
    475       {"ll", GC::Ll}, {"lm", GC::Lm}, {"lo", GC::Lo}, {"lt", GC::Lt},
    476       {"lu", GC::Lu}, {"m", GC::M}, {"mc", GC::Mc}, {"me", GC::Me},
    477       {"mn", GC::Mn}, {"n", GC::N}, {"nd", GC::Nd}, {"nl", GC::Nl},
    478       {"no", GC::No}, {"p", GC::P}, {"pc", GC::Pc}, {"pd", GC::Pd},
    479       {"pe", GC::Pe}, {"pf", GC::Pf}, {"pi", GC::Pi}, {"po", GC::Po},
    480       {"ps", GC::Ps}, {"punct", GC::P}, {"s", GC::S}, {"sc", GC::Sc},
    481       {"sk", GC::Sk}, {"sm", GC::Sm}, {"so", GC::So}, {"z", GC::Z},
    482       {"zl", GC::Zl}, {"zp", GC::Zp}, {"zs", GC::Zs}};
    483   }
    484 
    485   namespace GCB {
     455      {"cntrl", GC_ns::Cc}, {"combiningmark", GC_ns::M},
     456      {"digit", GC_ns::Nd}, {"punct", GC_ns::P}};
     457  }
     458
     459  namespace GCB_ns {
    486460    enum value_t {
    487461      CN, CR, EX, L, LF, LV, LVT, PP, RI, SM, T, V, XX};
     462    const std::vector<std::string> enum_names = {
     463      "CN", "CR", "EX", "L", "LF", "LV", "LVT", "PP", "RI", "SM", "T", "V",
     464      "XX"};
    488465    const std::vector<std::string> value_names = {
    489466      "Control", "CR", "Extend", "L", "LF", "LV", "LVT", "Prepend",
    490467      "Regional_Indicator", "SpacingMark", "T", "V", "Other"};
    491468    const std::unordered_map<std::string, int> aliases_only_map = {
    492       {"cn", GCB::CN}, {"ex", GCB::EX}, {"pp", GCB::PP}, {"ri", GCB::RI},
    493       {"sm", GCB::SM}, {"xx", GCB::XX}};
    494   }
    495 
    496   namespace HST {
     469      };
     470  }
     471
     472  namespace HST_ns {
    497473    enum value_t {
    498474      L, LV, LVT, NA, T, V};
     475    const std::vector<std::string> enum_names = {
     476      "L", "LV", "LVT", "NA", "T", "V"};
    499477    const std::vector<std::string> value_names = {
    500478      "Leading_Jamo", "LV_Syllable", "LVT_Syllable", "Not_Applicable",
    501479      "Trailing_Jamo", "Vowel_Jamo"};
    502480    const std::unordered_map<std::string, int> aliases_only_map = {
    503       {"l", HST::L}, {"lv", HST::LV}, {"lvt", HST::LVT}, {"na", HST::NA},
    504       {"t", HST::T}, {"v", HST::V}};
    505   }
    506 
    507   namespace INMC {
     481      };
     482  }
     483
     484  namespace INMC_ns {
    508485    enum value_t {
    509486      Bottom, Bottom_And_Right, Left, Left_And_Right, NA, Overstruck, Right,
    510487      Top, Top_And_Bottom, Top_And_Bottom_And_Right, Top_And_Left,
    511488      Top_And_Left_And_Right, Top_And_Right, Visual_Order_Left};
    512     const std::vector<std::string> value_names = {
     489    const std::vector<std::string> enum_names = {
    513490      "Bottom", "Bottom_And_Right", "Left", "Left_And_Right", "NA",
    514491      "Overstruck", "Right", "Top", "Top_And_Bottom",
    515492      "Top_And_Bottom_And_Right", "Top_And_Left", "Top_And_Left_And_Right",
    516493      "Top_And_Right", "Visual_Order_Left"};
    517     const std::unordered_map<std::string, int> aliases_only_map = {
    518       };
    519   }
    520 
    521   namespace INSC {
     494    const std::vector<std::string> value_names = {
     495      "Bottom", "Bottom_And_Right", "Left", "Left_And_Right", "NA",
     496      "Overstruck", "Right", "Top", "Top_And_Bottom",
     497      "Top_And_Bottom_And_Right", "Top_And_Left", "Top_And_Left_And_Right",
     498      "Top_And_Right", "Visual_Order_Left"};
     499    const std::unordered_map<std::string, int> aliases_only_map = {
     500      };
     501  }
     502
     503  namespace INSC_ns {
    522504    enum value_t {
    523505      Avagraha, Bindu, Brahmi_Joining_Number, Cantillation_Mark, Consonant,
     
    529511      Tone_Letter, Tone_Mark, Virama, Visarga, Vowel, Vowel_Dependent,
    530512      Vowel_Independent};
    531     const std::vector<std::string> value_names = {
     513    const std::vector<std::string> enum_names = {
    532514      "Avagraha", "Bindu", "Brahmi_Joining_Number", "Cantillation_Mark",
    533515      "Consonant", "Consonant_Dead", "Consonant_Final",
     
    539521      "Tone_Letter", "Tone_Mark", "Virama", "Visarga", "Vowel",
    540522      "Vowel_Dependent", "Vowel_Independent"};
    541     const std::unordered_map<std::string, int> aliases_only_map = {
    542       };
    543   }
    544 
    545   namespace JG {
     523    const std::vector<std::string> value_names = {
     524      "Avagraha", "Bindu", "Brahmi_Joining_Number", "Cantillation_Mark",
     525      "Consonant", "Consonant_Dead", "Consonant_Final",
     526      "Consonant_Head_Letter", "Consonant_Medial", "Consonant_Placeholder",
     527      "Consonant_Preceding_Repha", "Consonant_Subjoined",
     528      "Consonant_Succeeding_Repha", "Gemination_Mark", "Invisible_Stacker",
     529      "Joiner", "Modifying_Letter", "Non_Joiner", "Nukta", "Number",
     530      "Number_Joiner", "Other", "Pure_Killer", "Register_Shifter",
     531      "Tone_Letter", "Tone_Mark", "Virama", "Visarga", "Vowel",
     532      "Vowel_Dependent", "Vowel_Independent"};
     533    const std::unordered_map<std::string, int> aliases_only_map = {
     534      };
     535  }
     536
     537  namespace JG_ns {
    546538    enum value_t {
    547539      Ain, Alaph, Alef, Beh, Beth, Burushaski_Yeh_Barree, Dal, Dalath_Rish,
     
    560552      Teh_Marbuta, Teh_Marbuta_Goal, Teth, Waw, Yeh, Yeh_Barree,
    561553      Yeh_With_Tail, Yudh, Yudh_He, Zain, Zhain};
     554    const std::vector<std::string> enum_names = {
     555      "Ain", "Alaph", "Alef", "Beh", "Beth", "Burushaski_Yeh_Barree", "Dal",
     556      "Dalath_Rish", "E", "Farsi_Yeh", "Fe", "Feh", "Final_Semkath", "Gaf",
     557      "Gamal", "Hah", "He", "Heh", "Heh_Goal", "Heth", "Kaf", "Kaph",
     558      "Khaph", "Knotted_Heh", "Lam", "Lamadh", "Manichaean_Aleph",
     559      "Manichaean_Ayin", "Manichaean_Beth", "Manichaean_Daleth",
     560      "Manichaean_Dhamedh", "Manichaean_Five", "Manichaean_Gimel",
     561      "Manichaean_Heth", "Manichaean_Hundred", "Manichaean_Kaph",
     562      "Manichaean_Lamedh", "Manichaean_Mem", "Manichaean_Nun",
     563      "Manichaean_One", "Manichaean_Pe", "Manichaean_Qoph",
     564      "Manichaean_Resh", "Manichaean_Sadhe", "Manichaean_Samekh",
     565      "Manichaean_Taw", "Manichaean_Ten", "Manichaean_Teth",
     566      "Manichaean_Thamedh", "Manichaean_Twenty", "Manichaean_Waw",
     567      "Manichaean_Yodh", "Manichaean_Zayin", "Meem", "Mim",
     568      "No_Joining_Group", "Noon", "Nun", "Nya", "Pe", "Qaf", "Qaph", "Reh",
     569      "Reversed_Pe", "Rohingya_Yeh", "Sad", "Sadhe", "Seen", "Semkath",
     570      "Shin", "Straight_Waw", "Swash_Kaf", "Syriac_Waw", "Tah", "Taw",
     571      "Teh_Marbuta", "Teh_Marbuta_Goal", "Teth", "Waw", "Yeh", "Yeh_Barree",
     572      "Yeh_With_Tail", "Yudh", "Yudh_He", "Zain", "Zhain"};
    562573    const std::vector<std::string> value_names = {
    563574      "Ain", "Alaph", "Alef", "Beh", "Beth", "Burushaski_Yeh_Barree", "Dal",
     
    580591      "Yeh_Barree", "Yeh_With_Tail", "Yudh", "Yudh_He", "Zain", "Zhain"};
    581592    const std::unordered_map<std::string, int> aliases_only_map = {
    582       {"tehmarbutagoal", JG::Teh_Marbuta_Goal}};
    583   }
    584 
    585   namespace JT {
     593      };
     594  }
     595
     596  namespace JT_ns {
    586597    enum value_t {
    587598      C, D, L, R, T, U};
     599    const std::vector<std::string> enum_names = {
     600      "C", "D", "L", "R", "T", "U"};
    588601    const std::vector<std::string> value_names = {
    589602      "Join_Causing", "Dual_Joining", "Left_Joining", "Right_Joining",
    590603      "Transparent", "Non_Joining"};
    591604    const std::unordered_map<std::string, int> aliases_only_map = {
    592       {"c", JT::C}, {"d", JT::D}, {"l", JT::L}, {"r", JT::R}, {"t", JT::T},
    593       {"u", JT::U}};
    594   }
    595 
    596   namespace LB {
     605      };
     606  }
     607
     608  namespace LB_ns {
    597609    enum value_t {
    598610      AI, AL, B2, BA, BB, BK, CB, CJ, CL, CM, CP, CR, EX, GL, H2, H3, HL,
    599611      HY, ID, IN, IS, JL, JT, JV, LF, NL, NS, NU, OP, PO, PR, QU, RI, SA,
    600612      SG, SP, SY, WJ, XX, ZW};
     613    const std::vector<std::string> enum_names = {
     614      "AI", "AL", "B2", "BA", "BB", "BK", "CB", "CJ", "CL", "CM", "CP",
     615      "CR", "EX", "GL", "H2", "H3", "HL", "HY", "ID", "IN", "IS", "JL",
     616      "JT", "JV", "LF", "NL", "NS", "NU", "OP", "PO", "PR", "QU", "RI",
     617      "SA", "SG", "SP", "SY", "WJ", "XX", "ZW"};
    601618    const std::vector<std::string> value_names = {
    602619      "Ambiguous", "Alphabetic", "Break_Both", "Break_After",
     
    611628      "Word_Joiner", "Unknown", "ZWSpace"};
    612629    const std::unordered_map<std::string, int> aliases_only_map = {
    613       {"ai", LB::AI}, {"al", LB::AL}, {"b2", LB::B2}, {"ba", LB::BA},
    614       {"bb", LB::BB}, {"bk", LB::BK}, {"cb", LB::CB}, {"cj", LB::CJ},
    615       {"cl", LB::CL}, {"cm", LB::CM}, {"cp", LB::CP}, {"cr", LB::CR},
    616       {"ex", LB::EX}, {"gl", LB::GL}, {"hl", LB::HL}, {"hy", LB::HY},
    617       {"id", LB::ID}, {"in", LB::IN}, {"inseperable", LB::IN},
    618       {"is", LB::IS}, {"lf", LB::LF}, {"nl", LB::NL}, {"ns", LB::NS},
    619       {"nu", LB::NU}, {"op", LB::OP}, {"po", LB::PO}, {"pr", LB::PR},
    620       {"qu", LB::QU}, {"ri", LB::RI}, {"sa", LB::SA}, {"sg", LB::SG},
    621       {"sp", LB::SP}, {"sy", LB::SY}, {"wj", LB::WJ}, {"xx", LB::XX},
    622       {"zw", LB::ZW}};
    623   }
    624 
    625   namespace NFC_QC {
     630      {"inseperable", LB_ns::IN}};
     631  }
     632
     633  namespace NFC_QC_ns {
    626634    enum value_t {
    627635      M, N, Y};
     636    const std::vector<std::string> enum_names = {
     637      "M", "N", "Y"};
    628638    const std::vector<std::string> value_names = {
    629639      "Maybe", "No", "Yes"};
    630640    const std::unordered_map<std::string, int> aliases_only_map = {
    631       {"m", NFC_QC::M}, {"n", NFC_QC::N}, {"y", NFC_QC::Y}};
    632   }
    633 
    634   namespace NFD_QC {
     641      };
     642  }
     643
     644  namespace NFD_QC_ns {
    635645    enum value_t {
    636646      N, Y};
     647    const std::vector<std::string> enum_names = {
     648      "N", "Y"};
    637649    const std::vector<std::string> value_names = {
    638650      "No", "Yes"};
    639651    const std::unordered_map<std::string, int> aliases_only_map = {
    640       {"n", NFD_QC::N}, {"y", NFD_QC::Y}};
    641   }
    642 
    643   namespace NFKC_QC {
     652      };
     653  }
     654
     655  namespace NFKC_QC_ns {
    644656    enum value_t {
    645657      M, N, Y};
     658    const std::vector<std::string> enum_names = {
     659      "M", "N", "Y"};
    646660    const std::vector<std::string> value_names = {
    647661      "Maybe", "No", "Yes"};
    648662    const std::unordered_map<std::string, int> aliases_only_map = {
    649       {"m", NFKC_QC::M}, {"n", NFKC_QC::N}, {"y", NFKC_QC::Y}};
    650   }
    651 
    652   namespace NFKD_QC {
     663      };
     664  }
     665
     666  namespace NFKD_QC_ns {
    653667    enum value_t {
    654668      N, Y};
     669    const std::vector<std::string> enum_names = {
     670      "N", "Y"};
    655671    const std::vector<std::string> value_names = {
    656672      "No", "Yes"};
    657673    const std::unordered_map<std::string, int> aliases_only_map = {
    658       {"n", NFKD_QC::N}, {"y", NFKD_QC::Y}};
    659   }
    660 
    661   namespace NT {
     674      };
     675  }
     676
     677  namespace NT_ns {
    662678    enum value_t {
    663679      De, Di, None, Nu};
     680    const std::vector<std::string> enum_names = {
     681      "De", "Di", "None", "Nu"};
    664682    const std::vector<std::string> value_names = {
    665683      "Decimal", "Digit", "None", "Numeric"};
    666684    const std::unordered_map<std::string, int> aliases_only_map = {
    667       {"de", NT::De}, {"di", NT::Di}, {"nu", NT::Nu}};
    668   }
    669 
    670   namespace SB {
     685      };
     686  }
     687
     688  namespace SB_ns {
    671689    enum value_t {
    672690      AT, CL, CR, EX, FO, LE, LF, LO, NU, SC, SE, SP, ST, UP, XX};
     691    const std::vector<std::string> enum_names = {
     692      "AT", "CL", "CR", "EX", "FO", "LE", "LF", "LO", "NU", "SC", "SE",
     693      "SP", "ST", "UP", "XX"};
    673694    const std::vector<std::string> value_names = {
    674695      "ATerm", "Close", "CR", "Extend", "Format", "OLetter", "LF", "Lower",
    675696      "Numeric", "SContinue", "Sep", "Sp", "STerm", "Upper", "Other"};
    676697    const std::unordered_map<std::string, int> aliases_only_map = {
    677       {"at", SB::AT}, {"cl", SB::CL}, {"ex", SB::EX}, {"fo", SB::FO},
    678       {"le", SB::LE}, {"lo", SB::LO}, {"nu", SB::NU}, {"sc", SB::SC},
    679       {"se", SB::SE}, {"st", SB::ST}, {"up", SB::UP}, {"xx", SB::XX}};
    680   }
    681 
    682   namespace WB {
     698      };
     699  }
     700
     701  namespace WB_ns {
    683702    enum value_t {
    684703      CR, DQ, EX, Extend, FO, HL, KA, LE, LF, MB, ML, MN, NL, NU, RI, SQ,
    685704      XX};
     705    const std::vector<std::string> enum_names = {
     706      "CR", "DQ", "EX", "Extend", "FO", "HL", "KA", "LE", "LF", "MB", "ML",
     707      "MN", "NL", "NU", "RI", "SQ", "XX"};
    686708    const std::vector<std::string> value_names = {
    687709      "CR", "Double_Quote", "ExtendNumLet", "Extend", "Format",
     
    690712      "Single_Quote", "Other"};
    691713    const std::unordered_map<std::string, int> aliases_only_map = {
    692       {"dq", WB::DQ}, {"ex", WB::EX}, {"fo", WB::FO}, {"hl", WB::HL},
    693       {"ka", WB::KA}, {"le", WB::LE}, {"mb", WB::MB}, {"ml", WB::ML},
    694       {"mn", WB::MN}, {"nl", WB::NL}, {"nu", WB::NU}, {"ri", WB::RI},
    695       {"sq", WB::SQ}, {"xx", WB::XX}};
     714      };
    696715  }
    697716}
  • icGREP/icgrep-devel/icgrep/UCD/ScriptExtensions.h

    r4366 r4380  
    1414#include "unicode_set.h"
    1515
    16 using namespace UCD;
    17 
     16namespace UCD {
     17  namespace SCX_ns {
    1818    const UnicodeSet aghb_Ext
    1919      {{{Empty, 2089}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 32724}},
     
    705705       34816};
    706706    const UnicodeSet zzzz_Ext
    707       {{{Empty, 34816}},
    708        {},
    709        34816};
    710     const EnumeratedPropertyObject property_object
     707      {{{Empty, 27}, {Mixed, 3}, {Empty, 11}, {Mixed, 4}, {Empty, 1},
     708        {Mixed, 3}, {Empty, 7}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
     709        {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
     710        {Mixed, 2}, {Full, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1},
     711        {Empty, 4}, {Mixed, 39}, {Full, 1}, {Mixed, 3}, {Full, 1},
     712        {Empty, 2}, {Mixed, 5}, {Full, 1}, {Empty, 6}, {Mixed, 1},
     713        {Empty, 11}, {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 1},
     714        {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 2}, {Mixed, 1},
     715        {Empty, 20}, {Mixed, 1}, {Empty, 2}, {Mixed, 5}, {Empty, 2},
     716        {Mixed, 3}, {Empty, 2}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
     717        {Empty, 1}, {Mixed, 5}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
     718        {Mixed, 1}, {Empty, 1}, {Mixed, 4}, {Full, 2}, {Empty, 2},
     719        {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 2},
     720        {Empty, 1}, {Full, 2}, {Mixed, 2}, {Empty, 7}, {Mixed, 1},
     721        {Empty, 8}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1},
     722        {Mixed, 3}, {Empty, 3}, {Mixed, 5}, {Empty, 4}, {Mixed, 1},
     723        {Empty, 18}, {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 56},
     724        {Mixed, 4}, {Full, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 4},
     725        {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 4},
     726        {Empty, 3}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 2},
     727        {Mixed, 1}, {Empty, 6}, {Mixed, 2}, {Empty, 2}, {Mixed, 1},
     728        {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 2},
     729        {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 6}, {Mixed, 1},
     730        {Empty, 213}, {Mixed, 1}, {Empty, 656}, {Mixed, 1}, {Full, 1},
     731        {Empty, 36}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 10},
     732        {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
     733        {Empty, 4}, {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Empty, 1},
     734        {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
     735        {Empty, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 2}, {Empty, 1},
     736        {Mixed, 2}, {Empty, 3}, {Mixed, 4}, {Empty, 1}, {Mixed, 1},
     737        {Full, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 349}, {Mixed, 3},
     738        {Full, 264}, {Empty, 11}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
     739        {Full, 1}, {Mixed, 3}, {Empty, 3}, {Mixed, 1}, {Empty, 11},
     740        {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 6},
     741        {Empty, 3}, {Mixed, 2}, {Empty, 4}, {Mixed, 6}, {Full, 1},
     742        {Empty, 3}, {Mixed, 3}, {Empty, 2}, {Mixed, 4}, {Full, 4},
     743        {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 4},
     744        {Empty, 1}, {Mixed, 1}, {Full, 1}, {Empty, 4}, {Mixed, 2},
     745        {Full, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
     746        {Full, 4}, {Empty, 9}, {Mixed, 3}, {Full, 4}, {Mixed, 3},
     747        {Empty, 1}, {Mixed, 2}, {Full, 2}, {Mixed, 2}, {Full, 2},
     748        {Empty, 1}, {Mixed, 1}, {Full, 2}, {Mixed, 3}, {Empty, 2},
     749        {Full, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1}, {Mixed, 5},
     750        {Full, 2}, {Empty, 2}, {Mixed, 1}, {Full, 16}, {Mixed, 1},
     751        {Full, 12}, {Empty, 2}, {Mixed, 2}, {Empty, 2}, {Mixed, 2},
     752        {Empty, 1}, {Mixed, 3}, {Empty, 2}, {Mixed, 4}, {Full, 3},
     753        {Mixed, 1}, {Empty, 1}, {Mixed, 5}, {Full, 8}, {Empty, 2},
     754        {Mixed, 1}, {Full, 5}, {Empty, 1}, {Mixed, 2}, {Full, 1},
     755        {Empty, 2}, {Mixed, 1}, {Full, 1}, {Empty, 1}, {Mixed, 2},
     756        {Full, 14}, {Empty, 2}, {Mixed, 1}, {Full, 14}, {Empty, 1},
     757        {Mixed, 1}, {Full, 40}, {Empty, 28}, {Mixed, 1}, {Full, 3},
     758        {Empty, 3}, {Mixed, 1}, {Full, 92}, {Empty, 33}, {Mixed, 1},
     759        {Full, 414}, {Empty, 17}, {Mixed, 3}, {Full, 2}, {Mixed, 2},
     760        {Empty, 2}, {Mixed, 3}, {Full, 27}, {Empty, 2}, {Mixed, 3},
     761        {Full, 515}, {Mixed, 1}, {Full, 95}, {Empty, 3}, {Mixed, 3},
     762        {Full, 154}, {Empty, 7}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
     763        {Empty, 4}, {Mixed, 1}, {Full, 1}, {Empty, 2}, {Mixed, 1},
     764        {Full, 5}, {Empty, 2}, {Mixed, 2}, {Full, 4}, {Empty, 2},
     765        {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 3},
     766        {Empty, 10}, {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Empty, 1},
     767        {Full, 128}, {Empty, 6}, {Mixed, 1}, {Full, 41}, {Mixed, 6},
     768        {Full, 1}, {Mixed, 1}, {Full, 8}, {Empty, 1}, {Mixed, 1},
     769        {Empty, 2}, {Mixed, 6}, {Empty, 1}, {Mixed, 2}, {Full, 2},
     770        {Mixed, 4}, {Full, 5}, {Empty, 1}, {Mixed, 1}, {Empty, 1},
     771        {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 7}, {Mixed, 1},
     772        {Empty, 2}, {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 4},
     773        {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
     774        {Empty, 2}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 1},
     775        {Mixed, 1}, {Empty, 1}, {Mixed, 2}, {Full, 58}, {Empty, 1334},
     776        {Mixed, 1}, {Full, 1}, {Empty, 129}, {Mixed, 1}, {Empty, 6},
     777        {Mixed, 1}, {Full, 511}, {Empty, 16}, {Mixed, 1}, {Full, 22575},
     778        {Mixed, 1}, {Empty, 3}, {Full, 4}, {Empty, 7}, {Mixed, 1},
     779        {Full, 6128}},
     780       {0x03000000, 0x0000280f, 0x00000004, 0x00010000, 0x01800000,
     781        0x00000001, 0x00011900, 0x0000ff00, 0xffe0f800, 0x20000000,
     782        0x00004000, 0x00001800, 0xfffc0000, 0xf8000000, 0x8000c000,
     783        0xb0000000, 0xfff80000, 0x0000000f, 0x00066010, 0x0c3a0200,
     784        0x4f7f8660, 0xf0000030, 0x00067811, 0x2c920200, 0xa1fdc678,
     785        0xffc0003f, 0x00044011, 0x0c120200, 0xfffec440, 0xfffc0030,
     786        0x00066011, 0x0c120200, 0x4f3fc660, 0xff000030, 0x29c23813,
     787        0x3c0038e7, 0xff7ec238, 0xf800003f, 0x00022010, 0x1c000200,
     788        0xfc9fc220, 0x00ff0030, 0x00022011, 0x0c100200, 0xbf9fc220,
     789        0xfff90030, 0x00022011, 0x18000000, 0xff7f8220, 0x01c00030,
     790        0x03800013, 0xd0040000, 0x00a07b80, 0xffe3003f, 0x00000001,
     791        0x78000000, 0xf0000000, 0x010fda69, 0xc4001351, 0x0c00c0a0,
     792        0x00000100, 0x0001e000, 0x01000000, 0x20000000, 0xf8002000,
     793        0x0000df40, 0xc280c200, 0x0000c200, 0x80c20000, 0x008000c2,
     794        0x00c20000, 0x18000000, 0xe0000000, 0xfc000000, 0xffe00000,
     795        0xe0000000, 0xfe000000, 0xffe02000, 0xff800000, 0xfff00000,
     796        0xfff22000, 0xc0000000, 0xfc00fc00, 0xfc008000, 0xff000000,
     797        0x0000f800, 0xffc00000, 0x80000000, 0xf000f000, 0x0000000e,
     798        0xffe0c000, 0x0000f000, 0x3800fc00, 0x30000000, 0x80000000,
     799        0x60000000, 0xfc00fc00, 0x8000c000, 0x0000f000, 0xe0000000,
     800        0x0ff00000, 0x07000000, 0x00001c00, 0x0000ff00, 0xfc800000,
     801        0x0fc00000, 0xc0c00000, 0x5500c0c0, 0xc0000000, 0x00200000,
     802        0x10300020, 0x80230000, 0x000c0020, 0xe0008000, 0xc0000000,
     803        0x0000ffff, 0xfffe0000, 0x0000fc00, 0xf8000000, 0xffffff80,
     804        0xfffff800, 0x00300000, 0x00c00000, 0x1c000000, 0xfffc0200,
     805        0x00008000, 0x80000000, 0x01f00000, 0x0000df40, 0x7ffe7f00,
     806        0xff800000, 0x80808080, 0x80808080, 0xfffffff8, 0x04000000,
     807        0xfff00000, 0xffc00000, 0xf000ffff, 0x00000001, 0x01800000,
     808        0x0000001f, 0x0001c000, 0x00008000, 0xf8000000, 0x0000fff0,
     809        0x80000000, 0x80000000, 0xffc00000, 0xffffe000, 0x0000e000,
     810        0x0000ff80, 0xfffff000, 0x40000000, 0xff000000, 0x00008000,
     811        0xfffcc000, 0x007fffff, 0xfc00f000, 0xff000000, 0xfc003fe0,
     812        0xf0000000, 0x7ff00000, 0xe0000000, 0x3c004000, 0x80000000,
     813        0xff800000, 0x0c00c000, 0x07fffff8, 0xff800000, 0xff818181,
     814        0x00008080, 0xffffffcf, 0xfc00c000, 0x0000fff0, 0x00000780,
     815        0xf0000000, 0x0000c000, 0xfc000000, 0x1f07ff80, 0xa0800000,
     816        0x00000024, 0x0007fffc, 0x0000ffff, 0x00030000, 0xffffff00,
     817        0xc000ffff, 0xfc000000, 0x0000c000, 0x00080000, 0x0020f080,
     818        0x60000000, 0x00000001, 0x80000000, 0xe3030303, 0xc1ff8080,
     819        0x00001000, 0x48000080, 0xc000c000, 0xf8000000, 0x00000078,
     820        0x00700000, 0xf000e000, 0xfffffffe, 0x0000ffff, 0xc0000000,
     821        0xe0000000, 0xfffe0000, 0xf0000000, 0x0000fff0, 0x0000f800,
     822        0xf8000000, 0x40000000, 0xffc000f0, 0xc0000000, 0xfffffc00,
     823        0x0000ff00, 0xffff7ff0, 0xff800000, 0xffc00000, 0xffffff00,
     824        0x000002c0, 0x6e400000, 0x00400000, 0x80000000, 0xffff007f,
     825        0x70000000, 0x7c000000, 0x3f000000, 0x01100f90, 0x78f00000,
     826        0xfe00ff00, 0xff800780, 0x01c00000, 0x00c00000, 0x00f80000,
     827        0xe1fc0000, 0xffff01ff, 0xfffffe00, 0x80000000, 0x0003c000,
     828        0x7fff0000, 0x0000fffc, 0xfc00fe00, 0x00200000, 0x0000fff0,
     829        0xff800000, 0xf800de00, 0xffe00001, 0x00040000, 0xc0000000,
     830        0x0000ffff, 0xfc00f800, 0x00066011, 0x0c120200, 0x1f7fc660,
     831        0xffe0e030, 0xfc00ff00, 0x00c00000, 0xfffffc00, 0xfc00ffe0,
     832        0xff000000, 0xfffffc00, 0x7ff80000, 0xfe000000, 0xfe000000,
     833        0xffe08000, 0xffff8000, 0xfe000000, 0x80000000, 0xffff3c00,
     834        0x0000ffff, 0xffc0c000, 0x0400ffc0, 0x1f000004, 0xffff0000,
     835        0x0000ffe0, 0x80000000, 0x00007fff, 0xfffffffc, 0xe000f800,
     836        0x0c00fe00, 0xfffffff0, 0xffc00000, 0x00000180, 0xc0000000,
     837        0xffffffc0, 0xff800000, 0xfffc0000, 0x00200000, 0x20000000,
     838        0x1400219b, 0x00000010, 0x20201840, 0x84000000, 0x000203a0,
     839        0x000000c0, 0x00003000, 0xff800060, 0x00000010, 0xf5080169,
     840        0x5569157b, 0xa1080869, 0xf0000400, 0xf0000411, 0xfffcffff,
     841        0x0000f000, 0xfff00000, 0x00018000, 0x00010001, 0xffc00000,
     842        0x0000e000, 0x00008000, 0x0000f000, 0xf8000000, 0x0000003f,
     843        0x0000fff8, 0xf8000000, 0xfffcfe00, 0x0000e000, 0xc0000000,
     844        0x000f8000, 0xff000000, 0x80000000, 0x0000f800, 0x04000000,
     845        0x00000010, 0x00000018, 0xffff0000, 0xfff0e000, 0xfff00000,
     846        0xffe00000, 0x0000f000, 0xfc00ff00, 0x0000ff00, 0xffffc000,
     847        0xff800000, 0xffe00000, 0xc0000000, 0xc0000000, 0xfffffffd,
     848        0xffff0000},
     849       34816};
     850    EnumeratedPropertyObject property_object
    711851      {scx,
    712        SC::value_names,
    713        SC:aliases_only_map,
     852       SC_ns::enum_names,
     853       SC_ns::value_names,
     854       SC_ns::aliases_only_map,
    714855       {aghb_Ext, arab_Ext, armi_Ext, armn_Ext, avst_Ext, bali_Ext,
    715856        bamu_Ext, bass_Ext, batk_Ext, beng_Ext, bopo_Ext, brah_Ext,
  • icGREP/icgrep-devel/icgrep/UCD/Scripts.h

    r4366 r4380  
    1515
    1616namespace UCD {
    17   namespace SC {
     17  namespace SC_ns {
    1818    const UnicodeSet aghb_Set
    1919      {{{Empty, 2089}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 32724}},
     
    799799        0xffff0000},
    800800       34816};
    801     const EnumeratedPropertyObject property_object
     801    EnumeratedPropertyObject property_object
    802802      {sc,
    803        SC::value_names,
    804        SC::aliases_only_map,
     803       SC_ns::enum_names,
     804       SC_ns::value_names,
     805       SC_ns::aliases_only_map,
    805806       {aghb_Set, arab_Set, armi_Set, armn_Set, avst_Set, bali_Set,
    806807        bamu_Set, bass_Set, batk_Set, beng_Set, bopo_Set, brah_Set,
  • icGREP/icgrep-devel/icgrep/compiler.cpp

    r4353 r4380  
    2424#include <pablo/pablo_compiler.h>
    2525#include <pablo/analysis/useanalysis.h>
     26
     27#include "resolve_properties.cpp"
    2628
    2729#include "llvm/Support/CommandLine.h"
     
    8789      std::cerr << "RemoveNullableSuffix:" << std::endl << Printer_RE::PrintRE(re_ast) << std::endl;
    8890    }
     91   
     92    resolveProperties(re_ast);
     93   
    8994   
    9095    CC_NameMap nameMap;
  • icGREP/icgrep-devel/icgrep/re/re_name.h

    r4377 r4380  
    3131    const std::string & getNamespace() const;
    3232    const std::string & getName() const;
     33    void setName(std::string);
    3334    Type getType() const;
    3435    RE *getDefinition() const;
     
    6162
    6263private:
    63     const std::string   mNamespace;
    64     const std::string   mName;
     64    std::string   mNamespace;
     65    std::string   mName;
    6566    const Type          mType;
    6667    RE *                mDefiningRE;
     
    7273}
    7374
    74 inline const std::string & Name::getName() const {
    75     return mName;
    76 }
    77 
     75    inline const std::string & Name::getName() const {
     76        return mName;
     77    }
     78   
     79    inline void Name::setName(std::string n) {
     80        mName = n;
     81    }
     82   
    7883inline Name::Type Name::getType() const {
    7984    return mType;
Note: See TracChangeset for help on using the changeset viewer.