1 | /* C++ code produced by gperf version 3.1 */ |
2 | /* Command-line: /usr/bin/gperf --key-positions='*' -m 10 -s 2 --output-file=SelectorPseudoClassAndCompatibilityElementMap.cpp SelectorPseudoClassAndCompatibilityElementMap.gperf */ |
3 | |
4 | #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ |
5 | && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ |
6 | && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ |
7 | && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ |
8 | && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ |
9 | && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ |
10 | && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ |
11 | && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ |
12 | && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ |
13 | && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ |
14 | && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ |
15 | && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ |
16 | && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ |
17 | && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ |
18 | && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ |
19 | && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ |
20 | && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ |
21 | && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ |
22 | && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ |
23 | && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ |
24 | && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ |
25 | && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ |
26 | && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) |
27 | /* The character set is not based on ISO-646. */ |
28 | #error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>." |
29 | #endif |
30 | |
31 | #line 2 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
32 | |
33 | /* |
34 | * Copyright (C) 2014-2016 Apple Inc. All rights reserved. |
35 | * |
36 | * Redistribution and use in source and binary forms, with or without |
37 | * modification, are permitted provided that the following conditions |
38 | * are met: |
39 | * 1. Redistributions of source code must retain the above copyright |
40 | * notice, this list of conditions and the following disclaimer. |
41 | * 2. Redistributions in binary form must reproduce the above copyright |
42 | * notice, this list of conditions and the following disclaimer in the |
43 | * documentation and/or other materials provided with the distribution. |
44 | * |
45 | * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' |
46 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, |
47 | * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
48 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS |
49 | * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
50 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
51 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
52 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
53 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
54 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF |
55 | * THE POSSIBILITY OF SUCH DAMAGE. |
56 | */ |
57 | |
58 | // This file is automatically generated from SelectorPseudoTypeMap.in by makeprop, do not edit by hand. |
59 | |
60 | #include "config.h" |
61 | #include "SelectorPseudoTypeMap.h" |
62 | |
63 | #include "CSSParserSelector.h" |
64 | |
65 | IGNORE_WARNINGS_BEGIN("implicit-fallthrough" ) |
66 | |
67 | // Older versions of gperf like to use the `register` keyword. |
68 | #define register |
69 | |
70 | namespace WebCore { |
71 | |
72 | struct SelectorPseudoClassOrCompatibilityPseudoElementEntry { |
73 | const char* name; |
74 | PseudoClassOrCompatibilityPseudoElement pseudoTypes; |
75 | }; |
76 | |
77 | enum |
78 | { |
79 | TOTAL_KEYWORDS = 71, |
80 | MIN_WORD_LENGTH = 3, |
81 | MAX_WORD_LENGTH = 40, |
82 | MIN_HASH_VALUE = 6, |
83 | MAX_HASH_VALUE = 217 |
84 | }; |
85 | |
86 | /* maximum key range = 212, duplicates = 0 */ |
87 | |
88 | #ifndef GPERF_DOWNCASE |
89 | #define GPERF_DOWNCASE 1 |
90 | static unsigned char gperf_downcase[256] = |
91 | { |
92 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, |
93 | 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, |
94 | 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, |
95 | 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, |
96 | 60, 61, 62, 63, 64, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, |
97 | 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, |
98 | 122, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, |
99 | 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, |
100 | 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, |
101 | 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, |
102 | 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, |
103 | 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, |
104 | 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, |
105 | 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, |
106 | 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, |
107 | 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, |
108 | 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, |
109 | 255 |
110 | }; |
111 | #endif |
112 | |
113 | #ifndef GPERF_CASE_STRNCMP |
114 | #define GPERF_CASE_STRNCMP 1 |
115 | static int |
116 | gperf_case_strncmp (const char *s1, const char *s2, size_t n) |
117 | { |
118 | for (; n > 0;) |
119 | { |
120 | unsigned char c1 = gperf_downcase[(unsigned char)*s1++]; |
121 | unsigned char c2 = gperf_downcase[(unsigned char)*s2++]; |
122 | if (c1 != 0 && c1 == c2) |
123 | { |
124 | n--; |
125 | continue; |
126 | } |
127 | return (int)c1 - (int)c2; |
128 | } |
129 | return 0; |
130 | } |
131 | #endif |
132 | |
133 | class SelectorPseudoClassAndCompatibilityElementMapHash |
134 | { |
135 | private: |
136 | static inline unsigned int hash (const char *str, size_t len); |
137 | public: |
138 | static const struct SelectorPseudoClassOrCompatibilityPseudoElementEntry *in_word_set (const char *str, size_t len); |
139 | }; |
140 | |
141 | inline unsigned int |
142 | SelectorPseudoClassAndCompatibilityElementMapHash::hash (const char *str, size_t len) |
143 | { |
144 | static const unsigned char asso_values[] = |
145 | { |
146 | 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, |
147 | 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, |
148 | 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, |
149 | 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, |
150 | 218, 218, 218, 218, 218, 1, 218, 218, 218, 218, |
151 | 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, |
152 | 218, 218, 218, 218, 218, 3, 36, 5, 4, 2, |
153 | 4, 32, 6, 1, 218, 5, 3, 43, 1, 1, |
154 | 8, 8, 1, 1, 1, 5, 63, 2, 218, 10, |
155 | 2, 218, 218, 218, 218, 218, 218, 3, 36, 5, |
156 | 4, 2, 4, 32, 6, 1, 218, 5, 3, 43, |
157 | 1, 1, 8, 8, 1, 1, 1, 5, 63, 2, |
158 | 218, 10, 2, 218, 218, 218, 218, 218, 218, 218, |
159 | 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, |
160 | 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, |
161 | 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, |
162 | 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, |
163 | 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, |
164 | 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, |
165 | 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, |
166 | 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, |
167 | 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, |
168 | 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, |
169 | 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, |
170 | 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, |
171 | 218, 218, 218, 218, 218, 218 |
172 | }; |
173 | unsigned int hval = len; |
174 | |
175 | switch (hval) |
176 | { |
177 | default: |
178 | hval += asso_values[static_cast<unsigned char>(str[39])]; |
179 | /*FALLTHROUGH*/ |
180 | case 39: |
181 | hval += asso_values[static_cast<unsigned char>(str[38])]; |
182 | /*FALLTHROUGH*/ |
183 | case 38: |
184 | hval += asso_values[static_cast<unsigned char>(str[37])]; |
185 | /*FALLTHROUGH*/ |
186 | case 37: |
187 | hval += asso_values[static_cast<unsigned char>(str[36])]; |
188 | /*FALLTHROUGH*/ |
189 | case 36: |
190 | hval += asso_values[static_cast<unsigned char>(str[35])]; |
191 | /*FALLTHROUGH*/ |
192 | case 35: |
193 | hval += asso_values[static_cast<unsigned char>(str[34])]; |
194 | /*FALLTHROUGH*/ |
195 | case 34: |
196 | hval += asso_values[static_cast<unsigned char>(str[33])]; |
197 | /*FALLTHROUGH*/ |
198 | case 33: |
199 | hval += asso_values[static_cast<unsigned char>(str[32])]; |
200 | /*FALLTHROUGH*/ |
201 | case 32: |
202 | hval += asso_values[static_cast<unsigned char>(str[31])]; |
203 | /*FALLTHROUGH*/ |
204 | case 31: |
205 | hval += asso_values[static_cast<unsigned char>(str[30])]; |
206 | /*FALLTHROUGH*/ |
207 | case 30: |
208 | hval += asso_values[static_cast<unsigned char>(str[29])]; |
209 | /*FALLTHROUGH*/ |
210 | case 29: |
211 | hval += asso_values[static_cast<unsigned char>(str[28])]; |
212 | /*FALLTHROUGH*/ |
213 | case 28: |
214 | hval += asso_values[static_cast<unsigned char>(str[27])]; |
215 | /*FALLTHROUGH*/ |
216 | case 27: |
217 | hval += asso_values[static_cast<unsigned char>(str[26])]; |
218 | /*FALLTHROUGH*/ |
219 | case 26: |
220 | hval += asso_values[static_cast<unsigned char>(str[25])]; |
221 | /*FALLTHROUGH*/ |
222 | case 25: |
223 | hval += asso_values[static_cast<unsigned char>(str[24])]; |
224 | /*FALLTHROUGH*/ |
225 | case 24: |
226 | hval += asso_values[static_cast<unsigned char>(str[23])]; |
227 | /*FALLTHROUGH*/ |
228 | case 23: |
229 | hval += asso_values[static_cast<unsigned char>(str[22])]; |
230 | /*FALLTHROUGH*/ |
231 | case 22: |
232 | hval += asso_values[static_cast<unsigned char>(str[21])]; |
233 | /*FALLTHROUGH*/ |
234 | case 21: |
235 | hval += asso_values[static_cast<unsigned char>(str[20])]; |
236 | /*FALLTHROUGH*/ |
237 | case 20: |
238 | hval += asso_values[static_cast<unsigned char>(str[19])]; |
239 | /*FALLTHROUGH*/ |
240 | case 19: |
241 | hval += asso_values[static_cast<unsigned char>(str[18])]; |
242 | /*FALLTHROUGH*/ |
243 | case 18: |
244 | hval += asso_values[static_cast<unsigned char>(str[17])]; |
245 | /*FALLTHROUGH*/ |
246 | case 17: |
247 | hval += asso_values[static_cast<unsigned char>(str[16])]; |
248 | /*FALLTHROUGH*/ |
249 | case 16: |
250 | hval += asso_values[static_cast<unsigned char>(str[15])]; |
251 | /*FALLTHROUGH*/ |
252 | case 15: |
253 | hval += asso_values[static_cast<unsigned char>(str[14])]; |
254 | /*FALLTHROUGH*/ |
255 | case 14: |
256 | hval += asso_values[static_cast<unsigned char>(str[13])]; |
257 | /*FALLTHROUGH*/ |
258 | case 13: |
259 | hval += asso_values[static_cast<unsigned char>(str[12])]; |
260 | /*FALLTHROUGH*/ |
261 | case 12: |
262 | hval += asso_values[static_cast<unsigned char>(str[11])]; |
263 | /*FALLTHROUGH*/ |
264 | case 11: |
265 | hval += asso_values[static_cast<unsigned char>(str[10])]; |
266 | /*FALLTHROUGH*/ |
267 | case 10: |
268 | hval += asso_values[static_cast<unsigned char>(str[9])]; |
269 | /*FALLTHROUGH*/ |
270 | case 9: |
271 | hval += asso_values[static_cast<unsigned char>(str[8])]; |
272 | /*FALLTHROUGH*/ |
273 | case 8: |
274 | hval += asso_values[static_cast<unsigned char>(str[7])]; |
275 | /*FALLTHROUGH*/ |
276 | case 7: |
277 | hval += asso_values[static_cast<unsigned char>(str[6])]; |
278 | /*FALLTHROUGH*/ |
279 | case 6: |
280 | hval += asso_values[static_cast<unsigned char>(str[5])]; |
281 | /*FALLTHROUGH*/ |
282 | case 5: |
283 | hval += asso_values[static_cast<unsigned char>(str[4])]; |
284 | /*FALLTHROUGH*/ |
285 | case 4: |
286 | hval += asso_values[static_cast<unsigned char>(str[3])]; |
287 | /*FALLTHROUGH*/ |
288 | case 3: |
289 | hval += asso_values[static_cast<unsigned char>(str[2])]; |
290 | /*FALLTHROUGH*/ |
291 | case 2: |
292 | hval += asso_values[static_cast<unsigned char>(str[1])]; |
293 | /*FALLTHROUGH*/ |
294 | case 1: |
295 | hval += asso_values[static_cast<unsigned char>(str[0])]; |
296 | break; |
297 | } |
298 | return hval; |
299 | } |
300 | |
301 | static const struct SelectorPseudoClassOrCompatibilityPseudoElementEntry wordlist[] = |
302 | { |
303 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
304 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
305 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
306 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
307 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
308 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
309 | #line 103 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
310 | {"not" , {CSSSelector::PseudoClassNot, CSSSelector::PseudoElementUnknown}}, |
311 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
312 | #line 117 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
313 | {"root" , {CSSSelector::PseudoClassRoot, CSSSelector::PseudoElementUnknown}}, |
314 | #line 78 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
315 | {"dir" , {CSSSelector::PseudoClassDir, CSSSelector::PseudoElementUnknown}}, |
316 | #line 83 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
317 | {"end" , {CSSSelector::PseudoClassEnd, CSSSelector::PseudoElementUnknown}}, |
318 | #line 116 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
319 | {"role" , {CSSSelector::PseudoClassRole, CSSSelector::PseudoElementUnknown}}, |
320 | #line 120 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
321 | {"start" , {CSSSelector::PseudoClassStart, CSSSelector::PseudoElementUnknown}}, |
322 | #line 91 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
323 | {"host" , {CSSSelector::PseudoClassHost, CSSSelector::PseudoElementUnknown}}, |
324 | #line 100 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
325 | {"link" , {CSSSelector::PseudoClassLink, CSSSelector::PseudoElementUnknown}}, |
326 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
327 | #line 70 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
328 | {"after" , {CSSSelector::PseudoClassUnknown, CSSSelector::PseudoElementAfter}}, |
329 | #line 132 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
330 | {"past" , {CSSSelector::PseudoClassPast, CSSSelector::PseudoElementUnknown}}, |
331 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
332 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
333 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
334 | #line 88 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
335 | {"focus" , {CSSSelector::PseudoClassFocus, CSSSelector::PseudoElementUnknown}}, |
336 | #line 118 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
337 | {"scope" , {CSSSelector::PseudoClassScope, CSSSelector::PseudoElementUnknown}}, |
338 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
339 | #line 131 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
340 | {"future" , {CSSSelector::PseudoClassFuture, CSSSelector::PseudoElementUnknown}}, |
341 | #line 77 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
342 | {"defined" , {CSSSelector::PseudoClassDefined, CSSSelector::PseudoElementUnknown}}, |
343 | #line 86 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
344 | {"first-line" , {CSSSelector::PseudoClassUnknown, CSSSelector::PseudoElementFirstLine}}, |
345 | #line 110 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
346 | {"optional" , {CSSSelector::PseudoClassOptional, CSSSelector::PseudoElementUnknown}}, |
347 | #line 114 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
348 | {"read-write" , {CSSSelector::PseudoClassReadWrite, CSSSelector::PseudoElementUnknown}}, |
349 | #line 76 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
350 | {"default" , {CSSSelector::PseudoClassDefault, CSSSelector::PseudoElementUnknown}}, |
351 | #line 90 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
352 | {"horizontal" , {CSSSelector::PseudoClassHorizontal, CSSSelector::PseudoElementUnknown}}, |
353 | #line 85 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
354 | {"first-letter" , {CSSSelector::PseudoClassUnknown, CSSSelector::PseudoElementFirstLetter}}, |
355 | #line 115 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
356 | {"required" , {CSSSelector::PseudoClassRequired, CSSSelector::PseudoElementUnknown}}, |
357 | #line 71 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
358 | {"any-link" , {CSSSelector::PseudoClassAnyLink, CSSSelector::PseudoElementUnknown}}, |
359 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
360 | #line 113 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
361 | {"read-only" , {CSSSelector::PseudoClassReadOnly, CSSSelector::PseudoElementUnknown}}, |
362 | #line 73 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
363 | {"checked" , {CSSSelector::PseudoClassChecked, CSSSelector::PseudoElementUnknown}}, |
364 | #line 104 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
365 | {"nth-child" , {CSSSelector::PseudoClassNthChild, CSSSelector::PseudoElementUnknown}}, |
366 | #line 98 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
367 | {"last-child" , {CSSSelector::PseudoClassLastChild, CSSSelector::PseudoElementUnknown}}, |
368 | #line 84 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
369 | {"first-child" , {CSSSelector::PseudoClassFirstChild, CSSSelector::PseudoElementUnknown}}, |
370 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
371 | #line 89 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
372 | {"focus-within" , {CSSSelector::PseudoClassFocusWithin, CSSSelector::PseudoElementUnknown}}, |
373 | #line 74 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
374 | {"corner-present" , {CSSSelector::PseudoClassCornerPresent, CSSSelector::PseudoElementUnknown}}, |
375 | #line 97 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
376 | {"lang" , {CSSSelector::PseudoClassLang, CSSSelector::PseudoElementUnknown}}, |
377 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
378 | #line 108 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
379 | {"only-child" , {CSSSelector::PseudoClassOnlyChild, CSSSelector::PseudoElementUnknown}}, |
380 | #line 121 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
381 | {"target" , {CSSSelector::PseudoClassTarget, CSSSelector::PseudoElementUnknown}}, |
382 | #line 107 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
383 | {"nth-of-type" , {CSSSelector::PseudoClassNthOfType, CSSSelector::PseudoElementUnknown}}, |
384 | #line 99 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
385 | {"last-of-type" , {CSSSelector::PseudoClassLastOfType, CSSSelector::PseudoElementUnknown}}, |
386 | #line 87 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
387 | {"first-of-type" , {CSSSelector::PseudoClassFirstOfType, CSSSelector::PseudoElementUnknown}}, |
388 | #line 93 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
389 | {"in-range" , {CSSSelector::PseudoClassInRange, CSSSelector::PseudoElementUnknown}}, |
390 | #line 105 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
391 | {"nth-last-child" , {CSSSelector::PseudoClassNthLastChild, CSSSelector::PseudoElementUnknown}}, |
392 | #line 72 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
393 | {"before" , {CSSSelector::PseudoClassUnknown, CSSSelector::PseudoElementBefore}}, |
394 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
395 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
396 | #line 109 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
397 | {"only-of-type" , {CSSSelector::PseudoClassOnlyOfType, CSSSelector::PseudoElementUnknown}}, |
398 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
399 | #line 102 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
400 | {"no-button" , {CSSSelector::PseudoClassNoButton, CSSSelector::PseudoElementUnknown}}, |
401 | #line 82 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
402 | {"enabled" , {CSSSelector::PseudoClassEnabled, CSSSelector::PseudoElementUnknown}}, |
403 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
404 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
405 | #line 106 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
406 | {"nth-last-of-type" , {CSSSelector::PseudoClassNthLastOfType, CSSSelector::PseudoElementUnknown}}, |
407 | #line 79 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
408 | {"disabled" , {CSSSelector::PseudoClassDisabled, CSSSelector::PseudoElementUnknown}}, |
409 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
410 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
411 | #line 111 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
412 | {"out-of-range" , {CSSSelector::PseudoClassOutOfRange, CSSSelector::PseudoElementUnknown}}, |
413 | #line 94 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
414 | {"increment" , {CSSSelector::PseudoClassIncrement, CSSSelector::PseudoElementUnknown}}, |
415 | #line 112 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
416 | {"placeholder-shown" , {CSSSelector::PseudoClassPlaceholderShown, CSSSelector::PseudoElementUnknown}}, |
417 | #line 101 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
418 | {"matches" , {CSSSelector::PseudoClassMatches, CSSSelector::PseudoElementUnknown}}, |
419 | #line 81 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
420 | {"empty" , {CSSSelector::PseudoClassEmpty, CSSSelector::PseudoElementUnknown}}, |
421 | #line 75 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
422 | {"decrement" , {CSSSelector::PseudoClassDecrement, CSSSelector::PseudoElementUnknown}}, |
423 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
424 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
425 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
426 | #line 63 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
427 | {"-webkit-any" , {CSSSelector::PseudoClassAny, CSSSelector::PseudoElementUnknown}}, |
428 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
429 | #line 95 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
430 | {"indeterminate" , {CSSSelector::PseudoClassIndeterminate, CSSSelector::PseudoElementUnknown}}, |
431 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
432 | #line 92 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
433 | {"hover" , {CSSSelector::PseudoClassHover, CSSSelector::PseudoElementUnknown}}, |
434 | #line 122 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
435 | {"valid" , {CSSSelector::PseudoClassValid, CSSSelector::PseudoElementUnknown}}, |
436 | #line 124 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
437 | {"visited" , {CSSSelector::PseudoClassVisited, CSSSelector::PseudoElementUnknown}}, |
438 | #line 69 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
439 | {"active" , {CSSSelector::PseudoClassActive, CSSSelector::PseudoElementUnknown}}, |
440 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
441 | #line 96 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
442 | {"invalid" , {CSSSelector::PseudoClassInvalid, CSSSelector::PseudoElementUnknown}}, |
443 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
444 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
445 | #line 65 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
446 | {"-webkit-autofill" , {CSSSelector::PseudoClassAutofill, CSSSelector::PseudoElementUnknown}}, |
447 | #line 123 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
448 | {"vertical" , {CSSSelector::PseudoClassVertical, CSSSelector::PseudoElementUnknown}}, |
449 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
450 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
451 | #line 64 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
452 | {"-webkit-any-link" , {CSSSelector::PseudoClassAnyLinkDeprecated, CSSSelector::PseudoElementUnknown}}, |
453 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
454 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
455 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
456 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
457 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
458 | #line 127 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
459 | {"-webkit-full-screen" , {CSSSelector::PseudoClassFullScreen, CSSSelector::PseudoElementUnknown}}, |
460 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
461 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
462 | #line 119 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
463 | {"single-button" , {CSSSelector::PseudoClassSingleButton, CSSSelector::PseudoElementUnknown}}, |
464 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
465 | #line 67 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
466 | {"-webkit-drag" , {CSSSelector::PseudoClassDrag, CSSSelector::PseudoElementUnknown}}, |
467 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
468 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
469 | #line 125 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
470 | {"window-inactive" , {CSSSelector::PseudoClassWindowInactive, CSSSelector::PseudoElementUnknown}}, |
471 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
472 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
473 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
474 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
475 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
476 | #line 80 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
477 | {"double-button" , {CSSSelector::PseudoClassDoubleButton, CSSSelector::PseudoElementUnknown}}, |
478 | #line 62 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
479 | {"-khtml-drag" , {CSSSelector::PseudoClassDrag, CSSSelector::PseudoElementUnknown}}, |
480 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
481 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
482 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
483 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
484 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
485 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
486 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
487 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
488 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
489 | #line 128 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
490 | {"-webkit-full-screen-ancestor" , {CSSSelector::PseudoClassFullScreenAncestor, CSSSelector::PseudoElementUnknown}}, |
491 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
492 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
493 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
494 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
495 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
496 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
497 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
498 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
499 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
500 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
501 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
502 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
503 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
504 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
505 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
506 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
507 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
508 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
509 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
510 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
511 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
512 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
513 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
514 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
515 | #line 130 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
516 | {"-webkit-full-screen-controls-hidden" , {CSSSelector::PseudoClassFullScreenControlsHidden, CSSSelector::PseudoElementUnknown}}, |
517 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
518 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
519 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
520 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
521 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
522 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
523 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
524 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
525 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
526 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
527 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
528 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
529 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
530 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
531 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
532 | #line 66 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
533 | {"-webkit-autofill-strong-password" , {CSSSelector::PseudoClassAutofillStrongPassword, CSSSelector::PseudoElementUnknown}}, |
534 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
535 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
536 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
537 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
538 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
539 | #line 129 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
540 | {"-webkit-full-screen-document" , {CSSSelector::PseudoClassFullScreenDocument, CSSSelector::PseudoElementUnknown}}, |
541 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
542 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
543 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
544 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
545 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
546 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
547 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
548 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
549 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
550 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
551 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
552 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
553 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
554 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
555 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
556 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
557 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
558 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
559 | #line 68 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
560 | {"-webkit-full-page-media" , {CSSSelector::PseudoClassFullPageMedia, CSSSelector::PseudoElementUnknown}}, |
561 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
562 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
563 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
564 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
565 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
566 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
567 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
568 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
569 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
570 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
571 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
572 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
573 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
574 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
575 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
576 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
577 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
578 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
579 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
580 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
581 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
582 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
583 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
584 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
585 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
586 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
587 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
588 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
589 | {"" ,{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}}, |
590 | #line 126 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
591 | {"-webkit-animating-full-screen-transition" , {CSSSelector::PseudoClassAnimatingFullScreenTransition, CSSSelector::PseudoElementUnknown}} |
592 | }; |
593 | |
594 | const struct SelectorPseudoClassOrCompatibilityPseudoElementEntry * |
595 | SelectorPseudoClassAndCompatibilityElementMapHash::in_word_set (const char *str, size_t len) |
596 | { |
597 | if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) |
598 | { |
599 | unsigned int key = hash (str, len); |
600 | |
601 | if (key <= MAX_HASH_VALUE) |
602 | { |
603 | const char *s = wordlist[key].name; |
604 | |
605 | if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strncmp (str, s, len) && s[len] == '\0') |
606 | return &wordlist[key]; |
607 | } |
608 | } |
609 | return 0; |
610 | } |
611 | #line 133 "SelectorPseudoClassAndCompatibilityElementMap.gperf" |
612 | |
613 | |
614 | static inline const SelectorPseudoClassOrCompatibilityPseudoElementEntry* parsePseudoClassAndCompatibilityElementString(const LChar* characters, unsigned length) |
615 | { |
616 | return SelectorPseudoClassAndCompatibilityElementMapHash::in_word_set(reinterpret_cast<const char*>(characters), length); |
617 | } |
618 | |
619 | static inline const SelectorPseudoClassOrCompatibilityPseudoElementEntry* parsePseudoClassAndCompatibilityElementString(const UChar* characters, unsigned length) |
620 | { |
621 | const unsigned maxKeywordLength = 40; |
622 | LChar buffer[maxKeywordLength]; |
623 | if (length > maxKeywordLength) |
624 | return nullptr; |
625 | |
626 | for (unsigned i = 0; i < length; ++i) { |
627 | UChar character = characters[i]; |
628 | if (character & ~0xff) |
629 | return nullptr; |
630 | |
631 | buffer[i] = static_cast<LChar>(character); |
632 | } |
633 | return parsePseudoClassAndCompatibilityElementString(buffer, length); |
634 | } |
635 | |
636 | PseudoClassOrCompatibilityPseudoElement parsePseudoClassAndCompatibilityElementString(const StringView& pseudoTypeString) |
637 | { |
638 | const SelectorPseudoClassOrCompatibilityPseudoElementEntry* entry; |
639 | if (pseudoTypeString.is8Bit()) |
640 | entry = parsePseudoClassAndCompatibilityElementString(pseudoTypeString.characters8(), pseudoTypeString.length()); |
641 | else |
642 | entry = parsePseudoClassAndCompatibilityElementString(pseudoTypeString.characters16(), pseudoTypeString.length()); |
643 | |
644 | if (entry) |
645 | return entry->pseudoTypes; |
646 | return { CSSSelector::PseudoClassUnknown, CSSSelector::PseudoElementUnknown }; |
647 | } |
648 | |
649 | } // namespace WebCore |
650 | |
651 | IGNORE_WARNINGS_END |
652 | |
653 | |