tizen 2.4 release
[external/libunistring.git] / lib / unictype / joiningtype_byname.h
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' */
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 2 "./unictype/joiningtype_byname.gperf"
33 struct named_joining_type { int name; int joining_type; };
34
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 */
41
42 #ifndef GPERF_DOWNCASE
43 #define GPERF_DOWNCASE 1
44 static unsigned char gperf_downcase[256] =
45   {
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,
63     255
64   };
65 #endif
66
67 #ifndef GPERF_CASE_STRCMP
68 #define GPERF_CASE_STRCMP 1
69 static int
70 gperf_case_strcmp (register const char *s1, register const char *s2)
71 {
72   for (;;)
73     {
74       unsigned char c1 = gperf_downcase[(unsigned char)*s1++];
75       unsigned char c2 = gperf_downcase[(unsigned char)*s2++];
76       if (c1 != 0 && c1 == c2)
77         continue;
78       return (int)c1 - (int)c2;
79     }
80 }
81 #endif
82
83 #ifdef __GNUC__
84 __inline
85 #else
86 #ifdef __cplusplus
87 inline
88 #endif
89 #endif
90 static unsigned int
91 joining_type_hash (register const char *str, register unsigned int len)
92 {
93   static const unsigned char asso_values[] =
94     {
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
121     };
122   return len + asso_values[(unsigned char)str[0]];
123 }
124
125 struct joining_type_stringpool_t
126   {
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")];
144   };
145 static const struct joining_type_stringpool_t joining_type_stringpool_contents =
146   {
147     "L",
148     "R",
149     "U",
150     "C",
151     "D",
152     "T",
153     "LeftJoining",
154     "Left Joining",
155     "RightJoining",
156     "Right Joining",
157     "DualJoining",
158     "Dual Joining",
159     "Transparent",
160     "NonJoining",
161     "Non Joining",
162     "JoinCausing",
163     "Join Causing"
164   };
165 #define joining_type_stringpool ((const char *) &joining_type_stringpool_contents)
166
167 static const struct named_joining_type joining_type_names[] =
168   {
169     {-1},
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},
180     {-1},
181 #line 18 "./unictype/joiningtype_byname.gperf"
182     {(int)(long)&((struct joining_type_stringpool_t *)0)->joining_type_stringpool_str7, UC_JOINING_TYPE_T},
183     {-1}, {-1}, {-1},
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}
206   };
207
208 #ifdef __GNUC__
209 __inline
210 #if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
211 __attribute__ ((__gnu_inline__))
212 #endif
213 #endif
214 const struct named_joining_type *
215 uc_joining_type_lookup (register const char *str, register unsigned int len)
216 {
217   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
218     {
219       register int key = joining_type_hash (str, len);
220
221       if (key <= MAX_HASH_VALUE && key >= 0)
222         {
223           register int o = joining_type_names[key].name;
224           if (o >= 0)
225             {
226               register const char *s = o + joining_type_stringpool;
227
228               if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strcmp (str, s))
229                 return &joining_type_names[key];
230             }
231         }
232     }
233   return 0;
234 }