keywords.c_shipped 7.7 KB
Newer Older
S
Sam Ravnborg 已提交
1
/* ANSI-C code produced by gperf version 3.0.2 */
L
Linus Torvalds 已提交
2
/* Command-line: gperf -L ANSI-C -a -C -E -g -H is_reserved_hash -k '1,3,$' -N is_reserved_word -p -t scripts/genksyms/keywords.gperf  */
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

#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 1 "scripts/genksyms/keywords.gperf"

#line 3 "scripts/genksyms/keywords.gperf"
L
Linus Torvalds 已提交
34
struct resword { const char *name; int token; };
S
Sam Ravnborg 已提交
35
/* maximum key range = 62, duplicates = 0 */
L
Linus Torvalds 已提交
36 37 38 39 40 41 42 43 44 45 46 47 48

#ifdef __GNUC__
__inline
#else
#ifdef __cplusplus
inline
#endif
#endif
static unsigned int
is_reserved_hash (register const char *str, register unsigned int len)
{
  static const unsigned char asso_values[] =
    {
S
Sam Ravnborg 已提交
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
      65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
      65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
      65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
      65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
      65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
      65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
      65, 65, 65, 65, 65, 65, 65, 65, 65,  5,
      65, 65, 65, 65, 65, 65, 35, 65, 65, 65,
       0, 65, 65, 65, 65, 65, 65, 65, 65, 65,
      65, 65, 65, 65, 65,  0, 65,  0, 65,  5,
      20, 15, 10, 30, 65, 15, 65, 65, 20,  0,
      10, 35, 20, 65, 10,  5,  0, 10,  5, 65,
      65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
      65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
      65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
      65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
      65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
      65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
      65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
      65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
      65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
      65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
      65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
      65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
      65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
      65, 65, 65, 65, 65, 65
L
Linus Torvalds 已提交
75 76 77 78 79 80 81 82 83 84 85 86
    };
  return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]] + asso_values[(unsigned char)str[len - 1]];
}

#ifdef __GNUC__
__inline
#endif
const struct resword *
is_reserved_word (register const char *str, register unsigned int len)
{
  enum
    {
S
Sam Ravnborg 已提交
87
      TOTAL_KEYWORDS = 43,
L
Linus Torvalds 已提交
88
      MIN_WORD_LENGTH = 3,
89
      MAX_WORD_LENGTH = 24,
90
      MIN_HASH_VALUE = 3,
S
Sam Ravnborg 已提交
91
      MAX_HASH_VALUE = 64
L
Linus Torvalds 已提交
92 93 94 95
    };

  static const struct resword wordlist[] =
    {
96
      {""}, {""}, {""},
S
Sam Ravnborg 已提交
97
#line 26 "scripts/genksyms/keywords.gperf"
98 99
      {"asm", ASM_KEYW},
      {""},
100
#line 8 "scripts/genksyms/keywords.gperf"
101 102
      {"__asm", ASM_KEYW},
      {""},
103
#line 9 "scripts/genksyms/keywords.gperf"
L
Linus Torvalds 已提交
104
      {"__asm__", ASM_KEYW},
S
Sam Ravnborg 已提交
105 106
      {""}, {""},
#line 52 "scripts/genksyms/keywords.gperf"
L
Linus Torvalds 已提交
107
      {"__typeof__", TYPEOF_KEYW},
S
Sam Ravnborg 已提交
108
      {""},
109
#line 12 "scripts/genksyms/keywords.gperf"
110
      {"__const", CONST_KEYW},
111
#line 11 "scripts/genksyms/keywords.gperf"
L
Linus Torvalds 已提交
112
      {"__attribute__", ATTRIBUTE_KEYW},
113
#line 13 "scripts/genksyms/keywords.gperf"
114
      {"__const__", CONST_KEYW},
S
Sam Ravnborg 已提交
115
#line 18 "scripts/genksyms/keywords.gperf"
116
      {"__signed__", SIGNED_KEYW},
S
Sam Ravnborg 已提交
117
#line 44 "scripts/genksyms/keywords.gperf"
118
      {"static", STATIC_KEYW},
S
Sam Ravnborg 已提交
119 120 121 122 123
#line 20 "scripts/genksyms/keywords.gperf"
      {"__volatile__", VOLATILE_KEYW},
#line 39 "scripts/genksyms/keywords.gperf"
      {"int", INT_KEYW},
#line 32 "scripts/genksyms/keywords.gperf"
124
      {"char", CHAR_KEYW},
S
Sam Ravnborg 已提交
125 126 127
#line 33 "scripts/genksyms/keywords.gperf"
      {"const", CONST_KEYW},
#line 45 "scripts/genksyms/keywords.gperf"
128
      {"struct", STRUCT_KEYW},
129
#line 24 "scripts/genksyms/keywords.gperf"
S
Sam Ravnborg 已提交
130 131
      {"__restrict__", RESTRICT_KEYW},
#line 25 "scripts/genksyms/keywords.gperf"
132
      {"restrict", RESTRICT_KEYW},
S
Sam Ravnborg 已提交
133 134 135 136 137 138 139 140 141 142
#line 23 "scripts/genksyms/keywords.gperf"
      {"_restrict", RESTRICT_KEYW},
#line 16 "scripts/genksyms/keywords.gperf"
      {"__inline__", INLINE_KEYW},
#line 10 "scripts/genksyms/keywords.gperf"
      {"__attribute", ATTRIBUTE_KEYW},
      {""},
#line 14 "scripts/genksyms/keywords.gperf"
      {"__extension__", EXTENSION_KEYW},
#line 35 "scripts/genksyms/keywords.gperf"
143
      {"enum", ENUM_KEYW},
S
Sam Ravnborg 已提交
144
#line 19 "scripts/genksyms/keywords.gperf"
145
      {"__volatile", VOLATILE_KEYW},
S
Sam Ravnborg 已提交
146
#line 36 "scripts/genksyms/keywords.gperf"
147
      {"extern", EXTERN_KEYW},
S
Sam Ravnborg 已提交
148 149 150
      {""},
#line 17 "scripts/genksyms/keywords.gperf"
      {"__signed", SIGNED_KEYW},
151 152
#line 7 "scripts/genksyms/keywords.gperf"
      {"EXPORT_SYMBOL_GPL_FUTURE", EXPORT_SYMBOL_KEYW},
153
      {""},
S
Sam Ravnborg 已提交
154 155 156 157 158
#line 51 "scripts/genksyms/keywords.gperf"
      {"typeof", TYPEOF_KEYW},
#line 46 "scripts/genksyms/keywords.gperf"
      {"typedef", TYPEDEF_KEYW},
#line 15 "scripts/genksyms/keywords.gperf"
L
Linus Torvalds 已提交
159
      {"__inline", INLINE_KEYW},
S
Sam Ravnborg 已提交
160
#line 31 "scripts/genksyms/keywords.gperf"
161
      {"auto", AUTO_KEYW},
162
#line 47 "scripts/genksyms/keywords.gperf"
S
Sam Ravnborg 已提交
163 164 165
      {"union", UNION_KEYW},
      {""}, {""},
#line 48 "scripts/genksyms/keywords.gperf"
166
      {"unsigned", UNSIGNED_KEYW},
S
Sam Ravnborg 已提交
167 168 169
#line 49 "scripts/genksyms/keywords.gperf"
      {"void", VOID_KEYW},
#line 42 "scripts/genksyms/keywords.gperf"
170
      {"short", SHORT_KEYW},
S
Sam Ravnborg 已提交
171
      {""}, {""},
172
#line 50 "scripts/genksyms/keywords.gperf"
L
Linus Torvalds 已提交
173
      {"volatile", VOLATILE_KEYW},
174
      {""},
175
#line 37 "scripts/genksyms/keywords.gperf"
S
Sam Ravnborg 已提交
176 177 178
      {"float", FLOAT_KEYW},
#line 34 "scripts/genksyms/keywords.gperf"
      {"double", DOUBLE_KEYW},
L
Linus Torvalds 已提交
179
      {""},
180 181
#line 5 "scripts/genksyms/keywords.gperf"
      {"EXPORT_SYMBOL", EXPORT_SYMBOL_KEYW},
S
Sam Ravnborg 已提交
182 183 184
      {""}, {""},
#line 38 "scripts/genksyms/keywords.gperf"
      {"inline", INLINE_KEYW},
185 186
#line 6 "scripts/genksyms/keywords.gperf"
      {"EXPORT_SYMBOL_GPL", EXPORT_SYMBOL_KEYW},
S
Sam Ravnborg 已提交
187 188 189 190 191 192 193 194 195 196
#line 41 "scripts/genksyms/keywords.gperf"
      {"register", REGISTER_KEYW},
      {""},
#line 22 "scripts/genksyms/keywords.gperf"
      {"_Bool", BOOL_KEYW},
#line 43 "scripts/genksyms/keywords.gperf"
      {"signed", SIGNED_KEYW},
      {""}, {""},
#line 40 "scripts/genksyms/keywords.gperf"
      {"long", LONG_KEYW}
L
Linus Torvalds 已提交
197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212
    };

  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
    {
      register int key = is_reserved_hash (str, len);

      if (key <= MAX_HASH_VALUE && key >= 0)
        {
          register const char *s = wordlist[key].name;

          if (*str == *s && !strcmp (str + 1, s + 1))
            return &wordlist[key];
        }
    }
  return 0;
}