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