blob: 095a3a065cd7ce1573230d7528583b07fbf2c234 [file] [log] [blame]
/* C++ code produced by gperf version 3.0.4 */
/* Command-line: /usr/bin/gperf --key-positions='*' -m 10 -s 2 --output-file=SelectorPseudoClassAndCompatibilityElementMap.cpp SelectorPseudoClassAndCompatibilityElementMap.gperf */
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
&& ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
&& (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
&& ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
&& ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
&& ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
&& ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
&& ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
&& ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
&& ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
&& ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
&& ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
&& ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
&& ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
&& ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
&& ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
&& ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
&& ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
&& ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
&& ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
&& ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
&& ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
&& ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
/* The character set is not based on ISO-646. */
#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
#endif
#line 2 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
/*
* Copyright (C) 2014-2016 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*/
// This file is automatically generated from SelectorPseudoTypeMap.in by makeprop, do not edit by hand.
#include "config.h"
#include "SelectorPseudoTypeMap.h"
#include "CSSParserValues.h"
#if defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunknown-pragmas"
#pragma clang diagnostic ignored "-Wdeprecated-register"
#pragma clang diagnostic ignored "-Wimplicit-fallthrough"
#endif
namespace WebCore {
struct SelectorPseudoClassOrCompatibilityPseudoElementEntry {
const char* name;
PseudoClassOrCompatibilityPseudoElement pseudoTypes;
};
enum
{
TOTAL_KEYWORDS = 62,
MIN_WORD_LENGTH = 3,
MAX_WORD_LENGTH = 23,
MIN_HASH_VALUE = 4,
MAX_HASH_VALUE = 169
};
/* maximum key range = 166, duplicates = 0 */
#ifndef GPERF_DOWNCASE
#define GPERF_DOWNCASE 1
static unsigned char gperf_downcase[256] =
{
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
60, 61, 62, 63, 64, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
122, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
255
};
#endif
#ifndef GPERF_CASE_STRNCMP
#define GPERF_CASE_STRNCMP 1
static int
gperf_case_strncmp (register const char *s1, register const char *s2, register unsigned int n)
{
for (; n > 0;)
{
unsigned char c1 = gperf_downcase[(unsigned char)*s1++];
unsigned char c2 = gperf_downcase[(unsigned char)*s2++];
if (c1 != 0 && c1 == c2)
{
n--;
continue;
}
return (int)c1 - (int)c2;
}
return 0;
}
#endif
class SelectorPseudoClassAndCompatibilityElementMapHash
{
private:
static inline unsigned int hash (const char *str, unsigned int len);
public:
static const struct SelectorPseudoClassOrCompatibilityPseudoElementEntry *in_word_set (const char *str, unsigned int len);
};
inline unsigned int
SelectorPseudoClassAndCompatibilityElementMapHash::hash (register const char *str, register unsigned int len)
{
static const unsigned char asso_values[] =
{
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
20, 170, 170, 170, 170, 0, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 0, 1, 12, 3, 1,
0, 36, 14, 0, 170, 34, 0, 43, 0, 0,
4, 9, 0, 0, 0, 20, 15, 2, 170, 2,
3, 170, 170, 170, 170, 170, 170, 0, 1, 12,
3, 1, 0, 36, 14, 0, 170, 34, 0, 43,
0, 0, 4, 9, 0, 0, 0, 20, 15, 2,
170, 2, 3, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
170, 170, 170, 170, 170, 170
};
register int hval = len;
switch (hval)
{
default:
hval += asso_values[(unsigned char)str[22]];
/*FALLTHROUGH*/
case 22:
hval += asso_values[(unsigned char)str[21]];
/*FALLTHROUGH*/
case 21:
hval += asso_values[(unsigned char)str[20]];
/*FALLTHROUGH*/
case 20:
hval += asso_values[(unsigned char)str[19]];
/*FALLTHROUGH*/
case 19:
hval += asso_values[(unsigned char)str[18]];
/*FALLTHROUGH*/
case 18:
hval += asso_values[(unsigned char)str[17]];
/*FALLTHROUGH*/
case 17:
hval += asso_values[(unsigned char)str[16]];
/*FALLTHROUGH*/
case 16:
hval += asso_values[(unsigned char)str[15]];
/*FALLTHROUGH*/
case 15:
hval += asso_values[(unsigned char)str[14]];
/*FALLTHROUGH*/
case 14:
hval += asso_values[(unsigned char)str[13]];
/*FALLTHROUGH*/
case 13:
hval += asso_values[(unsigned char)str[12]];
/*FALLTHROUGH*/
case 12:
hval += asso_values[(unsigned char)str[11]];
/*FALLTHROUGH*/
case 11:
hval += asso_values[(unsigned char)str[10]];
/*FALLTHROUGH*/
case 10:
hval += asso_values[(unsigned char)str[9]];
/*FALLTHROUGH*/
case 9:
hval += asso_values[(unsigned char)str[8]];
/*FALLTHROUGH*/
case 8:
hval += asso_values[(unsigned char)str[7]];
/*FALLTHROUGH*/
case 7:
hval += asso_values[(unsigned char)str[6]];
/*FALLTHROUGH*/
case 6:
hval += asso_values[(unsigned char)str[5]];
/*FALLTHROUGH*/
case 5:
hval += asso_values[(unsigned char)str[4]];
/*FALLTHROUGH*/
case 4:
hval += asso_values[(unsigned char)str[3]];
/*FALLTHROUGH*/
case 3:
hval += asso_values[(unsigned char)str[2]];
/*FALLTHROUGH*/
case 2:
hval += asso_values[(unsigned char)str[1]];
/*FALLTHROUGH*/
case 1:
hval += asso_values[(unsigned char)str[0]];
break;
}
return hval;
}
static const struct SelectorPseudoClassOrCompatibilityPseudoElementEntry wordlist[] =
{
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
#line 115 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"root", {CSSSelector::PseudoClassRoot, CSSSelector::PseudoElementUnknown}},
#line 118 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"start", {CSSSelector::PseudoClassStart, CSSSelector::PseudoElementUnknown}},
#line 71 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"after", {CSSSelector::PseudoClassUnknown, CSSSelector::PseudoElementAfter}},
#line 82 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"end", {CSSSelector::PseudoClassEnd, CSSSelector::PseudoElementUnknown}},
#line 125 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"past", {CSSSelector::PseudoClassPast, CSSSelector::PseudoElementUnknown}},
#line 73 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"before", {CSSSelector::PseudoClassUnknown, CSSSelector::PseudoElementBefore}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
#line 85 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"first-line", {CSSSelector::PseudoClassUnknown, CSSSelector::PseudoElementFirstLine}},
#line 109 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"optional", {CSSSelector::PseudoClassOptional, CSSSelector::PseudoElementUnknown}},
#line 81 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"enabled", {CSSSelector::PseudoClassEnabled, CSSSelector::PseudoElementUnknown}},
#line 84 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"first-letter", {CSSSelector::PseudoClassUnknown, CSSSelector::PseudoElementFirstLetter}},
#line 112 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"read-only", {CSSSelector::PseudoClassReadOnly, CSSSelector::PseudoElementUnknown}},
#line 78 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"disabled", {CSSSelector::PseudoClassDisabled, CSSSelector::PseudoElementUnknown}},
#line 113 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"read-write", {CSSSelector::PseudoClassReadWrite, CSSSelector::PseudoElementUnknown}},
#line 90 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"host", {CSSSelector::PseudoClassHost, CSSSelector::PseudoElementUnknown}},
#line 98 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"last-of-type", {CSSSelector::PseudoClassLastOfType, CSSSelector::PseudoElementUnknown}},
#line 86 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"first-of-type", {CSSSelector::PseudoClassFirstOfType, CSSSelector::PseudoElementUnknown}},
#line 108 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"only-of-type", {CSSSelector::PseudoClassOnlyOfType, CSSSelector::PseudoElementUnknown}},
#line 116 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"scope", {CSSSelector::PseudoClassScope, CSSSelector::PseudoElementUnknown}},
#line 120 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"valid", {CSSSelector::PseudoClassValid, CSSSelector::PseudoElementUnknown}},
#line 102 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"not(", {CSSSelector::PseudoClassNot, CSSSelector::PseudoElementUnknown}},
#line 95 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"invalid", {CSSSelector::PseudoClassInvalid, CSSSelector::PseudoElementUnknown}},
#line 122 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"visited", {CSSSelector::PseudoClassVisited, CSSSelector::PseudoElementUnknown}},
#line 89 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"horizontal", {CSSSelector::PseudoClassHorizontal, CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
#line 101 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"no-button", {CSSSelector::PseudoClassNoButton, CSSSelector::PseudoElementUnknown}},
#line 77 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"default", {CSSSelector::PseudoClassDefault, CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
#line 75 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"corner-present", {CSSSelector::PseudoClassCornerPresent, CSSSelector::PseudoElementUnknown}},
#line 70 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"active", {CSSSelector::PseudoClassActive, CSSSelector::PseudoElementUnknown}},
#line 91 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"hover", {CSSSelector::PseudoClassHover, CSSSelector::PseudoElementUnknown}},
#line 121 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"vertical", {CSSSelector::PseudoClassVertical, CSSSelector::PseudoElementUnknown}},
#line 87 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"focus", {CSSSelector::PseudoClassFocus, CSSSelector::PseudoElementUnknown}},
#line 99 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"link", {CSSSelector::PseudoClassLink, CSSSelector::PseudoElementUnknown}},
#line 97 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"last-child", {CSSSelector::PseudoClassLastChild, CSSSelector::PseudoElementUnknown}},
#line 83 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"first-child", {CSSSelector::PseudoClassFirstChild, CSSSelector::PseudoElementUnknown}},
#line 107 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"only-child", {CSSSelector::PseudoClassOnlyChild, CSSSelector::PseudoElementUnknown}},
#line 114 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"required", {CSSSelector::PseudoClassRequired, CSSSelector::PseudoElementUnknown}},
#line 119 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"target", {CSSSelector::PseudoClassTarget, CSSSelector::PseudoElementUnknown}},
#line 72 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"any-link", {CSSSelector::PseudoClassAnyLink, CSSSelector::PseudoElementUnknown}},
#line 92 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"in-range", {CSSSelector::PseudoClassInRange, CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
#line 124 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"future", {CSSSelector::PseudoClassFuture, CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
#line 123 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"window-inactive", {CSSSelector::PseudoClassWindowInactive, CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
#line 106 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"nth-of-type(", {CSSSelector::PseudoClassNthOfType, CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
#line 80 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"empty", {CSSSelector::PseudoClassEmpty, CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
#line 105 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"nth-last-of-type(", {CSSSelector::PseudoClassNthLastOfType, CSSSelector::PseudoElementUnknown}},
#line 79 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"double-button", {CSSSelector::PseudoClassDoubleButton, CSSSelector::PseudoElementUnknown}},
#line 88 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"focus-within", {CSSSelector::PseudoClassFocusWithin, CSSSelector::PseudoElementUnknown}},
#line 96 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"lang(", {CSSSelector::PseudoClassLang, CSSSelector::PseudoElementUnknown}},
#line 94 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"indeterminate", {CSSSelector::PseudoClassIndeterminate, CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
#line 93 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"increment", {CSSSelector::PseudoClassIncrement, CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
#line 111 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"placeholder-shown", {CSSSelector::PseudoClassPlaceholderShown, CSSSelector::PseudoElementUnknown}},
#line 110 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"out-of-range", {CSSSelector::PseudoClassOutOfRange, CSSSelector::PseudoElementUnknown}},
#line 76 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"decrement", {CSSSelector::PseudoClassDecrement, CSSSelector::PseudoElementUnknown}},
#line 117 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"single-button", {CSSSelector::PseudoClassSingleButton, CSSSelector::PseudoElementUnknown}},
#line 65 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"-webkit-any(", {CSSSelector::PseudoClassAny, CSSSelector::PseudoElementUnknown}},
#line 103 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"nth-child(", {CSSSelector::PseudoClassNthChild, CSSSelector::PseudoElementUnknown}},
#line 67 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"-webkit-autofill", {CSSSelector::PseudoClassAutofill, CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
#line 104 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"nth-last-child(", {CSSSelector::PseudoClassNthLastChild, CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
#line 74 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"checked", {CSSSelector::PseudoClassChecked, CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
#line 68 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"-webkit-drag", {CSSSelector::PseudoClassDrag, CSSSelector::PseudoElementUnknown}},
#line 66 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"-webkit-any-link", {CSSSelector::PseudoClassAnyLinkDeprecated, CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
#line 100 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"matches(", {CSSSelector::PseudoClassMatches, CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
#line 64 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"-khtml-drag", {CSSSelector::PseudoClassDrag, CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
{"",{CSSSelector::PseudoClassUnknown,CSSSelector::PseudoElementUnknown}},
#line 69 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
{"-webkit-full-page-media", {CSSSelector::PseudoClassFullPageMedia, CSSSelector::PseudoElementUnknown}}
};
const struct SelectorPseudoClassOrCompatibilityPseudoElementEntry *
SelectorPseudoClassAndCompatibilityElementMapHash::in_word_set (register const char *str, register unsigned int len)
{
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
{
register int key = hash (str, len);
if (key <= MAX_HASH_VALUE && key >= 0)
{
register const char *s = wordlist[key].name;
if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strncmp (str, s, len) && s[len] == '\0')
return &wordlist[key];
}
}
return 0;
}
#line 126 "SelectorPseudoClassAndCompatibilityElementMap.gperf"
static inline const SelectorPseudoClassOrCompatibilityPseudoElementEntry* parsePseudoClassAndCompatibilityElementString(const LChar* characters, unsigned length)
{
return SelectorPseudoClassAndCompatibilityElementMapHash::in_word_set(reinterpret_cast<const char*>(characters), length);
}
static inline const SelectorPseudoClassOrCompatibilityPseudoElementEntry* parsePseudoClassAndCompatibilityElementString(const UChar* characters, unsigned length)
{
const unsigned maxKeywordLength = 23;
LChar buffer[maxKeywordLength];
if (length > maxKeywordLength)
return nullptr;
for (unsigned i = 0; i < length; ++i) {
UChar character = characters[i];
if (character & ~0xff)
return nullptr;
buffer[i] = static_cast<LChar>(character);
}
return parsePseudoClassAndCompatibilityElementString(buffer, length);
}
PseudoClassOrCompatibilityPseudoElement parsePseudoClassAndCompatibilityElementString(const CSSParserString& pseudoTypeString)
{
const SelectorPseudoClassOrCompatibilityPseudoElementEntry* entry;
if (pseudoTypeString.is8Bit())
entry = parsePseudoClassAndCompatibilityElementString(pseudoTypeString.characters8(), pseudoTypeString.length());
else
entry = parsePseudoClassAndCompatibilityElementString(pseudoTypeString.characters16(), pseudoTypeString.length());
if (entry)
return entry->pseudoTypes;
return { CSSSelector::PseudoClassUnknown, CSSSelector::PseudoElementUnknown };
}
PseudoClassOrCompatibilityPseudoElement parsePseudoClassAndCompatibilityElementString(const StringView& pseudoTypeString)
{
const SelectorPseudoClassOrCompatibilityPseudoElementEntry* entry;
if (pseudoTypeString.is8Bit())
entry = parsePseudoClassAndCompatibilityElementString(pseudoTypeString.characters8(), pseudoTypeString.length());
else
entry = parsePseudoClassAndCompatibilityElementString(pseudoTypeString.characters16(), pseudoTypeString.length());
if (entry)
return entry->pseudoTypes;
return { CSSSelector::PseudoClassUnknown, CSSSelector::PseudoElementUnknown };
}
} // namespace WebCore
#if defined(__clang__)
#pragma clang diagnostic pop
#endif