Changeset 5668 for icGREP


Ignore:
Timestamp:
Oct 5, 2017, 10:45:20 AM (19 months ago)
Author:
cameron
Message:

PropertyObject? restructuring - remove Miscellaneous and Codepoint objects, add Obsolete

Location:
icGREP/icgrep-devel
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/UCD-scripts/UCD_parser.py

    r5662 r5668  
    4040UCD_property_section_regexp = re.compile("^#\s*([-A-Za-z_0-9]+)\s*Properties\s*$")
    4141UCD_property_alias_regexp = re.compile("^([-A-Za-z_0-9]+)\s*;\s*([-A-Za-z_0-9]+)([^#]*)")
     42
     43# Section 2.3.3 of UAX $44
     44Obsolete_Properties = ["na1", "Gr_Link", "Hyphen", "isc", "XO_NFC", "XO_NFD", "XO_NFKC", "XO_NFKD" ,"FC_NFKC"]
    4245
    4346def parse_PropertyAlias_txt():
     
    5558        (property_code, prop_preferred_full_name, prop_extra) = (m.group(1), m.group(2), m.group(3))
    5659        property_enum_name_list.append(property_code)
    57         if property_kind == "Binary":
     60        if property_code in Obsolete_Properties:
     61            property_object_map[property_code] = ObsoletePropertyObject()
     62        elif property_kind == "Binary":
    5863            property_object_map[property_code] = BinaryPropertyObject()
    5964        elif property_kind == "Enumerated":
     
    263268            (prop_code, v) = parse_property_and_value(fields, property_lookup_map)
    264269            if not prop_code in props: props.append(prop_code)
    265             if v == None:  # binary property
    266                 property_object_map[prop_code].addDataRecord(cp_lo, cp_hi)
    267             else:
    268                 property_object_map[prop_code].addDataRecord(cp_lo, cp_hi, v)
     270            property_object_map[prop_code].addDataRecord(cp_lo, cp_hi, v)
    269271    for p in props:
    270272        property_object_map[p].finalizeProperty()
     
    291293            (cp_lo, cp_hi, fields) = parse_data_record(t)
    292294            if isinstance(property_object, BinaryPropertyObject) and len(fields) == 0:
    293                 property_object.addDataRecord(cp_lo, cp_hi)
     295                property_object.addDataRecord(cp_lo, cp_hi, None)
    294296            else:
    295297                property_object.addDataRecord(cp_lo, cp_hi, fields[0])
     
    353355        (ccc, bidic, decomp, bidim) = (m.group(4), m.group(5), m.group(6), m.group(10))
    354356        (decval, digitval, numval) = (m.group(7), m.group(8), m.group(9))
    355         # Unicode 1 name and ISO comment are obolete
    356         (uc, lc, tc) = (m.group(13), m.group(14), m.group(15))
     357        (na1, isc) = (m.group(10), m.group(11))
     358        (suc, slc, stc) = (m.group(13), m.group(14), m.group(15))
    357359        rangeMatch = NameRange_regexp.match(name)
    358360        if rangeMatch:
     
    362364            if rangeMatch.group(2) == 'Last':
    363365                if not rangeName in name_range_starts: raise Exception("UnicodeData range end encountered without prior range start: %s" % t)
    364                 range_records.append((name_range_starts[rangeName], cp, rangeName, gc, ccc, bidic, decomp, decval, digitval, numval, bidim, uc, lc, tc))
    365             continue
     366                range_records.append((name_range_starts[rangeName], cp, rangeName, gc))
    366367        if not NonName_regexp.match(name):
    367368            property_object_map['na'].addDataRecord(cp, cp, name)
     
    369370            (decomp_type, mapping) = parse_decomposition(decomp)
    370371            property_object_map['dm'].addDataRecord(cp, cp, mapping)
    371         if not uc == '':
    372             property_object_map['suc'].addDataRecord(cp, cp, uc)
    373             if tc == '':
     372        if not na1 == '':
     373            property_object_map['na1'].addDataRecord(cp, cp, na1)
     374        if not suc == '':
     375            property_object_map['suc'].addDataRecord(cp, cp, suc)
     376            if stc == '':
    374377                property_object_map['stc'].addDataRecord(cp, cp, uc)
    375         if not lc == '':
    376             property_object_map['slc'].addDataRecord(cp, cp, lc)
    377         if not tc == '':
    378             property_object_map['stc'].addDataRecord(cp, cp, tc)
     378        if not slc == '':
     379            property_object_map['slc'].addDataRecord(cp, cp, slc)
     380        if not stc == '':
     381            property_object_map['stc'].addDataRecord(cp, cp, stc)
    379382    property_object_map['na'].finalizeProperty()
     383    property_object_map['na1'].finalizeProperty()
     384    property_object_map['isc'].finalizeProperty()
    380385    property_object_map['dm'].finalizeProperty()
    381386    property_object_map['slc'].finalizeProperty()
  • icGREP/icgrep-devel/UCD-scripts/UCD_properties.py

    r5666 r5668  
    4040    }
    4141"""
    42 
    43 CodepointProperties = ['scf', 'slc', 'suc', 'stc']
    44 
    4542
    4643def emit_string_property(f, property_code, null_set, reflexive_set, cp_value_map):
     
    117114    f.write(cformat.multiline_fill(set_list, ',', 8))
    118115    f.write("\n         }};\n    }\n")
     116
     117def emit_Obsolete_property(f, property_code):
     118    s = string.Template(r"""    namespace ${prop_enum_up}_ns {
     119        static ObsoletePropertyObject property_object(${prop_enum});
     120    }
     121""")
     122    f.write(s.substitute(prop_enum = property_code, prop_enum_up = property_code.upper()))
     123
    119124
    120125class UCD_generator():
     
    198203        elif isinstance(property_object, StringPropertyObject):
    199204            emit_string_property(f, property_code, property_object.null_str_set, property_object.reflexive_set, property_object.cp_value_map)
     205        elif isinstance(property_object, ObsoletePropertyObject):
     206            emit_Obsolete_property(f, property_code)
    200207        else: return
    201208        self.supported_props.append(property_code)
     
    247254        f = cformat.open_header_file_for_write(basename)
    248255        cformat.write_imports(f, ['"PropertyAliases.h"', '"PropertyObjects.h"', '"PropertyValueAliases.h"', '"unicode_set.h"'])
    249         prop_code_list = ['na', 'dm', 'suc', 'slc', 'stc']
     256        prop_code_list = ['na', 'dm', 'suc', 'slc', 'stc', 'na1', 'isc']
    250257        f.write("\nnamespace UCD {\n")
    251258        for p in prop_code_list:
     
    298305            if p in self.supported_props:
    299306                objlist.append("&%s_ns::property_object" % p.upper())
    300             elif k == 'String':
    301                 if p in CodepointProperties:
    302                     objlist.append("new UnsupportedPropertyObject(%s, PropertyObject::ClassTypeId::CodepointProperty)" % p)
    303                 else:
    304                     objlist.append("new UnsupportedPropertyObject(%s, PropertyObject::ClassTypeId::StringProperty)" % p)
    305307            else:
    306308                objlist.append("new UnsupportedPropertyObject(%s, PropertyObject::ClassTypeId::%sProperty)" % (p, k))
  • icGREP/icgrep-devel/UCD-scripts/UCD_property_objects.py

    r5662 r5668  
    3232            raise Exception("Conflicting default specification")
    3333        self.default_value = default
     34    def addDataRecord(self, cp_lo, cp_hi, v):
     35        pass
    3436    def finalizeProperty(self):
    3537        pass
     
    134136        PropertyObject.setID(self, prop_code, long_name)
    135137
    136     def addDataRecord(self, cp_lo, cp_hi):
    137         self.value_map['Y'] = uset_union(self.value_map['Y'], range_uset(cp_lo, cp_hi))
     138    def addDataRecord(self, cp_lo, cp_hi, v):
     139        if v==None or v in self.property_value_lookup_map[v] == 'Y':
     140            self.value_map['Y'] = uset_union(self.value_map['Y'], range_uset(cp_lo, cp_hi))
     141        else:
     142            self.value_map['Y'] = uset_difference(self.value_map['Y'], range_uset(cp_lo, cp_hi))
    138143
    139144
     
    184189       
    185190    def getPropertyKind(self):
    186         if self.property_code in ['scf', 'slc', 'suc', 'stc']:
    187             return "Codepoint"
    188         else:
    189             return "String"
     191        return "String"
    190192
    191193    def addDataRecord(self, cp_lo, cp_hi, stringValue):
     
    215217            self.null_str_set = uset_union(self.null_str_set, uset_complement(uset_union(explicitly_defined_cps, self.reflexive_set)))
    216218
     219class ObsoletePropertyObject(PropertyObject):
     220    def __init__(self):
     221        PropertyObject.__init__(self)
     222
     223    def getPropertyKind(self): return "Obsolete"
     224
     225
    217226def getPropertyLookupMap(property_object_map):
    218227    property_lookup_map = {}
  • icGREP/icgrep-devel/icgrep/UCD/DerivedCoreProperties.h

    r5660 r5668  
    19111911    }
    19121912    namespace GR_LINK_ns {
    1913         /** Code Point Ranges for Gr_Link
    1914         [094d, 094d], [09cd, 09cd], [0a4d, 0a4d], [0acd, 0acd],
    1915         [0b4d, 0b4d], [0bcd, 0bcd], [0c4d, 0c4d], [0ccd, 0ccd],
    1916         [0d4d, 0d4d], [0dca, 0dca], [0e3a, 0e3a], [0f84, 0f84],
    1917         [1039, 103a], [1714, 1714], [1734, 1734], [17d2, 17d2],
    1918         [1a60, 1a60], [1b44, 1b44], [1baa, 1bab], [1bf2, 1bf3],
    1919         [2d7f, 2d7f], [a806, a806], [a8c4, a8c4], [a953, a953],
    1920         [a9c0, a9c0], [aaf6, aaf6], [abed, abed], [10a3f, 10a3f],
    1921         [11046, 11046], [1107f, 1107f], [110b9, 110b9], [11133, 11134],
    1922         [111c0, 111c0], [11235, 11235], [112ea, 112ea], [1134d, 1134d],
    1923         [11442, 11442], [114c2, 114c2], [115bf, 115bf], [1163f, 1163f],
    1924         [116b6, 116b6], [1172b, 1172b], [11c3f, 11c3f]**/
    1925         const UnicodeSet codepoint_set
    1926             {{{Empty, 74}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
    1927               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
    1928               {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
    1929               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
    1930               {Empty, 2}, {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 4},
    1931               {Mixed, 1}, {Empty, 54}, {Mixed, 2}, {Empty, 4}, {Mixed, 1},
    1932               {Empty, 20}, {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 2},
    1933               {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 139}, {Mixed, 1},
    1934               {Empty, 980}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 3},
    1935               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 8}, {Mixed, 1},
    1936               {Empty, 7}, {Mixed, 1}, {Empty, 753}, {Mixed, 1}, {Empty, 48},
    1937               {Mixed, 2}, {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
    1938               {Empty, 4}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 5},
    1939               {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 7}, {Mixed, 1},
    1940               {Empty, 3}, {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 3},
    1941               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
    1942               {Empty, 39}, {Mixed, 1}, {Empty, 32542}},
    1943              {0x00002000, 0x00002000, 0x00002000, 0x00002000, 0x00002000,
    1944               0x00002000, 0x00002000, 0x00002000, 0x00002000, 0x00000400,
    1945               0x04000000, 0x00000010, 0x06000000, 0x00100000, 0x00100000,
    1946               0x00040000, 0x00000001, 0x00000010, 0x00000c00, 0x000c0000,
    1947               0x80000000, 0x00000040, 0x00000010, 0x00080000, 0x00000001,
    1948               0x00400000, 0x00002000, 0x80000000, 0x00000040, 0x80000000,
    1949               0x02000000, 0x00180000, 0x00000001, 0x00200000, 0x00000400,
    1950               0x00002000, 0x00000004, 0x00000004, 0x80000000, 0x80000000,
    1951               0x00400000, 0x00000800, 0x80000000}};
    1952         static BinaryPropertyObject property_object{Gr_Link, codepoint_set};
     1913        static ObsoletePropertyObject property_object(Gr_Link);
    19531914    }
    19541915    namespace IDC_ns {
  • icGREP/icgrep-devel/icgrep/UCD/DerivedNormalizationProps.h

    r5663 r5668  
    336336    }
    337337    namespace FC_NFKC_ns {
    338         /** Code Point Ranges for FC_NFKC mapping to <none>
    339         **/
    340 
    341         const UnicodeSet null_codepoint_set
    342                     {{{Empty, 34816}},
    343              {}};
    344 
    345         /** Code Point Ranges for FC_NFKC mapping to <codepoint>
    346         [0000, 0379], [037b, 03d1], [03d5, 03f1], [03f3, 03f8],
    347         [03fa, 1d2b], [1d2f, 1d2f], [1d3b, 1d3b], [1d43, 20a7],
    348         [20a9, 2101], [2104, 2106], [2108, 2108], [210a, 210a],
    349         [210e, 210f], [2113, 2114], [2117, 2118], [211e, 211f],
    350         [2123, 2123], [2125, 2127], [2129, 212b], [212e, 212f],
    351         [2132, 2132], [2134, 213a], [213c, 213d], [2140, 2144],
    352         [2146, 2c7c], [2c7e, 324f], [3251, 32cb], [32cd, 32cd],
    353         [32d0, 3370], [3372, 3372], [3374, 3374], [3376, 3379],
    354         [337b, 337f], [3388, 3389], [338d, 338f], [3395, 33a8],
    355         [33ad, 33b3], [33c2, 33c2], [33c4, 33c5], [33ca, 33ca],
    356         [33cc, 33cc], [33cf, 33d6], [33d8, 33d8], [33db, 33db],
    357         [33e0, a7f7], [a7f9, 1d3ff], [1d41a, 1d433], [1d44e, 1d467],
    358         [1d482, 1d49b], [1d49d, 1d49d], [1d4a0, 1d4a1], [1d4a3, 1d4a4],
    359         [1d4a7, 1d4a8], [1d4ad, 1d4ad], [1d4b6, 1d4cf], [1d4ea, 1d503],
    360         [1d506, 1d506], [1d50b, 1d50c], [1d515, 1d515], [1d51d, 1d537],
    361         [1d53a, 1d53a], [1d53f, 1d53f], [1d545, 1d545], [1d547, 1d549],
    362         [1d551, 1d56b], [1d586, 1d59f], [1d5ba, 1d5d3], [1d5ee, 1d607],
    363         [1d622, 1d63b], [1d656, 1d66f], [1d68a, 1d6a7], [1d6c1, 1d6d2],
    364         [1d6d4, 1d6e1], [1d6fb, 1d70c], [1d70e, 1d71b], [1d735, 1d746],
    365         [1d748, 1d755], [1d76f, 1d780], [1d782, 1d78f], [1d7a9, 1d7ba],
    366         [1d7bc, 1d7c9], [1d7cb, 1f10f], [1f12f, 1f12f], [1f150, 1f169],
    367         [1f16c, 1f18f], [1f191, 10ffff]**/
    368         const UnicodeSet reflexive_set
    369                     {{{Full, 27}, {Mixed, 1}, {Full, 2}, {Mixed, 2}, {Full, 201},
    370               {Mixed, 2}, {Full, 26}, {Mixed, 1}, {Full, 2}, {Mixed, 3},
    371               {Full, 88}, {Mixed, 1}, {Full, 46}, {Mixed, 1}, {Full, 3},
    372               {Mixed, 1}, {Full, 4}, {Mixed, 4}, {Full, 928}, {Mixed, 1},
    373               {Full, 2400}, {Mixed, 31}, {Full, 201}, {Mixed, 5},
    374               {Full, 30835}},
    375              {0xfbffffff, 0xffe3ffff, 0xfdfbffff, 0x08008fff, 0xfffffff8,
    376               0xfffffeff, 0xc198c573, 0x37f4cee8, 0xffffffdf, 0xdfffffff,
    377               0xfffeffff, 0xffff2fff, 0xfbd5ffff, 0xffe0e300, 0x000fe1ff,
    378               0x097f9434, 0xfeffffff, 0xfc000000, 0x000fffff, 0xffffc000,
    379               0x000000ff, 0x2ffffffc, 0xffc0219b, 0x0000ffff, 0xfffffc00,
    380               0xe020184f, 0x84ffffff, 0xfffe03a0, 0x00000fff, 0xffffffc0,
    381               0xfc000000, 0x000fffff, 0xffffc000, 0x000000ff, 0x0ffffffc,
    382               0xffc00000, 0x0000ffff, 0xfffffc00, 0x000000ff, 0xfff7fffe,
    383               0xf8000003, 0x0fffdfff, 0xffe00000, 0x003fff7f, 0xffff8000,
    384               0x0000fffd, 0xf7fffe00, 0xfffffbff, 0x0000ffff, 0x00008000,
    385               0xffff0000, 0xfffff3ff, 0xfffeffff}};
    386 
    387         const unsigned buffer_length = 1578;
    388         const static char __attribute__ ((aligned (32))) string_buffer[1792] = u8R"__( ι
    389 Ï
    390 
    391 Ï
    392 Ï‹
    393 Ïƒ
    394 Ïƒ
    395 a
    396 ÃŠ
    397 b
    398 d
    399 e
    400 Ç
    401 g
    402 h
    403 i
    404 j
    405 k
    406 l
    407 m
    408 n
    409 o
    410 È£
    411 p
    412 r
    413 t
    414 u
    415 w
    416 rs
    417 c
    418 Â°c
    419 É›
    420 Â°f
    421 h
    422 h
    423 h
    424 i
    425 i
    426 l
    427 n
    428 no
    429 p
    430 q
    431 r
    432 r
    433 r
    434 sm
    435 tel
    436 tm
    437 z
    438 z
    439 b
    440 c
    441 e
    442 f
    443 m
    444 fax
    445 Î³
    446 Ï€
    447 d
    448 v
    449 pte
    450 hg
    451 ev
    452 ltd
    453 hpa
    454 au
    455 ov
    456 iu
    457 pa
    458 na
    459 ÎŒa
    460 ma
    461 ka
    462 kb
    463 mb
    464 gb
    465 pf
    466 nf
    467 ÎŒf
    468 hz
    469 khz
    470 mhz
    471 ghz
    472 thz
    473 pa
    474 kpa
    475 mpa
    476 gpa
    477 pv
    478 nv
    479 ÎŒv
    480 mv
    481 kv
    482 mv
    483 pw
    484 nw
    485 ÎŒw
    486 mw
    487 kw
    488 mw
    489 kω
    490 mω
    491 bq
    492 c∕kg
    493 co.
    494 db
    495 gy
    496 hp
    497 kk
    498 km
    499 ph
    500 ppm
    501 pr
    502 sv
    503 wb
    504 v∕m
    505 a∕m
    506 Ä§
    507 a
    508 b
    509 c
    510 d
    511 e
    512 f
    513 g
    514 h
    515 i
    516 j
    517 k
    518 l
    519 m
    520 n
    521 o
    522 p
    523 q
    524 r
    525 s
    526 t
    527 u
    528 v
    529 w
    530 x
    531 y
    532 z
    533 a
    534 b
    535 c
    536 d
    537 e
    538 f
    539 g
    540 h
    541 i
    542 j
    543 k
    544 l
    545 m
    546 n
    547 o
    548 p
    549 q
    550 r
    551 s
    552 t
    553 u
    554 v
    555 w
    556 x
    557 y
    558 z
    559 a
    560 b
    561 c
    562 d
    563 e
    564 f
    565 g
    566 h
    567 i
    568 j
    569 k
    570 l
    571 m
    572 n
    573 o
    574 p
    575 q
    576 r
    577 s
    578 t
    579 u
    580 v
    581 w
    582 x
    583 y
    584 z
    585 a
    586 c
    587 d
    588 g
    589 j
    590 k
    591 n
    592 o
    593 p
    594 q
    595 s
    596 t
    597 u
    598 v
    599 w
    600 x
    601 y
    602 z
    603 a
    604 b
    605 c
    606 d
    607 e
    608 f
    609 g
    610 h
    611 i
    612 j
    613 k
    614 l
    615 m
    616 n
    617 o
    618 p
    619 q
    620 r
    621 s
    622 t
    623 u
    624 v
    625 w
    626 x
    627 y
    628 z
    629 a
    630 b
    631 d
    632 e
    633 f
    634 g
    635 j
    636 k
    637 l
    638 m
    639 n
    640 o
    641 p
    642 q
    643 s
    644 t
    645 u
    646 v
    647 w
    648 x
    649 y
    650 a
    651 b
    652 d
    653 e
    654 f
    655 g
    656 i
    657 j
    658 k
    659 l
    660 m
    661 o
    662 s
    663 t
    664 u
    665 v
    666 w
    667 x
    668 y
    669 a
    670 b
    671 c
    672 d
    673 e
    674 f
    675 g
    676 h
    677 i
    678 j
    679 k
    680 l
    681 m
    682 n
    683 o
    684 p
    685 q
    686 r
    687 s
    688 t
    689 u
    690 v
    691 w
    692 x
    693 y
    694 z
    695 a
    696 b
    697 c
    698 d
    699 e
    700 f
    701 g
    702 h
    703 i
    704 j
    705 k
    706 l
    707 m
    708 n
    709 o
    710 p
    711 q
    712 r
    713 s
    714 t
    715 u
    716 v
    717 w
    718 x
    719 y
    720 z
    721 a
    722 b
    723 c
    724 d
    725 e
    726 f
    727 g
    728 h
    729 i
    730 j
    731 k
    732 l
    733 m
    734 n
    735 o
    736 p
    737 q
    738 r
    739 s
    740 t
    741 u
    742 v
    743 w
    744 x
    745 y
    746 z
    747 a
    748 b
    749 c
    750 d
    751 e
    752 f
    753 g
    754 h
    755 i
    756 j
    757 k
    758 l
    759 m
    760 n
    761 o
    762 p
    763 q
    764 r
    765 s
    766 t
    767 u
    768 v
    769 w
    770 x
    771 y
    772 z
    773 a
    774 b
    775 c
    776 d
    777 e
    778 f
    779 g
    780 h
    781 i
    782 j
    783 k
    784 l
    785 m
    786 n
    787 o
    788 p
    789 q
    790 r
    791 s
    792 t
    793 u
    794 v
    795 w
    796 x
    797 y
    798 z
    799 a
    800 b
    801 c
    802 d
    803 e
    804 f
    805 g
    806 h
    807 i
    808 j
    809 k
    810 l
    811 m
    812 n
    813 o
    814 p
    815 q
    816 r
    817 s
    818 t
    819 u
    820 v
    821 w
    822 x
    823 y
    824 z
    825 Î±
    826 Î²
    827 Î³
    828 ÎŽ
    829 Îµ
    830 Î¶
    831 Î·
    832 Îž
    833 Î¹
    834 Îº
    835 Î»
    836 ÎŒ
    837 Îœ
    838 ÎŸ
    839 Î¿
    840 Ï€
    841 Ï
    842 Îž
    843 Ïƒ
    844 Ï„
    845 Ï
    846 
    847 Ï†
    848 Ï‡
    849 Ïˆ
    850 Ï‰
    851 Ïƒ
    852 Î±
    853 Î²
    854 Î³
    855 ÎŽ
    856 Îµ
    857 Î¶
    858 Î·
    859 Îž
    860 Î¹
    861 Îº
    862 Î»
    863 ÎŒ
    864 Îœ
    865 ÎŸ
    866 Î¿
    867 Ï€
    868 Ï
    869 Îž
    870 Ïƒ
    871 Ï„
    872 Ï
    873 
    874 Ï†
    875 Ï‡
    876 Ïˆ
    877 Ï‰
    878 Ïƒ
    879 Î±
    880 Î²
    881 Î³
    882 ÎŽ
    883 Îµ
    884 Î¶
    885 Î·
    886 Îž
    887 Î¹
    888 Îº
    889 Î»
    890 ÎŒ
    891 Îœ
    892 ÎŸ
    893 Î¿
    894 Ï€
    895 Ï
    896 Îž
    897 Ïƒ
    898 Ï„
    899 Ï
    900 
    901 Ï†
    902 Ï‡
    903 Ïˆ
    904 Ï‰
    905 Ïƒ
    906 Î±
    907 Î²
    908 Î³
    909 ÎŽ
    910 Îµ
    911 Î¶
    912 Î·
    913 Îž
    914 Î¹
    915 Îº
    916 Î»
    917 ÎŒ
    918 Îœ
    919 ÎŸ
    920 Î¿
    921 Ï€
    922 Ï
    923 Îž
    924 Ïƒ
    925 Ï„
    926 Ï
    927 
    928 Ï†
    929 Ï‡
    930 Ïˆ
    931 Ï‰
    932 Ïƒ
    933 Î±
    934 Î²
    935 Î³
    936 ÎŽ
    937 Îµ
    938 Î¶
    939 Î·
    940 Îž
    941 Î¹
    942 Îº
    943 Î»
    944 ÎŒ
    945 Îœ
    946 ÎŸ
    947 Î¿
    948 Ï€
    949 Ï
    950 Îž
    951 Ïƒ
    952 Ï„
    953 Ï
    954 
    955 Ï†
    956 Ï‡
    957 Ïˆ
    958 Ï‰
    959 Ïƒ
    960 Ï
    961 (a)
    962 (b)
    963 (c)
    964 (d)
    965 (e)
    966 (f)
    967 (g)
    968 (h)
    969 (i)
    970 (j)
    971 (k)
    972 (l)
    973 (m)
    974 (n)
    975 (o)
    976 (p)
    977 (q)
    978 (r)
    979 (s)
    980 (t)
    981 (u)
    982 (v)
    983 (w)
    984 (x)
    985 (y)
    986 (z)
    987 ã€”s〕
    988 c
    989 r
    990 cd
    991 wz
    992 a
    993 b
    994 c
    995 d
    996 e
    997 f
    998 g
    999 h
    1000 i
    1001 j
    1002 k
    1003 l
    1004 m
    1005 n
    1006 o
    1007 p
    1008 q
    1009 r
    1010 s
    1011 t
    1012 u
    1013 v
    1014 w
    1015 x
    1016 y
    1017 z
    1018 hv
    1019 mv
    1020 sd
    1021 ss
    1022 ppv
    1023 wc
    1024 mc
    1025 md
    1026 dj
    1027 )__";
    1028 
    1029         const static std::vector<codepoint_t> defined_cps = {
    1030         0x037a, 0x03d2, 0x03d3, 0x03d4, 0x03f2, 0x03f9, 0x1d2c, 0x1d2d,
    1031         0x1d2e, 0x1d30, 0x1d31, 0x1d32, 0x1d33, 0x1d34, 0x1d35, 0x1d36,
    1032         0x1d37, 0x1d38, 0x1d39, 0x1d3a, 0x1d3c, 0x1d3d, 0x1d3e, 0x1d3f,
    1033         0x1d40, 0x1d41, 0x1d42, 0x20a8, 0x2102, 0x2103, 0x2107, 0x2109,
    1034         0x210b, 0x210c, 0x210d, 0x2110, 0x2111, 0x2112, 0x2115, 0x2116,
    1035         0x2119, 0x211a, 0x211b, 0x211c, 0x211d, 0x2120, 0x2121, 0x2122,
    1036         0x2124, 0x2128, 0x212c, 0x212d, 0x2130, 0x2131, 0x2133, 0x213b,
    1037         0x213e, 0x213f, 0x2145, 0x2c7d, 0x3250, 0x32cc, 0x32ce, 0x32cf,
    1038         0x3371, 0x3373, 0x3375, 0x337a, 0x3380, 0x3381, 0x3382, 0x3383,
    1039         0x3384, 0x3385, 0x3386, 0x3387, 0x338a, 0x338b, 0x338c, 0x3390,
    1040         0x3391, 0x3392, 0x3393, 0x3394, 0x33a9, 0x33aa, 0x33ab, 0x33ac,
    1041         0x33b4, 0x33b5, 0x33b6, 0x33b7, 0x33b8, 0x33b9, 0x33ba, 0x33bb,
    1042         0x33bc, 0x33bd, 0x33be, 0x33bf, 0x33c0, 0x33c1, 0x33c3, 0x33c6,
    1043         0x33c7, 0x33c8, 0x33c9, 0x33cb, 0x33cd, 0x33ce, 0x33d7, 0x33d9,
    1044         0x33da, 0x33dc, 0x33dd, 0x33de, 0x33df, 0xa7f8, 0x1d400, 0x1d401,
    1045         0x1d402, 0x1d403, 0x1d404, 0x1d405, 0x1d406, 0x1d407, 0x1d408,
    1046         0x1d409, 0x1d40a, 0x1d40b, 0x1d40c, 0x1d40d, 0x1d40e, 0x1d40f,
    1047         0x1d410, 0x1d411, 0x1d412, 0x1d413, 0x1d414, 0x1d415, 0x1d416,
    1048         0x1d417, 0x1d418, 0x1d419, 0x1d434, 0x1d435, 0x1d436, 0x1d437,
    1049         0x1d438, 0x1d439, 0x1d43a, 0x1d43b, 0x1d43c, 0x1d43d, 0x1d43e,
    1050         0x1d43f, 0x1d440, 0x1d441, 0x1d442, 0x1d443, 0x1d444, 0x1d445,
    1051         0x1d446, 0x1d447, 0x1d448, 0x1d449, 0x1d44a, 0x1d44b, 0x1d44c,
    1052         0x1d44d, 0x1d468, 0x1d469, 0x1d46a, 0x1d46b, 0x1d46c, 0x1d46d,
    1053         0x1d46e, 0x1d46f, 0x1d470, 0x1d471, 0x1d472, 0x1d473, 0x1d474,
    1054         0x1d475, 0x1d476, 0x1d477, 0x1d478, 0x1d479, 0x1d47a, 0x1d47b,
    1055         0x1d47c, 0x1d47d, 0x1d47e, 0x1d47f, 0x1d480, 0x1d481, 0x1d49c,
    1056         0x1d49e, 0x1d49f, 0x1d4a2, 0x1d4a5, 0x1d4a6, 0x1d4a9, 0x1d4aa,
    1057         0x1d4ab, 0x1d4ac, 0x1d4ae, 0x1d4af, 0x1d4b0, 0x1d4b1, 0x1d4b2,
    1058         0x1d4b3, 0x1d4b4, 0x1d4b5, 0x1d4d0, 0x1d4d1, 0x1d4d2, 0x1d4d3,
    1059         0x1d4d4, 0x1d4d5, 0x1d4d6, 0x1d4d7, 0x1d4d8, 0x1d4d9, 0x1d4da,
    1060         0x1d4db, 0x1d4dc, 0x1d4dd, 0x1d4de, 0x1d4df, 0x1d4e0, 0x1d4e1,
    1061         0x1d4e2, 0x1d4e3, 0x1d4e4, 0x1d4e5, 0x1d4e6, 0x1d4e7, 0x1d4e8,
    1062         0x1d4e9, 0x1d504, 0x1d505, 0x1d507, 0x1d508, 0x1d509, 0x1d50a,
    1063         0x1d50d, 0x1d50e, 0x1d50f, 0x1d510, 0x1d511, 0x1d512, 0x1d513,
    1064         0x1d514, 0x1d516, 0x1d517, 0x1d518, 0x1d519, 0x1d51a, 0x1d51b,
    1065         0x1d51c, 0x1d538, 0x1d539, 0x1d53b, 0x1d53c, 0x1d53d, 0x1d53e,
    1066         0x1d540, 0x1d541, 0x1d542, 0x1d543, 0x1d544, 0x1d546, 0x1d54a,
    1067         0x1d54b, 0x1d54c, 0x1d54d, 0x1d54e, 0x1d54f, 0x1d550, 0x1d56c,
    1068         0x1d56d, 0x1d56e, 0x1d56f, 0x1d570, 0x1d571, 0x1d572, 0x1d573,
    1069         0x1d574, 0x1d575, 0x1d576, 0x1d577, 0x1d578, 0x1d579, 0x1d57a,
    1070         0x1d57b, 0x1d57c, 0x1d57d, 0x1d57e, 0x1d57f, 0x1d580, 0x1d581,
    1071         0x1d582, 0x1d583, 0x1d584, 0x1d585, 0x1d5a0, 0x1d5a1, 0x1d5a2,
    1072         0x1d5a3, 0x1d5a4, 0x1d5a5, 0x1d5a6, 0x1d5a7, 0x1d5a8, 0x1d5a9,
    1073         0x1d5aa, 0x1d5ab, 0x1d5ac, 0x1d5ad, 0x1d5ae, 0x1d5af, 0x1d5b0,
    1074         0x1d5b1, 0x1d5b2, 0x1d5b3, 0x1d5b4, 0x1d5b5, 0x1d5b6, 0x1d5b7,
    1075         0x1d5b8, 0x1d5b9, 0x1d5d4, 0x1d5d5, 0x1d5d6, 0x1d5d7, 0x1d5d8,
    1076         0x1d5d9, 0x1d5da, 0x1d5db, 0x1d5dc, 0x1d5dd, 0x1d5de, 0x1d5df,
    1077         0x1d5e0, 0x1d5e1, 0x1d5e2, 0x1d5e3, 0x1d5e4, 0x1d5e5, 0x1d5e6,
    1078         0x1d5e7, 0x1d5e8, 0x1d5e9, 0x1d5ea, 0x1d5eb, 0x1d5ec, 0x1d5ed,
    1079         0x1d608, 0x1d609, 0x1d60a, 0x1d60b, 0x1d60c, 0x1d60d, 0x1d60e,
    1080         0x1d60f, 0x1d610, 0x1d611, 0x1d612, 0x1d613, 0x1d614, 0x1d615,
    1081         0x1d616, 0x1d617, 0x1d618, 0x1d619, 0x1d61a, 0x1d61b, 0x1d61c,
    1082         0x1d61d, 0x1d61e, 0x1d61f, 0x1d620, 0x1d621, 0x1d63c, 0x1d63d,
    1083         0x1d63e, 0x1d63f, 0x1d640, 0x1d641, 0x1d642, 0x1d643, 0x1d644,
    1084         0x1d645, 0x1d646, 0x1d647, 0x1d648, 0x1d649, 0x1d64a, 0x1d64b,
    1085         0x1d64c, 0x1d64d, 0x1d64e, 0x1d64f, 0x1d650, 0x1d651, 0x1d652,
    1086         0x1d653, 0x1d654, 0x1d655, 0x1d670, 0x1d671, 0x1d672, 0x1d673,
    1087         0x1d674, 0x1d675, 0x1d676, 0x1d677, 0x1d678, 0x1d679, 0x1d67a,
    1088         0x1d67b, 0x1d67c, 0x1d67d, 0x1d67e, 0x1d67f, 0x1d680, 0x1d681,
    1089         0x1d682, 0x1d683, 0x1d684, 0x1d685, 0x1d686, 0x1d687, 0x1d688,
    1090         0x1d689, 0x1d6a8, 0x1d6a9, 0x1d6aa, 0x1d6ab, 0x1d6ac, 0x1d6ad,
    1091         0x1d6ae, 0x1d6af, 0x1d6b0, 0x1d6b1, 0x1d6b2, 0x1d6b3, 0x1d6b4,
    1092         0x1d6b5, 0x1d6b6, 0x1d6b7, 0x1d6b8, 0x1d6b9, 0x1d6ba, 0x1d6bb,
    1093         0x1d6bc, 0x1d6bd, 0x1d6be, 0x1d6bf, 0x1d6c0, 0x1d6d3, 0x1d6e2,
    1094         0x1d6e3, 0x1d6e4, 0x1d6e5, 0x1d6e6, 0x1d6e7, 0x1d6e8, 0x1d6e9,
    1095         0x1d6ea, 0x1d6eb, 0x1d6ec, 0x1d6ed, 0x1d6ee, 0x1d6ef, 0x1d6f0,
    1096         0x1d6f1, 0x1d6f2, 0x1d6f3, 0x1d6f4, 0x1d6f5, 0x1d6f6, 0x1d6f7,
    1097         0x1d6f8, 0x1d6f9, 0x1d6fa, 0x1d70d, 0x1d71c, 0x1d71d, 0x1d71e,
    1098         0x1d71f, 0x1d720, 0x1d721, 0x1d722, 0x1d723, 0x1d724, 0x1d725,
    1099         0x1d726, 0x1d727, 0x1d728, 0x1d729, 0x1d72a, 0x1d72b, 0x1d72c,
    1100         0x1d72d, 0x1d72e, 0x1d72f, 0x1d730, 0x1d731, 0x1d732, 0x1d733,
    1101         0x1d734, 0x1d747, 0x1d756, 0x1d757, 0x1d758, 0x1d759, 0x1d75a,
    1102         0x1d75b, 0x1d75c, 0x1d75d, 0x1d75e, 0x1d75f, 0x1d760, 0x1d761,
    1103         0x1d762, 0x1d763, 0x1d764, 0x1d765, 0x1d766, 0x1d767, 0x1d768,
    1104         0x1d769, 0x1d76a, 0x1d76b, 0x1d76c, 0x1d76d, 0x1d76e, 0x1d781,
    1105         0x1d790, 0x1d791, 0x1d792, 0x1d793, 0x1d794, 0x1d795, 0x1d796,
    1106         0x1d797, 0x1d798, 0x1d799, 0x1d79a, 0x1d79b, 0x1d79c, 0x1d79d,
    1107         0x1d79e, 0x1d79f, 0x1d7a0, 0x1d7a1, 0x1d7a2, 0x1d7a3, 0x1d7a4,
    1108         0x1d7a5, 0x1d7a6, 0x1d7a7, 0x1d7a8, 0x1d7bb, 0x1d7ca, 0x1f110,
    1109         0x1f111, 0x1f112, 0x1f113, 0x1f114, 0x1f115, 0x1f116, 0x1f117,
    1110         0x1f118, 0x1f119, 0x1f11a, 0x1f11b, 0x1f11c, 0x1f11d, 0x1f11e,
    1111         0x1f11f, 0x1f120, 0x1f121, 0x1f122, 0x1f123, 0x1f124, 0x1f125,
    1112         0x1f126, 0x1f127, 0x1f128, 0x1f129, 0x1f12a, 0x1f12b, 0x1f12c,
    1113         0x1f12d, 0x1f12e, 0x1f130, 0x1f131, 0x1f132, 0x1f133, 0x1f134,
    1114         0x1f135, 0x1f136, 0x1f137, 0x1f138, 0x1f139, 0x1f13a, 0x1f13b,
    1115         0x1f13c, 0x1f13d, 0x1f13e, 0x1f13f, 0x1f140, 0x1f141, 0x1f142,
    1116         0x1f143, 0x1f144, 0x1f145, 0x1f146, 0x1f147, 0x1f148, 0x1f149,
    1117         0x1f14a, 0x1f14b, 0x1f14c, 0x1f14d, 0x1f14e, 0x1f14f, 0x1f16a,
    1118         0x1f16b, 0x1f190};
    1119         static StringPropertyObject property_object(FC_NFKC,
    1120                                                     null_codepoint_set,
    1121                                                     reflexive_set,
    1122                                                     static_cast<const char *>(string_buffer),
    1123                                                     buffer_length,
    1124                                                     defined_cps);
     338        static ObsoletePropertyObject property_object(FC_NFKC);
    1125339    }
    1126340  namespace NFC_QC_ns {
     
    95678781    }
    95688782    namespace XO_NFC_ns {
    9569         /** Code Point Ranges for XO_NFC
    9570         [0344, 0344], [0958, 095f], [09dc, 09dd], [09df, 09df],
    9571         [0a33, 0a33], [0a36, 0a36], [0a59, 0a5b], [0a5e, 0a5e],
    9572         [0b5c, 0b5d], [0f43, 0f43], [0f4d, 0f4d], [0f52, 0f52],
    9573         [0f57, 0f57], [0f5c, 0f5c], [0f69, 0f69], [0f73, 0f73],
    9574         [0f75, 0f76], [0f78, 0f78], [0f81, 0f81], [0f93, 0f93],
    9575         [0f9d, 0f9d], [0fa2, 0fa2], [0fa7, 0fa7], [0fac, 0fac],
    9576         [0fb9, 0fb9], [2adc, 2adc], [fb1d, fb1d], [fb1f, fb1f],
    9577         [fb2a, fb36], [fb38, fb3c], [fb3e, fb3e], [fb40, fb41],
    9578         [fb43, fb44], [fb46, fb4e], [1d15e, 1d164], [1d1bb, 1d1c0]**/
    9579         const UnicodeSet codepoint_set
    9580             {{{Empty, 26}, {Mixed, 1}, {Empty, 47}, {Mixed, 1}, {Empty, 3},
    9581               {Mixed, 1}, {Empty, 2}, {Mixed, 2}, {Empty, 7}, {Mixed, 1},
    9582               {Empty, 31}, {Mixed, 4}, {Empty, 216}, {Mixed, 1},
    9583               {Empty, 1665}, {Mixed, 3}, {Empty, 1711}, {Mixed, 2},
    9584               {Empty, 1}, {Mixed, 2}, {Empty, 31089}},
    9585              {0x00000010, 0xff000000, 0xb0000000, 0x00480000, 0x4e000000,
    9586               0x30000000, 0x10842008, 0x01680200, 0x20080002, 0x02001084,
    9587               0x10000000, 0xa0000000, 0x5f7ffc00, 0x00007fdb, 0xc0000000,
    9588               0x0000001f, 0xf8000000, 0x00000001}};
    9589         static BinaryPropertyObject property_object{XO_NFC, codepoint_set};
     8783        static ObsoletePropertyObject property_object(XO_NFC);
    95908784    }
    95918785    namespace XO_NFD_ns {
    9592         /** Code Point Ranges for XO_NFD
    9593         [00c0, 00c5], [00c7, 00cf], [00d1, 00d6], [00d9, 00dd],
    9594         [00e0, 00e5], [00e7, 00ef], [00f1, 00f6], [00f9, 00fd],
    9595         [00ff, 010f], [0112, 0125], [0128, 0130], [0134, 0137],
    9596         [0139, 013e], [0143, 0148], [014c, 0151], [0154, 0165],
    9597         [0168, 017e], [01a0, 01a1], [01af, 01b0], [01cd, 01dc],
    9598         [01de, 01e3], [01e6, 01f0], [01f4, 01f5], [01f8, 021b],
    9599         [021e, 021f], [0226, 0233], [0344, 0344], [0385, 0386],
    9600         [0388, 038a], [038c, 038c], [038e, 0390], [03aa, 03b0],
    9601         [03ca, 03ce], [03d3, 03d4], [0400, 0401], [0403, 0403],
    9602         [0407, 0407], [040c, 040e], [0419, 0419], [0439, 0439],
    9603         [0450, 0451], [0453, 0453], [0457, 0457], [045c, 045e],
    9604         [0476, 0477], [04c1, 04c2], [04d0, 04d3], [04d6, 04d7],
    9605         [04da, 04df], [04e2, 04e7], [04ea, 04f5], [04f8, 04f9],
    9606         [0622, 0626], [06c0, 06c0], [06c2, 06c2], [06d3, 06d3],
    9607         [0929, 0929], [0931, 0931], [0934, 0934], [0958, 095f],
    9608         [09cb, 09cc], [09dc, 09dd], [09df, 09df], [0a33, 0a33],
    9609         [0a36, 0a36], [0a59, 0a5b], [0a5e, 0a5e], [0b48, 0b48],
    9610         [0b4b, 0b4c], [0b5c, 0b5d], [0b94, 0b94], [0bca, 0bcc],
    9611         [0c48, 0c48], [0cc0, 0cc0], [0cc7, 0cc8], [0cca, 0ccb],
    9612         [0d4a, 0d4c], [0dda, 0dda], [0ddc, 0dde], [0f43, 0f43],
    9613         [0f4d, 0f4d], [0f52, 0f52], [0f57, 0f57], [0f5c, 0f5c],
    9614         [0f69, 0f69], [0f73, 0f73], [0f75, 0f76], [0f78, 0f78],
    9615         [0f81, 0f81], [0f93, 0f93], [0f9d, 0f9d], [0fa2, 0fa2],
    9616         [0fa7, 0fa7], [0fac, 0fac], [0fb9, 0fb9], [1026, 1026],
    9617         [1b06, 1b06], [1b08, 1b08], [1b0a, 1b0a], [1b0c, 1b0c],
    9618         [1b0e, 1b0e], [1b12, 1b12], [1b3b, 1b3b], [1b3d, 1b3d],
    9619         [1b40, 1b41], [1b43, 1b43], [1e00, 1e99], [1e9b, 1e9b],
    9620         [1ea0, 1ef9], [1f00, 1f15], [1f18, 1f1d], [1f20, 1f45],
    9621         [1f48, 1f4d], [1f50, 1f57], [1f59, 1f59], [1f5b, 1f5b],
    9622         [1f5d, 1f5d], [1f5f, 1f7d], [1f80, 1fb4], [1fb6, 1fbc],
    9623         [1fc1, 1fc4], [1fc6, 1fd3], [1fd6, 1fdb], [1fdd, 1fee],
    9624         [1ff2, 1ff4], [1ff6, 1ffc], [212b, 212b], [219a, 219b],
    9625         [21ae, 21ae], [21cd, 21cf], [2204, 2204], [2209, 2209],
    9626         [220c, 220c], [2224, 2224], [2226, 2226], [2241, 2241],
    9627         [2244, 2244], [2247, 2247], [2249, 2249], [2260, 2260],
    9628         [2262, 2262], [226d, 2271], [2274, 2275], [2278, 2279],
    9629         [2280, 2281], [2284, 2285], [2288, 2289], [22ac, 22af],
    9630         [22e0, 22e3], [22ea, 22ed], [2adc, 2adc], [304c, 304c],
    9631         [304e, 304e], [3050, 3050], [3052, 3052], [3054, 3054],
    9632         [3056, 3056], [3058, 3058], [305a, 305a], [305c, 305c],
    9633         [305e, 305e], [3060, 3060], [3062, 3062], [3065, 3065],
    9634         [3067, 3067], [3069, 3069], [3070, 3071], [3073, 3074],
    9635         [3076, 3077], [3079, 307a], [307c, 307d], [3094, 3094],
    9636         [309e, 309e], [30ac, 30ac], [30ae, 30ae], [30b0, 30b0],
    9637         [30b2, 30b2], [30b4, 30b4], [30b6, 30b6], [30b8, 30b8],
    9638         [30ba, 30ba], [30bc, 30bc], [30be, 30be], [30c0, 30c0],
    9639         [30c2, 30c2], [30c5, 30c5], [30c7, 30c7], [30c9, 30c9],
    9640         [30d0, 30d1], [30d3, 30d4], [30d6, 30d7], [30d9, 30da],
    9641         [30dc, 30dd], [30f4, 30f4], [30f7, 30fa], [30fe, 30fe],
    9642         [ac00, d7a3], [fb1d, fb1d], [fb1f, fb1f], [fb2a, fb36],
    9643         [fb38, fb3c], [fb3e, fb3e], [fb40, fb41], [fb43, fb44],
    9644         [fb46, fb4e], [1109a, 1109a], [1109c, 1109c], [110ab, 110ab],
    9645         [1112e, 1112f], [1134b, 1134c], [114bb, 114bc], [114be, 114be],
    9646         [115ba, 115bb], [1d15e, 1d164], [1d1bb, 1d1c0]**/
    9647         const UnicodeSet codepoint_set
    9648             {{{Empty, 6}, {Mixed, 6}, {Empty, 1}, {Mixed, 5}, {Empty, 8},
    9649               {Mixed, 1}, {Empty, 1}, {Mixed, 3}, {Empty, 1}, {Mixed, 4},
    9650               {Empty, 2}, {Mixed, 2}, {Empty, 9}, {Mixed, 1}, {Empty, 4},
    9651               {Mixed, 1}, {Empty, 18}, {Mixed, 2}, {Empty, 3}, {Mixed, 1},
    9652               {Empty, 2}, {Mixed, 2}, {Empty, 7}, {Mixed, 1}, {Empty, 1},
    9653               {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
    9654               {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
    9655               {Mixed, 1}, {Empty, 11}, {Mixed, 4}, {Empty, 3}, {Mixed, 1},
    9656               {Empty, 86}, {Mixed, 3}, {Empty, 21}, {Full, 4}, {Mixed, 1},
    9657               {Full, 2}, {Mixed, 2}, {Full, 1}, {Mixed, 2}, {Full, 1},
    9658               {Mixed, 3}, {Empty, 9}, {Mixed, 1}, {Empty, 2}, {Mixed, 3},
    9659               {Empty, 1}, {Mixed, 6}, {Empty, 1}, {Mixed, 1}, {Empty, 62},
    9660               {Mixed, 1}, {Empty, 43}, {Mixed, 6}, {Empty, 984},
    9661               {Full, 349}, {Mixed, 1}, {Empty, 282}, {Mixed, 3},
    9662               {Empty, 169}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 16},
    9663               {Mixed, 1}, {Empty, 10}, {Mixed, 1}, {Empty, 7}, {Mixed, 1},
    9664               {Empty, 1500}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
    9665               {Empty, 31089}},
    9666              {0x3e7effbf, 0xbe7effbf, 0xfffcffff, 0x7ef1ff3f, 0xfff3f1f8,
    9667               0x7fffff3f, 0x00018003, 0xdfffe000, 0xff31ffcf, 0xcfffffff,
    9668               0x000fffc0, 0x00000010, 0x0001d760, 0x0001fc00, 0x00187c00,
    9669               0x0200708b, 0x02000000, 0x708b0000, 0x00c00000, 0xfccf0006,
    9670               0x033ffcfc, 0x0000007c, 0x00080005, 0x00120200, 0xff000000,
    9671               0xb0001800, 0x00480000, 0x4e000000, 0x30001900, 0x00100000,
    9672               0x00001c00, 0x00000100, 0x00000d81, 0x00001c00, 0x74000000,
    9673               0x10842008, 0x01680200, 0x20080002, 0x02001084, 0x00000040,
    9674               0x00045540, 0x28000000, 0x0000000b, 0x0bffffff, 0x03ffffff,
    9675               0x3f3fffff, 0xaaff3f3f, 0x3fffffff, 0x1fdfffff, 0xefcfffde,
    9676               0x1fdc7fff, 0x00000800, 0x0c000000, 0x00004000, 0x0000e000,
    9677               0x00001210, 0x00000050, 0x00000292, 0x0333e005, 0x00000333,
    9678               0x0000f000, 0x00003c0f, 0x10000000, 0x55555000, 0x36db02a5,
    9679               0x40100000, 0x55555000, 0x36db02a5, 0x47900000, 0x0000000f,
    9680               0xa0000000, 0x5f7ffc00, 0x00007fdb, 0x14000000, 0x00000800,
    9681               0x0000c000, 0x00001800, 0x58000000, 0x0c000000, 0xc0000000,
    9682               0x0000001f, 0xf8000000, 0x00000001}};
    9683         static BinaryPropertyObject property_object{XO_NFD, codepoint_set};
     8786        static ObsoletePropertyObject property_object(XO_NFD);
    96848787    }
    96858788    namespace XO_NFKC_ns {
    9686         /** Code Point Ranges for XO_NFKC
    9687         [00a8, 00a8], [00af, 00af], [00b4, 00b4], [00b8, 00b8],
    9688         [00bc, 00be], [0132, 0133], [013f, 0140], [0149, 0149],
    9689         [01c4, 01cc], [01f1, 01f3], [02d8, 02dd], [0344, 0344],
    9690         [037a, 037a], [0384, 0385], [0587, 0587], [0675, 0678],
    9691         [0958, 095f], [09dc, 09dd], [09df, 09df], [0a33, 0a33],
    9692         [0a36, 0a36], [0a59, 0a5b], [0a5e, 0a5e], [0b5c, 0b5d],
    9693         [0e33, 0e33], [0eb3, 0eb3], [0edc, 0edd], [0f43, 0f43],
    9694         [0f4d, 0f4d], [0f52, 0f52], [0f57, 0f57], [0f5c, 0f5c],
    9695         [0f69, 0f69], [0f73, 0f73], [0f75, 0f79], [0f81, 0f81],
    9696         [0f93, 0f93], [0f9d, 0f9d], [0fa2, 0fa2], [0fa7, 0fa7],
    9697         [0fac, 0fac], [0fb9, 0fb9], [1e9a, 1e9a], [1fbd, 1fbd],
    9698         [1fbf, 1fc1], [1fcd, 1fcf], [1fdd, 1fdf], [1fed, 1fee],
    9699         [1ffd, 1ffe], [2017, 2017], [2025, 2026], [2033, 2034],
    9700         [2036, 2037], [203c, 203c], [203e, 203e], [2047, 2049],
    9701         [2057, 2057], [20a8, 20a8], [2100, 2101], [2103, 2103],
    9702         [2105, 2106], [2109, 2109], [2116, 2116], [2120, 2122],
    9703         [213b, 213b], [2150, 215f], [2161, 2163], [2165, 2168],
    9704         [216a, 216b], [2171, 2173], [2175, 2178], [217a, 217b],
    9705         [2189, 2189], [222c, 222d], [222f, 2230], [2469, 24b5],
    9706         [2a0c, 2a0c], [2a74, 2a76], [2adc, 2adc], [309b, 309c],
    9707         [309f, 309f], [30ff, 30ff], [3200, 321e], [3220, 3243],
    9708         [3250, 325f], [327c, 327d], [32b1, 32cf], [3300, 33ff],
    9709         [fb00, fb06], [fb13, fb17], [fb1d, fb1d], [fb1f, fb1f],
    9710         [fb2a, fb36], [fb38, fb3c], [fb3e, fb3e], [fb40, fb41],
    9711         [fb43, fb44], [fb46, fb4f], [fbdd, fbdd], [fbea, fbfb],
    9712         [fc00, fd3d], [fd50, fd8f], [fd92, fdc7], [fdf0, fdfc],
    9713         [fe19, fe19], [fe30, fe30], [fe49, fe4c], [fe70, fe72],
    9714         [fe74, fe74], [fe76, fe7f], [fef5, fefc], [ffe3, ffe3],
    9715         [1d15e, 1d164], [1d1bb, 1d1c0], [1f100, 1f10a], [1f110, 1f12a],
    9716         [1f12d, 1f12e], [1f14a, 1f14f], [1f16a, 1f16b], [1f190, 1f190],
    9717         [1f200, 1f201], [1f240, 1f248]**/
    9718         const UnicodeSet codepoint_set
    9719             {{{Empty, 5}, {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 3},
    9720               {Mixed, 2}, {Empty, 6}, {Mixed, 1}, {Empty, 3}, {Mixed, 3},
    9721               {Empty, 15}, {Mixed, 1}, {Empty, 6}, {Mixed, 1}, {Empty, 22},
    9722               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 2}, {Mixed, 2},
    9723               {Empty, 7}, {Mixed, 1}, {Empty, 22}, {Mixed, 1}, {Empty, 3},
    9724               {Mixed, 2}, {Empty, 3}, {Mixed, 4}, {Empty, 118}, {Mixed, 1},
    9725               {Empty, 8}, {Mixed, 6}, {Empty, 2}, {Mixed, 1}, {Empty, 2},
    9726               {Mixed, 5}, {Empty, 4}, {Mixed, 1}, {Empty, 17}, {Mixed, 1},
    9727               {Full, 1}, {Mixed, 1}, {Empty, 42}, {Mixed, 1}, {Empty, 2},
    9728               {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Empty, 45}, {Mixed, 1},
    9729               {Empty, 2}, {Mixed, 1}, {Empty, 8}, {Mixed, 1}, {Full, 1},
    9730               {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 1}, {Full, 8},
    9731               {Empty, 1592}, {Mixed, 3}, {Empty, 3}, {Mixed, 2}, {Full, 9},
    9732               {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 6},
    9733               {Empty, 3}, {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 1674},
    9734               {Mixed, 2}, {Empty, 1}, {Mixed, 2}, {Empty, 249}, {Mixed, 5},
    9735               {Empty, 3}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
    9736               {Empty, 30829}},
    9737              {0x71108100, 0x800c0000, 0x00000201, 0x00001ff0, 0x000e0000,
    9738               0x3f000000, 0x00000010, 0x04000000, 0x00000030, 0x00000080,
    9739               0x01e00000, 0xff000000, 0xb0000000, 0x00480000, 0x4e000000,
    9740               0x30000000, 0x00080000, 0x00080000, 0x30000000, 0x10842008,
    9741               0x03e80200, 0x20080002, 0x02001084, 0x04000000, 0xa0000000,
    9742               0xe000e003, 0x60006000, 0x00800000, 0x50d80060, 0x00800380,
    9743               0x00000100, 0x0040026b, 0x08000007, 0xffff0000, 0x0dee0dee,
    9744               0x00000200, 0x0001b000, 0xfffffe00, 0x003fffff, 0x00001000,
    9745               0x00700000, 0x10000000, 0x98000000, 0x80000000, 0x7fffffff,
    9746               0xffff000f, 0x30000000, 0xfffe0000, 0x0000ffff, 0xa0f8007f,
    9747               0x5f7ffc00, 0x0000ffdb, 0x20000000, 0x0ffffc00, 0x3fffffff,
    9748               0xffff0000, 0xfffcffff, 0x000000ff, 0x1fff0000, 0x02000000,
    9749               0x00010000, 0x00001e00, 0xffd70000, 0x1fe00000, 0x00000008,
    9750               0xc0000000, 0x0000001f, 0xf8000000, 0x00000001, 0xffff07ff,
    9751               0x000067ff, 0x0000fc00, 0x00000c00, 0x00010000, 0x00000003,
    9752               0x000001ff}};
    9753         static BinaryPropertyObject property_object{XO_NFKC, codepoint_set};
     8789        static ObsoletePropertyObject property_object(XO_NFKC);
    97548790    }
    97558791    namespace XO_NFKD_ns {
    9756         /** Code Point Ranges for XO_NFKD
    9757         [00a8, 00a8], [00af, 00af], [00b4, 00b4], [00b8, 00b8],
    9758         [00bc, 00be], [00c0, 00c5], [00c7, 00cf], [00d1, 00d6],
    9759         [00d9, 00dd], [00e0, 00e5], [00e7, 00ef], [00f1, 00f6],
    9760         [00f9, 00fd], [00ff, 010f], [0112, 0125], [0128, 0130],
    9761         [0132, 0137], [0139, 0140], [0143, 0149], [014c, 0151],
    9762         [0154, 0165], [0168, 017e], [01a0, 01a1], [01af, 01b0],
    9763         [01c4, 01dc], [01de, 01e3], [01e6, 01f5], [01f8, 021b],
    9764         [021e, 021f], [0226, 0233], [02d8, 02dd], [0344, 0344],
    9765         [037a, 037a], [0384, 0386], [0388, 038a], [038c, 038c],
    9766         [038e, 0390], [03aa, 03b0], [03ca, 03ce], [03d3, 03d4],
    9767         [0400, 0401], [0403, 0403], [0407, 0407], [040c, 040e],
    9768         [0419, 0419], [0439, 0439], [0450, 0451], [0453, 0453],
    9769         [0457, 0457], [045c, 045e], [0476, 0477], [04c1, 04c2],
    9770         [04d0, 04d3], [04d6, 04d7], [04da, 04df], [04e2, 04e7],
    9771         [04ea, 04f5], [04f8, 04f9], [0587, 0587], [0622, 0626],
    9772         [0675, 0678], [06c0, 06c0], [06c2, 06c2], [06d3, 06d3],
    9773         [0929, 0929], [0931, 0931], [0934, 0934], [0958, 095f],
    9774         [09cb, 09cc], [09dc, 09dd], [09df, 09df], [0a33, 0a33],
    9775         [0a36, 0a36], [0a59, 0a5b], [0a5e, 0a5e], [0b48, 0b48],
    9776         [0b4b, 0b4c], [0b5c, 0b5d], [0b94, 0b94], [0bca, 0bcc],
    9777         [0c48, 0c48], [0cc0, 0cc0], [0cc7, 0cc8], [0cca, 0ccb],
    9778         [0d4a, 0d4c], [0dda, 0dda], [0ddc, 0dde], [0e33, 0e33],
    9779         [0eb3, 0eb3], [0edc, 0edd], [0f43, 0f43], [0f4d, 0f4d],
    9780         [0f52, 0f52], [0f57, 0f57], [0f5c, 0f5c], [0f69, 0f69],
    9781         [0f73, 0f73], [0f75, 0f79], [0f81, 0f81], [0f93, 0f93],
    9782         [0f9d, 0f9d], [0fa2, 0fa2], [0fa7, 0fa7], [0fac, 0fac],
    9783         [0fb9, 0fb9], [1026, 1026], [1b06, 1b06], [1b08, 1b08],
    9784         [1b0a, 1b0a], [1b0c, 1b0c], [1b0e, 1b0e], [1b12, 1b12],
    9785         [1b3b, 1b3b], [1b3d, 1b3d], [1b40, 1b41], [1b43, 1b43],
    9786         [1e00, 1e9b], [1ea0, 1ef9], [1f00, 1f15], [1f18, 1f1d],
    9787         [1f20, 1f45], [1f48, 1f4d], [1f50, 1f57], [1f59, 1f59],
    9788         [1f5b, 1f5b], [1f5d, 1f5d], [1f5f, 1f7d], [1f80, 1fb4],
    9789         [1fb6, 1fbd], [1fbf, 1fc4], [1fc6, 1fd3], [1fd6, 1fdb],
    9790         [1fdd, 1fee], [1ff2, 1ff4], [1ff6, 1ffe], [2017, 2017],
    9791         [2025, 2026], [2033, 2034], [2036, 2037], [203c, 203c],
    9792         [203e, 203e], [2047, 2049], [2057, 2057], [20a8, 20a8],
    9793         [2100, 2101], [2103, 2103], [2105, 2106], [2109, 2109],
    9794         [2116, 2116], [2120, 2122], [212b, 212b], [213b, 213b],
    9795         [2150, 215f], [2161, 2163], [2165, 2168], [216a, 216b],
    9796         [2171, 2173], [2175, 2178], [217a, 217b], [2189, 2189],
    9797         [219a, 219b], [21ae, 21ae], [21cd, 21cf], [2204, 2204],
    9798         [2209, 2209], [220c, 220c], [2224, 2224], [2226, 2226],
    9799         [222c, 222d], [222f, 2230], [2241, 2241], [2244, 2244],
    9800         [2247, 2247], [2249, 2249], [2260, 2260], [2262, 2262],
    9801         [226d, 2271], [2274, 2275], [2278, 2279], [2280, 2281],
    9802         [2284, 2285], [2288, 2289], [22ac, 22af], [22e0, 22e3],
    9803         [22ea, 22ed], [2469, 24b5], [2a0c, 2a0c], [2a74, 2a76],
    9804         [2adc, 2adc], [304c, 304c], [304e, 304e], [3050, 3050],
    9805         [3052, 3052], [3054, 3054], [3056, 3056], [3058, 3058],
    9806         [305a, 305a], [305c, 305c], [305e, 305e], [3060, 3060],
    9807         [3062, 3062], [3065, 3065], [3067, 3067], [3069, 3069],
    9808         [3070, 3071], [3073, 3074], [3076, 3077], [3079, 307a],
    9809         [307c, 307d], [3094, 3094], [309b, 309c], [309e, 309f],
    9810         [30ac, 30ac], [30ae, 30ae], [30b0, 30b0], [30b2, 30b2],
    9811         [30b4, 30b4], [30b6, 30b6], [30b8, 30b8], [30ba, 30ba],
    9812         [30bc, 30bc], [30be, 30be], [30c0, 30c0], [30c2, 30c2],
    9813         [30c5, 30c5], [30c7, 30c7], [30c9, 30c9], [30d0, 30d1],
    9814         [30d3, 30d4], [30d6, 30d7], [30d9, 30da], [30dc, 30dd],
    9815         [30f4, 30f4], [30f7, 30fa], [30fe, 30ff], [3200, 321e],
    9816         [3220, 3243], [3250, 325f], [326e, 327e], [32b1, 32cf],
    9817         [3300, 33ff], [ac00, d7a3], [fb00, fb06], [fb13, fb17],
    9818         [fb1d, fb1d], [fb1f, fb1f], [fb2a, fb36], [fb38, fb3c],
    9819         [fb3e, fb3e], [fb40, fb41], [fb43, fb44], [fb46, fb4f],
    9820         [fba4, fba5], [fbb0, fbb1], [fbdd, fbdd], [fbea, fbfb],
    9821         [fc00, fd3d], [fd50, fd8f], [fd92, fdc7], [fdf0, fdfc],
    9822         [fe19, fe19], [fe30, fe30], [fe49, fe4c], [fe70, fe72],
    9823         [fe74, fe74], [fe76, fe7f], [fe81, fe8c], [fef5, fefc],
    9824         [ffe3, ffe3], [1109a, 1109a], [1109c, 1109c], [110ab, 110ab],
    9825         [1112e, 1112f], [1134b, 1134c], [114bb, 114bc], [114be, 114be],
    9826         [115ba, 115bb], [1d15e, 1d164], [1d1bb, 1d1c0], [1f100, 1f10a],
    9827         [1f110, 1f12a], [1f12d, 1f12e], [1f14a, 1f14f], [1f16a, 1f16b],
    9828         [1f190, 1f190], [1f200, 1f201], [1f213, 1f213], [1f240, 1f248]**/
    9829         const UnicodeSet codepoint_set
    9830             {{{Empty, 5}, {Mixed, 7}, {Empty, 1}, {Mixed, 5}, {Empty, 4},
    9831               {Mixed, 1}, {Empty, 3}, {Mixed, 5}, {Empty, 1}, {Mixed, 4},
    9832               {Empty, 2}, {Mixed, 2}, {Empty, 4}, {Mixed, 1}, {Empty, 4},
    9833               {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
    9834               {Empty, 18}, {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 2},
    9835               {Mixed, 2}, {Empty, 7}, {Mixed, 1}, {Empty, 1}, {Mixed, 1},
    9836               {Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3},
    9837               {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 3}, {Mixed, 1},
    9838               {Empty, 2}, {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 3},
    9839               {Mixed, 4}, {Empty, 3}, {Mixed, 1}, {Empty, 86}, {Mixed, 3},
    9840               {Empty, 21}, {Full, 4}, {Mixed, 1}, {Full, 2}, {Mixed, 2},
    9841               {Full, 1}, {Mixed, 2}, {Full, 1}, {Mixed, 6}, {Empty, 2},
    9842               {Mixed, 1}, {Empty, 2}, {Mixed, 7}, {Empty, 1}, {Mixed, 6},
    9843               {Empty, 1}, {Mixed, 1}, {Empty, 11}, {Mixed, 1}, {Full, 1},
    9844               {Mixed, 1}, {Empty, 42}, {Mixed, 1}, {Empty, 2}, {Mixed, 1},
    9845               {Empty, 2}, {Mixed, 1}, {Empty, 43}, {Mixed, 6}, {Empty, 8},
    9846               {Mixed, 1}, {Full, 1}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
    9847               {Empty, 1}, {Full, 8}, {Empty, 960}, {Full, 349}, {Mixed, 1},
    9848               {Empty, 282}, {Mixed, 3}, {Empty, 2}, {Mixed, 3}, {Full, 9},
    9849               {Mixed, 2}, {Full, 1}, {Mixed, 1}, {Full, 1}, {Mixed, 7},
    9850               {Empty, 2}, {Mixed, 1}, {Empty, 7}, {Mixed, 1}, {Empty, 132},
    9851               {Mixed, 2}, {Empty, 3}, {Mixed, 1}, {Empty, 16}, {Mixed, 1},
    9852               {Empty, 10}, {Mixed, 1}, {Empty, 7}, {Mixed, 1},
    9853               {Empty, 1500}, {Mixed, 2}, {Empty, 1}, {Mixed, 2},
    9854               {Empty, 249}, {Mixed, 5}, {Empty, 3}, {Mixed, 1}, {Empty, 1},
    9855               {Mixed, 1}, {Empty, 30829}},
    9856              {0x71108100, 0x3e7effbf, 0xbe7effbf, 0xfffcffff, 0xfefdff3f,
    9857               0xfff3f3f9, 0x7fffff3f, 0x00018003, 0xdffffff0, 0xff3fffcf,
    9858               0xcfffffff, 0x000fffc0, 0x3f000000, 0x00000010, 0x04000000,
    9859               0x0001d770, 0x0001fc00, 0x00187c00, 0x0200708b, 0x02000000,
    9860               0x708b0000, 0x00c00000, 0xfccf0006, 0x033ffcfc, 0x00000080,
    9861               0x0000007c, 0x01e00000, 0x00080005, 0x00120200, 0xff000000,
    9862               0xb0001800, 0x00480000, 0x4e000000, 0x30001900, 0x00100000,
    9863               0x00001c00, 0x00000100, 0x00000d81, 0x00001c00, 0x74000000,
    9864               0x00080000, 0x00080000, 0x30000000, 0x10842008, 0x03e80200,
    9865               0x20080002, 0x02001084, 0x00000040, 0x00045540, 0x28000000,
    9866               0x0000000b, 0x0fffffff, 0x03ffffff, 0x3f3fffff, 0xaaff3f3f,
    9867               0x3fffffff, 0xbfdfffff, 0xefcfffdf, 0x7fdc7fff, 0x00800000,
    9868               0x50d80060, 0x00800380, 0x00000100, 0x0040026b, 0x08000807,
    9869               0xffff0000, 0x0dee0dee, 0x0c000200, 0x00004000, 0x0000e000,
    9870               0x00001210, 0x0001b050, 0x00000292, 0x0333e005, 0x00000333,
    9871               0x0000f000, 0x00003c0f, 0xfffffe00, 0x003fffff, 0x00001000,
    9872               0x00700000, 0x10000000, 0x55555000, 0x36db02a5, 0xd8100000,
    9873               0x55555000, 0x36db02a5, 0xc7900000, 0x7fffffff, 0xffff000f,
    9874               0x7fffc000, 0xfffe0000, 0x0000ffff, 0x0000000f, 0xa0f8007f,
    9875               0x5f7ffc00, 0x0000ffdb, 0x00030030, 0x20000000, 0x0ffffc00,
    9876               0x3fffffff, 0xffff0000, 0xfffcffff, 0x000000ff, 0x1fff0000,
    9877               0x02000000, 0x00010000, 0x00001e00, 0xffd70000, 0x00001ffe,
    9878               0x1fe00000, 0x00000008, 0x14000000, 0x00000800, 0x0000c000,
    9879               0x00001800, 0x58000000, 0x0c000000, 0xc0000000, 0x0000001f,
    9880               0xf8000000, 0x00000001, 0xffff07ff, 0x000067ff, 0x0000fc00,
    9881               0x00000c00, 0x00010000, 0x00080003, 0x000001ff}};
    9882         static BinaryPropertyObject property_object{XO_NFKD, codepoint_set};
     8792        static ObsoletePropertyObject property_object(XO_NFKD);
    98838793    }
    98848794}
  • icGREP/icgrep-devel/icgrep/UCD/PropList.h

    r5660 r5668  
    210210    }
    211211    namespace HYPHEN_ns {
    212         /** Code Point Ranges for Hyphen
    213         [002d, 002d], [00ad, 00ad], [058a, 058a], [1806, 1806],
    214         [2010, 2011], [2e17, 2e17], [30fb, 30fb], [fe63, fe63],
    215         [ff0d, ff0d], [ff65, ff65]**/
    216         const UnicodeSet codepoint_set
    217             {{{Empty, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 1}, {Empty, 38},
    218               {Mixed, 1}, {Empty, 147}, {Mixed, 1}, {Empty, 63}, {Mixed, 1},
    219               {Empty, 111}, {Mixed, 1}, {Empty, 22}, {Mixed, 1},
    220               {Empty, 1643}, {Mixed, 1}, {Empty, 4}, {Mixed, 1}, {Empty, 2},
    221               {Mixed, 1}, {Empty, 32772}},
    222              {0x00002000, 0x00002000, 0x00000400, 0x00000040, 0x00030000,
    223               0x00800000, 0x08000000, 0x00000008, 0x00002000, 0x00000020}};
    224         static BinaryPropertyObject property_object{Hyphen, codepoint_set};
     212        static ObsoletePropertyObject property_object(Hyphen);
    225213    }
    226214    namespace IDSB_ns {
  • icGREP/icgrep-devel/icgrep/UCD/PropertyObjectTable.h

    r5666 r5668  
    5454    new UnsupportedPropertyObject(lc, PropertyObject::ClassTypeId::StringProperty),
    5555    &NFKC_CF_ns::property_object,
    56     new UnsupportedPropertyObject(scf, PropertyObject::ClassTypeId::CodepointProperty),
     56    new UnsupportedPropertyObject(scf, PropertyObject::ClassTypeId::StringProperty),
    5757    &SLC_ns::property_object,
    5858    &STC_ns::property_object,
     
    7373    new UnsupportedPropertyObject(cjkIRG_VSource, PropertyObject::ClassTypeId::StringProperty),
    7474    new UnsupportedPropertyObject(cjkRSUnicode, PropertyObject::ClassTypeId::StringProperty),
    75     new UnsupportedPropertyObject(isc, PropertyObject::ClassTypeId::StringProperty),
     75    &ISC_ns::property_object,
    7676    &JSN_ns::property_object,
    7777    &NA_ns::property_object,
    78     new UnsupportedPropertyObject(na1, PropertyObject::ClassTypeId::StringProperty),
     78    &NA1_ns::property_object,
    7979    new UnsupportedPropertyObject(Name_Alias, PropertyObject::ClassTypeId::StringProperty),
    8080    &SCX_ns::property_object,
  • icGREP/icgrep-devel/icgrep/UCD/PropertyObjects.cpp

    r5667 r5668  
    223223}
    224224
    225 }
     225const std::string & ObsoletePropertyObject::GetPropertyValueGrepString() {
     226    llvm::report_fatal_error("Property " + UCD::property_full_name[the_property] + " is obsolete.");
     227}
     228
     229const UnicodeSet ObsoletePropertyObject::GetCodepointSet(const std::string &) {
     230    llvm::report_fatal_error("Property " + UCD::property_full_name[the_property] + " is obsolete.");
     231}
     232
     233
     234}
  • icGREP/icgrep-devel/icgrep/UCD/PropertyObjects.h

    r5667 r5668  
    2222public:
    2323    enum class ClassTypeId : unsigned {
    24         NumericProperty
    25         , CodepointProperty
    26         , StringProperty
    27         , MiscellaneousProperty
    28         , EnumeratedProperty
    29         , ExtensionProperty
    30         , CatalogProperty
    31         , BinaryProperty
    32         , UnsupportedProperty
     24        BinaryProperty,
     25        EnumeratedProperty,
     26        ExtensionProperty,
     27        NumericProperty,
     28        StringProperty,
     29        ObsoleteProperty,
     30        UnsupportedProperty
    3331    };
    3432
     
    4745};
    4846
    49 class UnsupportedPropertyObject : public PropertyObject {
    50 public:
    51     static inline bool classof(const PropertyObject * p) {
    52         return p->getClassTypeId() == ClassTypeId::UnsupportedProperty;
    53     }
    54     static inline bool classof(const void *) {
    55         return false;
    56     }
    57 
    58     UnsupportedPropertyObject(property_t p, ClassTypeId)
    59     : PropertyObject(p, ClassTypeId::UnsupportedProperty) {
    60 
    61     }
     47class BinaryPropertyObject : public PropertyObject {
     48public:
     49    static inline bool classof(const PropertyObject * p) {
     50        return p->getClassTypeId() == ClassTypeId::BinaryProperty;
     51    }
     52    static inline bool classof(const void *) {
     53        return false;
     54    }
     55   
     56    BinaryPropertyObject(UCD::property_t p, UnicodeSet s)
     57    : PropertyObject(p, ClassTypeId::BinaryProperty)
     58    , mNoUninitialized(true)
     59    , mY(s) {
     60       
     61    }
     62    const UnicodeSet GetCodepointSet(const std::string & value_spec) override;
     63    const UnicodeSet & GetCodepointSet(const int property_enum_val);
     64    const std::string & GetPropertyValueGrepString() override;
     65private:
     66    bool mNoUninitialized;
     67    UnicodeSet mY;
     68    UnicodeSet mN;
     69    std::string mPropertyValueGrepString;
    6270};
    6371
     
    147155};
    148156
    149 class BinaryPropertyObject : public PropertyObject {
    150 public:
    151     static inline bool classof(const PropertyObject * p) {
    152         return p->getClassTypeId() == ClassTypeId::BinaryProperty;
    153     }
    154     static inline bool classof(const void *) {
    155         return false;
    156     }
    157 
    158     BinaryPropertyObject(UCD::property_t p, UnicodeSet s)
    159     : PropertyObject(p, ClassTypeId::BinaryProperty)
    160     , mNoUninitialized(true)
    161     , mY(s) {
    162 
    163     }
    164     const UnicodeSet GetCodepointSet(const std::string & value_spec) override;
    165     const UnicodeSet & GetCodepointSet(const int property_enum_val);
    166     const std::string & GetPropertyValueGrepString() override;
    167 private:
    168     bool mNoUninitialized;
    169     UnicodeSet mY;
    170     UnicodeSet mN;
    171     std::string mPropertyValueGrepString;
    172 };
    173 
    174157class StringPropertyObject : public PropertyObject {
    175158public:
     
    200183
    201184};
     185   
     186class NumericPropertyObject : public PropertyObject {
     187public:
     188    static inline bool classof(const PropertyObject * p) {
     189        return p->getClassTypeId() == ClassTypeId::NumericProperty;
     190    }
     191    static inline bool classof(const void *) {
     192        return false;
     193    }
     194   
     195    NumericPropertyObject(property_t p, ClassTypeId)
     196    : PropertyObject(p, ClassTypeId::NumericProperty) {
     197       
     198    }
     199};
     200
     201class ObsoletePropertyObject : public PropertyObject {
     202public:
     203    static inline bool classof(const PropertyObject * p) {
     204        return p->getClassTypeId() == ClassTypeId::ObsoleteProperty;
     205    }
     206    static inline bool classof(const void *) {
     207        return false;
     208    }
     209   
     210    ObsoletePropertyObject(property_t p)
     211    : PropertyObject(p, ClassTypeId::ObsoleteProperty) {}
     212   
     213    const std::string & GetPropertyValueGrepString() override;
     214    const UnicodeSet GetCodepointSet(const std::string & value_spec) override;
     215
     216};
     217
     218class UnsupportedPropertyObject : public PropertyObject {
     219public:
     220    static inline bool classof(const PropertyObject * p) {
     221        return p->getClassTypeId() == ClassTypeId::UnsupportedProperty;
     222    }
     223    static inline bool classof(const void *) {
     224        return false;
     225    }
     226   
     227    UnsupportedPropertyObject(property_t p, ClassTypeId)
     228    : PropertyObject(p, ClassTypeId::UnsupportedProperty) {}
     229};
    202230}
    203231
  • icGREP/icgrep-devel/icgrep/UCD/UnicodeData.h

    r5663 r5668  
    4719247192                                                    defined_cps);
    4719347193    }
     47194    namespace NA1_ns {
     47195        static ObsoletePropertyObject property_object(na1);
     47196    }
     47197    namespace ISC_ns {
     47198        static ObsoletePropertyObject property_object(isc);
     47199    }
    4719447200}
    4719547201
Note: See TracChangeset for help on using the changeset viewer.