1/* C code produced by gperf version 3.0.4 */
2/* Command-line: ../src/gperf -L C -F ', 0' -t -j1 -i 1 -g -o -N java_keyword -k'1,3,$'  */
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.  */
28error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
29#endif
30
31
32/* Keyword definition for the GNU compiler for the Java(TM) language.
33   Copyright (C) 1997, 1998 Free Software Foundation, Inc.
34   Contributed by Alexandre Petit-Bianco (apbianco@cygnus.com)
35
36This file is part of GNU CC.
37
38GNU CC is free software; you can redistribute it and/or modify
39it under the terms of the GNU General Public License as published by
40the Free Software Foundation; either version 2, or (at your option)
41any later version.
42
43GNU CC is distributed in the hope that it will be useful,
44but WITHOUT ANY WARRANTY; without even the implied warranty of
45MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
46GNU General Public License for more details.
47
48You should have received a copy of the GNU General Public License
49along with GNU CC; see the file COPYING.  If not, write to
50the Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
51MA 02110-1301, USA.
52
53Java and all Java-based marks are trademarks or registered trademarks
54of Sun Microsystems, Inc. in the United States and other countries.
55The Free Software Foundation is independent of Sun Microsystems, Inc.  */
56
57struct java_keyword { const char *name; int token; };
58
59#define TOTAL_KEYWORDS 50
60#define MIN_WORD_LENGTH 2
61#define MAX_WORD_LENGTH 12
62#define MIN_HASH_VALUE 7
63#define MAX_HASH_VALUE 76
64/* maximum key range = 70, duplicates = 0 */
65
66#ifdef __GNUC__
67__inline
68#else
69#ifdef __cplusplus
70inline
71#endif
72#endif
73static unsigned int
74hash (str, len)
75     register const char *str;
76     register unsigned int len;
77{
78  static unsigned char asso_values[] =
79    {
80      77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
81      77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
82      77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
83      77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
84      77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
85      77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
86      77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
87      77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
88      77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
89      77, 77, 77, 77, 77, 77, 77,  7, 30,  7,
90      12,  1, 14, 28, 41,  3, 77, 16, 11, 77,
91      16, 23,  1, 77, 15,  1,  1, 34, 30, 18,
92      77, 11, 77, 77, 77, 77, 77, 77, 77, 77,
93      77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
94      77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
95      77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
96      77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
97      77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
98      77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
99      77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
100      77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
101      77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
102      77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
103      77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
104      77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
105      77, 77, 77, 77, 77, 77
106    };
107  register int hval = len;
108
109  switch (hval)
110    {
111      default:
112        hval += asso_values[(unsigned char)str[2]];
113      /*FALLTHROUGH*/
114      case 2:
115      case 1:
116        hval += asso_values[(unsigned char)str[0]];
117        break;
118    }
119  return hval + asso_values[(unsigned char)str[len - 1]];
120}
121
122#ifdef __GNUC__
123__inline
124#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
125__attribute__ ((__gnu_inline__))
126#endif
127#endif
128struct java_keyword *
129java_keyword (str, len)
130     register const char *str;
131     register unsigned int len;
132{
133  static struct java_keyword wordlist[] =
134    {
135      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
136      {"", 0},
137      {"else", ELSE_TK},
138      {"int", INT_TK},
139      {"this", THIS_TK},
140      {"extends", EXTENDS_TK},
141      {"import", IMPORT_TK},
142      {"private", PRIVATE_TK},
143      {"case", CASE_TK},
144      {"interface", INTERFACE_TK},
145      {"implements", IMPLEMENTS_TK},
146      {"package", PACKAGE_TK},
147      {"abstract", ABSTRACT_TK},
148      {"transient", TRANSIENT_TK},
149      {"if", IF_TK},
150      {"class", CLASS_TK},
151      {"static", STATIC_TK},
152      {"super", SUPER_TK},
153      {"throws", THROWS_TK},
154      {"native", NATIVE_TK},
155      {"", 0},
156      {"try", TRY_TK},
157      {"while", WHILE_TK},
158      {"instanceof", INSTANCEOF_TK},
159      {"const", CONST_TK},
160      {"short", SHORT_TK},
161      {"false", FALSE_TK},
162      {"continue", CONTINUE_TK},
163      {"char", CHAR_TK},
164      {"default", DEFAULT_TK},
165      {"", 0},
166      {"byte", BYTE_TK},
167      {"do", DO_TK},
168      {"return", RETURN_TK},
169      {"throw", THROW_TK},
170      {"true", TRUE_TK},
171      {"synchronized", SYNCHRONIZED_TK},
172      {"null", NULL_TK},
173      {"float", FLOAT_TK},
174      {"public", PUBLIC_TK},
175      {"protected", PROTECTED_TK},
176      {"final", FINAL_TK},
177      {"for", FOR_TK},
178      {"finally", FINALLY_TK},
179      {"void", VOID_TK},
180      {"volatile", VOLATILE_TK},
181      {"switch", SWITCH_TK},
182      {"break", BREAK_TK},
183      {"double", DOUBLE_TK},
184      {"catch", CATCH_TK},
185      {"new", NEW_TK},
186      {"goto", GOTO_TK},
187      {"", 0}, {"", 0},
188      {"long", LONG_TK},
189      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
190      {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0}, {"", 0},
191      {"", 0}, {"", 0}, {"", 0}, {"", 0},
192      {"boolean", BOOLEAN_TK}
193    };
194
195  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
196    {
197      register int key = hash (str, len);
198
199      if (key <= MAX_HASH_VALUE && key >= 0)
200        {
201          register const char *s = wordlist[key].name;
202
203          if (*str == *s && !strcmp (str + 1, s + 1))
204            return &wordlist[key];
205        }
206    }
207  return 0;
208}
209