|
|
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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.