1/* ANSI-C code produced by gperf version 3.0.4 */ 2/* Command-line: gperf -m 10 ./unictype/pr_byname.gperf */ 3/* Computed positions: -k'1,8,10' */ 4 5#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ 6 && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ 7 && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ 8 && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ 9 && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ 10 && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ 11 && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ 12 && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ 13 && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ 14 && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ 15 && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ 16 && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ 17 && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ 18 && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ 19 && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ 20 && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ 21 && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ 22 && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ 23 && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ 24 && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ 25 && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ 26 && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ 27 && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) 28/* The character set is not based on ISO-646. */ 29#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>." 30#endif 31 32#line 1 "./unictype/pr_byname.gperf" 33struct named_property { const char *name; uc_property_t property; }; 34 35#define TOTAL_KEYWORDS 79 36#define MIN_WORD_LENGTH 4 37#define MAX_WORD_LENGTH 34 38#define MIN_HASH_VALUE 7 39#define MAX_HASH_VALUE 120 40/* maximum key range = 114, duplicates = 0 */ 41 42#ifdef __GNUC__ 43__inline 44#else 45#ifdef __cplusplus 46inline 47#endif 48#endif 49static unsigned int 50properties_hash (register const char *str, register unsigned int len) 51{ 52 static const unsigned char asso_values[] = 53 { 54 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 55 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 56 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 57 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 58 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 59 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 60 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 61 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 62 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, 63 121, 121, 121, 121, 121, 12, 121, 30, 0, 51, 64 37, 1, 42, 43, 36, 0, 4, 50, 14, 47, 65 1, 9, 3, 43, 0, 13, 7, 37, 30, 0, 66 44, 27, 0, 121, 121, 121, 121, 121 67 }; 68 register int hval = len; 69 70 switch (hval) 71 { 72 default: 73 hval += asso_values[(unsigned char)str[9]]; 74 /*FALLTHROUGH*/ 75 case 9: 76 case 8: 77 hval += asso_values[(unsigned char)str[7]]; 78 /*FALLTHROUGH*/ 79 case 7: 80 case 6: 81 case 5: 82 case 4: 83 case 3: 84 case 2: 85 case 1: 86 hval += asso_values[(unsigned char)str[0]]; 87 break; 88 } 89 return hval; 90} 91 92static const struct named_property properties[] = 93 { 94 {""}, {""}, {""}, {""}, {""}, {""}, {""}, 95#line 62 "./unictype/pr_byname.gperf" 96 {"radical", { &uc_is_property_radical }}, 97#line 86 "./unictype/pr_byname.gperf" 98 {"numeric", { &uc_is_property_numeric }}, 99#line 88 "./unictype/pr_byname.gperf" 100 {"extender", { &uc_is_property_extender }}, 101 {""}, {""}, {""}, 102#line 41 "./unictype/pr_byname.gperf" 103 {"bidi_control", { &uc_is_property_bidi_control }}, 104#line 60 "./unictype/pr_byname.gperf" 105 {"ideographic", { &uc_is_property_ideographic }}, 106#line 28 "./unictype/pr_byname.gperf" 107 {"id_start", { &uc_is_property_id_start }}, 108#line 52 "./unictype/pr_byname.gperf" 109 {"bidi_whitespace", { &uc_is_property_bidi_whitespace }}, 110#line 36 "./unictype/pr_byname.gperf" 111 {"join_control", { &uc_is_property_join_control }}, 112#line 66 "./unictype/pr_byname.gperf" 113 {"space", { &uc_is_property_space }}, 114 {""}, {""}, 115#line 64 "./unictype/pr_byname.gperf" 116 {"ids_trinary_operator", { &uc_is_property_ids_trinary_operator }}, 117#line 45 "./unictype/pr_byname.gperf" 118 {"bidi_european_digit", { &uc_is_property_bidi_european_digit }}, 119#line 46 "./unictype/pr_byname.gperf" 120 {"bidi_eur_num_separator", { &uc_is_property_bidi_eur_num_separator }}, 121#line 47 "./unictype/pr_byname.gperf" 122 {"bidi_eur_num_terminator", { &uc_is_property_bidi_eur_num_terminator }}, 123#line 81 "./unictype/pr_byname.gperf" 124 {"paired_punctuation", { &uc_is_property_paired_punctuation }}, 125#line 43 "./unictype/pr_byname.gperf" 126 {"bidi_hebrew_right_to_left", { &uc_is_property_bidi_hebrew_right_to_left }}, 127#line 68 "./unictype/pr_byname.gperf" 128 {"iso_control", { &uc_is_property_iso_control }}, 129#line 23 "./unictype/pr_byname.gperf" 130 {"other_uppercase", { &uc_is_property_other_uppercase }}, 131#line 26 "./unictype/pr_byname.gperf" 132 {"titlecase", { &uc_is_property_titlecase }}, 133#line 72 "./unictype/pr_byname.gperf" 134 {"punctuation", { &uc_is_property_punctuation }}, 135#line 73 "./unictype/pr_byname.gperf" 136 {"line_separator", { &uc_is_property_line_separator }}, 137#line 27 "./unictype/pr_byname.gperf" 138 {"soft_dotted", { &uc_is_property_soft_dotted }}, 139#line 39 "./unictype/pr_byname.gperf" 140 {"other_grapheme_extend", { &uc_is_property_other_grapheme_extend }}, 141#line 25 "./unictype/pr_byname.gperf" 142 {"other_lowercase", { &uc_is_property_other_lowercase }}, 143#line 53 "./unictype/pr_byname.gperf" 144 {"bidi_non_spacing_mark", { &uc_is_property_bidi_non_spacing_mark }}, 145#line 24 "./unictype/pr_byname.gperf" 146 {"lowercase", { &uc_is_property_lowercase }}, 147#line 74 "./unictype/pr_byname.gperf" 148 {"paragraph_separator", { &uc_is_property_paragraph_separator }}, 149#line 76 "./unictype/pr_byname.gperf" 150 {"sentence_terminal", { &uc_is_property_sentence_terminal }}, 151#line 20 "./unictype/pr_byname.gperf" 152 {"private_use", { &uc_is_property_private_use }}, 153#line 67 "./unictype/pr_byname.gperf" 154 {"non_break", { &uc_is_property_non_break }}, 155#line 70 "./unictype/pr_byname.gperf" 156 {"dash", { &uc_is_property_dash }}, 157#line 71 "./unictype/pr_byname.gperf" 158 {"hyphen", { &uc_is_property_hyphen }}, 159#line 89 "./unictype/pr_byname.gperf" 160 {"ignorable_control", { &uc_is_property_ignorable_control }}, 161#line 77 "./unictype/pr_byname.gperf" 162 {"terminal_punctuation", { &uc_is_property_terminal_punctuation }}, 163#line 58 "./unictype/pr_byname.gperf" 164 {"hex_digit", { &uc_is_property_hex_digit }}, 165#line 87 "./unictype/pr_byname.gperf" 166 {"diacritic", { &uc_is_property_diacritic }}, 167#line 48 "./unictype/pr_byname.gperf" 168 {"bidi_arabic_digit", { &uc_is_property_bidi_arabic_digit }}, 169#line 30 "./unictype/pr_byname.gperf" 170 {"id_continue", { &uc_is_property_id_continue }}, 171#line 18 "./unictype/pr_byname.gperf" 172 {"logical_order_exception", { &uc_is_property_logical_order_exception }}, 173#line 55 "./unictype/pr_byname.gperf" 174 {"bidi_pdf", { &uc_is_property_bidi_pdf }}, 175#line 79 "./unictype/pr_byname.gperf" 176 {"math", { &uc_is_property_math }}, 177#line 14 "./unictype/pr_byname.gperf" 178 {"not_a_character", { &uc_is_property_not_a_character }}, 179#line 32 "./unictype/pr_byname.gperf" 180 {"xid_start", { &uc_is_property_xid_start }}, 181#line 57 "./unictype/pr_byname.gperf" 182 {"bidi_other_neutral", { &uc_is_property_bidi_other_neutral }}, 183#line 44 "./unictype/pr_byname.gperf" 184 {"bidi_arabic_right_to_left", { &uc_is_property_bidi_arabic_right_to_left }}, 185#line 35 "./unictype/pr_byname.gperf" 186 {"pattern_syntax", { &uc_is_property_pattern_syntax }}, 187#line 37 "./unictype/pr_byname.gperf" 188 {"grapheme_base", { &uc_is_property_grapheme_base }}, 189#line 59 "./unictype/pr_byname.gperf" 190 {"ascii_hex_digit", { &uc_is_property_ascii_hex_digit }}, 191#line 22 "./unictype/pr_byname.gperf" 192 {"uppercase", { &uc_is_property_uppercase }}, 193#line 38 "./unictype/pr_byname.gperf" 194 {"grapheme_extend", { &uc_is_property_grapheme_extend }}, 195#line 83 "./unictype/pr_byname.gperf" 196 {"combining", { &uc_is_property_combining }}, 197#line 85 "./unictype/pr_byname.gperf" 198 {"decimal_digit", { &uc_is_property_decimal_digit }}, 199#line 56 "./unictype/pr_byname.gperf" 200 {"bidi_embedding_or_override", { &uc_is_property_bidi_embedding_or_override }}, 201#line 33 "./unictype/pr_byname.gperf" 202 {"xid_continue", { &uc_is_property_xid_continue }}, 203#line 11 "./unictype/pr_byname.gperf" 204 {"white_space", { &uc_is_property_white_space }}, 205#line 51 "./unictype/pr_byname.gperf" 206 {"bidi_segment_separator", { &uc_is_property_bidi_segment_separator }}, 207#line 84 "./unictype/pr_byname.gperf" 208 {"composite", { &uc_is_property_composite }}, 209#line 82 "./unictype/pr_byname.gperf" 210 {"left_of_pair", { &uc_is_property_left_of_pair }}, 211#line 19 "./unictype/pr_byname.gperf" 212 {"variation_selector", { &uc_is_property_variation_selector }}, 213#line 34 "./unictype/pr_byname.gperf" 214 {"pattern_white_space", { &uc_is_property_pattern_white_space }}, 215#line 40 "./unictype/pr_byname.gperf" 216 {"grapheme_link", { &uc_is_property_grapheme_link }}, 217#line 42 "./unictype/pr_byname.gperf" 218 {"bidi_left_to_right", { &uc_is_property_bidi_left_to_right }}, 219#line 29 "./unictype/pr_byname.gperf" 220 {"other_id_start", { &uc_is_property_other_id_start }}, 221#line 16 "./unictype/pr_byname.gperf" 222 {"other_default_ignorable_code_point", { &uc_is_property_other_default_ignorable_code_point }}, 223#line 13 "./unictype/pr_byname.gperf" 224 {"other_alphabetic", { &uc_is_property_other_alphabetic }}, 225#line 63 "./unictype/pr_byname.gperf" 226 {"ids_binary_operator", { &uc_is_property_ids_binary_operator }}, 227#line 49 "./unictype/pr_byname.gperf" 228 {"bidi_common_separator", { &uc_is_property_bidi_common_separator }}, 229#line 75 "./unictype/pr_byname.gperf" 230 {"quotation_mark", { &uc_is_property_quotation_mark }}, 231#line 50 "./unictype/pr_byname.gperf" 232 {"bidi_block_separator", { &uc_is_property_bidi_block_separator }}, 233 {""}, {""}, {""}, 234#line 65 "./unictype/pr_byname.gperf" 235 {"zero_width", { &uc_is_property_zero_width }}, 236 {""}, 237#line 80 "./unictype/pr_byname.gperf" 238 {"other_math", { &uc_is_property_other_math }}, 239 {""}, {""}, {""}, {""}, {""}, 240#line 17 "./unictype/pr_byname.gperf" 241 {"deprecated", { &uc_is_property_deprecated }}, 242 {""}, {""}, {""}, 243#line 54 "./unictype/pr_byname.gperf" 244 {"bidi_boundary_neutral", { &uc_is_property_bidi_boundary_neutral }}, 245#line 21 "./unictype/pr_byname.gperf" 246 {"unassigned_code_value", { &uc_is_property_unassigned_code_value }}, 247 {""}, 248#line 12 "./unictype/pr_byname.gperf" 249 {"alphabetic", { &uc_is_property_alphabetic }}, 250 {""}, {""}, {""}, {""}, 251#line 61 "./unictype/pr_byname.gperf" 252 {"unified_ideograph", { &uc_is_property_unified_ideograph }}, 253 {""}, {""}, 254#line 78 "./unictype/pr_byname.gperf" 255 {"currency_symbol", { &uc_is_property_currency_symbol }}, 256 {""}, 257#line 69 "./unictype/pr_byname.gperf" 258 {"format_control", { &uc_is_property_format_control }}, 259 {""}, {""}, {""}, {""}, {""}, 260#line 31 "./unictype/pr_byname.gperf" 261 {"other_id_continue", { &uc_is_property_other_id_continue }}, 262 {""}, {""}, {""}, {""}, {""}, 263#line 15 "./unictype/pr_byname.gperf" 264 {"default_ignorable_code_point", { &uc_is_property_default_ignorable_code_point }} 265 }; 266 267#ifdef __GNUC__ 268__inline 269#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ 270__attribute__ ((__gnu_inline__)) 271#endif 272#endif 273const struct named_property * 274uc_property_lookup (register const char *str, register unsigned int len) 275{ 276 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) 277 { 278 register int key = properties_hash (str, len); 279 280 if (key <= MAX_HASH_VALUE && key >= 0) 281 { 282 register const char *s = properties[key].name; 283 284 if (*str == *s && !strcmp (str + 1, s + 1)) 285 return &properties[key]; 286 } 287 } 288 return 0; 289} 290