1/* C code produced by gperf version 2.7.1 (19981006 egcs) */ 2/* Command-line: gperf -L C -F , 0, 0 -p -j1 -i 1 -g -o -t -G -N is_reserved_word -k1,3,$ ./c-parse.gperf */ 3/* Command-line: gperf -L KR-C -F ', 0, 0' -p -j1 -i 1 -g -o -t -N is_reserved_word -k1,3,$ c-parse.gperf */ 4struct resword { const char *name; short token; enum rid rid; }; 5 6#define TOTAL_KEYWORDS 83 7#define MIN_WORD_LENGTH 2 8#define MAX_WORD_LENGTH 20 9#define MIN_HASH_VALUE 8 10#define MAX_HASH_VALUE 141 11/* maximum key range = 134, duplicates = 0 */ 12 13#ifdef __GNUC__ 14__inline 15#endif 16static unsigned int 17hash (str, len) 18 register const char *str; 19 register unsigned int len; 20{ 21 static unsigned char asso_values[] = 22 { 23 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 24 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 25 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 26 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 27 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 28 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 29 142, 142, 142, 142, 35, 142, 142, 142, 142, 142, 30 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 31 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 32 142, 142, 142, 142, 142, 1, 142, 90, 1, 28, 33 40, 6, 1, 24, 3, 13, 142, 36, 60, 14, 34 49, 3, 6, 142, 19, 8, 1, 50, 33, 11, 35 2, 23, 4, 142, 142, 142, 142, 142, 142, 142, 36 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 37 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 38 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 39 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 40 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 41 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 42 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 43 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 44 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 45 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 46 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 47 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 48 142, 142, 142, 142, 142, 142 49 }; 50 register int hval = len; 51 52 switch (hval) 53 { 54 default: 55 case 3: 56 hval += asso_values[(unsigned char)str[2]]; 57 case 2: 58 case 1: 59 hval += asso_values[(unsigned char)str[0]]; 60 break; 61 } 62 return hval + asso_values[(unsigned char)str[len - 1]]; 63} 64 65static struct resword wordlist[] = 66 { 67 {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, 68 {"out", TYPE_QUAL, RID_OUT}, 69 {"", 0, 0}, 70 {"float", TYPESPEC, RID_FLOAT}, 71 {"__typeof", TYPEOF, NORID}, 72 {"", 0, 0}, 73 {"__typeof__", TYPEOF, NORID}, 74 {"typeof", TYPEOF, NORID}, 75 {"typedef", SCSPEC, RID_TYPEDEF}, 76 {"if", IF, NORID}, 77 {"short", TYPESPEC, RID_SHORT}, 78 {"int", TYPESPEC, RID_INT}, 79 {"sizeof", SIZEOF, NORID}, 80 {"__signed__", TYPESPEC, RID_SIGNED}, 81 {"__extension__", EXTENSION, NORID}, 82 {"inout", TYPE_QUAL, RID_INOUT}, 83 {"__imag__", IMAGPART, NORID}, 84 {"else", ELSE, NORID}, 85 {"__inline__", SCSPEC, RID_INLINE}, 86 {"byref", TYPE_QUAL, RID_BYREF}, 87 {"__iterator__", SCSPEC, RID_ITERATOR}, 88 {"__inline", SCSPEC, RID_INLINE}, 89 {"__real__", REALPART, NORID}, 90 {"switch", SWITCH, NORID}, 91 {"__restrict", TYPE_QUAL, RID_RESTRICT}, 92 {"goto", GOTO, NORID}, 93 {"__restrict__", TYPE_QUAL, RID_RESTRICT}, 94 {"struct", STRUCT, NORID}, 95 {"while", WHILE, NORID}, 96 {"restrict", TYPE_QUAL, RID_RESTRICT}, 97 {"__const", TYPE_QUAL, RID_CONST}, 98 {"oneway", TYPE_QUAL, RID_ONEWAY}, 99 {"__const__", TYPE_QUAL, RID_CONST}, 100 {"__complex", TYPESPEC, RID_COMPLEX}, 101 {"__complex__", TYPESPEC, RID_COMPLEX}, 102 {"for", FOR, NORID}, 103 {"__iterator", SCSPEC, RID_ITERATOR}, 104 {"__imag", IMAGPART, NORID}, 105 {"do", DO, NORID}, 106 {"case", CASE, NORID}, 107 {"__volatile__", TYPE_QUAL, RID_VOLATILE}, 108 {"break", BREAK, NORID}, 109 {"default", DEFAULT, NORID}, 110 {"__volatile", TYPE_QUAL, RID_VOLATILE}, 111 {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, 112 {"@defs", DEFS, NORID}, 113 {"id", OBJECTNAME, RID_ID}, 114 {"", 0, 0}, 115 {"__signed", TYPESPEC, RID_SIGNED}, 116 {"bycopy", TYPE_QUAL, RID_BYCOPY}, 117 {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, 118 {"extern", SCSPEC, RID_EXTERN}, 119 {"", 0, 0}, 120 {"in", TYPE_QUAL, RID_IN}, 121 {"", 0, 0}, 122 {"@compatibility_alias", ALIAS, NORID}, 123 {"", 0, 0}, 124 {"@private", PRIVATE, NORID}, 125 {"@selector", SELECTOR, NORID}, 126 {"register", SCSPEC, RID_REGISTER}, 127 {"__label__", LABEL, NORID}, 128 {"", 0, 0}, {"", 0, 0}, 129 {"enum", ENUM, NORID}, 130 {"return", RETURN, NORID}, 131 {"", 0, 0}, {"", 0, 0}, 132 {"signed", TYPESPEC, RID_SIGNED}, 133 {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, 134 {"const", TYPE_QUAL, RID_CONST}, 135 {"", 0, 0}, 136 {"inline", SCSPEC, RID_INLINE}, 137 {"__real", REALPART, NORID}, 138 {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, 139 {"void", TYPESPEC, RID_VOID}, 140 {"continue", CONTINUE, NORID}, 141 {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, 142 {"@encode", ENCODE, NORID}, 143 {"auto", SCSPEC, RID_AUTO}, 144 {"__asm__", ASM_KEYWORD, NORID}, 145 {"@interface", INTERFACE, NORID}, 146 {"__alignof", ALIGNOF, NORID}, 147 {"double", TYPESPEC, RID_DOUBLE}, 148 {"__alignof__", ALIGNOF, NORID}, 149 {"@protected", PROTECTED, NORID}, 150 {"__attribute__", ATTRIBUTE, NORID}, 151 {"unsigned", TYPESPEC, RID_UNSIGNED}, 152 {"volatile", TYPE_QUAL, RID_VOLATILE}, 153 {"__attribute", ATTRIBUTE, NORID}, 154 {"@class", CLASS, NORID}, 155 {"__asm", ASM_KEYWORD, NORID}, 156 {"", 0, 0}, {"", 0, 0}, 157 {"@implementation", IMPLEMENTATION, NORID}, 158 {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, 159 {"union", UNION, NORID}, 160 {"", 0, 0}, {"", 0, 0}, 161 {"@public", PUBLIC, NORID}, 162 {"asm", ASM_KEYWORD, NORID}, 163 {"", 0, 0}, 164 {"@protocol", PROTOCOL, NORID}, 165 {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, 166 {"@end", END, NORID}, 167 {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, 168 {"static", SCSPEC, RID_STATIC}, 169 {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, 170 {"long", TYPESPEC, RID_LONG}, 171 {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, 172 {"char", TYPESPEC, RID_CHAR} 173 }; 174 175#ifdef __GNUC__ 176__inline 177#endif 178struct resword * 179is_reserved_word (str, len) 180 register const char *str; 181 register unsigned int len; 182{ 183 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) 184 { 185 register int key = hash (str, len); 186 187 if (key <= MAX_HASH_VALUE && key >= 0) 188 { 189 register const char *s = wordlist[key].name; 190 191 if (*str == *s && !strcmp (str + 1, s + 1)) 192 return &wordlist[key]; 193 } 194 } 195 return 0; 196} 197