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