1 /* C code produced by gperf version 2.7 */
2 /* Command-line: ../src/gperf -p -j1 -g -o -t -N is_reserved_word -k1,3,$ */
3 /* Command-line: gperf -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; };
6 #define TOTAL_KEYWORDS 51
7 #define MIN_WORD_LENGTH 2
8 #define MAX_WORD_LENGTH 13
9 #define MIN_HASH_VALUE 8
10 #define MAX_HASH_VALUE 82
11 /* maximum key range = 75, duplicates = 0 */
18 register const char *str;
19 register unsigned int len;
21 static unsigned char asso_values[] =
23 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
24 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
25 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
26 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
27 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
28 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
29 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
30 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
31 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
32 83, 83, 83, 83, 83, 0, 83, 1, 2, 34,
33 19, 6, 11, 29, 0, 17, 83, 0, 23, 28,
34 26, 30, 31, 83, 15, 1, 0, 28, 13, 4,
35 83, 83, 5, 83, 83, 83, 83, 83, 83, 83,
36 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
37 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
38 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
39 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
40 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
41 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
42 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
43 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
44 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
45 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
46 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
47 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
48 83, 83, 83, 83, 83, 83
50 register int hval = len;
56 hval += asso_values[(unsigned char)str[2]];
59 hval += asso_values[(unsigned char)str[0]];
62 return hval + asso_values[(unsigned char)str[len - 1]];
69 is_reserved_word (str, len)
70 register const char *str;
71 register unsigned int len;
73 static struct resword wordlist[] =
75 {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
76 {"__asm__", ASM, NORID},
78 {"__typeof__", TYPEOF, NORID},
79 {"__signed__", TYPESPEC, RID_SIGNED},
80 {"__alignof__", ALIGNOF, NORID},
81 {"break", BREAK, NORID},
82 {"__attribute__", ATTRIBUTE, NORID},
84 {"else", ELSE, NORID},
85 {"__attribute", ATTRIBUTE, NORID},
86 {"__typeof", TYPEOF, NORID},
87 {"int", TYPESPEC, RID_INT},
88 {"__alignof", ALIGNOF, NORID},
89 {"struct", STRUCT, NORID},
90 {"sizeof", SIZEOF, NORID},
91 {"switch", SWITCH, NORID},
92 {"__volatile__", TYPE_QUAL, RID_VOLATILE},
94 {"__inline__", SCSPEC, RID_INLINE},
95 {"__signed", TYPESPEC, RID_SIGNED},
96 {"__volatile", TYPE_QUAL, RID_VOLATILE},
98 {"__inline", SCSPEC, RID_INLINE},
99 {"while", WHILE, NORID},
101 {"__asm", ASM, NORID},
102 {"auto", SCSPEC, RID_AUTO},
103 {"short", TYPESPEC, RID_SHORT},
104 {"default", DEFAULT, NORID},
105 {"extern", SCSPEC, RID_EXTERN},
107 {"__const", TYPE_QUAL, RID_CONST},
108 {"static", SCSPEC, RID_STATIC},
109 {"__const__", TYPE_QUAL, RID_CONST},
111 {"case", CASE, NORID},
112 {"float", TYPESPEC, RID_FLOAT},
113 {"return", RETURN, NORID},
114 {"typeof", TYPEOF, NORID},
115 {"typedef", SCSPEC, RID_TYPEDEF},
116 {"volatile", TYPE_QUAL, RID_VOLATILE},
118 {"inline", SCSPEC, RID_INLINE},
119 {"void", TYPESPEC, RID_VOID},
120 {"char", TYPESPEC, RID_CHAR},
121 {"signed", TYPESPEC, RID_SIGNED},
122 {"unsigned", TYPESPEC, RID_UNSIGNED},
124 {"double", TYPESPEC, RID_DOUBLE},
127 {"goto", GOTO, NORID},
129 {"const", TYPE_QUAL, RID_CONST},
130 {"enum", ENUM, NORID},
131 {"register", SCSPEC, RID_REGISTER},
132 {""}, {""}, {""}, {""}, {""}, {""},
133 {"continue", CONTINUE, NORID},
135 {"union", UNION, NORID},
136 {""}, {""}, {""}, {""}, {""},
137 {"long", TYPESPEC, RID_LONG}
140 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
142 register int key = hash (str, len);
144 if (key <= MAX_HASH_VALUE && key >= 0)
146 register const char *s = wordlist[key].name;
148 if (*str == *s && !strcmp (str + 1, s + 1))
149 return &wordlist[key];