Annotation of gcc/cp-hash.h, revision 1.1.1.1

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,$ ./gplus.gperf  */
                      3: /* Command-line: gperf -p -j1 -g -o -t -N is_reserved_word -k1,4,$ gplus.gperf  */
                      4: struct resword { char *name; short token; enum rid rid;};
                      5: 
                      6: #define TOTAL_KEYWORDS 79
                      7: #define MIN_WORD_LENGTH 2
                      8: #define MAX_WORD_LENGTH 13
                      9: #define MIN_HASH_VALUE 4
                     10: #define MAX_HASH_VALUE 183
                     11: /* maximum key range = 180, 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:      184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
                     24:      184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
                     25:      184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
                     26:      184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
                     27:      184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
                     28:      184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
                     29:      184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
                     30:      184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
                     31:      184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
                     32:      184, 184, 184, 184, 184,   0, 184,  22,   2,  61,
                     33:       32,   0,  14,  25,  16,  47, 184,   3,   2,   4,
                     34:       35,   1,  26, 184,  38,   0,   4,  20,   4,  39,
                     35:      184,  11, 184, 184, 184, 184, 184, 184,
                     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:       {"__asm__",  ASM, NORID},
                     70:       {"this",  THIS, NORID,},
                     71:       {"__asm",  ASM, NORID},
                     72:       {"except",  EXCEPT, NORID                /* Extension */,},
                     73:       {"__headof__",  HEADOF, NORID},
                     74:       {"enum",  ENUM, NORID,},
                     75:       {"__classof__",  CLASSOF, NORID},
                     76:       {"__const__",  TYPE_QUAL, RID_CONST},
                     77:       {"__volatile",  TYPE_QUAL, RID_VOLATILE},
                     78:       {"__const",  TYPE_QUAL, RID_CONST},
                     79:       {"__volatile__",  TYPE_QUAL, RID_VOLATILE},
                     80:       {"try",  TRY, NORID                      /* Extension */,},
                     81:       {"virtual",  SCSPEC, RID_VIRTUAL,},
                     82:       {"sizeof",  SIZEOF, NORID,},
                     83:       {"",}, 
                     84:       {"__typeof__",  TYPEOF, NORID},
                     85:       {"__headof",  HEADOF, NORID},
                     86:       {"typeof",  TYPEOF, NORID,},
                     87:       {"__classof",  CLASSOF, NORID},
                     88:       {"switch",  SWITCH, NORID,},
                     89:       {"all",  ALL, NORID                      /* Extension */,},
                     90:       {"auto",  SCSPEC, RID_AUTO,},
                     91:       {"asm",  ASM, NORID,},
                     92:       {"struct",  AGGR, RID_RECORD,},
                     93:       {"goto",  GOTO, NORID,},
                     94:       {"break",  BREAK, NORID,},
                     95:       {"",}, 
                     96:       {"__typeof",  TYPEOF, NORID},
                     97:       {"do",  DO, NORID,},
                     98:       {"volatile",  TYPE_QUAL, RID_VOLATILE,},
                     99:       {"private",  VISSPEC, RID_PRIVATE,},
                    100:       {"delete",  DELETE, NORID,},
                    101:       {"typedef",  SCSPEC, RID_TYPEDEF,},
                    102:       {"double",  TYPESPEC, RID_DOUBLE,},
                    103:       {"extern",  SCSPEC, RID_EXTERN,},
                    104:       {"template",  TEMPLATE, NORID,},
                    105:       {"raise",  RAISE, NORID          /* Extension */,},
                    106:       {"raises",  RAISES, NORID                /* Extension */,},
                    107:       {"float",  TYPESPEC, RID_FLOAT,},
                    108:       {"while",  WHILE, NORID,},
                    109:       {"short",  TYPESPEC, RID_SHORT,},
                    110:       {"__alignof__",  ALIGNOF, NORID},
                    111:       {"throw",  THROW, NORID          /* Extension */,},
                    112:       {"",}, {"",}, 
                    113:       {"friend",  SCSPEC, RID_FRIEND,},
                    114:       {"",}, 
                    115:       {"int",  TYPESPEC, RID_INT,},
                    116:       {"for",  FOR, NORID,},
                    117:       {"long",  TYPESPEC, RID_LONG,},
                    118:       {"__signed__",  TYPESPEC, RID_SIGNED},
                    119:       {"",}, {"",}, 
                    120:       {"__alignof",  ALIGNOF, NORID},
                    121:       {"union",  AGGR, RID_UNION,},
                    122:       {"__attribute",  ATTRIBUTE, NORID},
                    123:       {"if",  IF, NORID,},
                    124:       {"__attribute__",  ATTRIBUTE, NORID},
                    125:       {"case",  CASE, NORID,},
                    126:       {"class",  AGGR, RID_CLASS,},
                    127:       {"reraise",  RERAISE, NORID              /* Extension */,},
                    128:       {"headof",  HEADOF, NORID,},
                    129:       {"default",  DEFAULT, NORID,},
                    130:       {"const",  TYPE_QUAL, RID_CONST,},
                    131:       {"static",  SCSPEC, RID_STATIC,},
                    132:       {"void",  TYPESPEC, RID_VOID,},
                    133:       {"signed",  TYPESPEC, RID_SIGNED,},
                    134:       {"",}, 
                    135:       {"protected",  VISSPEC, RID_PROTECTED,},
                    136:       {"",}, 
                    137:       {"new",  NEW, NORID,},
                    138:       {"__inline",  SCSPEC, RID_INLINE},
                    139:       {"",}, 
                    140:       {"__inline__",  SCSPEC, RID_INLINE},
                    141:       {"",}, {"",}, {"",}, {"",}, {"",}, 
                    142:       {"operator",  OPERATOR, NORID,},
                    143:       {"__signed",  TYPESPEC, RID_SIGNED},
                    144:       {"",}, {"",}, {"",}, 
                    145:       {"exception",  AGGR, RID_EXCEPTION       /* Extension */,},
                    146:       {"",}, 
                    147:       {"continue",  CONTINUE, NORID,},
                    148:       {"",}, 
                    149:       {"public",  VISSPEC, RID_PUBLIC,},
                    150:       {"classof",  CLASSOF, NORID,},
                    151:       {"",}, {"",}, 
                    152:       {"return",  RETURN, NORID,},
                    153:       {"inline",  SCSPEC, RID_INLINE,},
                    154:       {"overload",  OVERLOAD, NORID,},
                    155:       {"",}, {"",}, {"",}, {"",}, {"",}, 
                    156:       {"unsigned",  TYPESPEC, RID_UNSIGNED,},
                    157:       {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, 
                    158:       {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, 
                    159:       {"",}, {"",}, {"",}, {"",}, {"",}, 
                    160:       {"register",  SCSPEC, RID_REGISTER,},
                    161:       {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, 
                    162:       {"char",  TYPESPEC, RID_CHAR,},
                    163:       {"",}, 
                    164:       {"catch",  CATCH, NORID,},
                    165:       {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, 
                    166:       {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, 
                    167:       {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, 
                    168:       {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, 
                    169:       {"",}, {"",}, {"",}, {"dynamic",  DYNAMIC, NORID,},
                    170:     };
                    171: 
                    172:   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
                    173:     {
                    174:       register int key = hash (str, len);
                    175: 
                    176:       if (key <= MAX_HASH_VALUE && key >= 0)
                    177:         {
                    178:           register char *s = wordlist[key].name;
                    179: 
                    180:           if (*s == *str && !strcmp (str + 1, s + 1))
                    181:             return &wordlist[key];
                    182:         }
                    183:     }
                    184:   return 0;
                    185: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.