|
|
1.1 ! root 1: /* C code produced by gperf version 2.5 (GNU C++ version) */ ! 2: /* Command-line: gperf -p -j1 -g -o -t -N is_reserved_word -k1,4,7,$ /deneb/blob/jason/g++/small/devo/gcc/cp/gxx.gperf */ ! 3: /* Command-line: gperf -p -j1 -g -o -t -N is_reserved_word -k1,4,$,7 gplus.gperf */ ! 4: struct resword { char *name; short token; enum rid rid;}; ! 5: ! 6: #define TOTAL_KEYWORDS 86 ! 7: #define MIN_WORD_LENGTH 2 ! 8: #define MAX_WORD_LENGTH 16 ! 9: #define MIN_HASH_VALUE 4 ! 10: #define MAX_HASH_VALUE 171 ! 11: /* maximum key range = 168, duplicates = 0 */ ! 12: ! 13: #ifdef __GNUC__ ! 14: inline ! 15: #endif ! 16: static unsigned int ! 17: hash (str, len) ! 18: register char *str; ! 19: register int unsigned len; ! 20: { ! 21: static unsigned char asso_values[] = ! 22: { ! 23: 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, ! 24: 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, ! 25: 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, ! 26: 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, ! 27: 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, ! 28: 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, ! 29: 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, ! 30: 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, ! 31: 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, ! 32: 172, 172, 172, 172, 172, 0, 172, 36, 1, 61, ! 33: 0, 0, 30, 44, 44, 35, 172, 7, 12, 53, ! 34: 40, 17, 6, 172, 28, 2, 4, 35, 31, 51, ! 35: 5, 7, 172, 172, 172, 172, 172, 172, ! 36: }; ! 37: register int hval = len; ! 38: ! 39: switch (hval) ! 40: { ! 41: default: ! 42: case 7: ! 43: hval += asso_values[str[6]]; ! 44: case 6: ! 45: case 5: ! 46: case 4: ! 47: hval += asso_values[str[3]]; ! 48: case 3: ! 49: case 2: ! 50: case 1: ! 51: hval += asso_values[str[0]]; ! 52: } ! 53: return hval + asso_values[str[len - 1]]; ! 54: } ! 55: ! 56: #ifdef __GNUC__ ! 57: inline ! 58: #endif ! 59: struct resword * ! 60: is_reserved_word (str, len) ! 61: register char *str; ! 62: register unsigned int len; ! 63: { ! 64: static struct resword wordlist[] = ! 65: { ! 66: {"",}, {"",}, {"",}, {"",}, ! 67: {"else", ELSE, NORID,}, ! 68: {"",}, ! 69: {"delete", DELETE, NORID,}, ! 70: {"double", TYPESPEC, RID_DOUBLE,}, ! 71: {"true", CXX_TRUE, NORID,}, ! 72: {"__asm__", GCC_ASM_KEYWORD, NORID}, ! 73: {"typeid", TYPEID, NORID,}, ! 74: {"",}, ! 75: {"this", THIS, NORID,}, ! 76: {"",}, ! 77: {"try", TRY, NORID,}, ! 78: {"",}, {"",}, {"",}, {"",}, ! 79: {"do", DO, NORID,}, ! 80: {"",}, ! 81: {"static_cast", STATIC_CAST, NORID,}, ! 82: {"template", TEMPLATE, RID_TEMPLATE,}, ! 83: {"protected", VISSPEC, RID_PROTECTED,}, ! 84: {"",}, ! 85: {"__classof__", CLASSOF, NORID}, ! 86: {"",}, ! 87: {"__headof__", HEADOF, NORID}, ! 88: {"",}, ! 89: {"bool", TYPESPEC, RID_BOOL,}, ! 90: {"__const__", TYPE_QUAL, RID_CONST}, ! 91: {"__volatile", TYPE_QUAL, RID_VOLATILE}, ! 92: {"__const", TYPE_QUAL, RID_CONST}, ! 93: {"__volatile__", TYPE_QUAL, RID_VOLATILE}, ! 94: {"__typeof__", TYPEOF, NORID}, ! 95: {"void", TYPESPEC, RID_VOID,}, ! 96: {"friend", SCSPEC, RID_FRIEND,}, ! 97: {"false", CXX_FALSE, NORID,}, ! 98: {"sizeof", SIZEOF, NORID,}, ! 99: {"short", TYPESPEC, RID_SHORT,}, ! 100: {"typeof", TYPEOF, NORID,}, ! 101: {"",}, ! 102: {"int", TYPESPEC, RID_INT,}, ! 103: {"__signed", TYPESPEC, RID_SIGNED}, ! 104: {"private", VISSPEC, RID_PRIVATE,}, ! 105: {"__signed__", TYPESPEC, RID_SIGNED}, ! 106: {"extern", SCSPEC, RID_EXTERN,}, ! 107: {"struct", AGGR, RID_RECORD,}, ! 108: {"signed", TYPESPEC, RID_SIGNED,}, ! 109: {"break", BREAK, NORID,}, ! 110: {"__attribute", ATTRIBUTE, NORID}, ! 111: {"default", DEFAULT, NORID,}, ! 112: {"__attribute__", ATTRIBUTE, NORID}, ! 113: {"__classof", CLASSOF, NORID}, ! 114: {"sigof", SIGOF, NORID /* Extension */,}, ! 115: {"__headof", HEADOF, NORID}, ! 116: {"switch", SWITCH, NORID,}, ! 117: {"__label__", LABEL, NORID}, ! 118: {"__extension__", EXTENSION, NORID}, ! 119: {"",}, ! 120: {"__asm", GCC_ASM_KEYWORD, NORID}, ! 121: {"for", FOR, NORID,}, ! 122: {"__typeof", TYPEOF, NORID}, ! 123: {"__alignof__", ALIGNOF, NORID}, ! 124: {"",}, ! 125: {"case", CASE, NORID,}, ! 126: {"virtual", SCSPEC, RID_VIRTUAL,}, ! 127: {"if", IF, NORID,}, ! 128: {"while", WHILE, NORID,}, ! 129: {"",}, ! 130: {"class", AGGR, RID_CLASS,}, ! 131: {"typedef", SCSPEC, RID_TYPEDEF,}, ! 132: {"const", TYPE_QUAL, RID_CONST,}, ! 133: {"static", SCSPEC, RID_STATIC,}, ! 134: {"auto", SCSPEC, RID_AUTO,}, ! 135: {"float", TYPESPEC, RID_FLOAT,}, ! 136: {"inline", SCSPEC, RID_INLINE,}, ! 137: {"throw", THROW, NORID,}, ! 138: {"unsigned", TYPESPEC, RID_UNSIGNED,}, ! 139: {"",}, ! 140: {"headof", HEADOF, NORID,}, ! 141: {"",}, ! 142: {"goto", GOTO, NORID,}, ! 143: {"",}, {"",}, ! 144: {"public", VISSPEC, RID_PUBLIC,}, ! 145: {"signature", AGGR, RID_SIGNATURE /* Extension */,}, ! 146: {"volatile", TYPE_QUAL, RID_VOLATILE,}, ! 147: {"__inline", SCSPEC, RID_INLINE}, ! 148: {"overload", OVERLOAD, NORID,}, ! 149: {"__inline__", SCSPEC, RID_INLINE}, ! 150: {"__alignof", ALIGNOF, NORID}, ! 151: {"asm", ASM_KEYWORD, NORID,}, ! 152: {"",}, ! 153: {"new", NEW, NORID,}, ! 154: {"",}, ! 155: {"mutable", SCSPEC, RID_MUTABLE,}, ! 156: {"union", AGGR, RID_UNION,}, ! 157: {"operator", OPERATOR, NORID,}, ! 158: {"register", SCSPEC, RID_REGISTER,}, ! 159: {"",}, {"",}, ! 160: {"__wchar_t", TYPESPEC, RID_WCHAR /* Unique to ANSI C++ */,}, ! 161: {"",}, ! 162: {"long", TYPESPEC, RID_LONG,}, ! 163: {"",}, {"",}, {"",}, ! 164: {"continue", CONTINUE, NORID,}, ! 165: {"return", RETURN, NORID,}, ! 166: {"enum", ENUM, NORID,}, ! 167: {"",}, {"",}, ! 168: {"dynamic_cast", DYNAMIC_CAST, NORID,}, ! 169: {"",}, {"",}, ! 170: {"reinterpret_cast", REINTERPRET_CAST, NORID,}, ! 171: {"",}, {"",}, {"",}, {"",}, ! 172: {"char", TYPESPEC, RID_CHAR,}, ! 173: {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, ! 174: {"classof", CLASSOF, NORID,}, ! 175: {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, ! 176: {"const_cast", CONST_CAST, NORID,}, ! 177: {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, ! 178: {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, ! 179: {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, ! 180: {"",}, {"",}, {"",}, {"",}, {"",}, ! 181: {"catch", CATCH, NORID,}, ! 182: }; ! 183: ! 184: if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) ! 185: { ! 186: register int key = hash (str, len); ! 187: ! 188: if (key <= MAX_HASH_VALUE && key >= 0) ! 189: { ! 190: register char *s = wordlist[key].name; ! 191: ! 192: if (*s == *str && !strcmp (str + 1, s + 1)) ! 193: return &wordlist[key]; ! 194: } ! 195: } ! 196: return 0; ! 197: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.