62
76
/* 3 */ { 3, s_2_3, 2, 1, 0}
65
static symbol s_3_0[2] = { 'i', 'g' };
66
static symbol s_3_1[4] = { 'l', 'i', 'c', 'h' };
79
static const symbol s_3_0[2] = { 'i', 'g' };
80
static const symbol s_3_1[4] = { 'l', 'i', 'c', 'h' };
68
static struct among a_3[2] =
82
static const struct among a_3[2] =
70
84
/* 0 */ { 2, s_3_0, -1, 1, 0},
71
85
/* 1 */ { 4, s_3_1, -1, 1, 0}
74
static symbol s_4_0[3] = { 'e', 'n', 'd' };
75
static symbol s_4_1[2] = { 'i', 'g' };
76
static symbol s_4_2[3] = { 'u', 'n', 'g' };
77
static symbol s_4_3[4] = { 'l', 'i', 'c', 'h' };
78
static symbol s_4_4[4] = { 'i', 's', 'c', 'h' };
79
static symbol s_4_5[2] = { 'i', 'k' };
80
static symbol s_4_6[4] = { 'h', 'e', 'i', 't' };
81
static symbol s_4_7[4] = { 'k', 'e', 'i', 't' };
88
static const symbol s_4_0[3] = { 'e', 'n', 'd' };
89
static const symbol s_4_1[2] = { 'i', 'g' };
90
static const symbol s_4_2[3] = { 'u', 'n', 'g' };
91
static const symbol s_4_3[4] = { 'l', 'i', 'c', 'h' };
92
static const symbol s_4_4[4] = { 'i', 's', 'c', 'h' };
93
static const symbol s_4_5[2] = { 'i', 'k' };
94
static const symbol s_4_6[4] = { 'h', 'e', 'i', 't' };
95
static const symbol s_4_7[4] = { 'k', 'e', 'i', 't' };
83
static struct among a_4[8] =
97
static const struct among a_4[8] =
85
99
/* 0 */ { 3, s_4_0, -1, 1, 0},
86
100
/* 1 */ { 2, s_4_1, -1, 2, 0},
92
106
/* 7 */ { 4, s_4_7, -1, 4, 0}
95
static unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32, 8 };
97
static unsigned char g_s_ending[] = { 117, 30, 5 };
99
static unsigned char g_st_ending[] = { 117, 30, 4 };
101
static symbol s_0[] = { 223 };
102
static symbol s_1[] = { 's', 's' };
103
static symbol s_2[] = { 'u' };
104
static symbol s_3[] = { 'U' };
105
static symbol s_4[] = { 'y' };
106
static symbol s_5[] = { 'Y' };
107
static symbol s_6[] = { 'y' };
108
static symbol s_7[] = { 'u' };
109
static symbol s_8[] = { 'a' };
110
static symbol s_9[] = { 'o' };
111
static symbol s_10[] = { 'u' };
112
static symbol s_11[] = { 'i', 'g' };
113
static symbol s_12[] = { 'e' };
114
static symbol s_13[] = { 'e' };
115
static symbol s_14[] = { 'e', 'r' };
116
static symbol s_15[] = { 'e', 'n' };
109
static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32, 8 };
111
static const unsigned char g_s_ending[] = { 117, 30, 5 };
113
static const unsigned char g_st_ending[] = { 117, 30, 4 };
115
static const symbol s_0[] = { 0xDF };
116
static const symbol s_1[] = { 's', 's' };
117
static const symbol s_2[] = { 'u' };
118
static const symbol s_3[] = { 'U' };
119
static const symbol s_4[] = { 'y' };
120
static const symbol s_5[] = { 'Y' };
121
static const symbol s_6[] = { 'y' };
122
static const symbol s_7[] = { 'u' };
123
static const symbol s_8[] = { 'a' };
124
static const symbol s_9[] = { 'o' };
125
static const symbol s_10[] = { 'u' };
126
static const symbol s_11[] = { 'i', 'g' };
127
static const symbol s_12[] = { 'e' };
128
static const symbol s_13[] = { 'e' };
129
static const symbol s_14[] = { 'e', 'r' };
130
static const symbol s_15[] = { 'e', 'n' };
118
132
static int r_prelude(struct SN_env * z) {
119
133
{ int c_test = z->c; /* test, line 30 */
120
134
while(1) { /* repeat, line 30 */
122
{ int c = z->c; /* or, line 33 */
136
{ int c2 = z->c; /* or, line 33 */
123
137
z->bra = z->c; /* [, line 32 */
124
138
if (!(eq_s(z, 1, s_0))) goto lab2;
125
139
z->ket = z->c; /* ], line 32 */
126
slice_from_s(z, 2, s_1); /* <-, line 32 */
140
{ int ret = slice_from_s(z, 2, s_1); /* <-, line 32 */
141
if (ret < 0) return ret;
130
146
if (z->c >= z->l) goto lab0;
131
147
z->c++; /* next, line 33 */
141
157
while(1) { /* repeat, line 36 */
143
159
while(1) { /* goto, line 36 */
145
if (!(in_grouping(z, g_v, 97, 252))) goto lab4;
161
if (in_grouping(z, g_v, 97, 252, 0)) goto lab4;
146
162
z->bra = z->c; /* [, line 37 */
147
{ int c = z->c; /* or, line 37 */
163
{ int c5 = z->c; /* or, line 37 */
148
164
if (!(eq_s(z, 1, s_2))) goto lab6;
149
165
z->ket = z->c; /* ], line 37 */
150
if (!(in_grouping(z, g_v, 97, 252))) goto lab6;
151
slice_from_s(z, 1, s_3); /* <-, line 37 */
166
if (in_grouping(z, g_v, 97, 252, 0)) goto lab6;
167
{ int ret = slice_from_s(z, 1, s_3); /* <-, line 37 */
168
if (ret < 0) return ret;
155
173
if (!(eq_s(z, 1, s_4))) goto lab4;
156
174
z->ket = z->c; /* ], line 38 */
157
if (!(in_grouping(z, g_v, 97, 252))) goto lab4;
158
slice_from_s(z, 1, s_5); /* <-, line 38 */
175
if (in_grouping(z, g_v, 97, 252, 0)) goto lab4;
176
{ int ret = slice_from_s(z, 1, s_5); /* <-, line 38 */
177
if (ret < 0) return ret;
165
185
if (z->c >= z->l) goto lab3;
186
z->c++; /* goto, line 36 */
176
196
static int r_mark_regions(struct SN_env * z) {
179
while(1) { /* gopast, line 47 */
180
if (!(in_grouping(z, g_v, 97, 252))) goto lab0;
183
if (z->c >= z->l) return 0;
186
while(1) { /* gopast, line 47 */
187
if (!(out_grouping(z, g_v, 97, 252))) goto lab1;
190
if (z->c >= z->l) return 0;
193
z->I[0] = z->c; /* setmark p1, line 47 */
195
if (!(z->I[0] < 3)) goto lab2;
198
while(1) { /* gopast, line 49 */
199
if (!(in_grouping(z, g_v, 97, 252))) goto lab3;
202
if (z->c >= z->l) return 0;
205
while(1) { /* gopast, line 49 */
206
if (!(out_grouping(z, g_v, 97, 252))) goto lab4;
209
if (z->c >= z->l) return 0;
212
z->I[1] = z->c; /* setmark p2, line 49 */
199
{ int c_test = z->c; /* test, line 47 */
200
{ int ret = z->c + 3;
201
if (0 > ret || ret > z->l) return 0;
202
z->c = ret; /* hop, line 47 */
204
z->I[2] = z->c; /* setmark x, line 47 */
207
{ /* gopast */ /* grouping v, line 49 */
208
int ret = out_grouping(z, g_v, 97, 252, 1);
209
if (ret < 0) return 0;
212
{ /* gopast */ /* non v, line 49 */
213
int ret = in_grouping(z, g_v, 97, 252, 1);
214
if (ret < 0) return 0;
217
z->I[0] = z->c; /* setmark p1, line 49 */
219
if (!(z->I[0] < z->I[2])) goto lab0;
222
{ /* gopast */ /* grouping v, line 51 */
223
int ret = out_grouping(z, g_v, 97, 252, 1);
224
if (ret < 0) return 0;
227
{ /* gopast */ /* non v, line 51 */
228
int ret = in_grouping(z, g_v, 97, 252, 1);
229
if (ret < 0) return 0;
232
z->I[1] = z->c; /* setmark p2, line 51 */
216
236
static int r_postlude(struct SN_env * z) {
218
while(1) { /* repeat, line 53 */
220
z->bra = z->c; /* [, line 55 */
221
among_var = find_among(z, a_0, 6); /* substring, line 55 */
238
while(1) { /* repeat, line 55 */
240
z->bra = z->c; /* [, line 57 */
241
among_var = find_among(z, a_0, 6); /* substring, line 57 */
222
242
if (!(among_var)) goto lab0;
223
z->ket = z->c; /* ], line 55 */
243
z->ket = z->c; /* ], line 57 */
224
244
switch(among_var) {
225
245
case 0: goto lab0;
227
slice_from_s(z, 1, s_6); /* <-, line 56 */
247
{ int ret = slice_from_s(z, 1, s_6); /* <-, line 58 */
248
if (ret < 0) return ret;
230
slice_from_s(z, 1, s_7); /* <-, line 57 */
252
{ int ret = slice_from_s(z, 1, s_7); /* <-, line 59 */
253
if (ret < 0) return ret;
233
slice_from_s(z, 1, s_8); /* <-, line 58 */
257
{ int ret = slice_from_s(z, 1, s_8); /* <-, line 60 */
258
if (ret < 0) return ret;
236
slice_from_s(z, 1, s_9); /* <-, line 59 */
262
{ int ret = slice_from_s(z, 1, s_9); /* <-, line 61 */
263
if (ret < 0) return ret;
239
slice_from_s(z, 1, s_10); /* <-, line 60 */
267
{ int ret = slice_from_s(z, 1, s_10); /* <-, line 62 */
268
if (ret < 0) return ret;
242
272
if (z->c >= z->l) goto lab0;
243
z->c++; /* next, line 61 */
273
z->c++; /* next, line 63 */
264
294
static int r_standard_suffix(struct SN_env * z) {
266
{ int m = z->l - z->c; /* do, line 72 */
267
z->ket = z->c; /* [, line 73 */
268
among_var = find_among_b(z, a_1, 7); /* substring, line 73 */
296
{ int m1 = z->l - z->c; (void)m1; /* do, line 74 */
297
z->ket = z->c; /* [, line 75 */
298
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((811040 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
299
among_var = find_among_b(z, a_1, 7); /* substring, line 75 */
269
300
if (!(among_var)) goto lab0;
270
z->bra = z->c; /* ], line 73 */
271
if (!r_R1(z)) goto lab0; /* call R1, line 73 */
301
z->bra = z->c; /* ], line 75 */
303
if (ret == 0) goto lab0; /* call R1, line 75 */
304
if (ret < 0) return ret;
272
306
switch(among_var) {
273
307
case 0: goto lab0;
275
slice_del(z); /* delete, line 75 */
309
{ int ret = slice_del(z); /* delete, line 77 */
310
if (ret < 0) return ret;
278
if (!(in_grouping_b(z, g_s_ending, 98, 116))) goto lab0;
279
slice_del(z); /* delete, line 78 */
314
if (in_grouping_b(z, g_s_ending, 98, 116, 0)) goto lab0;
315
{ int ret = slice_del(z); /* delete, line 80 */
316
if (ret < 0) return ret;
285
{ int m = z->l - z->c; /* do, line 82 */
286
z->ket = z->c; /* [, line 83 */
287
among_var = find_among_b(z, a_2, 4); /* substring, line 83 */
323
{ int m2 = z->l - z->c; (void)m2; /* do, line 84 */
324
z->ket = z->c; /* [, line 85 */
325
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab1;
326
among_var = find_among_b(z, a_2, 4); /* substring, line 85 */
288
327
if (!(among_var)) goto lab1;
289
z->bra = z->c; /* ], line 83 */
290
if (!r_R1(z)) goto lab1; /* call R1, line 83 */
328
z->bra = z->c; /* ], line 85 */
330
if (ret == 0) goto lab1; /* call R1, line 85 */
331
if (ret < 0) return ret;
291
333
switch(among_var) {
292
334
case 0: goto lab1;
294
slice_del(z); /* delete, line 85 */
336
{ int ret = slice_del(z); /* delete, line 87 */
337
if (ret < 0) return ret;
297
if (!(in_grouping_b(z, g_st_ending, 98, 116))) goto lab1;
299
if (z->lb > c || c > z->l) goto lab1;
300
z->c = c; /* hop, line 88 */
302
slice_del(z); /* delete, line 88 */
341
if (in_grouping_b(z, g_st_ending, 98, 116, 0)) goto lab1;
342
{ int ret = z->c - 3;
343
if (z->lb > ret || ret > z->l) goto lab1;
344
z->c = ret; /* hop, line 90 */
346
{ int ret = slice_del(z); /* delete, line 90 */
347
if (ret < 0) return ret;
308
{ int m = z->l - z->c; /* do, line 92 */
309
z->ket = z->c; /* [, line 93 */
310
among_var = find_among_b(z, a_4, 8); /* substring, line 93 */
354
{ int m3 = z->l - z->c; (void)m3; /* do, line 94 */
355
z->ket = z->c; /* [, line 95 */
356
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2;
357
among_var = find_among_b(z, a_4, 8); /* substring, line 95 */
311
358
if (!(among_var)) goto lab2;
312
z->bra = z->c; /* ], line 93 */
313
if (!r_R2(z)) goto lab2; /* call R2, line 93 */
359
z->bra = z->c; /* ], line 95 */
361
if (ret == 0) goto lab2; /* call R2, line 95 */
362
if (ret < 0) return ret;
314
364
switch(among_var) {
315
365
case 0: goto lab2;
317
slice_del(z); /* delete, line 95 */
318
{ int m = z->l - z->c; /* try, line 96 */
319
z->ket = z->c; /* [, line 96 */
320
if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m; goto lab3; }
321
z->bra = z->c; /* ], line 96 */
322
{ int m = z->l - z->c; /* not, line 96 */
367
{ int ret = slice_del(z); /* delete, line 97 */
368
if (ret < 0) return ret;
370
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 98 */
371
z->ket = z->c; /* [, line 98 */
372
if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m_keep; goto lab3; }
373
z->bra = z->c; /* ], line 98 */
374
{ int m4 = z->l - z->c; (void)m4; /* not, line 98 */
323
375
if (!(eq_s_b(z, 1, s_12))) goto lab4;
324
{ z->c = z->l - m; goto lab3; }
376
{ z->c = z->l - m_keep; goto lab3; }
328
if (!r_R2(z)) { z->c = z->l - m; goto lab3; } /* call R2, line 96 */
329
slice_del(z); /* delete, line 96 */
381
if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 98 */
382
if (ret < 0) return ret;
384
{ int ret = slice_del(z); /* delete, line 98 */
385
if (ret < 0) return ret;
335
{ int m = z->l - z->c; /* not, line 99 */
392
{ int m5 = z->l - z->c; (void)m5; /* not, line 101 */
336
393
if (!(eq_s_b(z, 1, s_13))) goto lab5;
341
slice_del(z); /* delete, line 99 */
398
{ int ret = slice_del(z); /* delete, line 101 */
399
if (ret < 0) return ret;
344
slice_del(z); /* delete, line 102 */
345
{ int m = z->l - z->c; /* try, line 103 */
346
z->ket = z->c; /* [, line 104 */
347
{ int m = z->l - z->c; /* or, line 104 */
403
{ int ret = slice_del(z); /* delete, line 104 */
404
if (ret < 0) return ret;
406
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 105 */
407
z->ket = z->c; /* [, line 106 */
408
{ int m6 = z->l - z->c; (void)m6; /* or, line 106 */
348
409
if (!(eq_s_b(z, 2, s_14))) goto lab8;
352
if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m; goto lab6; }
413
if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m_keep; goto lab6; }
355
z->bra = z->c; /* ], line 104 */
356
if (!r_R1(z)) { z->c = z->l - m; goto lab6; } /* call R1, line 104 */
357
slice_del(z); /* delete, line 104 */
416
z->bra = z->c; /* ], line 106 */
418
if (ret == 0) { z->c = z->l - m_keep; goto lab6; } /* call R1, line 106 */
419
if (ret < 0) return ret;
421
{ int ret = slice_del(z); /* delete, line 106 */
422
if (ret < 0) return ret;
363
slice_del(z); /* delete, line 108 */
364
{ int m = z->l - z->c; /* try, line 109 */
365
z->ket = z->c; /* [, line 110 */
366
among_var = find_among_b(z, a_3, 2); /* substring, line 110 */
367
if (!(among_var)) { z->c = z->l - m; goto lab9; }
368
z->bra = z->c; /* ], line 110 */
369
if (!r_R2(z)) { z->c = z->l - m; goto lab9; } /* call R2, line 110 */
429
{ int ret = slice_del(z); /* delete, line 110 */
430
if (ret < 0) return ret;
432
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 111 */
433
z->ket = z->c; /* [, line 112 */
434
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - m_keep; goto lab9; }
435
among_var = find_among_b(z, a_3, 2); /* substring, line 112 */
436
if (!(among_var)) { z->c = z->l - m_keep; goto lab9; }
437
z->bra = z->c; /* ], line 112 */
439
if (ret == 0) { z->c = z->l - m_keep; goto lab9; } /* call R2, line 112 */
440
if (ret < 0) return ret;
370
442
switch(among_var) {
371
case 0: { z->c = z->l - m; goto lab9; }
443
case 0: { z->c = z->l - m_keep; goto lab9; }
373
slice_del(z); /* delete, line 112 */
445
{ int ret = slice_del(z); /* delete, line 114 */
446
if (ret < 0) return ret;
387
extern int german_stem(struct SN_env * z) {
388
{ int c = z->c; /* do, line 123 */
389
if (!r_prelude(z)) goto lab0; /* call prelude, line 123 */
461
extern int german_ISO_8859_1_stem(struct SN_env * z) {
462
{ int c1 = z->c; /* do, line 125 */
463
{ int ret = r_prelude(z);
464
if (ret == 0) goto lab0; /* call prelude, line 125 */
465
if (ret < 0) return ret;
393
{ int c = z->c; /* do, line 124 */
394
if (!r_mark_regions(z)) goto lab1; /* call mark_regions, line 124 */
470
{ int c2 = z->c; /* do, line 126 */
471
{ int ret = r_mark_regions(z);
472
if (ret == 0) goto lab1; /* call mark_regions, line 126 */
473
if (ret < 0) return ret;
398
z->lb = z->c; z->c = z->l; /* backwards, line 125 */
478
z->lb = z->c; z->c = z->l; /* backwards, line 127 */
400
{ int m = z->l - z->c; /* do, line 126 */
401
if (!r_standard_suffix(z)) goto lab2; /* call standard_suffix, line 126 */
480
{ int m3 = z->l - z->c; (void)m3; /* do, line 128 */
481
{ int ret = r_standard_suffix(z);
482
if (ret == 0) goto lab2; /* call standard_suffix, line 128 */
483
if (ret < 0) return ret;
406
{ int c = z->c; /* do, line 127 */
407
if (!r_postlude(z)) goto lab3; /* call postlude, line 127 */
489
{ int c4 = z->c; /* do, line 129 */
490
{ int ret = r_postlude(z);
491
if (ret == 0) goto lab3; /* call postlude, line 129 */
492
if (ret < 0) return ret;
414
extern struct SN_env * german_create_env(void) { return SN_create_env(0, 2, 0); }
500
extern struct SN_env * german_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); }
416
extern void german_close_env(struct SN_env * z) { SN_close_env(z); }
502
extern void german_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }