1 /* C code produced by gperf version 2.7 */
2 /* Command-line: ../src/gperf -p -j 1 -o -a -C -g -t -k1,4,$ */
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;};
6 #define TOTAL_KEYWORDS 71
7 #define MIN_WORD_LENGTH 2
8 #define MAX_WORD_LENGTH 13
9 #define MIN_HASH_VALUE 4
10 #define MAX_HASH_VALUE 147
11 /* maximum key range = 144, duplicates = 0 */
18 register const char *str;
19 register unsigned int len;
21 static const unsigned char asso_values[] =
23 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
24 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
25 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
26 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
27 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
28 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
29 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
30 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
31 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
32 148, 148, 148, 148, 148, 0, 148, 19, 6, 27,
33 37, 0, 12, 1, 15, 63, 148, 4, 0, 56,
34 20, 15, 42, 148, 31, 5, 26, 39, 32, 10,
35 148, 40, 148, 148, 148, 148, 148, 148, 148, 148,
36 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
37 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
38 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
39 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
40 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
41 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
42 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
43 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
44 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
45 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
46 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
47 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
48 148, 148, 148, 148, 148, 148
50 register int hval = len;
56 hval += asso_values[(unsigned char)str[3]];
60 hval += asso_values[(unsigned char)str[0]];
63 return hval + asso_values[(unsigned char)str[len - 1]];
69 const struct resword *
70 in_word_set (str, len)
71 register const char *str;
72 register unsigned int len;
74 static const struct resword wordlist[] =
76 {""}, {""}, {""}, {""},
77 {"else", ELSE, NORID,},
79 {"long", TYPESPEC, RID_LONG,},
80 {""}, {""}, {""}, {""},
81 {"__alignof__", ALIGNOF, NORID},
82 {"__asm__", ASM, NORID},
84 {"while", WHILE, NORID,},
85 {""}, {""}, {""}, {""}, {""},
86 {"__alignof", ALIGNOF, NORID},
87 {"all", ALL, NORID /* Extension */,},
88 {"sizeof", SIZEOF, NORID,},
89 {"__const__", TYPE_QUAL, RID_CONST},
90 {"__volatile", TYPE_QUAL, RID_VOLATILE},
91 {"extern", SCSPEC, RID_EXTERN,},
92 {"__volatile__", TYPE_QUAL, RID_VOLATILE},
93 {"__inline", SCSPEC, RID_INLINE},
94 {"exception", AGGR, RID_EXCEPTION /* Extension */,},
95 {"__inline__", SCSPEC, RID_INLINE},
96 {"case", CASE, NORID,},
97 {"except", EXCEPT, NORID /* Extension */,},
99 {"break", BREAK, NORID,},
100 {"goto", GOTO, NORID,},
102 {"__attribute", ATTRIBUTE, NORID},
104 {"__attribute__", ATTRIBUTE, NORID},
105 {"this", THIS, NORID,},
106 {"raise", RAISE, NORID /* Extension */,},
107 {"class", AGGR, RID_CLASS,},
108 {"delete", DELETE, NORID,},
109 {"typeof", TYPEOF, NORID,},
110 {"typedef", SCSPEC, RID_TYPEDEF,},
111 {"for", FOR, NORID,},
112 {"raises", RAISES, NORID /* Extension */,},
113 {"__const", TYPE_QUAL, RID_CONST},
114 {"double", TYPESPEC, RID_DOUBLE,},
115 {"__typeof__", TYPEOF, NORID},
117 {"switch", SWITCH, NORID,},
118 {"auto", SCSPEC, RID_AUTO,},
120 {"friend", SCSPEC, RID_FRIEND,},
122 {"reraise", RERAISE, NORID /* Extension */,},
124 {"volatile", TYPE_QUAL, RID_VOLATILE,},
125 {"__typeof", TYPEOF, NORID},
126 {"continue", CONTINUE, NORID,},
127 {"float", TYPESPEC, RID_FLOAT,},
128 {"const", TYPE_QUAL, RID_CONST,},
129 {"static", SCSPEC, RID_STATIC,},
130 {"virtual", SCSPEC, RID_VIRTUAL,},
131 {"__asm", ASM, NORID},
132 {"short", TYPESPEC, RID_SHORT,},
133 {"signed", TYPESPEC, RID_SIGNED,},
134 {"try", TRY, NORID /* Extension */,},
136 {"__signed__", TYPESPEC, RID_SIGNED},
137 {"catch", CATCH, NORID,},
138 {"public", PUBLIC, NORID,},
139 {"struct", AGGR, RID_RECORD,},
141 {"asm", ASM, NORID,},
142 {"union", AGGR, RID_UNION,},
144 {"private", PRIVATE, NORID,},
146 {"operator", OPERATOR, NORID,},
148 {"default", DEFAULT, NORID,},
149 {"dynamic", DYNAMIC, NORID,},
150 {"overload", OVERLOAD, NORID,},
151 {"int", TYPESPEC, RID_INT,},
152 {"char", TYPESPEC, RID_CHAR,},
154 {"return", RETURN, NORID,},
155 {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
157 {"__signed", TYPESPEC, RID_SIGNED},
159 {"void", TYPESPEC, RID_VOID,},
161 {"protected", PROTECTED, NORID,},
163 {"enum", ENUM, NORID,},
164 {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
165 {""}, {""}, {""}, {""}, {""}, {""},
166 {"inline", SCSPEC, RID_INLINE,},
167 {"register", SCSPEC, RID_REGISTER,},
168 {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
169 {""}, {""}, {""}, {""},
170 {"unsigned", TYPESPEC, RID_UNSIGNED,}
173 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
175 register int key = hash (str, len);
177 if (key <= MAX_HASH_VALUE && key >= 0)
179 register const char *s = wordlist[key].name;
181 if (*str == *s && !strcmp (str + 1, s + 1))
182 return &wordlist[key];