|
|
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,$ ../../devo/gcc/gplus.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 84
7: #define MIN_WORD_LENGTH 2
8: #define MAX_WORD_LENGTH 13
9: #define MIN_HASH_VALUE 4
10: #define MAX_HASH_VALUE 154
11: /* maximum key range = 151, 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: 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
24: 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
25: 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
26: 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
27: 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
28: 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
29: 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
30: 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
31: 155, 155, 155, 155, 155, 155, 155, 155, 155, 155,
32: 155, 155, 155, 155, 155, 0, 155, 41, 1, 52,
33: 25, 0, 14, 43, 28, 60, 155, 4, 19, 4,
34: 13, 1, 37, 155, 20, 0, 4, 61, 48, 30,
35: 1, 67, 155, 155, 155, 155, 155, 155,
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__", GCC_ASM_KEYWORD, NORID},
70: {"this", THIS, NORID,},
71: {"__asm", GCC_ASM_KEYWORD, NORID},
72: {"except", EXCEPT, NORID /* Extension */,},
73: {"__headof__", HEADOF, NORID},
74: {"enum", ENUM, NORID,},
75: {"",},
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: {"",},
81: {"extern", SCSPEC, RID_EXTERN,},
82: {"sizeof", SIZEOF, NORID,},
83: {"",}, {"",},
84: {"__headof", HEADOF, NORID},
85: {"typeof", TYPEOF, NORID,},
86: {"raise", RAISE, NORID /* Extension */,},
87: {"raises", RAISES, NORID /* Extension */,},
88: {"__extension__", EXTENSION, NORID},
89: {"do", DO, NORID,},
90: {"short", TYPESPEC, RID_SHORT,},
91: {"__classof__", CLASSOF, NORID},
92: {"delete", DELETE, NORID,},
93: {"double", TYPESPEC, RID_DOUBLE,},
94: {"",},
95: {"__inline", SCSPEC, RID_INLINE},
96: {"typeid", TYPEID, NORID,},
97: {"__inline__", SCSPEC, RID_INLINE},
98: {"for", FOR, NORID,},
99: {"switch", SWITCH, NORID,},
100: {"typedef", SCSPEC, RID_TYPEDEF,},
101: {"throw", THROW, NORID /* Extension */,},
102: {"",},
103: {"__classof", CLASSOF, NORID},
104: {"__alignof__", ALIGNOF, NORID},
105: {"signed", TYPESPEC, RID_SIGNED,},
106: {"friend", SCSPEC, RID_FRIEND,},
107: {"new", NEW, NORID,},
108: {"auto", SCSPEC, RID_AUTO,},
109: {"asm", ASM_KEYWORD, NORID,},
110: {"goto", GOTO, NORID,},
111: {"operator", OPERATOR, NORID,},
112: {"break", BREAK, NORID,},
113: {"mutable", SCSPEC, RID_MUTABLE,},
114: {"template", TEMPLATE, NORID,},
115: {"while", WHILE, NORID,},
116: {"__alignof", ALIGNOF, NORID},
117: {"case", CASE, NORID,},
118: {"class", AGGR, RID_CLASS,},
119: {"",}, {"",}, {"",},
120: {"const", TYPE_QUAL, RID_CONST,},
121: {"static", SCSPEC, RID_STATIC,},
122: {"all", ALL, NORID /* Extension */,},
123: {"float", TYPESPEC, RID_FLOAT,},
124: {"",}, {"",},
125: {"int", TYPESPEC, RID_INT,},
126: {"reraise", RERAISE, NORID /* Extension */,},
127: {"__label__", LABEL, NORID},
128: {"__signed__", TYPESPEC, RID_SIGNED},
129: {"struct", AGGR, RID_RECORD,},
130: {"",},
131: {"headof", HEADOF, NORID,},
132: {"try", TRY, NORID /* Extension */,},
133: {"__attribute", ATTRIBUTE, NORID},
134: {"if", IF, NORID,},
135: {"__attribute__", ATTRIBUTE, NORID},
136: {"__typeof__", TYPEOF, NORID},
137: {"protected", VISSPEC, RID_PROTECTED,},
138: {"union", AGGR, RID_UNION,},
139: {"default", DEFAULT, NORID,},
140: {"exception", AGGR, RID_EXCEPTION /* Extension */,},
141: {"",}, {"",},
142: {"__wchar_t", TYPESPEC, RID_WCHAR /* Unique to ANSI C++ */,},
143: {"",},
144: {"classof", CLASSOF, NORID,},
145: {"",}, {"",},
146: {"__typeof", TYPEOF, NORID},
147: {"",},
148: {"private", VISSPEC, RID_PRIVATE,},
149: {"__signed", TYPESPEC, RID_SIGNED},
150: {"",},
151: {"overload", OVERLOAD, NORID,},
152: {"char", TYPESPEC, RID_CHAR,},
153: {"virtual", SCSPEC, RID_VIRTUAL,},
154: {"",}, {"",},
155: {"return", RETURN, NORID,},
156: {"",},
157: {"void", TYPESPEC, RID_VOID,},
158: {"",}, {"",}, {"",}, {"",}, {"",},
159: {"register", SCSPEC, RID_REGISTER,},
160: {"long", TYPESPEC, RID_LONG,},
161: {"",}, {"",}, {"",}, {"",},
162: {"public", VISSPEC, RID_PUBLIC,},
163: {"",},
164: {"volatile", TYPE_QUAL, RID_VOLATILE,},
165: {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",},
166: {"continue", CONTINUE, NORID,},
167: {"inline", SCSPEC, RID_INLINE,},
168: {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",},
169: {"dynamic_cast", DYNAMIC_CAST, NORID,},
170: {"",}, {"",},
171: {"catch", CATCH, NORID,},
172: {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",},
173: {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",},
174: {"unsigned", TYPESPEC, RID_UNSIGNED,},
175: };
176:
177: if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
178: {
179: register int key = hash (str, len);
180:
181: if (key <= MAX_HASH_VALUE && key >= 0)
182: {
183: register char *s = wordlist[key].name;
184:
185: if (*s == *str && !strcmp (str + 1, s + 1))
186: return &wordlist[key];
187: }
188: }
189: return 0;
190: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.