|
|
1.1 root 1: /* C code produced by gperf version 2.5 (GNU C++ version) */
2: /* Command-line: gperf -p -j1 -i 1 -g -o -t -G -N is_reserved_word -k1,3,$ c-parse.gperf */
3: struct resword { char *name; short token; enum rid rid; };
4:
5: #define TOTAL_KEYWORDS 79
6: #define MIN_WORD_LENGTH 2
7: #define MAX_WORD_LENGTH 20
8: #define MIN_HASH_VALUE 10
9: #define MAX_HASH_VALUE 144
10: /* maximum key range = 135, duplicates = 0 */
11:
12: #ifdef __GNUC__
13: __inline
14: #endif
15: static unsigned int
16: hash (str, len)
17: register char *str;
18: register int unsigned len;
19: {
20: static unsigned char asso_values[] =
21: {
22: 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
23: 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
24: 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
25: 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
26: 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
27: 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
28: 145, 145, 145, 145, 25, 145, 145, 145, 145, 145,
29: 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
30: 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
31: 145, 145, 145, 145, 145, 1, 145, 46, 8, 15,
32: 61, 6, 36, 48, 3, 5, 145, 18, 63, 25,
33: 29, 76, 1, 145, 13, 2, 1, 51, 37, 9,
34: 9, 1, 3, 145, 145, 145, 145, 145,
35: };
36: register int hval = len;
37:
38: switch (hval)
39: {
40: default:
41: case 3:
42: hval += asso_values[str[2]];
43: case 2:
44: case 1:
45: hval += asso_values[str[0]];
46: }
47: return hval + asso_values[str[len - 1]];
48: }
49:
50: static struct resword wordlist[] =
51: {
52: {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",},
53: {"",},
54: {"int", TYPESPEC, RID_INT},
55: {"",}, {"",},
56: {"__typeof__", TYPEOF, NORID},
57: {"__signed__", TYPESPEC, RID_SIGNED},
58: {"__imag__", IMAGPART, NORID},
59: {"switch", SWITCH, NORID},
60: {"__inline__", SCSPEC, RID_INLINE},
61: {"else", ELSE, NORID},
62: {"__iterator__", SCSPEC, RID_ITERATOR},
63: {"__inline", SCSPEC, RID_INLINE},
64: {"__extension__", EXTENSION, NORID},
65: {"struct", STRUCT, NORID},
66: {"__real__", REALPART, NORID},
67: {"__const", TYPE_QUAL, RID_CONST},
68: {"while", WHILE, NORID},
69: {"__const__", TYPE_QUAL, RID_CONST},
70: {"case", CASE, NORID},
71: {"__complex__", TYPESPEC, RID_COMPLEX},
72: {"__iterator", SCSPEC, RID_ITERATOR},
73: {"bycopy", TYPE_QUAL, RID_BYCOPY},
74: {"",}, {"",}, {"",},
75: {"__complex", TYPESPEC, RID_COMPLEX},
76: {"",},
77: {"in", TYPE_QUAL, RID_IN},
78: {"break", BREAK, NORID},
79: {"@defs", DEFS, NORID},
80: {"",}, {"",}, {"",},
81: {"extern", SCSPEC, RID_EXTERN},
82: {"if", IF, NORID},
83: {"typeof", TYPEOF, NORID},
84: {"typedef", SCSPEC, RID_TYPEDEF},
85: {"__typeof", TYPEOF, NORID},
86: {"sizeof", SIZEOF, NORID},
87: {"",},
88: {"return", RETURN, NORID},
89: {"const", TYPE_QUAL, RID_CONST},
90: {"__volatile__", TYPE_QUAL, RID_VOLATILE},
91: {"@private", PRIVATE, NORID},
92: {"@selector", SELECTOR, NORID},
93: {"__volatile", TYPE_QUAL, RID_VOLATILE},
94: {"__asm__", ASM_KEYWORD, NORID},
95: {"",}, {"",},
96: {"continue", CONTINUE, NORID},
97: {"__alignof__", ALIGNOF, NORID},
98: {"__imag", IMAGPART, NORID},
99: {"__attribute__", ATTRIBUTE, NORID},
100: {"",}, {"",},
101: {"__attribute", ATTRIBUTE, NORID},
102: {"for", FOR, NORID},
103: {"",},
104: {"@encode", ENCODE, NORID},
105: {"id", OBJECTNAME, RID_ID},
106: {"static", SCSPEC, RID_STATIC},
107: {"@interface", INTERFACE, NORID},
108: {"",},
109: {"__signed", TYPESPEC, RID_SIGNED},
110: {"",},
111: {"__label__", LABEL, NORID},
112: {"",}, {"",},
113: {"__asm", ASM_KEYWORD, NORID},
114: {"char", TYPESPEC, RID_CHAR},
115: {"",},
116: {"inline", SCSPEC, RID_INLINE},
117: {"out", TYPE_QUAL, RID_OUT},
118: {"register", SCSPEC, RID_REGISTER},
119: {"__real", REALPART, NORID},
120: {"short", TYPESPEC, RID_SHORT},
121: {"",},
122: {"enum", ENUM, NORID},
123: {"inout", TYPE_QUAL, RID_INOUT},
124: {"",},
125: {"oneway", TYPE_QUAL, RID_ONEWAY},
126: {"union", UNION, NORID},
127: {"",},
128: {"__alignof", ALIGNOF, NORID},
129: {"",},
130: {"@implementation", IMPLEMENTATION, NORID},
131: {"",},
132: {"@class", CLASS, NORID},
133: {"",},
134: {"@public", PUBLIC, NORID},
135: {"asm", ASM_KEYWORD, NORID},
136: {"",}, {"",}, {"",}, {"",}, {"",},
137: {"default", DEFAULT, NORID},
138: {"",},
139: {"void", TYPESPEC, RID_VOID},
140: {"",},
141: {"@protected", PROTECTED, NORID},
142: {"@protocol", PROTOCOL, NORID},
143: {"",}, {"",}, {"",},
144: {"volatile", TYPE_QUAL, RID_VOLATILE},
145: {"",}, {"",},
146: {"signed", TYPESPEC, RID_SIGNED},
147: {"float", TYPESPEC, RID_FLOAT},
148: {"@end", END, NORID},
149: {"",}, {"",},
150: {"unsigned", TYPESPEC, RID_UNSIGNED},
151: {"@compatibility_alias", ALIAS, NORID},
152: {"double", TYPESPEC, RID_DOUBLE},
153: {"",}, {"",},
154: {"auto", SCSPEC, RID_AUTO},
155: {"",},
156: {"goto", GOTO, NORID},
157: {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",}, {"",},
158: {"do", DO, NORID},
159: {"",}, {"",}, {"",}, {"",},
160: {"long", TYPESPEC, RID_LONG},
161: };
162:
163: #ifdef __GNUC__
164: __inline
165: #endif
166: struct resword *
167: is_reserved_word (str, len)
168: register char *str;
169: register unsigned int len;
170: {
171: if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
172: {
173: register int key = hash (str, len);
174:
175: if (key <= MAX_HASH_VALUE && key >= 0)
176: {
177: register char *s = wordlist[key].name;
178:
179: if (*s == *str && !strcmp (str + 1, s + 1))
180: return &wordlist[key];
181: }
182: }
183: return 0;
184: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.