1 /* ANSI-C code produced by gperf version 2.7.2 */
2 /* Command-line: gperf -a -L ANSI-C -D -E -C -l -o -t -k '*' -NfindTag -Hhash_tag -Wwordlist_tag htmltags.gperf */
3 /* This file is automatically generated from htmltags.in by maketags, do not edit */
4 /* Copyright 1999 Lars Knoll */
10 /* maximum key range = 305, duplicates = 1 */
20 hash_tag (register const char *str, register unsigned int len)
22 static const unsigned short asso_values[] =
24 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
25 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
26 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
27 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
28 306, 306, 306, 306, 306, 306, 306, 306, 306, 30,
29 35, 40, 15, 25, 10, 306, 306, 306, 306, 306,
30 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
31 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
32 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
33 306, 306, 306, 306, 306, 306, 306, 0, 5, 30,
34 35, 0, 105, 5, 47, 10, 0, 25, 45, 30,
35 15, 0, 100, 25, 5, 30, 0, 87, 90, 0,
36 20, 115, 306, 306, 306, 306, 306, 306, 306, 306,
37 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
38 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
39 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
40 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
41 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
42 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
43 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
44 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
45 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
46 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
47 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
48 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
49 306, 306, 306, 306, 306, 306
51 register int hval = len;
57 hval += asso_values[(unsigned char)str[9]];
59 hval += asso_values[(unsigned char)str[8]];
61 hval += asso_values[(unsigned char)str[7]];
63 hval += asso_values[(unsigned char)str[6]];
65 hval += asso_values[(unsigned char)str[5]];
67 hval += asso_values[(unsigned char)str[4]];
69 hval += asso_values[(unsigned char)str[3]];
71 hval += asso_values[(unsigned char)str[2]];
73 hval += asso_values[(unsigned char)str[1]];
75 hval += asso_values[(unsigned char)str[0]];
85 findTag (register const char *str, register unsigned int len)
96 static const unsigned char lengthtable[] =
98 1, 2, 1, 2, 4, 1, 2, 3, 4, 3, 1, 4, 1, 2,
99 8, 4, 2, 2, 4, 6, 3, 4, 2, 3, 2, 5, 3, 2,
100 5, 6, 2, 3, 2, 5, 6, 2, 3, 4, 2, 2, 5, 6,
101 3, 2, 2, 3, 2, 4, 5, 1, 2, 7, 3, 4, 5, 1,
102 6, 6, 3, 5, 6, 6, 7, 4, 3, 4, 7, 6, 3, 2,
103 4, 3, 5, 7, 4, 5, 4, 3, 7, 5, 6, 3, 4, 5,
104 7, 8, 4, 6, 5, 6, 8, 6, 7, 8, 5, 8, 9, 7,
107 static const struct tags wordlist_tag[] =
123 {"textarea", ID_TEXTAREA},
128 {"object", ID_OBJECT},
138 {"center", ID_CENTER},
143 {"strong", ID_STRONG},
150 {"strike", ID_STRIKE},
160 {"noembed", ID_NOEMBED},
166 {"legend", ID_LEGEND},
169 {"select", ID_SELECT},
170 {"button", ID_BUTTON},
175 {"isindex", ID_ISINDEX},
176 {"option", ID_OPTION},
182 {"address", ID_ADDRESS},
187 {"marquee", ID_MARQUEE},
189 {"iframe", ID_IFRAME},
193 {"caption", ID_CAPTION},
194 {"basefont", ID_BASEFONT},
196 {"keygen", ID_KEYGEN},
198 {"canvas", ID_CANVAS},
199 {"frameset", ID_FRAMESET},
200 {"script", ID_SCRIPT},
201 {"nolayer", ID_NOLAYER},
202 {"noframes", ID_NOFRAMES},
204 {"noscript", ID_NOSCRIPT},
205 {"plaintext", ID_PLAINTEXT},
206 {"acronym", ID_ACRONYM},
209 {"blockquote", ID_BLOCKQUOTE},
210 {"fieldset", ID_FIELDSET},
211 {"applet", ID_APPLET},
212 {"colgroup", ID_COLGROUP},
213 {"optgroup", ID_OPTGROUP}
216 static const short lookup[] =
218 -1, 0, 1, -1, -1, -1, 2, 3,
219 -1, 4, -1, 5, 6, 7, -1, -1,
220 -1, -1, -1, 8, -1, -1, -1, 9,
221 -1, -1, 10, -1, -1, 11, -1, 12,
222 13, 14, 15, -1, -1, -151, -1, 18,
223 -1, 19, -1, 20, 21, -89, -2, 22,
224 23, 24, 25, -1, -1, 26, 27, 28,
225 29, 30, 31, 32, 33, 34, -1, -1,
226 35, -1, -1, -1, 36, 37, -1, -1,
227 38, -1, 39, 40, 41, -1, 42, 43,
228 -1, -1, 44, 45, 46, -1, 47, 48,
229 49, 50, -1, -1, 51, -1, -1, -1,
230 -1, -1, 52, 53, 54, 55, -1, 56,
231 -1, -1, 57, -1, 58, -1, 59, 60,
232 -1, 61, -1, -1, -1, -1, -1, -1,
233 -1, -1, 62, -1, 63, 64, 65, 66,
234 -1, -1, -1, 67, -1, 68, 69, -1,
235 70, -1, 71, -1, 72, -1, 73, -1,
236 74, 75, -1, -1, -1, 76, -1, -1,
237 -1, 77, 78, 79, 80, -1, 81, 82,
238 83, -1, 84, 85, 86, -1, 87, -1,
239 -1, -1, 88, 89, -1, -1, -1, -1,
240 -1, -1, 90, -1, -1, 91, -1, -1,
241 -1, -1, -1, 92, -1, -1, -1, -1,
242 -1, 93, -1, 94, -1, -1, 95, 96,
243 -1, -1, 97, -1, -1, -1, -1, -1,
244 -1, -1, -1, -1, -1, -1, -1, -1,
245 -1, 98, -1, -1, 99, -1, -1, -1,
246 -1, -1, -1, 100, -1, -1, -1, -1,
247 -1, 101, -1, -1, -1, -1, -1, -1,
248 -1, -1, -1, -1, -1, -1, -1, -1,
249 -1, -1, -1, 102, -1, -1, -1, -1,
250 -1, -1, -1, -1, -1, -1, -1, -1,
251 -1, -1, -1, -1, -1, -1, -1, -1,
252 -1, -1, -1, -1, -1, -1, -1, -1,
253 103, -1, -1, -1, -1, -1, -1, -1,
254 -1, -1, -1, -1, -1, -1, -1, -1,
255 -1, -1, -1, -1, -1, -1, -1, -1,
259 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
261 register int key = hash_tag (str, len);
263 if (key <= MAX_HASH_VALUE && key >= 0)
265 register int index = lookup[key];
269 if (len == lengthtable[index])
271 register const char *s = wordlist_tag[index].name;
273 if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
274 return &wordlist_tag[index];
277 else if (index < -TOTAL_KEYWORDS)
279 register int offset = - 1 - TOTAL_KEYWORDS - index;
280 register const unsigned char *lengthptr = &lengthtable[TOTAL_KEYWORDS + lookup[offset]];
281 register const struct tags *wordptr = &wordlist_tag[TOTAL_KEYWORDS + lookup[offset]];
282 register const struct tags *wordendptr = wordptr + -lookup[offset + 1];
284 while (wordptr < wordendptr)
286 if (len == *lengthptr)
288 register const char *s = wordptr->name;
290 if (*str == *s && !memcmp (str + 1, s + 1, len - 1))
303 static const char * const tagList[] = {
513 DOM::DOMString getTagName(unsigned short id)
515 if(id > ID_CLOSE_TAG*2) id = ID_CLOSE_TAG+1;
516 return DOM::DOMString(tagList[id]);