| 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 | |