|
|
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.