Reviewed by Darin
[WebKit-https.git] / WebCore / khtml / css / cssproperties.c
1 /* ANSI-C code produced by gperf version 2.7.2 */
2 /* Command-line: gperf -a -L ANSI-C -E -C -c -o -t -k '*' -NfindProp -Hhash_prop -Wwordlist_prop -D -s 2 cssproperties.gperf  */
3 /* This file is automatically generated from cssproperties.in by makeprop, do not edit */
4 /* Copyright 1999 W. Bastian */
5 #include "cssproperties.h"
6 struct props {
7     const char *name;
8     int id;
9 };
10 /* maximum key range = 1493, duplicates = 0 */
11
12 #ifdef __GNUC__
13 __inline
14 #else
15 #ifdef __cplusplus
16 inline
17 #endif
18 #endif
19 static unsigned int
20 hash_prop (register const char *str, register unsigned int len)
21 {
22   static const unsigned short asso_values[] =
23     {
24       1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
25       1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
26       1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
27       1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
28       1513, 1513, 1513, 1513, 1513,    0, 1513, 1513, 1513, 1513,
29       1513,    5, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
30       1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
31       1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
32       1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
33       1513, 1513, 1513, 1513, 1513, 1513, 1513,   20,   40,   45,
34          0,    0,  305,   15,    0,    0,    0,   10,    0,   65,
35        430,    0,   35,   55,    0,   30,    0,   50,  115,  285,
36          0,  210,    0, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
37       1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
38       1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
39       1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
40       1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
41       1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
42       1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
43       1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
44       1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
45       1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
46       1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
47       1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
48       1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
49       1513, 1513, 1513, 1513, 1513, 1513
50     };
51   register int hval = len;
52
53   switch (hval)
54     {
55       default:
56       case 32:
57         hval += asso_values[(unsigned char)str[31]];
58       case 31:
59         hval += asso_values[(unsigned char)str[30]];
60       case 30:
61         hval += asso_values[(unsigned char)str[29]];
62       case 29:
63         hval += asso_values[(unsigned char)str[28]];
64       case 28:
65         hval += asso_values[(unsigned char)str[27]];
66       case 27:
67         hval += asso_values[(unsigned char)str[26]];
68       case 26:
69         hval += asso_values[(unsigned char)str[25]];
70       case 25:
71         hval += asso_values[(unsigned char)str[24]];
72       case 24:
73         hval += asso_values[(unsigned char)str[23]];
74       case 23:
75         hval += asso_values[(unsigned char)str[22]];
76       case 22:
77         hval += asso_values[(unsigned char)str[21]];
78       case 21:
79         hval += asso_values[(unsigned char)str[20]];
80       case 20:
81         hval += asso_values[(unsigned char)str[19]];
82       case 19:
83         hval += asso_values[(unsigned char)str[18]];
84       case 18:
85         hval += asso_values[(unsigned char)str[17]];
86       case 17:
87         hval += asso_values[(unsigned char)str[16]];
88       case 16:
89         hval += asso_values[(unsigned char)str[15]];
90       case 15:
91         hval += asso_values[(unsigned char)str[14]];
92       case 14:
93         hval += asso_values[(unsigned char)str[13]];
94       case 13:
95         hval += asso_values[(unsigned char)str[12]];
96       case 12:
97         hval += asso_values[(unsigned char)str[11]];
98       case 11:
99         hval += asso_values[(unsigned char)str[10]];
100       case 10:
101         hval += asso_values[(unsigned char)str[9]];
102       case 9:
103         hval += asso_values[(unsigned char)str[8]];
104       case 8:
105         hval += asso_values[(unsigned char)str[7]];
106       case 7:
107         hval += asso_values[(unsigned char)str[6]];
108       case 6:
109         hval += asso_values[(unsigned char)str[5]];
110       case 5:
111         hval += asso_values[(unsigned char)str[4]];
112       case 4:
113         hval += asso_values[(unsigned char)str[3]];
114       case 3:
115         hval += asso_values[(unsigned char)str[2]];
116       case 2:
117         hval += asso_values[(unsigned char)str[1]];
118       case 1:
119         hval += asso_values[(unsigned char)str[0]];
120         break;
121     }
122   return hval;
123 }
124
125 #ifdef __GNUC__
126 __inline
127 #endif
128 const struct props *
129 findProp (register const char *str, register unsigned int len)
130 {
131   enum
132     {
133       TOTAL_KEYWORDS = 159,
134       MIN_WORD_LENGTH = 3,
135       MAX_WORD_LENGTH = 32,
136       MIN_HASH_VALUE = 20,
137       MAX_HASH_VALUE = 1512
138     };
139
140   static const struct props wordlist_prop[] =
141     {
142       {"right", CSS_PROP_RIGHT},
143       {"height", CSS_PROP_HEIGHT},
144       {"size", CSS_PROP_SIZE},
145       {"top", CSS_PROP_TOP},
146       {"border", CSS_PROP_BORDER},
147       {"color", CSS_PROP_COLOR},
148       {"border-right", CSS_PROP_BORDER_RIGHT},
149       {"clear", CSS_PROP_CLEAR},
150       {"page", CSS_PROP_PAGE},
151       {"clip", CSS_PROP_CLIP},
152       {"border-top", CSS_PROP_BORDER_TOP},
153       {"border-color", CSS_PROP_BORDER_COLOR},
154       {"max-height", CSS_PROP_MAX_HEIGHT},
155       {"bottom", CSS_PROP_BOTTOM},
156       {"border-right-color", CSS_PROP_BORDER_RIGHT_COLOR},
157       {"cursor", CSS_PROP_CURSOR},
158       {"border-top-color", CSS_PROP_BORDER_TOP_COLOR},
159       {"quotes", CSS_PROP_QUOTES},
160       {"border-bottom", CSS_PROP_BORDER_BOTTOM},
161       {"border-collapse", CSS_PROP_BORDER_COLLAPSE},
162       {"-khtml-user-drag", CSS_PROP__KHTML_USER_DRAG},
163       {"border-bottom-color", CSS_PROP_BORDER_BOTTOM_COLOR},
164       {"scrollbar-3dlight-color", CSS_PROP_SCROLLBAR_3DLIGHT_COLOR},
165       {"scrollbar-highlight-color", CSS_PROP_SCROLLBAR_HIGHLIGHT_COLOR},
166       {"-khtml-box-pack", CSS_PROP__KHTML_BOX_PACK},
167       {"-apple-text-size-adjust", CSS_PROP__APPLE_TEXT_SIZE_ADJUST},
168       {"-khtml-user-select", CSS_PROP__KHTML_USER_SELECT},
169       {"scrollbar-track-color", CSS_PROP_SCROLLBAR_TRACK_COLOR},
170       {"-khtml-marquee", CSS_PROP__KHTML_MARQUEE},
171       {"list-style", CSS_PROP_LIST_STYLE},
172       {"width", CSS_PROP_WIDTH},
173       {"border-style", CSS_PROP_BORDER_STYLE},
174       {"display", CSS_PROP_DISPLAY},
175       {"left", CSS_PROP_LEFT},
176       {"border-right-style", CSS_PROP_BORDER_RIGHT_STYLE},
177       {"opacity", CSS_PROP_OPACITY},
178       {"float", CSS_PROP_FLOAT},
179       {"border-top-style", CSS_PROP_BORDER_TOP_STYLE},
180       {"border-width", CSS_PROP_BORDER_WIDTH},
181       {"text-shadow", CSS_PROP_TEXT_SHADOW},
182       {"-khtml-marquee-speed", CSS_PROP__KHTML_MARQUEE_SPEED},
183       {"table-layout", CSS_PROP_TABLE_LAYOUT},
184       {"border-left", CSS_PROP_BORDER_LEFT},
185       {"border-right-width", CSS_PROP_BORDER_RIGHT_WIDTH},
186       {"border-top-width", CSS_PROP_BORDER_TOP_WIDTH},
187       {"max-width", CSS_PROP_MAX_WIDTH},
188       {"list-style-image", CSS_PROP_LIST_STYLE_IMAGE},
189       {"empty-cells", CSS_PROP_EMPTY_CELLS},
190       {"border-bottom-style", CSS_PROP_BORDER_BOTTOM_STYLE},
191       {"visibility", CSS_PROP_VISIBILITY},
192       {"border-left-color", CSS_PROP_BORDER_LEFT_COLOR},
193       {"white-space", CSS_PROP_WHITE_SPACE},
194       {"-khtml-box-flex", CSS_PROP__KHTML_BOX_FLEX},
195       {"z-index", CSS_PROP_Z_INDEX},
196       {"border-bottom-width", CSS_PROP_BORDER_BOTTOM_WIDTH},
197       {"line-height", CSS_PROP_LINE_HEIGHT},
198       {"text-align", CSS_PROP_TEXT_ALIGN},
199       {"page-break-after", CSS_PROP_PAGE_BREAK_AFTER},
200       {"direction", CSS_PROP_DIRECTION},
201       {"outline", CSS_PROP_OUTLINE},
202       {"page-break-before", CSS_PROP_PAGE_BREAK_BEFORE},
203       {"position", CSS_PROP_POSITION},
204       {"scrollbar-arrow-color", CSS_PROP_SCROLLBAR_ARROW_COLOR},
205       {"padding", CSS_PROP_PADDING},
206       {"text-decoration", CSS_PROP_TEXT_DECORATION},
207       {"text-line-through", CSS_PROP_TEXT_LINE_THROUGH},
208       {"min-height", CSS_PROP_MIN_HEIGHT},
209       {"orphans", CSS_PROP_ORPHANS},
210       {"-khtml-marquee-style", CSS_PROP__KHTML_MARQUEE_STYLE},
211       {"padding-right", CSS_PROP_PADDING_RIGHT},
212       {"list-style-type", CSS_PROP_LIST_STYLE_TYPE},
213       {"margin", CSS_PROP_MARGIN},
214       {"scrollbar-shadow-color", CSS_PROP_SCROLLBAR_SHADOW_COLOR},
215       {"outline-color", CSS_PROP_OUTLINE_COLOR},
216       {"-khtml-box-flex-group", CSS_PROP__KHTML_BOX_FLEX_GROUP},
217       {"padding-top", CSS_PROP_PADDING_TOP},
218       {"margin-right", CSS_PROP_MARGIN_RIGHT},
219       {"text-overline", CSS_PROP_TEXT_OVERLINE},
220       {"-khtml-box-orient", CSS_PROP__KHTML_BOX_ORIENT},
221       {"text-line-through-color", CSS_PROP_TEXT_LINE_THROUGH_COLOR},
222       {"counter-reset", CSS_PROP_COUNTER_RESET},
223       {"scrollbar-face-color", CSS_PROP_SCROLLBAR_FACE_COLOR},
224       {"scrollbar-darkshadow-color", CSS_PROP_SCROLLBAR_DARKSHADOW_COLOR},
225       {"caption-side", CSS_PROP_CAPTION_SIDE},
226       {"margin-top", CSS_PROP_MARGIN_TOP},
227       {"unicode-bidi", CSS_PROP_UNICODE_BIDI},
228       {"text-line-through-mode", CSS_PROP_TEXT_LINE_THROUGH_MODE},
229       {"letter-spacing", CSS_PROP_LETTER_SPACING},
230       {"-khtml-box-lines", CSS_PROP__KHTML_BOX_LINES},
231       {"-khtml-line-break", CSS_PROP__KHTML_LINE_BREAK},
232       {"-khtml-box-align", CSS_PROP__KHTML_BOX_ALIGN},
233       {"border-left-style", CSS_PROP_BORDER_LEFT_STYLE},
234       {"widows", CSS_PROP_WIDOWS},
235       {"text-overline-color", CSS_PROP_TEXT_OVERLINE_COLOR},
236       {"-khtml-box-direction", CSS_PROP__KHTML_BOX_DIRECTION},
237       {"page-break-inside", CSS_PROP_PAGE_BREAK_INSIDE},
238       {"padding-bottom", CSS_PROP_PADDING_BOTTOM},
239       {"background", CSS_PROP_BACKGROUND},
240       {"text-overline-mode", CSS_PROP_TEXT_OVERLINE_MODE},
241       {"border-spacing", CSS_PROP_BORDER_SPACING},
242       {"word-wrap", CSS_PROP_WORD_WRAP},
243       {"-khtml-padding-start", CSS_PROP__KHTML_PADDING_START},
244       {"border-left-width", CSS_PROP_BORDER_LEFT_WIDTH},
245       {"margin-bottom", CSS_PROP_MARGIN_BOTTOM},
246       {"vertical-align", CSS_PROP_VERTICAL_ALIGN},
247       {"-apple-dashboard-region", CSS_PROP__APPLE_DASHBOARD_REGION},
248       {"background-color", CSS_PROP_BACKGROUND_COLOR},
249       {"-khtml-margin-start", CSS_PROP__KHTML_MARGIN_START},
250       {"background-repeat", CSS_PROP_BACKGROUND_REPEAT},
251       {"-khtml-box-ordinal-group", CSS_PROP__KHTML_BOX_ORDINAL_GROUP},
252       {"-khtml-nbsp-mode", CSS_PROP__KHTML_NBSP_MODE},
253       {"-apple-line-clamp", CSS_PROP__APPLE_LINE_CLAMP},
254       {"overflow", CSS_PROP_OVERFLOW},
255       {"text-overflow", CSS_PROP_TEXT_OVERFLOW},
256       {"background-image", CSS_PROP_BACKGROUND_IMAGE},
257       {"outline-style", CSS_PROP_OUTLINE_STYLE},
258       {"font", CSS_PROP_FONT},
259       {"-khtml-flow-mode", CSS_PROP__KHTML_FLOW_MODE},
260       {"-khtml-user-modify", CSS_PROP__KHTML_USER_MODIFY},
261       {"-khtml-marquee-repetition", CSS_PROP__KHTML_MARQUEE_REPETITION},
262       {"-khtml-margin-collapse", CSS_PROP__KHTML_MARGIN_COLLAPSE},
263       {"text-line-through-style", CSS_PROP_TEXT_LINE_THROUGH_STYLE},
264       {"-khtml-marquee-direction", CSS_PROP__KHTML_MARQUEE_DIRECTION},
265       {"font-size", CSS_PROP_FONT_SIZE},
266       {"outline-width", CSS_PROP_OUTLINE_WIDTH},
267       {"list-style-position", CSS_PROP_LIST_STYLE_POSITION},
268       {"min-width", CSS_PROP_MIN_WIDTH},
269       {"-khtml-margin-top-collapse", CSS_PROP__KHTML_MARGIN_TOP_COLLAPSE},
270       {"text-line-through-width", CSS_PROP_TEXT_LINE_THROUGH_WIDTH},
271       {"text-overline-style", CSS_PROP_TEXT_OVERLINE_STYLE},
272       {"padding-left", CSS_PROP_PADDING_LEFT},
273       {"font-stretch", CSS_PROP_FONT_STRETCH},
274       {"margin-left", CSS_PROP_MARGIN_LEFT},
275       {"text-overline-width", CSS_PROP_TEXT_OVERLINE_WIDTH},
276       {"text-transform", CSS_PROP_TEXT_TRANSFORM},
277       {"-khtml-margin-bottom-collapse", CSS_PROP__KHTML_MARGIN_BOTTOM_COLLAPSE},
278       {"text-indent", CSS_PROP_TEXT_INDENT},
279       {"word-spacing", CSS_PROP_WORD_SPACING},
280       {"font-size-adjust", CSS_PROP_FONT_SIZE_ADJUST},
281       {"-khtml-border-vertical-spacing", CSS_PROP__KHTML_BORDER_VERTICAL_SPACING},
282       {"content", CSS_PROP_CONTENT},
283       {"text-underline", CSS_PROP_TEXT_UNDERLINE},
284       {"text-underline-color", CSS_PROP_TEXT_UNDERLINE_COLOR},
285       {"font-style", CSS_PROP_FONT_STYLE},
286       {"text-underline-mode", CSS_PROP_TEXT_UNDERLINE_MODE},
287       {"-khtml-binding", CSS_PROP__KHTML_BINDING},
288       {"font-weight", CSS_PROP_FONT_WEIGHT},
289       {"background-position", CSS_PROP_BACKGROUND_POSITION},
290       {"background-position-x", CSS_PROP_BACKGROUND_POSITION_X},
291       {"outline-offset", CSS_PROP_OUTLINE_OFFSET},
292       {"text-underline-style", CSS_PROP_TEXT_UNDERLINE_STYLE},
293       {"-khtml-border-horizontal-spacing", CSS_PROP__KHTML_BORDER_HORIZONTAL_SPACING},
294       {"background-attachment", CSS_PROP_BACKGROUND_ATTACHMENT},
295       {"text-underline-width", CSS_PROP_TEXT_UNDERLINE_WIDTH},
296       {"-khtml-marquee-increment", CSS_PROP__KHTML_MARQUEE_INCREMENT},
297       {"font-variant", CSS_PROP_FONT_VARIANT},
298       {"background-position-y", CSS_PROP_BACKGROUND_POSITION_Y},
299       {"font-family", CSS_PROP_FONT_FAMILY},
300       {"counter-increment", CSS_PROP_COUNTER_INCREMENT}
301     };
302
303   static const short lookup[] =
304     {
305        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
306        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
307         0,   1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
308        -1,  -1,  -1,  -1,   2,  -1,  -1,  -1,   3,  -1,
309        -1,  -1,  -1,  -1,  -1,  -1,   4,  -1,  -1,  -1,
310         5,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
311        -1,  -1,  -1,  -1,  -1,  -1,  -1,   6,  -1,  -1,
312         7,  -1,  -1,  -1,   8,  -1,  -1,  -1,  -1,  -1,
313        -1,  -1,  -1,  -1,   9,  10,  -1,  -1,  -1,  -1,
314        -1,  -1,  -1,  -1,  -1,  -1,  -1,  11,  -1,  -1,
315        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
316        12,  13,  -1,  -1,  -1,  -1,  -1,  -1,  14,  -1,
317        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
318        -1,  15,  -1,  -1,  -1,  -1,  16,  -1,  -1,  -1,
319        -1,  17,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
320        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  18,  -1,
321        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
322        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
323        -1,  -1,  -1,  -1,  -1,  19,  -1,  -1,  -1,  -1,
324        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
325        -1,  -1,  -1,  -1,  -1,  -1,  20,  -1,  -1,  21,
326        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
327        -1,  -1,  -1,  22,  -1,  -1,  -1,  -1,  -1,  -1,
328        -1,  -1,  -1,  -1,  -1,  23,  -1,  -1,  -1,  -1,
329        24,  -1,  -1,  25,  -1,  -1,  -1,  -1,  26,  -1,
330        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
331        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
332        -1,  -1,  -1,  -1,  -1,  -1,  27,  -1,  -1,  28,
333        29,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
334        30,  -1,  31,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
335        -1,  -1,  32,  -1,  -1,  -1,  -1,  -1,  -1,  33,
336        -1,  -1,  -1,  34,  -1,  -1,  -1,  35,  -1,  -1,
337        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
338        36,  37,  -1,  -1,  -1,  -1,  -1,  38,  -1,  -1,
339        -1,  -1,  -1,  -1,  -1,  -1,  39,  -1,  -1,  -1,
340        40,  -1,  41,  -1,  -1,  -1,  42,  -1,  43,  -1,
341        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
342        -1,  -1,  -1,  -1,  -1,  -1,  44,  -1,  -1,  45,
343        -1,  -1,  -1,  -1,  -1,  -1,  46,  -1,  -1,  -1,
344        -1,  -1,  -1,  -1,  -1,  -1,  47,  -1,  -1,  -1,
345        -1,  -1,  -1,  -1,  48,  49,  -1,  50,  -1,  -1,
346        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
347        -1,  -1,  -1,  -1,  -1,  -1,  51,  -1,  -1,  -1,
348        -1,  -1,  -1,  -1,  -1,  52,  -1,  53,  -1,  -1,
349        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  54,
350        -1,  -1,  -1,  -1,  -1,  -1,  55,  -1,  -1,  -1,
351        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
352        -1,  -1,  -1,  -1,  -1,  56,  -1,  -1,  -1,  -1,
353        -1,  57,  -1,  -1,  58,  -1,  -1,  59,  -1,  -1,
354        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
355        -1,  -1,  60,  61,  -1,  -1,  62,  63,  -1,  -1,
356        64,  -1,  65,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
357        66,  -1,  67,  -1,  -1,  68,  -1,  -1,  69,  -1,
358        70,  -1,  -1,  -1,  -1,  -1,  71,  72,  73,  -1,
359        -1,  74,  -1,  -1,  -1,  -1,  75,  -1,  -1,  -1,
360        -1,  -1,  -1,  -1,  -1,  -1,  -1,  76,  77,  -1,
361        -1,  -1,  78,  79,  -1,  -1,  -1,  -1,  80,  -1,
362        81,  82,  83,  -1,  -1,  84,  -1,  85,  -1,  -1,
363        -1,  -1,  86,  -1,  -1,  -1,  -1,  -1,  -1,  87,
364        -1,  88,  89,  -1,  -1,  -1,  90,  -1,  -1,  -1,
365        -1,  -1,  91,  -1,  -1,  -1,  92,  -1,  -1,  93,
366        94,  -1,  -1,  -1,  -1,  -1,  -1,  95,  -1,  96,
367        97,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  98,  99,
368        -1,  -1,  -1,  -1, 100,  -1,  -1,  -1,  -1,  -1,
369        -1,  -1,  -1,  -1,  -1, 101,  -1, 102, 103,  -1,
370        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 104,
371        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 105,  -1,
372        -1, 106,  -1,  -1, 107,  -1,  -1,  -1,  -1,  -1,
373        -1,  -1, 108,  -1,  -1,  -1,  -1,  -1,  -1, 109,
374        -1, 110,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
375        -1,  -1, 111,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
376        -1,  -1,  -1, 112,  -1,  -1,  -1,  -1, 113,  -1,
377        -1,  -1,  -1,  -1,  -1,  -1, 114,  -1,  -1,  -1,
378        -1,  -1,  -1, 115,  -1,  -1,  -1,  -1,  -1, 116,
379        -1,  -1,  -1,  -1,  -1,  -1, 117,  -1,  -1,  -1,
380        -1,  -1,  -1, 118,  -1, 119,  -1, 120, 121,  -1,
381        -1,  -1,  -1,  -1, 122,  -1,  -1,  -1,  -1,  -1,
382        -1,  -1,  -1,  -1, 123,  -1,  -1,  -1, 124,  -1,
383        -1,  -1,  -1,  -1, 125,  -1,  -1,  -1,  -1, 126,
384        -1,  -1,  -1,  -1,  -1,  -1, 127,  -1,  -1,  -1,
385        -1,  -1,  -1, 128, 129,  -1,  -1,  -1,  -1,  -1,
386        -1,  -1,  -1,  -1,  -1,  -1,  -1, 130,  -1,  -1,
387        -1,  -1, 131,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
388        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
389        -1,  -1,  -1,  -1,  -1,  -1, 132,  -1,  -1, 133,
390        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
391        -1,  -1,  -1,  -1, 134,  -1,  -1,  -1,  -1, 135,
392        -1, 136, 137,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
393        -1, 138,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
394        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
395       139,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
396        -1,  -1, 140,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
397        -1,  -1,  -1,  -1, 141,  -1,  -1,  -1,  -1,  -1,
398        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
399        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
400        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
401        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
402        -1,  -1,  -1,  -1,  -1, 142,  -1,  -1,  -1,  -1,
403        -1,  -1,  -1,  -1,  -1, 143,  -1,  -1,  -1,  -1,
404        -1,  -1,  -1,  -1, 144,  -1,  -1,  -1,  -1,  -1,
405        -1,  -1,  -1,  -1, 145,  -1,  -1,  -1,  -1,  -1,
406        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
407        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
408        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
409        -1,  -1,  -1,  -1,  -1,  -1, 146,  -1,  -1,  -1,
410        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
411        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
412        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
413        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
414        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
415        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
416        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
417        -1,  -1,  -1,  -1, 147,  -1, 148,  -1,  -1,  -1,
418        -1,  -1,  -1,  -1, 149,  -1,  -1,  -1,  -1,  -1,
419        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
420        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
421        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
422       150,  -1, 151,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
423        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
424        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
425        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
426        -1, 152,  -1,  -1,  -1, 153,  -1,  -1,  -1,  -1,
427        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
428        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
429        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
430        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 154,
431        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
432        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
433        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
434        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
435        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
436        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
437        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
438        -1,  -1, 155,  -1,  -1,  -1, 156,  -1,  -1,  -1,
439        -1,  -1,  -1,  -1,  -1,  -1, 157,  -1,  -1,  -1,
440        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
441        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
442        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
443        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
444        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
445        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
446        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
447        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
448        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
449        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
450        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
451        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
452        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
453        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
454        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
455        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
456        -1,  -1, 158
457     };
458
459   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
460     {
461       register int key = hash_prop (str, len);
462
463       if (key <= MAX_HASH_VALUE && key >= 0)
464         {
465           register int index = lookup[key];
466
467           if (index >= 0)
468             {
469               register const char *s = wordlist_prop[index].name;
470
471               if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
472                 return &wordlist_prop[index];
473             }
474         }
475     }
476   return 0;
477 }
478 static const char * const propertyList[] = {
479 "",
480 "background-color", 
481 "background-image", 
482 "background-repeat", 
483 "background-attachment", 
484 "background-position", 
485 "background-position-x", 
486 "background-position-y", 
487 "-khtml-binding", 
488 "border-collapse", 
489 "border-spacing", 
490 "-khtml-border-horizontal-spacing", 
491 "-khtml-border-vertical-spacing", 
492 "border-top-color", 
493 "border-right-color", 
494 "border-bottom-color", 
495 "border-left-color", 
496 "border-top-style", 
497 "border-right-style", 
498 "border-bottom-style", 
499 "border-left-style", 
500 "border-top-width", 
501 "border-right-width", 
502 "border-bottom-width", 
503 "border-left-width", 
504 "bottom", 
505 "-khtml-box-align", 
506 "-khtml-box-direction", 
507 "-khtml-box-flex", 
508 "-khtml-box-flex-group", 
509 "-khtml-box-lines", 
510 "-khtml-box-ordinal-group", 
511 "-khtml-box-orient", 
512 "-khtml-box-pack", 
513 "caption-side", 
514 "clear", 
515 "clip", 
516 "color", 
517 "content", 
518 "counter-increment", 
519 "counter-reset", 
520 "cursor", 
521 "direction", 
522 "display", 
523 "empty-cells", 
524 "float", 
525 "font-family", 
526 "font-size", 
527 "font-size-adjust", 
528 "font-stretch", 
529 "font-style", 
530 "font-variant", 
531 "font-weight", 
532 "height", 
533 "left", 
534 "letter-spacing", 
535 "-apple-line-clamp", 
536 "line-height", 
537 "list-style-image", 
538 "list-style-position", 
539 "list-style-type", 
540 "margin-top", 
541 "margin-right", 
542 "margin-bottom", 
543 "margin-left", 
544 "-khtml-line-break", 
545 "-khtml-margin-collapse", 
546 "-khtml-margin-top-collapse", 
547 "-khtml-margin-bottom-collapse", 
548 "-khtml-margin-start", 
549 "-khtml-marquee", 
550 "-khtml-marquee-direction", 
551 "-khtml-marquee-increment", 
552 "-khtml-marquee-repetition", 
553 "-khtml-marquee-speed", 
554 "-khtml-marquee-style", 
555 "max-height", 
556 "max-width", 
557 "min-height", 
558 "min-width", 
559 "-khtml-nbsp-mode", 
560 "opacity", 
561 "orphans", 
562 "outline-color", 
563 "outline-offset", 
564 "outline-style", 
565 "outline-width", 
566 "overflow", 
567 "padding-top", 
568 "padding-right", 
569 "padding-bottom", 
570 "padding-left", 
571 "-khtml-padding-start", 
572 "page", 
573 "page-break-after", 
574 "page-break-before", 
575 "page-break-inside", 
576 "position", 
577 "quotes", 
578 "right", 
579 "size", 
580 "table-layout", 
581 "text-align", 
582 "text-decoration", 
583 "text-indent", 
584 "text-line-through", 
585 "text-line-through-color", 
586 "text-line-through-mode", 
587 "text-line-through-style", 
588 "text-line-through-width", 
589 "text-overflow", 
590 "text-overline", 
591 "text-overline-color", 
592 "text-overline-mode", 
593 "text-overline-style", 
594 "text-overline-width", 
595 "text-shadow", 
596 "text-transform", 
597 "text-underline", 
598 "text-underline-color", 
599 "text-underline-mode", 
600 "text-underline-style", 
601 "text-underline-width", 
602 "-apple-text-size-adjust", 
603 "-apple-dashboard-region", 
604 "top", 
605 "unicode-bidi", 
606 "-khtml-user-drag", 
607 "-khtml-user-modify", 
608 "-khtml-user-select", 
609 "vertical-align", 
610 "visibility", 
611 "white-space", 
612 "widows", 
613 "width", 
614 "word-wrap", 
615 "word-spacing", 
616 "z-index", 
617 "background", 
618 "border", 
619 "border-color", 
620 "border-style", 
621 "border-top", 
622 "border-right", 
623 "border-bottom", 
624 "border-left", 
625 "border-width", 
626 "font", 
627 "list-style", 
628 "margin", 
629 "outline", 
630 "padding", 
631 "scrollbar-face-color", 
632 "scrollbar-shadow-color", 
633 "scrollbar-highlight-color", 
634 "scrollbar-3dlight-color", 
635 "scrollbar-darkshadow-color", 
636 "scrollbar-track-color", 
637 "scrollbar-arrow-color", 
638 "-khtml-flow-mode", 
639     0
640 };
641 DOMString getPropertyName(unsigned short id)
642 {
643     if(id >= CSS_PROP_TOTAL || id == 0)
644       return DOMString();
645     else
646       return DOMString(propertyList[id]);
647 };
648