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