xapian-core  2.0.0
earlyenglish.cc
Go to the documentation of this file.
1 /* Generated from earlyenglish.sbl by Snowball 3.0.0 - https://snowballstem.org/ */
2 
3 #include <config.h>
4 
5 #define SNOWBALL_RUNTIME_THROW_EXCEPTIONS
6 #include "earlyenglish.h"
7 
8 #include <stddef.h>
9 
11 
12 static int r_exception1(struct SN_env * z);
13 static int r_Step_5(struct SN_env * z);
14 static int r_Step_4(struct SN_env * z);
15 static int r_Step_3(struct SN_env * z);
16 static int r_Step_2(struct SN_env * z);
17 static int r_Step_1c(struct SN_env * z);
18 static int r_Step_1b(struct SN_env * z);
19 static int r_Step_1a(struct SN_env * z);
20 static int r_R2(struct SN_env * z);
21 static int r_R1(struct SN_env * z);
22 static int r_shortv(struct SN_env * z);
23 static int r_mark_regions(struct SN_env * z);
24 static int r_postlude(struct SN_env * z);
25 static int r_prelude(struct SN_env * z);
26 
27 static const symbol s_0[] = { 'Y' };
28 static const symbol s_1[] = { 'Y' };
29 static const symbol s_2[] = { 'p', 'a', 's', 't' };
30 static const symbol s_3[] = { 's', 's' };
31 static const symbol s_4[] = { 'i' };
32 static const symbol s_5[] = { 'i', 'e' };
33 static const symbol s_6[] = { 'e', 'e' };
34 static const symbol s_7[] = { 'i', 'e' };
35 static const symbol s_8[] = { 'e' };
36 static const symbol s_9[] = { 'e' };
37 static const symbol s_10[] = { 'i' };
38 static const symbol s_11[] = { 't', 'i', 'o', 'n' };
39 static const symbol s_12[] = { 'e', 'n', 'c', 'e' };
40 static const symbol s_13[] = { 'a', 'n', 'c', 'e' };
41 static const symbol s_14[] = { 'a', 'b', 'l', 'e' };
42 static const symbol s_15[] = { 'e', 'n', 't' };
43 static const symbol s_16[] = { 'i', 'z', 'e' };
44 static const symbol s_17[] = { 'a', 't', 'e' };
45 static const symbol s_18[] = { 'a', 'l' };
46 static const symbol s_19[] = { 'f', 'u', 'l' };
47 static const symbol s_20[] = { 'o', 'u', 's' };
48 static const symbol s_21[] = { 'i', 'v', 'e' };
49 static const symbol s_22[] = { 'b', 'l', 'e' };
50 static const symbol s_23[] = { 'o', 'g' };
51 static const symbol s_24[] = { 'o', 'g' };
52 static const symbol s_25[] = { 'l', 'e', 's', 's' };
53 static const symbol s_26[] = { 't', 'i', 'o', 'n' };
54 static const symbol s_27[] = { 'a', 't', 'e' };
55 static const symbol s_28[] = { 'a', 'l' };
56 static const symbol s_29[] = { 'i', 'c' };
57 static const symbol s_30[] = { 's', 'k', 'i' };
58 static const symbol s_31[] = { 's', 'k', 'y' };
59 static const symbol s_32[] = { 'i', 'd', 'l' };
60 static const symbol s_33[] = { 'g', 'e', 'n', 't', 'l' };
61 static const symbol s_34[] = { 'u', 'g', 'l', 'i' };
62 static const symbol s_35[] = { 'e', 'a', 'r', 'l', 'i' };
63 static const symbol s_36[] = { 'o', 'n', 'l', 'i' };
64 static const symbol s_37[] = { 's', 'i', 'n', 'g', 'l' };
65 static const symbol s_38[] = { 'y' };
66 
67 static const symbol s_0_0[5] = { 'a', 'r', 's', 'e', 'n' };
68 static const symbol s_0_1[6] = { 'c', 'o', 'm', 'm', 'u', 'n' };
69 static const symbol s_0_2[5] = { 'e', 'm', 'e', 'r', 'g' };
70 static const symbol s_0_3[5] = { 'g', 'e', 'n', 'e', 'r' };
71 static const symbol s_0_4[5] = { 'i', 'n', 't', 'e', 'r' };
72 static const symbol s_0_5[5] = { 'l', 'a', 't', 'e', 'r' };
73 static const symbol s_0_6[5] = { 'o', 'r', 'g', 'a', 'n' };
74 static const symbol s_0_7[4] = { 'p', 'a', 's', 't' };
75 static const symbol s_0_8[7] = { 'u', 'n', 'i', 'v', 'e', 'r', 's' };
76 static const struct among a_0[9] = {
77 { 5, s_0_0, 0, -1, 0},
78 { 6, s_0_1, 0, -1, 0},
79 { 5, s_0_2, 0, -1, 0},
80 { 5, s_0_3, 0, -1, 0},
81 { 5, s_0_4, 0, -1, 0},
82 { 5, s_0_5, 0, -1, 0},
83 { 5, s_0_6, 0, -1, 0},
84 { 4, s_0_7, 0, -1, 0},
85 { 7, s_0_8, 0, -1, 0}
86 };
87 
88 static const symbol s_1_0[1] = { '\'' };
89 static const symbol s_1_1[3] = { '\'', 's', '\'' };
90 static const symbol s_1_2[2] = { '\'', 's' };
91 static const struct among a_1[3] = {
92 { 1, s_1_0, 0, 1, 0},
93 { 3, s_1_1, -1, 1, 0},
94 { 2, s_1_2, 0, 1, 0}
95 };
96 
97 static const symbol s_2_0[3] = { 'i', 'e', 'd' };
98 static const symbol s_2_1[1] = { 's' };
99 static const symbol s_2_2[3] = { 'i', 'e', 's' };
100 static const symbol s_2_3[4] = { 's', 's', 'e', 's' };
101 static const symbol s_2_4[2] = { 's', 's' };
102 static const symbol s_2_5[2] = { 'u', 's' };
103 static const struct among a_2[6] = {
104 { 3, s_2_0, 0, 2, 0},
105 { 1, s_2_1, 0, 3, 0},
106 { 3, s_2_2, -1, 2, 0},
107 { 4, s_2_3, -2, 1, 0},
108 { 2, s_2_4, -3, -1, 0},
109 { 2, s_2_5, -4, -1, 0}
110 };
111 
112 static const symbol s_3_0[4] = { 's', 'u', 'c', 'c' };
113 static const symbol s_3_1[4] = { 'p', 'r', 'o', 'c' };
114 static const symbol s_3_2[3] = { 'e', 'x', 'c' };
115 static const struct among a_3[3] = {
116 { 4, s_3_0, 0, 1, 0},
117 { 4, s_3_1, 0, 1, 0},
118 { 3, s_3_2, 0, 1, 0}
119 };
120 
121 static const symbol s_4_0[4] = { 'e', 'v', 'e', 'n' };
122 static const symbol s_4_1[4] = { 'c', 'a', 'n', 'n' };
123 static const symbol s_4_2[3] = { 'i', 'n', 'n' };
124 static const symbol s_4_3[4] = { 'e', 'a', 'r', 'r' };
125 static const symbol s_4_4[4] = { 'h', 'e', 'r', 'r' };
126 static const symbol s_4_5[3] = { 'o', 'u', 't' };
127 static const symbol s_4_6[1] = { 'y' };
128 static const struct among a_4[7] = {
129 { 4, s_4_0, 0, 2, 0},
130 { 4, s_4_1, 0, 2, 0},
131 { 3, s_4_2, 0, 2, 0},
132 { 4, s_4_3, 0, 2, 0},
133 { 4, s_4_4, 0, 2, 0},
134 { 3, s_4_5, 0, 2, 0},
135 { 1, s_4_6, 0, 1, 0}
136 };
137 
138 static const symbol s_5_1[2] = { 'e', 'd' };
139 static const symbol s_5_2[3] = { 'e', 'e', 'd' };
140 static const symbol s_5_3[3] = { 'i', 'n', 'g' };
141 static const symbol s_5_4[3] = { 'e', 't', 'h' };
142 static const symbol s_5_5[3] = { 'e', 's', 't' };
143 static const symbol s_5_6[4] = { 'e', 'd', 'l', 'y' };
144 static const symbol s_5_7[5] = { 'e', 'e', 'd', 'l', 'y' };
145 static const symbol s_5_8[5] = { 'i', 'n', 'g', 'l', 'y' };
146 static const struct among a_5[9] = {
147 { 0, 0, 0, -1, 0},
148 { 2, s_5_1, -1, 2, 0},
149 { 3, s_5_2, -1, 1, 0},
150 { 3, s_5_3, -3, 3, 0},
151 { 3, s_5_4, -4, 2, 0},
152 { 3, s_5_5, -5, 2, 0},
153 { 4, s_5_6, -6, 2, 0},
154 { 5, s_5_7, -1, 1, 0},
155 { 5, s_5_8, -8, 2, 0}
156 };
157 
158 static const symbol s_6_1[2] = { 'b', 'b' };
159 static const symbol s_6_2[2] = { 'd', 'd' };
160 static const symbol s_6_3[2] = { 'f', 'f' };
161 static const symbol s_6_4[2] = { 'g', 'g' };
162 static const symbol s_6_5[2] = { 'b', 'l' };
163 static const symbol s_6_6[2] = { 'm', 'm' };
164 static const symbol s_6_7[2] = { 'n', 'n' };
165 static const symbol s_6_8[2] = { 'p', 'p' };
166 static const symbol s_6_9[2] = { 'r', 'r' };
167 static const symbol s_6_10[2] = { 'a', 't' };
168 static const symbol s_6_11[2] = { 't', 't' };
169 static const symbol s_6_12[2] = { 'i', 'z' };
170 static const struct among a_6[13] = {
171 { 0, 0, 0, 3, 0},
172 { 2, s_6_1, -1, 2, 0},
173 { 2, s_6_2, -2, 2, 0},
174 { 2, s_6_3, -3, 2, 0},
175 { 2, s_6_4, -4, 2, 0},
176 { 2, s_6_5, -5, 1, 0},
177 { 2, s_6_6, -6, 2, 0},
178 { 2, s_6_7, -7, 2, 0},
179 { 2, s_6_8, -8, 2, 0},
180 { 2, s_6_9, -9, 2, 0},
181 { 2, s_6_10, -10, 1, 0},
182 { 2, s_6_11, -11, 2, 0},
183 { 2, s_6_12, -12, 1, 0}
184 };
185 
186 static const symbol s_7_0[4] = { 'a', 'n', 'c', 'i' };
187 static const symbol s_7_1[4] = { 'e', 'n', 'c', 'i' };
188 static const symbol s_7_2[3] = { 'o', 'g', 'i' };
189 static const symbol s_7_3[2] = { 'l', 'i' };
190 static const symbol s_7_4[3] = { 'b', 'l', 'i' };
191 static const symbol s_7_5[4] = { 'a', 'b', 'l', 'i' };
192 static const symbol s_7_6[4] = { 'a', 'l', 'l', 'i' };
193 static const symbol s_7_7[5] = { 'f', 'u', 'l', 'l', 'i' };
194 static const symbol s_7_8[6] = { 'l', 'e', 's', 's', 'l', 'i' };
195 static const symbol s_7_9[5] = { 'o', 'u', 's', 'l', 'i' };
196 static const symbol s_7_10[5] = { 'e', 'n', 't', 'l', 'i' };
197 static const symbol s_7_11[5] = { 'a', 'l', 'i', 't', 'i' };
198 static const symbol s_7_12[6] = { 'b', 'i', 'l', 'i', 't', 'i' };
199 static const symbol s_7_13[5] = { 'i', 'v', 'i', 't', 'i' };
200 static const symbol s_7_14[6] = { 't', 'i', 'o', 'n', 'a', 'l' };
201 static const symbol s_7_15[7] = { 'a', 't', 'i', 'o', 'n', 'a', 'l' };
202 static const symbol s_7_16[5] = { 'a', 'l', 'i', 's', 'm' };
203 static const symbol s_7_17[5] = { 'a', 't', 'i', 'o', 'n' };
204 static const symbol s_7_18[7] = { 'i', 'z', 'a', 't', 'i', 'o', 'n' };
205 static const symbol s_7_19[4] = { 'i', 'z', 'e', 'r' };
206 static const symbol s_7_20[4] = { 'a', 't', 'o', 'r' };
207 static const symbol s_7_21[7] = { 'i', 'v', 'e', 'n', 'e', 's', 's' };
208 static const symbol s_7_22[7] = { 'f', 'u', 'l', 'n', 'e', 's', 's' };
209 static const symbol s_7_23[7] = { 'o', 'u', 's', 'n', 'e', 's', 's' };
210 static const symbol s_7_24[5] = { 'o', 'g', 'i', 's', 't' };
211 static const struct among a_7[25] = {
212 { 4, s_7_0, 0, 3, 0},
213 { 4, s_7_1, 0, 2, 0},
214 { 3, s_7_2, 0, 14, 0},
215 { 2, s_7_3, 0, 16, 0},
216 { 3, s_7_4, -1, 12, 0},
217 { 4, s_7_5, -1, 4, 0},
218 { 4, s_7_6, -3, 8, 0},
219 { 5, s_7_7, -4, 9, 0},
220 { 6, s_7_8, -5, 15, 0},
221 { 5, s_7_9, -6, 10, 0},
222 { 5, s_7_10, -7, 5, 0},
223 { 5, s_7_11, 0, 8, 0},
224 { 6, s_7_12, 0, 12, 0},
225 { 5, s_7_13, 0, 11, 0},
226 { 6, s_7_14, 0, 1, 0},
227 { 7, s_7_15, -1, 7, 0},
228 { 5, s_7_16, 0, 8, 0},
229 { 5, s_7_17, 0, 7, 0},
230 { 7, s_7_18, -1, 6, 0},
231 { 4, s_7_19, 0, 6, 0},
232 { 4, s_7_20, 0, 7, 0},
233 { 7, s_7_21, 0, 11, 0},
234 { 7, s_7_22, 0, 9, 0},
235 { 7, s_7_23, 0, 10, 0},
236 { 5, s_7_24, 0, 13, 0}
237 };
238 
239 static const symbol s_8_0[5] = { 'i', 'c', 'a', 't', 'e' };
240 static const symbol s_8_1[5] = { 'a', 't', 'i', 'v', 'e' };
241 static const symbol s_8_2[5] = { 'a', 'l', 'i', 'z', 'e' };
242 static const symbol s_8_3[5] = { 'i', 'c', 'i', 't', 'i' };
243 static const symbol s_8_4[4] = { 'i', 'c', 'a', 'l' };
244 static const symbol s_8_5[6] = { 't', 'i', 'o', 'n', 'a', 'l' };
245 static const symbol s_8_6[7] = { 'a', 't', 'i', 'o', 'n', 'a', 'l' };
246 static const symbol s_8_7[3] = { 'f', 'u', 'l' };
247 static const symbol s_8_8[4] = { 'n', 'e', 's', 's' };
248 static const struct among a_8[9] = {
249 { 5, s_8_0, 0, 4, 0},
250 { 5, s_8_1, 0, 6, 0},
251 { 5, s_8_2, 0, 3, 0},
252 { 5, s_8_3, 0, 4, 0},
253 { 4, s_8_4, 0, 4, 0},
254 { 6, s_8_5, 0, 1, 0},
255 { 7, s_8_6, -1, 2, 0},
256 { 3, s_8_7, 0, 5, 0},
257 { 4, s_8_8, 0, 5, 0}
258 };
259 
260 static const symbol s_9_0[2] = { 'i', 'c' };
261 static const symbol s_9_1[4] = { 'a', 'n', 'c', 'e' };
262 static const symbol s_9_2[4] = { 'e', 'n', 'c', 'e' };
263 static const symbol s_9_3[4] = { 'a', 'b', 'l', 'e' };
264 static const symbol s_9_4[4] = { 'i', 'b', 'l', 'e' };
265 static const symbol s_9_5[3] = { 'a', 't', 'e' };
266 static const symbol s_9_6[3] = { 'i', 'v', 'e' };
267 static const symbol s_9_7[3] = { 'i', 'z', 'e' };
268 static const symbol s_9_8[3] = { 'i', 't', 'i' };
269 static const symbol s_9_9[2] = { 'a', 'l' };
270 static const symbol s_9_10[3] = { 'i', 's', 'm' };
271 static const symbol s_9_11[3] = { 'i', 'o', 'n' };
272 static const symbol s_9_12[2] = { 'e', 'r' };
273 static const symbol s_9_13[3] = { 'o', 'u', 's' };
274 static const symbol s_9_14[3] = { 'a', 'n', 't' };
275 static const symbol s_9_15[3] = { 'e', 'n', 't' };
276 static const symbol s_9_16[4] = { 'm', 'e', 'n', 't' };
277 static const symbol s_9_17[5] = { 'e', 'm', 'e', 'n', 't' };
278 static const struct among a_9[18] = {
279 { 2, s_9_0, 0, 1, 0},
280 { 4, s_9_1, 0, 1, 0},
281 { 4, s_9_2, 0, 1, 0},
282 { 4, s_9_3, 0, 1, 0},
283 { 4, s_9_4, 0, 1, 0},
284 { 3, s_9_5, 0, 1, 0},
285 { 3, s_9_6, 0, 1, 0},
286 { 3, s_9_7, 0, 1, 0},
287 { 3, s_9_8, 0, 1, 0},
288 { 2, s_9_9, 0, 1, 0},
289 { 3, s_9_10, 0, 1, 0},
290 { 3, s_9_11, 0, 2, 0},
291 { 2, s_9_12, 0, 1, 0},
292 { 3, s_9_13, 0, 1, 0},
293 { 3, s_9_14, 0, 1, 0},
294 { 3, s_9_15, 0, 1, 0},
295 { 4, s_9_16, -1, 1, 0},
296 { 5, s_9_17, -1, 1, 0}
297 };
298 
299 static const symbol s_10_0[1] = { 'e' };
300 static const symbol s_10_1[1] = { 'l' };
301 static const struct among a_10[2] = {
302 { 1, s_10_0, 0, 1, 0},
303 { 1, s_10_1, 0, 2, 0}
304 };
305 
306 static const symbol s_11_0[5] = { 'a', 'n', 'd', 'e', 's' };
307 static const symbol s_11_1[5] = { 'a', 't', 'l', 'a', 's' };
308 static const symbol s_11_2[4] = { 'b', 'i', 'a', 's' };
309 static const symbol s_11_3[6] = { 'c', 'o', 's', 'm', 'o', 's' };
310 static const symbol s_11_4[5] = { 'e', 'a', 'r', 'l', 'y' };
311 static const symbol s_11_5[6] = { 'g', 'e', 'n', 't', 'l', 'y' };
312 static const symbol s_11_6[4] = { 'h', 'o', 'w', 'e' };
313 static const symbol s_11_7[4] = { 'i', 'd', 'l', 'y' };
314 static const symbol s_11_8[4] = { 'n', 'e', 'w', 's' };
315 static const symbol s_11_9[4] = { 'o', 'n', 'l', 'y' };
316 static const symbol s_11_10[6] = { 's', 'i', 'n', 'g', 'l', 'y' };
317 static const symbol s_11_11[5] = { 's', 'k', 'i', 'e', 's' };
318 static const symbol s_11_12[4] = { 's', 'k', 'i', 's' };
319 static const symbol s_11_13[3] = { 's', 'k', 'y' };
320 static const symbol s_11_14[4] = { 'u', 'g', 'l', 'y' };
321 static const struct among a_11[15] = {
322 { 5, s_11_0, 0, -1, 0},
323 { 5, s_11_1, 0, -1, 0},
324 { 4, s_11_2, 0, -1, 0},
325 { 6, s_11_3, 0, -1, 0},
326 { 5, s_11_4, 0, 6, 0},
327 { 6, s_11_5, 0, 4, 0},
328 { 4, s_11_6, 0, -1, 0},
329 { 4, s_11_7, 0, 3, 0},
330 { 4, s_11_8, 0, -1, 0},
331 { 4, s_11_9, 0, 7, 0},
332 { 6, s_11_10, 0, 8, 0},
333 { 5, s_11_11, 0, 2, 0},
334 { 4, s_11_12, 0, 1, 0},
335 { 3, s_11_13, 0, -1, 0},
336 { 4, s_11_14, 0, 5, 0}
337 };
338 
339 static const unsigned char g_aeo[] = { 17, 64 };
340 
341 static const unsigned char g_v[] = { 17, 65, 16, 1 };
342 
343 static const unsigned char g_v_WXY[] = { 1, 17, 65, 208, 1 };
344 
345 static const unsigned char g_valid_LI[] = { 55, 141, 2 };
346 
347 static int r_prelude(struct SN_env * z) {
348  ((SN_local *)z)->b_Y_found = false;
349  {
350  int v_1 = z->c;
351  z->bra = z->c;
352  if (z->c == z->l || z->p[z->c] != '\'') goto lab0;
353  z->c++;
354  z->ket = z->c;
355  slice_del(z);
356  lab0:
357  z->c = v_1;
358  }
359  {
360  int v_2 = z->c;
361  z->bra = z->c;
362  if (z->c == z->l || z->p[z->c] != 'y') goto lab1;
363  z->c++;
364  z->ket = z->c;
365  slice_from_s(z, 1, s_0);
366  ((SN_local *)z)->b_Y_found = true;
367  lab1:
368  z->c = v_2;
369  }
370  {
371  int v_3 = z->c;
372  while (1) {
373  int v_4 = z->c;
374  while (1) {
375  int v_5 = z->c;
376  if (in_grouping_U(z, g_v, 97, 121, 0)) goto lab4;
377  z->bra = z->c;
378  if (z->c == z->l || z->p[z->c] != 'y') goto lab4;
379  z->c++;
380  z->ket = z->c;
381  z->c = v_5;
382  break;
383  lab4:
384  z->c = v_5;
385  {
386  int ret = skip_utf8(z->p, z->c, z->l, 1);
387  if (ret < 0) goto lab3;
388  z->c = ret;
389  }
390  }
391  slice_from_s(z, 1, s_1);
392  ((SN_local *)z)->b_Y_found = true;
393  continue;
394  lab3:
395  z->c = v_4;
396  break;
397  }
398  z->c = v_3;
399  }
400  return 1;
401 }
402 
403 static int r_mark_regions(struct SN_env * z) {
404  ((SN_local *)z)->i_p1 = z->l;
405  ((SN_local *)z)->i_p2 = z->l;
406  {
407  int v_1 = z->c;
408  do {
409  int v_2 = z->c;
410  if (z->c + 3 >= z->l || z->p[z->c + 3] >> 5 != 3 || !((5513250 >> (z->p[z->c + 3] & 0x1f)) & 1)) goto lab1;
411  if (!find_among(z, a_0, 9, 0)) goto lab1;
412  break;
413  lab1:
414  z->c = v_2;
415  {
416  int ret = out_grouping_U(z, g_v, 97, 121, 1);
417  if (ret < 0) goto lab0;
418  z->c += ret;
419  }
420  {
421  int ret = in_grouping_U(z, g_v, 97, 121, 1);
422  if (ret < 0) goto lab0;
423  z->c += ret;
424  }
425  } while (0);
426  ((SN_local *)z)->i_p1 = z->c;
427  {
428  int ret = out_grouping_U(z, g_v, 97, 121, 1);
429  if (ret < 0) goto lab0;
430  z->c += ret;
431  }
432  {
433  int ret = in_grouping_U(z, g_v, 97, 121, 1);
434  if (ret < 0) goto lab0;
435  z->c += ret;
436  }
437  ((SN_local *)z)->i_p2 = z->c;
438  lab0:
439  z->c = v_1;
440  }
441  return 1;
442 }
443 
444 static int r_shortv(struct SN_env * z) {
445  do {
446  int v_1 = z->l - z->c;
447  if (out_grouping_b_U(z, g_v_WXY, 89, 121, 0)) goto lab0;
448  if (in_grouping_b_U(z, g_v, 97, 121, 0)) goto lab0;
449  if (out_grouping_b_U(z, g_v, 97, 121, 0)) goto lab0;
450  break;
451  lab0:
452  z->c = z->l - v_1;
453  if (out_grouping_b_U(z, g_v, 97, 121, 0)) goto lab1;
454  if (in_grouping_b_U(z, g_v, 97, 121, 0)) goto lab1;
455  if (z->c > z->lb) goto lab1;
456  break;
457  lab1:
458  z->c = z->l - v_1;
459  if (!(eq_s_b(z, 4, s_2))) return 0;
460  } while (0);
461  return 1;
462 }
463 
464 static int r_R1(struct SN_env * z) {
465  return ((SN_local *)z)->i_p1 <= z->c;
466 }
467 
468 static int r_R2(struct SN_env * z) {
469  return ((SN_local *)z)->i_p2 <= z->c;
470 }
471 
472 static int r_Step_1a(struct SN_env * z) {
473  int among_var;
474  {
475  int v_1 = z->l - z->c;
476  z->ket = z->c;
477  if (z->c <= z->lb || (z->p[z->c - 1] != 39 && z->p[z->c - 1] != 115)) { z->c = z->l - v_1; goto lab0; }
478  if (!find_among_b(z, a_1, 3, 0)) { z->c = z->l - v_1; goto lab0; }
479  z->bra = z->c;
480  slice_del(z);
481  lab0:
482  ;
483  }
484  z->ket = z->c;
485  if (z->c <= z->lb || (z->p[z->c - 1] != 100 && z->p[z->c - 1] != 115)) return 0;
486  among_var = find_among_b(z, a_2, 6, 0);
487  if (!among_var) return 0;
488  z->bra = z->c;
489  switch (among_var) {
490  case 1:
491  slice_from_s(z, 2, s_3);
492  break;
493  case 2:
494  do {
495  int v_2 = z->l - z->c;
496  {
497  int ret = skip_b_utf8(z->p, z->c, z->lb, 2);
498  if (ret < 0) goto lab1;
499  z->c = ret;
500  }
501  slice_from_s(z, 1, s_4);
502  break;
503  lab1:
504  z->c = z->l - v_2;
505  slice_from_s(z, 2, s_5);
506  } while (0);
507  break;
508  case 3:
509  {
510  int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
511  if (ret < 0) return 0;
512  z->c = ret;
513  }
514  {
515  int ret = out_grouping_b_U(z, g_v, 97, 121, 1);
516  if (ret < 0) return 0;
517  z->c -= ret;
518  }
519  slice_del(z);
520  break;
521  }
522  return 1;
523 }
524 
525 static int r_Step_1b(struct SN_env * z) {
526  int among_var;
527  z->ket = z->c;
528  if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((34603408 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = -1; else
529  among_var = find_among_b(z, a_5, 9, 0);
530  z->bra = z->c;
531  do {
532  int v_1 = z->l - z->c;
533  switch (among_var) {
534  case 1:
535  {
536  int v_2 = z->l - z->c;
537  if (!r_R1(z)) goto lab1;
538  do {
539  int v_3 = z->l - z->c;
540  if (z->c - 2 <= z->lb || z->p[z->c - 1] != 99) goto lab2;
541  if (!find_among_b(z, a_3, 3, 0)) goto lab2;
542  if (z->c > z->lb) goto lab2;
543  break;
544  lab2:
545  z->c = z->l - v_3;
546  slice_from_s(z, 2, s_6);
547  } while (0);
548  lab1:
549  z->c = z->l - v_2;
550  }
551  break;
552  case 2:
553  goto lab0;
554  break;
555  case 3:
556  if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((34881536 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
557  among_var = find_among_b(z, a_4, 7, 0);
558  if (!among_var) goto lab0;
559  switch (among_var) {
560  case 1:
561  {
562  int v_4 = z->l - z->c;
563  if (out_grouping_b_U(z, g_v, 97, 121, 0)) goto lab0;
564  if (z->c > z->lb) goto lab0;
565  z->c = z->l - v_4;
566  }
567  z->bra = z->c;
568  slice_from_s(z, 2, s_7);
569  break;
570  case 2:
571  if (z->c > z->lb) goto lab0;
572  break;
573  }
574  break;
575  }
576  break;
577  lab0:
578  z->c = z->l - v_1;
579  {
580  int v_5 = z->l - z->c;
581  {
582  int ret = out_grouping_b_U(z, g_v, 97, 121, 1);
583  if (ret < 0) return 0;
584  z->c -= ret;
585  }
586  z->c = z->l - v_5;
587  }
588  slice_del(z);
589  z->ket = z->c;
590  z->bra = z->c;
591  {
592  int v_6 = z->l - z->c;
593  if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((68514004 >> (z->p[z->c - 1] & 0x1f)) & 1)) among_var = 3; else
594  among_var = find_among_b(z, a_6, 13, 0);
595  switch (among_var) {
596  case 1:
597  slice_from_s(z, 1, s_8);
598  return 0;
599  break;
600  case 2:
601  {
602  int v_7 = z->l - z->c;
603  if (in_grouping_b_U(z, g_aeo, 97, 111, 0)) goto lab3;
604  if (z->c > z->lb) goto lab3;
605  return 0;
606  lab3:
607  z->c = z->l - v_7;
608  }
609  break;
610  case 3:
611  if (z->c != ((SN_local *)z)->i_p1) return 0;
612  {
613  int v_8 = z->l - z->c;
614  {
615  int ret = r_shortv(z);
616  if (ret == 0) return ret;
617  }
618  z->c = z->l - v_8;
619  }
620  slice_from_s(z, 1, s_9);
621  return 0;
622  break;
623  }
624  z->c = z->l - v_6;
625  }
626  z->ket = z->c;
627  {
628  int ret = skip_b_utf8(z->p, z->c, z->lb, 1);
629  if (ret < 0) return 0;
630  z->c = ret;
631  }
632  z->bra = z->c;
633  slice_del(z);
634  } while (0);
635  return 1;
636 }
637 
638 static int r_Step_1c(struct SN_env * z) {
639  z->ket = z->c;
640  do {
641  int v_1 = z->l - z->c;
642  if (z->c <= z->lb || z->p[z->c - 1] != 'y') goto lab0;
643  z->c--;
644  break;
645  lab0:
646  z->c = z->l - v_1;
647  if (z->c <= z->lb || z->p[z->c - 1] != 'Y') return 0;
648  z->c--;
649  } while (0);
650  z->bra = z->c;
651  if (out_grouping_b_U(z, g_v, 97, 121, 0)) return 0;
652  if (z->c > z->lb) goto lab1;
653  return 0;
654 lab1:
655  slice_from_s(z, 1, s_10);
656  return 1;
657 }
658 
659 static int r_Step_2(struct SN_env * z) {
660  int among_var;
661  z->ket = z->c;
662  if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1864192 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
663  among_var = find_among_b(z, a_7, 25, 0);
664  if (!among_var) return 0;
665  z->bra = z->c;
666  {
667  int ret = r_R1(z);
668  if (ret == 0) return ret;
669  }
670  switch (among_var) {
671  case 1:
672  slice_from_s(z, 4, s_11);
673  break;
674  case 2:
675  slice_from_s(z, 4, s_12);
676  break;
677  case 3:
678  slice_from_s(z, 4, s_13);
679  break;
680  case 4:
681  slice_from_s(z, 4, s_14);
682  break;
683  case 5:
684  slice_from_s(z, 3, s_15);
685  break;
686  case 6:
687  slice_from_s(z, 3, s_16);
688  break;
689  case 7:
690  slice_from_s(z, 3, s_17);
691  break;
692  case 8:
693  slice_from_s(z, 2, s_18);
694  break;
695  case 9:
696  slice_from_s(z, 3, s_19);
697  break;
698  case 10:
699  slice_from_s(z, 3, s_20);
700  break;
701  case 11:
702  slice_from_s(z, 3, s_21);
703  break;
704  case 12:
705  slice_from_s(z, 3, s_22);
706  break;
707  case 13:
708  slice_from_s(z, 2, s_23);
709  break;
710  case 14:
711  if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0;
712  z->c--;
713  slice_from_s(z, 2, s_24);
714  break;
715  case 15:
716  slice_from_s(z, 4, s_25);
717  break;
718  case 16:
719  if (in_grouping_b_U(z, g_valid_LI, 99, 116, 0)) return 0;
720  slice_del(z);
721  break;
722  }
723  return 1;
724 }
725 
726 static int r_Step_3(struct SN_env * z) {
727  int among_var;
728  z->ket = z->c;
729  if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((528928 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
730  among_var = find_among_b(z, a_8, 9, 0);
731  if (!among_var) return 0;
732  z->bra = z->c;
733  {
734  int ret = r_R1(z);
735  if (ret == 0) return ret;
736  }
737  switch (among_var) {
738  case 1:
739  slice_from_s(z, 4, s_26);
740  break;
741  case 2:
742  slice_from_s(z, 3, s_27);
743  break;
744  case 3:
745  slice_from_s(z, 2, s_28);
746  break;
747  case 4:
748  slice_from_s(z, 2, s_29);
749  break;
750  case 5:
751  slice_del(z);
752  break;
753  case 6:
754  {
755  int ret = r_R2(z);
756  if (ret == 0) return ret;
757  }
758  slice_del(z);
759  break;
760  }
761  return 1;
762 }
763 
764 static int r_Step_4(struct SN_env * z) {
765  int among_var;
766  z->ket = z->c;
767  if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1864232 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
768  among_var = find_among_b(z, a_9, 18, 0);
769  if (!among_var) return 0;
770  z->bra = z->c;
771  {
772  int ret = r_R2(z);
773  if (ret == 0) return ret;
774  }
775  switch (among_var) {
776  case 1:
777  slice_del(z);
778  break;
779  case 2:
780  do {
781  int v_1 = z->l - z->c;
782  if (z->c <= z->lb || z->p[z->c - 1] != 's') goto lab0;
783  z->c--;
784  break;
785  lab0:
786  z->c = z->l - v_1;
787  if (z->c <= z->lb || z->p[z->c - 1] != 't') return 0;
788  z->c--;
789  } while (0);
790  slice_del(z);
791  break;
792  }
793  return 1;
794 }
795 
796 static int r_Step_5(struct SN_env * z) {
797  int among_var;
798  z->ket = z->c;
799  if (z->c <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) return 0;
800  among_var = find_among_b(z, a_10, 2, 0);
801  if (!among_var) return 0;
802  z->bra = z->c;
803  switch (among_var) {
804  case 1:
805  do {
806  if (!r_R2(z)) goto lab0;
807  break;
808  lab0:
809  {
810  int ret = r_R1(z);
811  if (ret == 0) return ret;
812  }
813  {
814  int v_1 = z->l - z->c;
815  if (!r_shortv(z)) goto lab1;
816  return 0;
817  lab1:
818  z->c = z->l - v_1;
819  }
820  } while (0);
821  slice_del(z);
822  break;
823  case 2:
824  {
825  int ret = r_R2(z);
826  if (ret == 0) return ret;
827  }
828  if (z->c <= z->lb || z->p[z->c - 1] != 'l') return 0;
829  z->c--;
830  slice_del(z);
831  break;
832  }
833  return 1;
834 }
835 
836 static int r_exception1(struct SN_env * z) {
837  int among_var;
838  z->bra = z->c;
839  if (z->c + 2 >= z->l || z->p[z->c + 2] >> 5 != 3 || !((42750482 >> (z->p[z->c + 2] & 0x1f)) & 1)) return 0;
840  among_var = find_among(z, a_11, 15, 0);
841  if (!among_var) return 0;
842  z->ket = z->c;
843  if (z->c < z->l) return 0;
844  switch (among_var) {
845  case 1:
846  slice_from_s(z, 3, s_30);
847  break;
848  case 2:
849  slice_from_s(z, 3, s_31);
850  break;
851  case 3:
852  slice_from_s(z, 3, s_32);
853  break;
854  case 4:
855  slice_from_s(z, 5, s_33);
856  break;
857  case 5:
858  slice_from_s(z, 4, s_34);
859  break;
860  case 6:
861  slice_from_s(z, 5, s_35);
862  break;
863  case 7:
864  slice_from_s(z, 4, s_36);
865  break;
866  case 8:
867  slice_from_s(z, 5, s_37);
868  break;
869  }
870  return 1;
871 }
872 
873 static int r_postlude(struct SN_env * z) {
874  if (!((SN_local *)z)->b_Y_found) return 0;
875  while (1) {
876  int v_1 = z->c;
877  while (1) {
878  int v_2 = z->c;
879  z->bra = z->c;
880  if (z->c == z->l || z->p[z->c] != 'Y') goto lab1;
881  z->c++;
882  z->ket = z->c;
883  z->c = v_2;
884  break;
885  lab1:
886  z->c = v_2;
887  {
888  int ret = skip_utf8(z->p, z->c, z->l, 1);
889  if (ret < 0) goto lab0;
890  z->c = ret;
891  }
892  }
893  slice_from_s(z, 1, s_38);
894  continue;
895  lab0:
896  z->c = v_1;
897  break;
898  }
899  return 1;
900 }
901 
903  do {
904  int v_1 = z->c;
905  if (!r_exception1(z)) goto lab0;
906  break;
907  lab0:
908  z->c = v_1;
909  {
910  int v_2 = z->c;
911  {
912  int ret = skip_utf8(z->p, z->c, z->l, 3);
913  if (ret < 0) goto lab2;
914  z->c = ret;
915  }
916  goto lab1;
917  lab2:
918  z->c = v_2;
919  }
920  break;
921  lab1:
922  z->c = v_1;
923  r_prelude(z);
924  r_mark_regions(z);
925  z->lb = z->c; z->c = z->l;
926  {
927  int v_3 = z->l - z->c;
928  r_Step_1a(z);
929  z->c = z->l - v_3;
930  }
931  {
932  int v_4 = z->l - z->c;
933  r_Step_1b(z);
934  z->c = z->l - v_4;
935  }
936  {
937  int v_5 = z->l - z->c;
938  r_Step_1c(z);
939  z->c = z->l - v_5;
940  }
941  {
942  int v_6 = z->l - z->c;
943  r_Step_2(z);
944  z->c = z->l - v_6;
945  }
946  {
947  int v_7 = z->l - z->c;
948  r_Step_3(z);
949  z->c = z->l - v_7;
950  }
951  {
952  int v_8 = z->l - z->c;
953  r_Step_4(z);
954  z->c = z->l - v_8;
955  }
956  {
957  int v_9 = z->l - z->c;
958  r_Step_5(z);
959  z->c = z->l - v_9;
960  }
961  z->c = z->lb;
962  {
963  int v_10 = z->c;
964  r_postlude(z);
965  z->c = v_10;
966  }
967  } while (0);
968  return 1;
969 }
unsigned char symbol
Definition: api.h:4
static int stem(struct SN_env *z)
static const struct among a_11[15]
static const struct among a_9[18]
static const symbol s_6_6[2]
static const symbol s_25[]
Definition: earlyenglish.cc:52
static const struct among a_7[25]
static const symbol s_2[]
Definition: earlyenglish.cc:29
static const symbol s_7_21[7]
static const symbol s_9_6[3]
static const symbol s_7_19[4]
static const symbol s_0_3[5]
Definition: earlyenglish.cc:70
static const symbol s_7_15[7]
static const symbol s_0_5[5]
Definition: earlyenglish.cc:72
static const symbol s_0_0[5]
Definition: earlyenglish.cc:67
static const symbol s_7_3[2]
static const symbol s_10_0[1]
static const symbol s_6_12[2]
static const symbol s_9_2[4]
static const symbol s_2_5[2]
static const symbol s_7_23[7]
static const symbol s_4[]
Definition: earlyenglish.cc:31
static const symbol s_3_2[3]
static const symbol s_7_13[5]
static const symbol s_5_6[4]
static const symbol s_9_0[2]
static const symbol s_11_8[4]
static const symbol s_7_9[5]
static const symbol s_30[]
Definition: earlyenglish.cc:57
static const symbol s_38[]
Definition: earlyenglish.cc:65
static const symbol s_10_1[1]
static int r_Step_3(struct SN_env *z)
static const symbol s_1_2[2]
Definition: earlyenglish.cc:90
static int r_Step_5(struct SN_env *z)
static const symbol s_0_6[5]
Definition: earlyenglish.cc:73
static const symbol s_6_9[2]
static const symbol s_4_3[4]
static const symbol s_9_4[4]
static const symbol s_11_1[5]
static const symbol s_9_13[3]
static const symbol s_29[]
Definition: earlyenglish.cc:56
static const symbol s_4_1[4]
static const symbol s_9_16[4]
static const struct among a_2[6]
static const symbol s_8_0[5]
static const symbol s_7_10[5]
static const symbol s_4_4[4]
static int r_exception1(struct SN_env *z)
static const symbol s_6_5[2]
static const symbol s_27[]
Definition: earlyenglish.cc:54
static const symbol s_9_12[2]
static const symbol s_7_18[7]
static const symbol s_3_0[4]
static const symbol s_6[]
Definition: earlyenglish.cc:33
static const symbol s_7_1[4]
static const symbol s_6_8[2]
static const symbol s_21[]
Definition: earlyenglish.cc:48
static const symbol s_3[]
Definition: earlyenglish.cc:30
static const symbol s_9_10[3]
static const symbol s_37[]
Definition: earlyenglish.cc:64
static const symbol s_7_14[6]
static const struct among a_3[3]
static const symbol s_8_3[5]
static const symbol s_5_8[5]
static int r_R2(struct SN_env *z)
static const symbol s_7_6[4]
static const symbol s_6_4[2]
static const symbol s_7[]
Definition: earlyenglish.cc:34
static const symbol s_7_16[5]
static const symbol s_32[]
Definition: earlyenglish.cc:59
static const symbol s_13[]
Definition: earlyenglish.cc:40
static const symbol s_7_7[5]
static const symbol s_7_24[5]
static const symbol s_11_4[5]
static const symbol s_20[]
Definition: earlyenglish.cc:47
static const symbol s_8_5[6]
static const symbol s_35[]
Definition: earlyenglish.cc:62
static const struct among a_10[2]
static const symbol s_9_3[4]
static const symbol s_7_8[6]
static const symbol s_19[]
Definition: earlyenglish.cc:46
static const symbol s_23[]
Definition: earlyenglish.cc:50
static const symbol s_5_3[3]
static const unsigned char g_valid_LI[]
static const symbol s_24[]
Definition: earlyenglish.cc:51
static const symbol s_4_5[3]
static int r_Step_1c(struct SN_env *z)
static const symbol s_11_11[5]
static const unsigned char g_v_WXY[]
static const symbol s_9_8[3]
static const symbol s_2_0[3]
Definition: earlyenglish.cc:97
static const symbol s_6_2[2]
static const symbol s_11_14[4]
static const symbol s_8_4[4]
static const symbol s_9_15[3]
static const symbol s_6_11[2]
static const symbol s_5_4[3]
static int r_R1(struct SN_env *z)
static const symbol s_5_7[5]
static const symbol s_9_9[2]
static const symbol s_16[]
Definition: earlyenglish.cc:43
static const struct among a_0[9]
Definition: earlyenglish.cc:76
static int r_postlude(struct SN_env *z)
static const symbol s_14[]
Definition: earlyenglish.cc:41
static const symbol s_4_0[4]
static const symbol s_22[]
Definition: earlyenglish.cc:49
static const symbol s_11_0[5]
static const symbol s_8_2[5]
static int r_prelude(struct SN_env *z)
static const symbol s_4_6[1]
static const symbol s_8_7[3]
static const symbol s_9_11[3]
static const symbol s_0_7[4]
Definition: earlyenglish.cc:74
static const symbol s_10[]
Definition: earlyenglish.cc:37
static const symbol s_8_1[5]
static const struct among a_1[3]
Definition: earlyenglish.cc:91
static const symbol s_2_4[2]
static const unsigned char g_aeo[]
static const symbol s_7_22[7]
static const symbol s_1[]
Definition: earlyenglish.cc:28
static const symbol s_11_2[4]
Xapian::Internal::Snowball::Earlyenglish::SN_local SN_local
Definition: earlyenglish.cc:10
static const symbol s_11_7[4]
static const symbol s_9_1[4]
static int r_Step_1a(struct SN_env *z)
static const struct among a_5[9]
static const symbol s_9_14[3]
static int r_shortv(struct SN_env *z)
static const symbol s_6_7[2]
static const symbol s_3_1[4]
static const symbol s_7_0[4]
static const symbol s_31[]
Definition: earlyenglish.cc:58
static const symbol s_1_0[1]
Definition: earlyenglish.cc:88
static const symbol s_7_12[6]
static const symbol s_2_2[3]
Definition: earlyenglish.cc:99
static const symbol s_0_8[7]
Definition: earlyenglish.cc:75
static const symbol s_11_3[6]
static int r_mark_regions(struct SN_env *z)
static const struct among a_8[9]
static const symbol s_11[]
Definition: earlyenglish.cc:38
static const symbol s_12[]
Definition: earlyenglish.cc:39
static const symbol s_6_1[2]
static const symbol s_6_10[2]
static const symbol s_36[]
Definition: earlyenglish.cc:63
static const symbol s_6_3[2]
static const symbol s_2_1[1]
Definition: earlyenglish.cc:98
static const symbol s_2_3[4]
static const symbol s_7_5[4]
static const symbol s_9_7[3]
static const symbol s_11_13[3]
static const symbol s_7_20[4]
static const symbol s_7_2[3]
static const symbol s_7_4[3]
static const symbol s_33[]
Definition: earlyenglish.cc:60
static int r_Step_4(struct SN_env *z)
static int r_Step_2(struct SN_env *z)
static const symbol s_11_10[6]
static const struct among a_4[7]
static const symbol s_5_1[2]
static const symbol s_7_17[5]
static const symbol s_1_1[3]
Definition: earlyenglish.cc:89
static const symbol s_9_17[5]
static const symbol s_18[]
Definition: earlyenglish.cc:45
static const symbol s_0_1[6]
Definition: earlyenglish.cc:68
static const symbol s_17[]
Definition: earlyenglish.cc:44
static const symbol s_8_6[7]
static const struct among a_6[13]
static const symbol s_5_2[3]
static int r_Step_1b(struct SN_env *z)
static const symbol s_28[]
Definition: earlyenglish.cc:55
static const symbol s_5_5[3]
static const symbol s_8_8[4]
static const unsigned char g_v[]
static const symbol s_11_5[6]
static const symbol s_8[]
Definition: earlyenglish.cc:35
static const symbol s_9[]
Definition: earlyenglish.cc:36
static const symbol s_0_2[5]
Definition: earlyenglish.cc:69
static const symbol s_5[]
Definition: earlyenglish.cc:32
static const symbol s_11_9[4]
static const symbol s_15[]
Definition: earlyenglish.cc:42
static const symbol s_11_12[4]
static const symbol s_4_2[3]
static const symbol s_26[]
Definition: earlyenglish.cc:53
static const symbol s_7_11[5]
static const symbol s_9_5[3]
static const symbol s_0[]
Definition: earlyenglish.cc:27
static const symbol s_0_4[5]
Definition: earlyenglish.cc:71
static const symbol s_34[]
Definition: earlyenglish.cc:61
static const symbol s_11_6[4]
int out_grouping_U(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
Definition: utilities.cc:164
int in_grouping_U(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
Definition: utilities.cc:140
SNOWBALL_ERR slice_from_s(struct SN_env *z, int s_size, const symbol *s)
Definition: utilities.cc:439
int in_grouping_b_U(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
Definition: utilities.cc:152
int skip_b_utf8(const symbol *p, int c, int limit, int n)
Definition: utilities.cc:75
int eq_s_b(struct SN_env *z, int s_size, const symbol *s)
Definition: utilities.cc:243
SNOWBALL_ERR slice_del(struct SN_env *z)
Definition: utilities.cc:450
int out_grouping_b_U(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
Definition: utilities.cc:176
int skip_utf8(const symbol *p, int c, int limit, int n)
Definition: utilities.cc:50
int find_among_b(struct SN_env *z, const struct among *v, int v_size, int(*)(struct SN_env *))
Definition: utilities.cc:322
int find_among(struct SN_env *z, const struct among *v, int v_size, int(*)(struct SN_env *))
Definition: utilities.cc:256
Definition: api.h:15
int lb
Definition: api.h:17
symbol * p
Definition: api.h:16
int ket
Definition: api.h:17
int c
Definition: api.h:17
int bra
Definition: api.h:17
int l
Definition: api.h:17
Definition: header.h:256