Ignore:
Timestamp:
Feb 18, 2017, 10:07:09 AM (2 years ago)
Author:
cameron
Message:

Refining the ProcessingRate? attribute

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/UCD/resolve_properties.cpp

    r5267 r5328  
    106106        }
    107107        // Now compatibility properties of UTR #18 Annex C
    108         else if (value == "xdigit") {
    109             Name * digit = makeName("nd", Name::Type::UnicodeProperty);
    110             Name * hexdigit = makeName("hexdigit", Name::Type::UnicodeProperty);
    111             property->setDefinition(makeAlt({digit, hexdigit}));
    112             return true;
    113         } else if (value == "alnum") {
    114             Name * digit = makeName("nd", Name::Type::UnicodeProperty);
    115             Name * alpha = makeName("alphabetic", Name::Type::UnicodeProperty);
    116             property->setDefinition(makeAlt({digit, alpha}));
    117             return true;
    118         } else if (value == "blank") {
    119             Name * space_sep = makeName("space_separator", Name::Type::UnicodeProperty);
    120             CC * tab = makeCC(0x09);
    121             property->setDefinition(makeAlt({space_sep, tab}));
    122             return true;
    123         } else if (value == "graph") {
     108        else if (value == "graph") {
    124109            Name * space = makeName("space", Name::Type::UnicodeProperty);
    125110            Name * ctrl = makeName("control", Name::Type::UnicodeProperty);
     
    127112            Name * unassigned = makeName("cn", Name::Type::UnicodeProperty);
    128113            property->setDefinition(makeDiff(makeAny(), makeAlt({space, ctrl, surr, unassigned})));
    129             return true;
    130         } else if (value == "print") {
    131             Name * graph = makeName("graph", Name::Type::UnicodeProperty);
    132             Name * space_sep = makeName("space_separator", Name::Type::UnicodeProperty);
    133             property->setDefinition(makeAlt({graph, space_sep}));
    134             return true;
    135         } else if (value == "word") {
    136             Name * alnum = makeName("alnum", Name::Type::UnicodeProperty);
    137             Name * mark = makeName("mark", Name::Type::UnicodeProperty);
    138             Name * conn = makeName("connectorpunctuation", Name::Type::UnicodeProperty);
    139             Name * join = makeName("joincontrol", Name::Type::UnicodeProperty);
    140             property->setDefinition(makeAlt({alnum, mark, conn, join}));
    141114            return true;
    142115        } else if (value == "GCB" || value == "NonGCB"){
     
    274247                }
    275248            }
     249            // Try special cases of Unicode TR #18
     250            // Now compatibility properties of UTR #18 Annex C
     251                   
     252            else if (value == "alnum") {
     253                Name * digit = makeName("nd", Name::Type::UnicodeProperty);
     254                Name * alpha = makeName("alphabetic", Name::Type::UnicodeProperty);
     255                return resolveUnicodeSet(digit) + resolveUnicodeSet(alpha);
     256            } else if (value == "xdigit") {
     257                Name * digit = makeName("nd", Name::Type::UnicodeProperty);
     258                Name * hexdigit = makeName("hexdigit", Name::Type::UnicodeProperty);
     259                return resolveUnicodeSet(digit) + resolveUnicodeSet(hexdigit);
     260            } else if (value == "blank") {
     261                Name * space_sep = makeName("space_separator", Name::Type::UnicodeProperty);
     262                return resolveUnicodeSet(space_sep) + UnicodeSet(0x09) /* tab */;
     263            } else if (value == "print") {
     264                Name * graph = makeName("graph", Name::Type::UnicodeProperty);
     265                Name * space_sep = makeName("space_separator", Name::Type::UnicodeProperty);
     266                return resolveUnicodeSet(graph) + resolveUnicodeSet(space_sep);
     267            } else if (value == "word") {
     268                Name * alnum = makeName("alnum", Name::Type::UnicodeProperty);
     269                Name * mark = makeName("mark", Name::Type::UnicodeProperty);
     270                Name * conn = makeName("connectorpunctuation", Name::Type::UnicodeProperty);
     271                Name * join = makeName("joincontrol", Name::Type::UnicodeProperty);
     272                return resolveUnicodeSet(alnum) + resolveUnicodeSet(mark) + resolveUnicodeSet(conn) + resolveUnicodeSet(join);
     273            }
     274
    276275        }
    277276    }
Note: See TracChangeset for help on using the changeset viewer.