1 /* ANSI-C code produced by gperf version 3.0.4 */
2 /* Command-line: gperf -m 10 ./unictype/joiningtype_byname.gperf */
3 /* Computed positions: -k'1' */
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/joiningtype_byname.gperf"
33 struct named_joining_type { int name; int joining_type; };
35 #define TOTAL_KEYWORDS 17
36 #define MIN_WORD_LENGTH 1
37 #define MAX_WORD_LENGTH 13
38 #define MIN_HASH_VALUE 1
39 #define MAX_HASH_VALUE 21
40 /* maximum key range = 21, 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 joining_type_hash (register const char *str, register unsigned int len)
93 static const unsigned char asso_values[] =
95 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
96 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
97 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
98 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
99 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
100 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
101 22, 22, 22, 22, 22, 22, 22, 3, 4, 22,
102 22, 22, 22, 22, 9, 22, 0, 22, 8, 22,
103 22, 22, 1, 22, 6, 2, 22, 22, 22, 22,
104 22, 22, 22, 22, 22, 22, 22, 22, 22, 3,
105 4, 22, 22, 22, 22, 22, 9, 22, 0, 22,
106 8, 22, 22, 22, 1, 22, 6, 2, 22, 22,
107 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
108 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
109 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
110 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
111 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
112 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
113 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
114 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
115 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
116 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
117 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
118 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
119 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
120 22, 22, 22, 22, 22, 22
122 return len + asso_values[(unsigned char)str[0]];
125 struct joining_type_stringpool_t
127 char joining_type_stringpool_str1[sizeof("L")];
128 char joining_type_stringpool_str2[sizeof("R")];
129 char joining_type_stringpool_str3[sizeof("U")];
130 char joining_type_stringpool_str4[sizeof("C")];
131 char joining_type_stringpool_str5[sizeof("D")];
132 char joining_type_stringpool_str7[sizeof("T")];
133 char joining_type_stringpool_str11[sizeof("LeftJoining")];
134 char joining_type_stringpool_str12[sizeof("Left Joining")];
135 char joining_type_stringpool_str13[sizeof("RightJoining")];
136 char joining_type_stringpool_str14[sizeof("Right Joining")];
137 char joining_type_stringpool_str15[sizeof("DualJoining")];
138 char joining_type_stringpool_str16[sizeof("Dual Joining")];
139 char joining_type_stringpool_str17[sizeof("Transparent")];
140 char joining_type_stringpool_str18[sizeof("NonJoining")];
141 char joining_type_stringpool_str19[sizeof("Non Joining")];
142 char joining_type_stringpool_str20[sizeof("JoinCausing")];
143 char joining_type_stringpool_str21[sizeof("Join Causing")];
145 static const struct joining_type_stringpool_t joining_type_stringpool_contents =
165 #define joining_type_stringpool ((const char *) &joining_type_stringpool_contents)
167 static const struct named_joining_type joining_type_names[] =
170 #line 16 "./unictype/joiningtype_byname.gperf"
171 {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str1, UC_JOINING_TYPE_L},
172 #line 17 "./unictype/joiningtype_byname.gperf"
173 {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str2, UC_JOINING_TYPE_R},
174 #line 19 "./unictype/joiningtype_byname.gperf"
175 {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str3, UC_JOINING_TYPE_U},
176 #line 14 "./unictype/joiningtype_byname.gperf"
177 {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str4, UC_JOINING_TYPE_C},
178 #line 15 "./unictype/joiningtype_byname.gperf"
179 {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str5, UC_JOINING_TYPE_D},
181 #line 18 "./unictype/joiningtype_byname.gperf"
182 {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str7, UC_JOINING_TYPE_T},
184 #line 25 "./unictype/joiningtype_byname.gperf"
185 {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str11, UC_JOINING_TYPE_L},
186 #line 24 "./unictype/joiningtype_byname.gperf"
187 {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str12, UC_JOINING_TYPE_L},
188 #line 27 "./unictype/joiningtype_byname.gperf"
189 {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str13, UC_JOINING_TYPE_R},
190 #line 26 "./unictype/joiningtype_byname.gperf"
191 {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str14, UC_JOINING_TYPE_R},
192 #line 23 "./unictype/joiningtype_byname.gperf"
193 {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str15, UC_JOINING_TYPE_D},
194 #line 22 "./unictype/joiningtype_byname.gperf"
195 {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str16, UC_JOINING_TYPE_D},
196 #line 28 "./unictype/joiningtype_byname.gperf"
197 {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str17, UC_JOINING_TYPE_T},
198 #line 30 "./unictype/joiningtype_byname.gperf"
199 {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str18, UC_JOINING_TYPE_U},
200 #line 29 "./unictype/joiningtype_byname.gperf"
201 {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str19, UC_JOINING_TYPE_U},
202 #line 21 "./unictype/joiningtype_byname.gperf"
203 {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str20, UC_JOINING_TYPE_C},
204 #line 20 "./unictype/joiningtype_byname.gperf"
205 {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str21, UC_JOINING_TYPE_C}
210 #if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
211 __attribute__ ((__gnu_inline__))
214 const struct named_joining_type *
215 uc_joining_type_lookup (register const char *str, register unsigned int len)
217 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
219 register int key = joining_type_hash (str, len);
221 if (key <= MAX_HASH_VALUE && key >= 0)
223 register int o = joining_type_names[key].name;
226 register const char *s = o + joining_type_stringpool;
228 if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strcmp (str, s))
229 return &joining_type_names[key];