1 /* ANSI-C code produced by gperf version 3.0.4 */
2 /* Command-line: gperf -m 10 ./unictype/combiningclass_byname.gperf */
3 /* Computed positions: -k'1,6,$' */
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>."
32 #line 2 "./unictype/combiningclass_byname.gperf"
33 struct named_combining_class { int name; int combining_class; };
35 #define TOTAL_KEYWORDS 53
36 #define MIN_WORD_LENGTH 1
37 #define MAX_WORD_LENGTH 20
38 #define MIN_HASH_VALUE 3
39 #define MAX_HASH_VALUE 66
40 /* maximum key range = 64, duplicates = 0 */
42 #ifndef GPERF_DOWNCASE
43 #define GPERF_DOWNCASE 1
44 static unsigned char gperf_downcase[256] =
46 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
47 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
48 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
49 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
50 60, 61, 62, 63, 64, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
51 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
52 122, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
53 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
54 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
55 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
56 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
57 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
58 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
59 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
60 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
61 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
62 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
67 #ifndef GPERF_CASE_STRCMP
68 #define GPERF_CASE_STRCMP 1
70 gperf_case_strcmp (register const char *s1, register const char *s2)
74 unsigned char c1 = gperf_downcase[(unsigned char)*s1++];
75 unsigned char c2 = gperf_downcase[(unsigned char)*s2++];
76 if (c1 != 0 && c1 == c2)
78 return (int)c1 - (int)c2;
91 combining_class_hash (register const char *str, register unsigned int len)
93 static const unsigned char asso_values[] =
95 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
96 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
97 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
98 67, 67, 28, 67, 67, 67, 67, 67, 67, 67,
99 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
100 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
101 67, 67, 67, 67, 67, 4, 1, 67, 31, 1,
102 67, 2, 8, 6, 67, 47, 15, 67, 11, 1,
103 67, 67, 9, 6, 10, 3, 2, 22, 67, 13,
104 67, 67, 67, 67, 67, 67, 67, 4, 1, 67,
105 31, 1, 67, 2, 8, 6, 67, 47, 15, 67,
106 11, 1, 67, 67, 9, 6, 10, 3, 2, 22,
107 67, 13, 67, 67, 67, 67, 67, 67, 67, 67,
108 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
109 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
110 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
111 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
112 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
113 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
114 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
115 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
116 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
117 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
118 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
119 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
120 67, 67, 67, 67, 67, 67
122 register int hval = len;
127 hval += asso_values[(unsigned char)str[5]];
134 hval += asso_values[(unsigned char)str[0]];
137 return hval + asso_values[(unsigned char)str[len - 1]];
140 struct combining_class_stringpool_t
142 char combining_class_stringpool_str3[sizeof("B")];
143 char combining_class_stringpool_str5[sizeof("OV")];
144 char combining_class_stringpool_str8[sizeof("ATB")];
145 char combining_class_stringpool_str9[sizeof("A")];
146 char combining_class_stringpool_str10[sizeof("Above")];
147 char combining_class_stringpool_str11[sizeof("ATA")];
148 char combining_class_stringpool_str12[sizeof("BR")];
149 char combining_class_stringpool_str13[sizeof("VR")];
150 char combining_class_stringpool_str14[sizeof("IS")];
151 char combining_class_stringpool_str15[sizeof("AR")];
152 char combining_class_stringpool_str16[sizeof("Virama")];
153 char combining_class_stringpool_str17[sizeof("ATAR")];
154 char combining_class_stringpool_str18[sizeof("BL")];
155 char combining_class_stringpool_str19[sizeof("R")];
156 char combining_class_stringpool_str20[sizeof("Nukta")];
157 char combining_class_stringpool_str21[sizeof("AL")];
158 char combining_class_stringpool_str22[sizeof("NR")];
159 char combining_class_stringpool_str23[sizeof("ATBL")];
160 char combining_class_stringpool_str24[sizeof("Right")];
161 char combining_class_stringpool_str25[sizeof("Overlay")];
162 char combining_class_stringpool_str26[sizeof("AttachedAbove")];
163 char combining_class_stringpool_str27[sizeof("Attached Above")];
164 char combining_class_stringpool_str28[sizeof("Below")];
165 char combining_class_stringpool_str29[sizeof("Left")];
166 char combining_class_stringpool_str30[sizeof("BelowRight")];
167 char combining_class_stringpool_str31[sizeof("L")];
168 char combining_class_stringpool_str32[sizeof("IotaSubscript")];
169 char combining_class_stringpool_str33[sizeof("AboveRight")];
170 char combining_class_stringpool_str34[sizeof("DB")];
171 char combining_class_stringpool_str35[sizeof("BelowLeft")];
172 char combining_class_stringpool_str36[sizeof("Iota Subscript")];
173 char combining_class_stringpool_str37[sizeof("DA")];
174 char combining_class_stringpool_str38[sizeof("AboveLeft")];
175 char combining_class_stringpool_str39[sizeof("AttachedBelowLeft")];
176 char combining_class_stringpool_str40[sizeof("AttachedAboveRight")];
177 char combining_class_stringpool_str41[sizeof("Attached Below Left")];
178 char combining_class_stringpool_str42[sizeof("Attached Above Right")];
179 char combining_class_stringpool_str44[sizeof("DoubleAbove")];
180 char combining_class_stringpool_str45[sizeof("Double Above")];
181 char combining_class_stringpool_str47[sizeof("AttachedBelow")];
182 char combining_class_stringpool_str48[sizeof("Attached Below")];
183 char combining_class_stringpool_str49[sizeof("Below Left")];
184 char combining_class_stringpool_str50[sizeof("Below Right")];
185 char combining_class_stringpool_str51[sizeof("KV")];
186 char combining_class_stringpool_str52[sizeof("Above Left")];
187 char combining_class_stringpool_str53[sizeof("Above Right")];
188 char combining_class_stringpool_str55[sizeof("NotReordered")];
189 char combining_class_stringpool_str56[sizeof("Not Reordered")];
190 char combining_class_stringpool_str60[sizeof("NK")];
191 char combining_class_stringpool_str61[sizeof("KanaVoicing")];
192 char combining_class_stringpool_str63[sizeof("Kana Voicing")];
193 char combining_class_stringpool_str65[sizeof("DoubleBelow")];
194 char combining_class_stringpool_str66[sizeof("Double Below")];
196 static const struct combining_class_stringpool_t combining_class_stringpool_contents =
232 "AttachedAboveRight",
233 "Attached Below Left",
234 "Attached Above Right",
252 #define combining_class_stringpool ((const char *) &combining_class_stringpool_contents)
254 static const struct named_combining_class combining_class_names[] =
257 #line 24 "./unictype/combiningclass_byname.gperf"
258 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str3, UC_CCC_B},
260 #line 15 "./unictype/combiningclass_byname.gperf"
261 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str5, UC_CCC_OV},
263 #line 20 "./unictype/combiningclass_byname.gperf"
264 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str8, UC_CCC_ATB},
265 #line 29 "./unictype/combiningclass_byname.gperf"
266 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str9, UC_CCC_A},
267 #line 58 "./unictype/combiningclass_byname.gperf"
268 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str10, UC_CCC_A},
269 #line 21 "./unictype/combiningclass_byname.gperf"
270 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str11, UC_CCC_ATA},
271 #line 25 "./unictype/combiningclass_byname.gperf"
272 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str12, UC_CCC_BR},
273 #line 18 "./unictype/combiningclass_byname.gperf"
274 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str13, UC_CCC_VR},
275 #line 33 "./unictype/combiningclass_byname.gperf"
276 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str14, UC_CCC_IS},
277 #line 30 "./unictype/combiningclass_byname.gperf"
278 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str15, UC_CCC_AR},
279 #line 40 "./unictype/combiningclass_byname.gperf"
280 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str16, UC_CCC_VR},
281 #line 22 "./unictype/combiningclass_byname.gperf"
282 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str17, UC_CCC_ATAR},
283 #line 23 "./unictype/combiningclass_byname.gperf"
284 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str18, UC_CCC_BL},
285 #line 27 "./unictype/combiningclass_byname.gperf"
286 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str19, UC_CCC_R},
287 #line 37 "./unictype/combiningclass_byname.gperf"
288 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str20, UC_CCC_NK},
289 #line 28 "./unictype/combiningclass_byname.gperf"
290 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str21, UC_CCC_AL},
291 #line 14 "./unictype/combiningclass_byname.gperf"
292 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str22, UC_CCC_NR},
293 #line 19 "./unictype/combiningclass_byname.gperf"
294 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str23, UC_CCC_ATBL},
295 #line 55 "./unictype/combiningclass_byname.gperf"
296 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str24, UC_CCC_R},
297 #line 36 "./unictype/combiningclass_byname.gperf"
298 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str25, UC_CCC_OV},
299 #line 46 "./unictype/combiningclass_byname.gperf"
300 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str26, UC_CCC_ATA},
301 #line 45 "./unictype/combiningclass_byname.gperf"
302 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str27, UC_CCC_ATA},
303 #line 51 "./unictype/combiningclass_byname.gperf"
304 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str28, UC_CCC_B},
305 #line 54 "./unictype/combiningclass_byname.gperf"
306 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str29, UC_CCC_L},
307 #line 53 "./unictype/combiningclass_byname.gperf"
308 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str30, UC_CCC_BR},
309 #line 26 "./unictype/combiningclass_byname.gperf"
310 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str31, UC_CCC_L},
311 #line 66 "./unictype/combiningclass_byname.gperf"
312 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str32, UC_CCC_IS},
313 #line 60 "./unictype/combiningclass_byname.gperf"
314 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str33, UC_CCC_AR},
315 #line 31 "./unictype/combiningclass_byname.gperf"
316 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str34, UC_CCC_DB},
317 #line 50 "./unictype/combiningclass_byname.gperf"
318 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str35, UC_CCC_BL},
319 #line 65 "./unictype/combiningclass_byname.gperf"
320 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str36, UC_CCC_IS},
321 #line 32 "./unictype/combiningclass_byname.gperf"
322 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str37, UC_CCC_DA},
323 #line 57 "./unictype/combiningclass_byname.gperf"
324 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str38, UC_CCC_AL},
325 #line 42 "./unictype/combiningclass_byname.gperf"
326 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str39, UC_CCC_ATBL},
327 #line 48 "./unictype/combiningclass_byname.gperf"
328 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str40, UC_CCC_ATAR},
329 #line 41 "./unictype/combiningclass_byname.gperf"
330 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str41, UC_CCC_ATBL},
331 #line 47 "./unictype/combiningclass_byname.gperf"
332 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str42, UC_CCC_ATAR},
334 #line 64 "./unictype/combiningclass_byname.gperf"
335 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str44, UC_CCC_DA},
336 #line 63 "./unictype/combiningclass_byname.gperf"
337 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str45, UC_CCC_DA},
339 #line 44 "./unictype/combiningclass_byname.gperf"
340 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str47, UC_CCC_ATB},
341 #line 43 "./unictype/combiningclass_byname.gperf"
342 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str48, UC_CCC_ATB},
343 #line 49 "./unictype/combiningclass_byname.gperf"
344 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str49, UC_CCC_BL},
345 #line 52 "./unictype/combiningclass_byname.gperf"
346 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str50, UC_CCC_BR},
347 #line 17 "./unictype/combiningclass_byname.gperf"
348 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str51, UC_CCC_KV},
349 #line 56 "./unictype/combiningclass_byname.gperf"
350 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str52, UC_CCC_AL},
351 #line 59 "./unictype/combiningclass_byname.gperf"
352 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str53, UC_CCC_AR},
354 #line 35 "./unictype/combiningclass_byname.gperf"
355 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str55, UC_CCC_NR},
356 #line 34 "./unictype/combiningclass_byname.gperf"
357 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str56, UC_CCC_NR},
359 #line 16 "./unictype/combiningclass_byname.gperf"
360 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str60, UC_CCC_NK},
361 #line 39 "./unictype/combiningclass_byname.gperf"
362 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str61, UC_CCC_KV},
364 #line 38 "./unictype/combiningclass_byname.gperf"
365 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str63, UC_CCC_KV},
367 #line 62 "./unictype/combiningclass_byname.gperf"
368 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str65, UC_CCC_DB},
369 #line 61 "./unictype/combiningclass_byname.gperf"
370 {(int)(long)&((struct combining_class_stringpool_t *)0)->combining_class_stringpool_str66, UC_CCC_DB}
375 #if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
376 __attribute__ ((__gnu_inline__))
379 const struct named_combining_class *
380 uc_combining_class_lookup (register const char *str, register unsigned int len)
382 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
384 register int key = combining_class_hash (str, len);
386 if (key <= MAX_HASH_VALUE && key >= 0)
388 register int o = combining_class_names[key].name;
391 register const char *s = o + combining_class_stringpool;
393 if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strcmp (str, s))
394 return &combining_class_names[key];