Merge from vendor branch NTPD:
[dragonfly.git] / contrib / gperf / tests / test-1.exp
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; };
5
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 */
12
13 #ifdef __GNUC__
14 __inline
15 #endif
16 static unsigned int
17 hash (str, len)
18      register const char *str;
19      register unsigned int len;
20 {
21   static unsigned char asso_values[] =
22     {
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
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 #ifdef __GNUC__
66 __inline
67 #endif
68 struct resword *
69 is_reserved_word (str, len)
70      register const char *str;
71      register unsigned int len;
72 {
73   static struct resword wordlist[] =
74     {
75       {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
76       {"__asm__", ASM, NORID},
77       {""},
78       {"__typeof__", TYPEOF, NORID},
79       {"__signed__", TYPESPEC, RID_SIGNED},
80       {"__alignof__", ALIGNOF, NORID},
81       {"break", BREAK, NORID},
82       {"__attribute__", ATTRIBUTE, NORID},
83       {""}, {""},
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},
93       {""},
94       {"__inline__", SCSPEC, RID_INLINE},
95       {"__signed", TYPESPEC, RID_SIGNED},
96       {"__volatile", TYPE_QUAL, RID_VOLATILE},
97       {"if", IF, NORID},
98       {"__inline", SCSPEC, RID_INLINE},
99       {"while", WHILE, NORID},
100       {""},
101       {"__asm", ASM, NORID},
102       {"auto", SCSPEC, RID_AUTO},
103       {"short", TYPESPEC, RID_SHORT},
104       {"default", DEFAULT, NORID},
105       {"extern", SCSPEC, RID_EXTERN},
106       {""}, {""},
107       {"__const", TYPE_QUAL, RID_CONST},
108       {"static", SCSPEC, RID_STATIC},
109       {"__const__", TYPE_QUAL, RID_CONST},
110       {"for", FOR, NORID},
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},
117       {"do", DO, NORID},
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},
123       {""}, {""},
124       {"double", TYPESPEC, RID_DOUBLE},
125       {"asm", ASM, NORID},
126       {""}, {""},
127       {"goto", GOTO, NORID},
128       {""},
129       {"const", TYPE_QUAL, RID_CONST},
130       {"enum", ENUM, NORID},
131       {"register", SCSPEC, RID_REGISTER},
132       {""}, {""}, {""}, {""}, {""}, {""},
133       {"continue", CONTINUE, NORID},
134       {""},
135       {"union", UNION, NORID},
136       {""}, {""}, {""}, {""}, {""},
137       {"long", TYPESPEC, RID_LONG}
138     };
139
140   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
141     {
142       register int key = hash (str, len);
143
144       if (key <= MAX_HASH_VALUE && key >= 0)
145         {
146           register const char *s = wordlist[key].name;
147
148           if (*str == *s && !strcmp (str + 1, s + 1))
149             return &wordlist[key];
150         }
151     }
152   return 0;
153 }