6
extern int swedish_stem(struct SN_env * z);
9
extern int swedish_ISO_8859_1_stem(struct SN_env * z);
7
13
static int r_other_suffix(struct SN_env * z);
8
14
static int r_consonant_pair(struct SN_env * z);
9
15
static int r_main_suffix(struct SN_env * z);
10
16
static int r_mark_regions(struct SN_env * z);
12
extern struct SN_env * swedish_create_env(void);
13
extern void swedish_close_env(struct SN_env * z);
15
static symbol s_0_0[1] = { 'a' };
16
static symbol s_0_1[4] = { 'a', 'r', 'n', 'a' };
17
static symbol s_0_2[4] = { 'e', 'r', 'n', 'a' };
18
static symbol s_0_3[7] = { 'h', 'e', 't', 'e', 'r', 'n', 'a' };
19
static symbol s_0_4[4] = { 'o', 'r', 'n', 'a' };
20
static symbol s_0_5[2] = { 'a', 'd' };
21
static symbol s_0_6[1] = { 'e' };
22
static symbol s_0_7[3] = { 'a', 'd', 'e' };
23
static symbol s_0_8[4] = { 'a', 'n', 'd', 'e' };
24
static symbol s_0_9[4] = { 'a', 'r', 'n', 'e' };
25
static symbol s_0_10[3] = { 'a', 'r', 'e' };
26
static symbol s_0_11[4] = { 'a', 's', 't', 'e' };
27
static symbol s_0_12[2] = { 'e', 'n' };
28
static symbol s_0_13[5] = { 'a', 'n', 'd', 'e', 'n' };
29
static symbol s_0_14[4] = { 'a', 'r', 'e', 'n' };
30
static symbol s_0_15[5] = { 'h', 'e', 't', 'e', 'n' };
31
static symbol s_0_16[3] = { 'e', 'r', 'n' };
32
static symbol s_0_17[2] = { 'a', 'r' };
33
static symbol s_0_18[2] = { 'e', 'r' };
34
static symbol s_0_19[5] = { 'h', 'e', 't', 'e', 'r' };
35
static symbol s_0_20[2] = { 'o', 'r' };
36
static symbol s_0_21[1] = { 's' };
37
static symbol s_0_22[2] = { 'a', 's' };
38
static symbol s_0_23[5] = { 'a', 'r', 'n', 'a', 's' };
39
static symbol s_0_24[5] = { 'e', 'r', 'n', 'a', 's' };
40
static symbol s_0_25[5] = { 'o', 'r', 'n', 'a', 's' };
41
static symbol s_0_26[2] = { 'e', 's' };
42
static symbol s_0_27[4] = { 'a', 'd', 'e', 's' };
43
static symbol s_0_28[5] = { 'a', 'n', 'd', 'e', 's' };
44
static symbol s_0_29[3] = { 'e', 'n', 's' };
45
static symbol s_0_30[5] = { 'a', 'r', 'e', 'n', 's' };
46
static symbol s_0_31[6] = { 'h', 'e', 't', 'e', 'n', 's' };
47
static symbol s_0_32[4] = { 'e', 'r', 'n', 's' };
48
static symbol s_0_33[2] = { 'a', 't' };
49
static symbol s_0_34[5] = { 'a', 'n', 'd', 'e', 't' };
50
static symbol s_0_35[3] = { 'h', 'e', 't' };
51
static symbol s_0_36[3] = { 'a', 's', 't' };
53
static struct among a_0[37] =
22
extern struct SN_env * swedish_ISO_8859_1_create_env(void);
23
extern void swedish_ISO_8859_1_close_env(struct SN_env * z);
29
static const symbol s_0_0[1] = { 'a' };
30
static const symbol s_0_1[4] = { 'a', 'r', 'n', 'a' };
31
static const symbol s_0_2[4] = { 'e', 'r', 'n', 'a' };
32
static const symbol s_0_3[7] = { 'h', 'e', 't', 'e', 'r', 'n', 'a' };
33
static const symbol s_0_4[4] = { 'o', 'r', 'n', 'a' };
34
static const symbol s_0_5[2] = { 'a', 'd' };
35
static const symbol s_0_6[1] = { 'e' };
36
static const symbol s_0_7[3] = { 'a', 'd', 'e' };
37
static const symbol s_0_8[4] = { 'a', 'n', 'd', 'e' };
38
static const symbol s_0_9[4] = { 'a', 'r', 'n', 'e' };
39
static const symbol s_0_10[3] = { 'a', 'r', 'e' };
40
static const symbol s_0_11[4] = { 'a', 's', 't', 'e' };
41
static const symbol s_0_12[2] = { 'e', 'n' };
42
static const symbol s_0_13[5] = { 'a', 'n', 'd', 'e', 'n' };
43
static const symbol s_0_14[4] = { 'a', 'r', 'e', 'n' };
44
static const symbol s_0_15[5] = { 'h', 'e', 't', 'e', 'n' };
45
static const symbol s_0_16[3] = { 'e', 'r', 'n' };
46
static const symbol s_0_17[2] = { 'a', 'r' };
47
static const symbol s_0_18[2] = { 'e', 'r' };
48
static const symbol s_0_19[5] = { 'h', 'e', 't', 'e', 'r' };
49
static const symbol s_0_20[2] = { 'o', 'r' };
50
static const symbol s_0_21[1] = { 's' };
51
static const symbol s_0_22[2] = { 'a', 's' };
52
static const symbol s_0_23[5] = { 'a', 'r', 'n', 'a', 's' };
53
static const symbol s_0_24[5] = { 'e', 'r', 'n', 'a', 's' };
54
static const symbol s_0_25[5] = { 'o', 'r', 'n', 'a', 's' };
55
static const symbol s_0_26[2] = { 'e', 's' };
56
static const symbol s_0_27[4] = { 'a', 'd', 'e', 's' };
57
static const symbol s_0_28[5] = { 'a', 'n', 'd', 'e', 's' };
58
static const symbol s_0_29[3] = { 'e', 'n', 's' };
59
static const symbol s_0_30[5] = { 'a', 'r', 'e', 'n', 's' };
60
static const symbol s_0_31[6] = { 'h', 'e', 't', 'e', 'n', 's' };
61
static const symbol s_0_32[4] = { 'e', 'r', 'n', 's' };
62
static const symbol s_0_33[2] = { 'a', 't' };
63
static const symbol s_0_34[5] = { 'a', 'n', 'd', 'e', 't' };
64
static const symbol s_0_35[3] = { 'h', 'e', 't' };
65
static const symbol s_0_36[3] = { 'a', 's', 't' };
67
static const struct among a_0[37] =
55
69
/* 0 */ { 1, s_0_0, -1, 1, 0},
56
70
/* 1 */ { 4, s_0_1, 0, 1, 0},
125
139
/* 4 */ { 4, s_2_4, -1, 2, 0}
128
static unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 32 };
130
static unsigned char g_s_ending[] = { 119, 127, 149 };
132
static symbol s_0[] = { 'l', 246, 's' };
133
static symbol s_1[] = { 'f', 'u', 'l', 'l' };
142
static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 32 };
144
static const unsigned char g_s_ending[] = { 119, 127, 149 };
146
static const symbol s_0[] = { 'l', 0xF6, 's' };
147
static const symbol s_1[] = { 'f', 'u', 'l', 'l' };
135
149
static int r_mark_regions(struct SN_env * z) {
137
while(1) { /* goto, line 30 */
139
if (!(in_grouping(z, g_v, 97, 246))) goto lab0;
144
if (z->c >= z->l) return 0;
151
{ int c_test = z->c; /* test, line 29 */
152
{ int ret = z->c + 3;
153
if (0 > ret || ret > z->l) return 0;
154
z->c = ret; /* hop, line 29 */
156
z->I[1] = z->c; /* setmark x, line 29 */
147
while(1) { /* gopast, line 30 */
148
if (!(out_grouping(z, g_v, 97, 246))) goto lab1;
151
if (z->c >= z->l) return 0;
159
if (out_grouping(z, g_v, 97, 246, 1) < 0) return 0; /* goto */ /* grouping v, line 30 */
160
{ /* gopast */ /* non v, line 30 */
161
int ret = in_grouping(z, g_v, 97, 246, 1);
162
if (ret < 0) return 0;
154
165
z->I[0] = z->c; /* setmark p1, line 30 */
155
166
/* try, line 31 */
156
if (!(z->I[0] < 3)) goto lab2;
167
if (!(z->I[0] < z->I[1])) goto lab0;
162
173
static int r_main_suffix(struct SN_env * z) {
164
{ int m = z->l - z->c; /* setlimit, line 37 */
175
{ int mlimit; /* setlimit, line 37 */
176
int m1 = z->l - z->c; (void)m1;
166
177
if (z->c < z->I[0]) return 0;
167
178
z->c = z->I[0]; /* tomark, line 37 */
168
m3 = z->lb; z->lb = z->c;
179
mlimit = z->lb; z->lb = z->c;
170
181
z->ket = z->c; /* [, line 37 */
182
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851442 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
171
183
among_var = find_among_b(z, a_0, 37); /* substring, line 37 */
172
if (!(among_var)) { z->lb = m3; return 0; }
184
if (!(among_var)) { z->lb = mlimit; return 0; }
173
185
z->bra = z->c; /* ], line 37 */
176
188
switch(among_var) {
177
189
case 0: return 0;
179
slice_del(z); /* delete, line 44 */
191
{ int ret = slice_del(z); /* delete, line 44 */
192
if (ret < 0) return ret;
182
if (!(in_grouping_b(z, g_s_ending, 98, 121))) return 0;
183
slice_del(z); /* delete, line 46 */
196
if (in_grouping_b(z, g_s_ending, 98, 121, 0)) return 0;
197
{ int ret = slice_del(z); /* delete, line 46 */
198
if (ret < 0) return ret;
189
205
static int r_consonant_pair(struct SN_env * z) {
190
{ int m = z->l - z->c; /* setlimit, line 50 */
206
{ int mlimit; /* setlimit, line 50 */
207
int m1 = z->l - z->c; (void)m1;
192
208
if (z->c < z->I[0]) return 0;
193
209
z->c = z->I[0]; /* tomark, line 50 */
194
m3 = z->lb; z->lb = z->c;
196
{ int m = z->l - z->c; /* and, line 52 */
197
if (!(find_among_b(z, a_1, 7))) { z->lb = m3; return 0; } /* among, line 51 */
210
mlimit = z->lb; z->lb = z->c;
212
{ int m2 = z->l - z->c; (void)m2; /* and, line 52 */
213
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1064976 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
214
if (!(find_among_b(z, a_1, 7))) { z->lb = mlimit; return 0; } /* among, line 51 */
199
216
z->ket = z->c; /* [, line 52 */
200
if (z->c <= z->lb) { z->lb = m3; return 0; }
217
if (z->c <= z->lb) { z->lb = mlimit; return 0; }
201
218
z->c--; /* next, line 52 */
202
219
z->bra = z->c; /* ], line 52 */
203
slice_del(z); /* delete, line 52 */
220
{ int ret = slice_del(z); /* delete, line 52 */
221
if (ret < 0) return ret;
210
229
static int r_other_suffix(struct SN_env * z) {
212
{ int m = z->l - z->c; /* setlimit, line 55 */
231
{ int mlimit; /* setlimit, line 55 */
232
int m1 = z->l - z->c; (void)m1;
214
233
if (z->c < z->I[0]) return 0;
215
234
z->c = z->I[0]; /* tomark, line 55 */
216
m3 = z->lb; z->lb = z->c;
235
mlimit = z->lb; z->lb = z->c;
218
237
z->ket = z->c; /* [, line 56 */
238
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
219
239
among_var = find_among_b(z, a_2, 5); /* substring, line 56 */
220
if (!(among_var)) { z->lb = m3; return 0; }
240
if (!(among_var)) { z->lb = mlimit; return 0; }
221
241
z->bra = z->c; /* ], line 56 */
222
242
switch(among_var) {
223
case 0: { z->lb = m3; return 0; }
243
case 0: { z->lb = mlimit; return 0; }
225
slice_del(z); /* delete, line 57 */
245
{ int ret = slice_del(z); /* delete, line 57 */
246
if (ret < 0) return ret;
228
slice_from_s(z, 3, s_0); /* <-, line 58 */
250
{ int ret = slice_from_s(z, 3, s_0); /* <-, line 58 */
251
if (ret < 0) return ret;
231
slice_from_s(z, 4, s_1); /* <-, line 59 */
255
{ int ret = slice_from_s(z, 4, s_1); /* <-, line 59 */
256
if (ret < 0) return ret;
239
extern int swedish_stem(struct SN_env * z) {
240
{ int c = z->c; /* do, line 66 */
241
if (!r_mark_regions(z)) goto lab0; /* call mark_regions, line 66 */
265
extern int swedish_ISO_8859_1_stem(struct SN_env * z) {
266
{ int c1 = z->c; /* do, line 66 */
267
{ int ret = r_mark_regions(z);
268
if (ret == 0) goto lab0; /* call mark_regions, line 66 */
269
if (ret < 0) return ret;
245
274
z->lb = z->c; z->c = z->l; /* backwards, line 67 */
247
{ int m = z->l - z->c; /* do, line 68 */
248
if (!r_main_suffix(z)) goto lab1; /* call main_suffix, line 68 */
276
{ int m2 = z->l - z->c; (void)m2; /* do, line 68 */
277
{ int ret = r_main_suffix(z);
278
if (ret == 0) goto lab1; /* call main_suffix, line 68 */
279
if (ret < 0) return ret;
252
{ int m = z->l - z->c; /* do, line 69 */
253
if (!r_consonant_pair(z)) goto lab2; /* call consonant_pair, line 69 */
284
{ int m3 = z->l - z->c; (void)m3; /* do, line 69 */
285
{ int ret = r_consonant_pair(z);
286
if (ret == 0) goto lab2; /* call consonant_pair, line 69 */
287
if (ret < 0) return ret;
257
{ int m = z->l - z->c; /* do, line 70 */
258
if (!r_other_suffix(z)) goto lab3; /* call other_suffix, line 70 */
292
{ int m4 = z->l - z->c; (void)m4; /* do, line 70 */
293
{ int ret = r_other_suffix(z);
294
if (ret == 0) goto lab3; /* call other_suffix, line 70 */
295
if (ret < 0) return ret;
266
extern struct SN_env * swedish_create_env(void) { return SN_create_env(0, 1, 0); }
304
extern struct SN_env * swedish_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 0); }
268
extern void swedish_close_env(struct SN_env * z) { SN_close_env(z); }
306
extern void swedish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }