Ignore:
Timestamp:
Jan 1, 2015, 3:47:26 PM (4 years ago)
Author:
cameron
Message:

Support for the Unicode script property

File:
1 edited

Legend:

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

    r4384 r4385  
    7575                if (theprop == UCD::gc) {
    7676                    // General Category
    77                    
    78                     int valcode = dynamic_cast<UCD::EnumeratedPropertyObject *> (UCD::property_object_table[UCD::gc])->GetPropertyValueEnumCode(v);
    79                    
     77                    int valcode = dynamic_cast<UCD::EnumeratedPropertyObject *> (UCD::property_object_table[UCD::gc])->GetPropertyValueEnumCode(v);                   
    8078                    if (valcode > 0) {
    8179                        name->setName("__get_gc_" + UCD::GC_ns::enum_names[valcode]);
     
    8482                else if (theprop == UCD::sc) {
    8583                    // Script property identified
    86                     throw std::runtime_error("Script property identified, aborting\n");
     84                    int valcode = dynamic_cast<UCD::EnumeratedPropertyObject *> (UCD::property_object_table[UCD::sc])->GetPropertyValueEnumCode(v);                   
     85                    if (valcode > 0) {
     86                        name->setName("__get_sc_" + UCD::SC_ns::enum_names[valcode]);
     87                    }
    8788                }
    8889                else if (theprop == UCD::scx) {
     
    100101                    theprop = UCD::gc;
    101102                    name->setName("__get_gc_" + UCD::GC_ns::enum_names[valcode]);
     103                    return;
    102104                }
    103                 else if (dynamic_cast<UCD::EnumeratedPropertyObject *> (UCD::property_object_table[UCD::sc])->GetPropertyValueEnumCode(v) > 0) {
     105                valcode = dynamic_cast<UCD::EnumeratedPropertyObject *> (UCD::property_object_table[UCD::sc])->GetPropertyValueEnumCode(v);
     106                if (valcode > 0) {
    104107                    theprop = UCD::sc;
    105                     throw std::runtime_error("Script property identified by value, aborting\n");
     108                    name->setName("__get_sc_" + UCD::SC_ns::enum_names[valcode]);
     109                    return;
    106110                }
    107 
    108111                else {
    109112                    throw std::runtime_error("Unknown property, aborting\n");
Note: See TracChangeset for help on using the changeset viewer.