Merge from vendor branch AWK:
[dragonfly.git] / contrib / gperf / tests / test-2.exp
1 /* C code produced by gperf version 2.7 */
2 /* Command-line: ../src/gperf -n -k1-8 -l  */
3
4 #define TOTAL_KEYWORDS 40
5 #define MIN_WORD_LENGTH 2
6 #define MAX_WORD_LENGTH 14
7 #define MIN_HASH_VALUE 1
8 #define MAX_HASH_VALUE 256
9 /* maximum key range = 256, duplicates = 0 */
10
11 #ifdef __GNUC__
12 __inline
13 #endif
14 static unsigned int
15 hash (str, len)
16      register const char *str;
17      register unsigned int len;
18 {
19   static unsigned short asso_values[] =
20     {
21       257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
22       257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
23       257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
24       257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
25       257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
26       257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
27       257, 257, 257, 257, 257,  25,  30,  35,  21,   0,
28        30,  15,  30,  45, 257, 257,   0,   5,  45,   0,
29        10,   0,   1,  20,  25,  15,  30,  40,  15,   5,
30       257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
31       257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
32       257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
33       257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
34       257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
35       257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
36       257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
37       257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
38       257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
39       257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
40       257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
41       257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
42       257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
43       257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
44       257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
45       257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
46       257, 257, 257, 257, 257, 257
47     };
48   register int hval = 0;
49
50   switch (len)
51     {
52       default:
53       case 8:
54         hval += asso_values[(unsigned char)str[7]];
55       case 7:
56         hval += asso_values[(unsigned char)str[6]];
57       case 6:
58         hval += asso_values[(unsigned char)str[5]];
59       case 5:
60         hval += asso_values[(unsigned char)str[4]];
61       case 4:
62         hval += asso_values[(unsigned char)str[3]];
63       case 3:
64         hval += asso_values[(unsigned char)str[2]];
65       case 2:
66         hval += asso_values[(unsigned char)str[1]];
67       case 1:
68         hval += asso_values[(unsigned char)str[0]];
69         break;
70     }
71   return hval;
72 }
73
74 #ifdef __GNUC__
75 __inline
76 #endif
77 const char *
78 in_word_set (str, len)
79      register const char *str;
80      register unsigned int len;
81 {
82   static unsigned char lengthtable[] =
83     {
84        0,  2,  0,  0,  0,  0,  0,  0,  0,  0,  4,  0,  0,  0,
85        0,  0,  0,  0,  0,  0,  4,  2,  0,  0,  0,  2,  3,  0,
86        0,  0,  2,  3,  0,  0,  0,  2,  4,  0,  0,  0,  4,  6,
87        0,  0,  0,  3,  0,  0,  0,  0,  0,  6,  0,  0,  0,  0,
88        3,  5,  6,  0,  0,  6,  0,  0,  0,  0,  3,  0,  0,  0,
89        3,  0,  0,  0,  0,  2,  0,  0,  0,  0,  4,  0,  0,  9,
90        0,  4,  6,  6,  0,  0,  2,  3,  0,  0,  0,  5,  3,  0,
91        0,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0, 14,  0,
92        0,  0,  0,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0,  5,
93        7,  0,  0,  0,  5,  0,  0,  0,  0,  5,  0,  0,  0,  0,
94        4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
95        0,  0,  0,  0,  0,  0,  9,  0,  0,  0,  0,  0,  0,  0,
96        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
97        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
98        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
99        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
100        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
101        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
102        0,  0,  0,  0, 10
103     };
104   static const char * wordlist[] =
105     {
106       "",
107       "OR",
108       "", "", "", "", "", "", "", "",
109       "LOOP",
110       "", "", "", "", "", "", "", "", "",
111       "ELSE",
112       "DO",
113       "", "", "",
114       "TO",
115       "MOD",
116       "", "", "",
117       "OF",
118       "FOR",
119       "", "", "",
120       "BY",
121       "FROM",
122       "", "", "",
123       "TYPE",
124       "MODULE",
125       "", "", "",
126       "SET",
127       "", "", "", "", "",
128       "EXPORT",
129       "", "", "", "",
130       "VAR",
131       "ARRAY",
132       "RECORD",
133       "", "",
134       "REPEAT",
135       "", "", "", "",
136       "END",
137       "", "", "",
138       "NOT",
139       "", "", "", "",
140       "IF",
141       "", "", "", "",
142       "CASE",
143       "", "",
144       "PROCEDURE",
145       "",
146       "EXIT",
147       "IMPORT",
148       "RETURN",
149       "", "",
150       "IN",
151       "AND",
152       "", "", "",
153       "ELSIF",
154       "DIV",
155       "", "", "",
156       "THEN",
157       "", "", "", "", "", "", "", "", "",
158       "IMPLEMENTATION",
159       "", "", "", "",
160       "WHILE",
161       "", "", "", "", "", "", "", "", "",
162       "CONST",
163       "POINTER",
164       "", "", "",
165       "UNTIL",
166       "", "", "", "",
167       "BEGIN",
168       "", "", "", "",
169       "WITH",
170       "", "", "", "", "", "", "", "", "",
171       "", "", "", "", "", "", "", "", "",
172       "",
173       "QUALIFIED",
174       "", "", "", "", "", "", "", "", "",
175       "", "", "", "", "", "", "", "", "",
176       "", "", "", "", "", "", "", "", "",
177       "", "", "", "", "", "", "", "", "",
178       "", "", "", "", "", "", "", "", "",
179       "", "", "", "", "", "", "", "", "",
180       "", "", "", "", "", "", "", "", "",
181       "", "", "", "", "", "", "", "", "",
182       "", "", "", "", "", "", "", "", "",
183       "", "", "", "", "", "", "", "", "",
184       "", "", "", "", "",
185       "DEFINITION"
186     };
187
188   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
189     {
190       register int key = hash (str, len);
191
192       if (key <= MAX_HASH_VALUE && key >= 0)
193         if (len == lengthtable[key])
194           {
195             register const char *s = wordlist[key];
196
197             if (*str == *s && !strcmp (str + 1, s + 1))
198               return s;
199           }
200     }
201   return 0;
202 }