stemmer4r 0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CVS/Entries +5 -0
- data/CVS/Repository +1 -0
- data/CVS/Root +1 -0
- data/LICENSE +20 -0
- data/README +9 -0
- data/ext/CVS/Entries +1 -0
- data/ext/CVS/Repository +1 -0
- data/ext/CVS/Root +1 -0
- data/ext/stemmer4r/CVS/Entries +4 -0
- data/ext/stemmer4r/CVS/Repository +1 -0
- data/ext/stemmer4r/CVS/Root +1 -0
- data/ext/stemmer4r/depend +14 -0
- data/ext/stemmer4r/extconf.rb +8 -0
- data/ext/stemmer4r/libstemmer_c/CVS/Entries +7 -0
- data/ext/stemmer4r/libstemmer_c/CVS/Repository +1 -0
- data/ext/stemmer4r/libstemmer_c/CVS/Root +1 -0
- data/ext/stemmer4r/libstemmer_c/MANIFEST +39 -0
- data/ext/stemmer4r/libstemmer_c/Makefile +5 -0
- data/ext/stemmer4r/libstemmer_c/include/CVS/Entries +2 -0
- data/ext/stemmer4r/libstemmer_c/include/CVS/Repository +1 -0
- data/ext/stemmer4r/libstemmer_c/include/CVS/Root +1 -0
- data/ext/stemmer4r/libstemmer_c/include/libstemmer.h +63 -0
- data/ext/stemmer4r/libstemmer_c/libstemmer/CVS/Entries +3 -0
- data/ext/stemmer4r/libstemmer_c/libstemmer/CVS/Repository +1 -0
- data/ext/stemmer4r/libstemmer_c/libstemmer/CVS/Root +1 -0
- data/ext/stemmer4r/libstemmer_c/libstemmer/libstemmer.c +78 -0
- data/ext/stemmer4r/libstemmer_c/libstemmer/modules.h +96 -0
- data/ext/stemmer4r/libstemmer_c/mkinc.mak +42 -0
- data/ext/stemmer4r/libstemmer_c/runtime/CVS/Entries +5 -0
- data/ext/stemmer4r/libstemmer_c/runtime/CVS/Repository +1 -0
- data/ext/stemmer4r/libstemmer_c/runtime/CVS/Root +1 -0
- data/ext/stemmer4r/libstemmer_c/runtime/api.c +69 -0
- data/ext/stemmer4r/libstemmer_c/runtime/api.h +27 -0
- data/ext/stemmer4r/libstemmer_c/runtime/header.h +56 -0
- data/ext/stemmer4r/libstemmer_c/runtime/utilities.c +403 -0
- data/ext/stemmer4r/libstemmer_c/src_c/CVS/Entries +33 -0
- data/ext/stemmer4r/libstemmer_c/src_c/CVS/Repository +1 -0
- data/ext/stemmer4r/libstemmer_c/src_c/CVS/Root +1 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_danish.c +330 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_danish.h +16 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_dutch.c +635 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_dutch.h +16 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_english.c +1109 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_english.h +16 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_finnish.c +792 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_finnish.h +16 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_french.c +1276 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_french.h +16 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_german.c +504 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_german.h +16 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_german2.c +549 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_german2.h +16 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_italian.c +1087 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_italian.h +16 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_kraaij_pohlmann.c +1780 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_kraaij_pohlmann.h +16 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_lovins.c +1752 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_lovins.h +16 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_norwegian.c +279 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_norwegian.h +16 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_porter.c +776 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_porter.h +16 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_portuguese.c +1027 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_portuguese.h +16 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_russian.c +701 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_russian.h +16 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_spanish.c +1109 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_spanish.h +16 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_swedish.c +299 -0
- data/ext/stemmer4r/libstemmer_c/src_c/stem_swedish.h +16 -0
- data/ext/stemmer4r/stemmer4r.c +146 -0
- data/stemmer4r.gemspec +23 -0
- data/test/CVS/Entries +2 -0
- data/test/CVS/Repository +1 -0
- data/test/CVS/Root +1 -0
- data/test/test.rb +31 -0
- data/test/tests/CVS/Entries +12 -0
- data/test/tests/CVS/Repository +1 -0
- data/test/tests/CVS/Root +1 -0
- data/test/tests/da/CVS/Entries +3 -0
- data/test/tests/da/CVS/Repository +1 -0
- data/test/tests/da/CVS/Root +1 -0
- data/test/tests/da/output.txt +23829 -0
- data/test/tests/da/voc.txt +23829 -0
- data/test/tests/de/CVS/Entries +3 -0
- data/test/tests/de/CVS/Repository +1 -0
- data/test/tests/de/CVS/Root +1 -0
- data/test/tests/de/output.txt +35033 -0
- data/test/tests/de/voc.txt +35033 -0
- data/test/tests/en/CVS/Entries +3 -0
- data/test/tests/en/CVS/Repository +1 -0
- data/test/tests/en/CVS/Root +1 -0
- data/test/tests/en/output.txt +29400 -0
- data/test/tests/en/voc.txt +29400 -0
- data/test/tests/es/CVS/Entries +3 -0
- data/test/tests/es/CVS/Repository +1 -0
- data/test/tests/es/CVS/Root +1 -0
- data/test/tests/es/output.txt +28390 -0
- data/test/tests/es/voc.txt +28390 -0
- data/test/tests/fi/CVS/Entries +3 -0
- data/test/tests/fi/CVS/Repository +1 -0
- data/test/tests/fi/CVS/Root +1 -0
- data/test/tests/fi/output.txt +50000 -0
- data/test/tests/fi/voc.txt +50000 -0
- data/test/tests/fr/CVS/Entries +3 -0
- data/test/tests/fr/CVS/Repository +1 -0
- data/test/tests/fr/CVS/Root +1 -0
- data/test/tests/fr/output.txt +20403 -0
- data/test/tests/fr/voc.txt +20403 -0
- data/test/tests/it/CVS/Entries +3 -0
- data/test/tests/it/CVS/Repository +1 -0
- data/test/tests/it/CVS/Root +1 -0
- data/test/tests/it/output.txt +35494 -0
- data/test/tests/it/voc.txt +35494 -0
- data/test/tests/nl/CVS/Entries +3 -0
- data/test/tests/nl/CVS/Repository +1 -0
- data/test/tests/nl/CVS/Root +1 -0
- data/test/tests/nl/output.txt +45669 -0
- data/test/tests/nl/voc.txt +45669 -0
- data/test/tests/no/CVS/Entries +3 -0
- data/test/tests/no/CVS/Repository +1 -0
- data/test/tests/no/CVS/Root +1 -0
- data/test/tests/no/output.txt +20628 -0
- data/test/tests/no/voc.txt +20628 -0
- data/test/tests/pt/CVS/Entries +3 -0
- data/test/tests/pt/CVS/Repository +1 -0
- data/test/tests/pt/CVS/Root +1 -0
- data/test/tests/pt/output.txt +32016 -0
- data/test/tests/pt/voc.txt +32016 -0
- data/test/tests/ru/CVS/Entries +3 -0
- data/test/tests/ru/CVS/Repository +1 -0
- data/test/tests/ru/CVS/Root +1 -0
- data/test/tests/ru/output.txt +49673 -0
- data/test/tests/ru/voc.txt +49673 -0
- data/test/tests/sv/CVS/Entries +3 -0
- data/test/tests/sv/CVS/Repository +1 -0
- data/test/tests/sv/CVS/Root +1 -0
- data/test/tests/sv/output.txt +30623 -0
- data/test/tests/sv/voc.txt +30623 -0
- metadata +221 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
|
|
2
|
+
/* This file was generated automatically by the Snowball to ANSI C compiler */
|
|
3
|
+
|
|
4
|
+
#ifdef __cplusplus
|
|
5
|
+
extern "C" {
|
|
6
|
+
#endif
|
|
7
|
+
|
|
8
|
+
extern struct SN_env * lovins_create_env(void);
|
|
9
|
+
extern void lovins_close_env(struct SN_env * z);
|
|
10
|
+
|
|
11
|
+
extern int lovins_stem(struct SN_env * z);
|
|
12
|
+
|
|
13
|
+
#ifdef __cplusplus
|
|
14
|
+
}
|
|
15
|
+
#endif
|
|
16
|
+
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
|
|
2
|
+
/* This file was generated automatically by the Snowball to ANSI C compiler */
|
|
3
|
+
|
|
4
|
+
#include "../runtime/header.h"
|
|
5
|
+
|
|
6
|
+
extern int norwegian_stem(struct SN_env * z);
|
|
7
|
+
static int r_other_suffix(struct SN_env * z);
|
|
8
|
+
static int r_consonant_pair(struct SN_env * z);
|
|
9
|
+
static int r_main_suffix(struct SN_env * z);
|
|
10
|
+
static int r_mark_regions(struct SN_env * z);
|
|
11
|
+
|
|
12
|
+
extern struct SN_env * norwegian_create_env(void);
|
|
13
|
+
extern void norwegian_close_env(struct SN_env * z);
|
|
14
|
+
|
|
15
|
+
static symbol s_0_0[1] = { 'a' };
|
|
16
|
+
static symbol s_0_1[1] = { 'e' };
|
|
17
|
+
static symbol s_0_2[3] = { 'e', 'd', 'e' };
|
|
18
|
+
static symbol s_0_3[4] = { 'a', 'n', 'd', 'e' };
|
|
19
|
+
static symbol s_0_4[4] = { 'e', 'n', 'd', 'e' };
|
|
20
|
+
static symbol s_0_5[3] = { 'a', 'n', 'e' };
|
|
21
|
+
static symbol s_0_6[3] = { 'e', 'n', 'e' };
|
|
22
|
+
static symbol s_0_7[6] = { 'h', 'e', 't', 'e', 'n', 'e' };
|
|
23
|
+
static symbol s_0_8[4] = { 'e', 'r', 't', 'e' };
|
|
24
|
+
static symbol s_0_9[2] = { 'e', 'n' };
|
|
25
|
+
static symbol s_0_10[5] = { 'h', 'e', 't', 'e', 'n' };
|
|
26
|
+
static symbol s_0_11[2] = { 'a', 'r' };
|
|
27
|
+
static symbol s_0_12[2] = { 'e', 'r' };
|
|
28
|
+
static symbol s_0_13[5] = { 'h', 'e', 't', 'e', 'r' };
|
|
29
|
+
static symbol s_0_14[1] = { 's' };
|
|
30
|
+
static symbol s_0_15[2] = { 'a', 's' };
|
|
31
|
+
static symbol s_0_16[2] = { 'e', 's' };
|
|
32
|
+
static symbol s_0_17[4] = { 'e', 'd', 'e', 's' };
|
|
33
|
+
static symbol s_0_18[5] = { 'e', 'n', 'd', 'e', 's' };
|
|
34
|
+
static symbol s_0_19[4] = { 'e', 'n', 'e', 's' };
|
|
35
|
+
static symbol s_0_20[7] = { 'h', 'e', 't', 'e', 'n', 'e', 's' };
|
|
36
|
+
static symbol s_0_21[3] = { 'e', 'n', 's' };
|
|
37
|
+
static symbol s_0_22[6] = { 'h', 'e', 't', 'e', 'n', 's' };
|
|
38
|
+
static symbol s_0_23[3] = { 'e', 'r', 's' };
|
|
39
|
+
static symbol s_0_24[3] = { 'e', 't', 's' };
|
|
40
|
+
static symbol s_0_25[2] = { 'e', 't' };
|
|
41
|
+
static symbol s_0_26[3] = { 'h', 'e', 't' };
|
|
42
|
+
static symbol s_0_27[3] = { 'e', 'r', 't' };
|
|
43
|
+
static symbol s_0_28[3] = { 'a', 's', 't' };
|
|
44
|
+
|
|
45
|
+
static struct among a_0[29] =
|
|
46
|
+
{
|
|
47
|
+
/* 0 */ { 1, s_0_0, -1, 1, 0},
|
|
48
|
+
/* 1 */ { 1, s_0_1, -1, 1, 0},
|
|
49
|
+
/* 2 */ { 3, s_0_2, 1, 1, 0},
|
|
50
|
+
/* 3 */ { 4, s_0_3, 1, 1, 0},
|
|
51
|
+
/* 4 */ { 4, s_0_4, 1, 1, 0},
|
|
52
|
+
/* 5 */ { 3, s_0_5, 1, 1, 0},
|
|
53
|
+
/* 6 */ { 3, s_0_6, 1, 1, 0},
|
|
54
|
+
/* 7 */ { 6, s_0_7, 6, 1, 0},
|
|
55
|
+
/* 8 */ { 4, s_0_8, 1, 3, 0},
|
|
56
|
+
/* 9 */ { 2, s_0_9, -1, 1, 0},
|
|
57
|
+
/* 10 */ { 5, s_0_10, 9, 1, 0},
|
|
58
|
+
/* 11 */ { 2, s_0_11, -1, 1, 0},
|
|
59
|
+
/* 12 */ { 2, s_0_12, -1, 1, 0},
|
|
60
|
+
/* 13 */ { 5, s_0_13, 12, 1, 0},
|
|
61
|
+
/* 14 */ { 1, s_0_14, -1, 2, 0},
|
|
62
|
+
/* 15 */ { 2, s_0_15, 14, 1, 0},
|
|
63
|
+
/* 16 */ { 2, s_0_16, 14, 1, 0},
|
|
64
|
+
/* 17 */ { 4, s_0_17, 16, 1, 0},
|
|
65
|
+
/* 18 */ { 5, s_0_18, 16, 1, 0},
|
|
66
|
+
/* 19 */ { 4, s_0_19, 16, 1, 0},
|
|
67
|
+
/* 20 */ { 7, s_0_20, 19, 1, 0},
|
|
68
|
+
/* 21 */ { 3, s_0_21, 14, 1, 0},
|
|
69
|
+
/* 22 */ { 6, s_0_22, 21, 1, 0},
|
|
70
|
+
/* 23 */ { 3, s_0_23, 14, 1, 0},
|
|
71
|
+
/* 24 */ { 3, s_0_24, 14, 1, 0},
|
|
72
|
+
/* 25 */ { 2, s_0_25, -1, 1, 0},
|
|
73
|
+
/* 26 */ { 3, s_0_26, 25, 1, 0},
|
|
74
|
+
/* 27 */ { 3, s_0_27, -1, 3, 0},
|
|
75
|
+
/* 28 */ { 3, s_0_28, -1, 1, 0}
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
static symbol s_1_0[2] = { 'd', 't' };
|
|
79
|
+
static symbol s_1_1[2] = { 'v', 't' };
|
|
80
|
+
|
|
81
|
+
static struct among a_1[2] =
|
|
82
|
+
{
|
|
83
|
+
/* 0 */ { 2, s_1_0, -1, -1, 0},
|
|
84
|
+
/* 1 */ { 2, s_1_1, -1, -1, 0}
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
static symbol s_2_0[3] = { 'l', 'e', 'g' };
|
|
88
|
+
static symbol s_2_1[4] = { 'e', 'l', 'e', 'g' };
|
|
89
|
+
static symbol s_2_2[2] = { 'i', 'g' };
|
|
90
|
+
static symbol s_2_3[3] = { 'e', 'i', 'g' };
|
|
91
|
+
static symbol s_2_4[3] = { 'l', 'i', 'g' };
|
|
92
|
+
static symbol s_2_5[4] = { 'e', 'l', 'i', 'g' };
|
|
93
|
+
static symbol s_2_6[3] = { 'e', 'l', 's' };
|
|
94
|
+
static symbol s_2_7[3] = { 'l', 'o', 'v' };
|
|
95
|
+
static symbol s_2_8[4] = { 'e', 'l', 'o', 'v' };
|
|
96
|
+
static symbol s_2_9[4] = { 's', 'l', 'o', 'v' };
|
|
97
|
+
static symbol s_2_10[7] = { 'h', 'e', 't', 's', 'l', 'o', 'v' };
|
|
98
|
+
|
|
99
|
+
static struct among a_2[11] =
|
|
100
|
+
{
|
|
101
|
+
/* 0 */ { 3, s_2_0, -1, 1, 0},
|
|
102
|
+
/* 1 */ { 4, s_2_1, 0, 1, 0},
|
|
103
|
+
/* 2 */ { 2, s_2_2, -1, 1, 0},
|
|
104
|
+
/* 3 */ { 3, s_2_3, 2, 1, 0},
|
|
105
|
+
/* 4 */ { 3, s_2_4, 2, 1, 0},
|
|
106
|
+
/* 5 */ { 4, s_2_5, 4, 1, 0},
|
|
107
|
+
/* 6 */ { 3, s_2_6, -1, 1, 0},
|
|
108
|
+
/* 7 */ { 3, s_2_7, -1, 1, 0},
|
|
109
|
+
/* 8 */ { 4, s_2_8, 7, 1, 0},
|
|
110
|
+
/* 9 */ { 4, s_2_9, 7, 1, 0},
|
|
111
|
+
/* 10 */ { 7, s_2_10, 9, 1, 0}
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
static unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 128 };
|
|
115
|
+
|
|
116
|
+
static unsigned char g_s_ending[] = { 119, 127, 149, 1 };
|
|
117
|
+
|
|
118
|
+
static symbol s_0[] = { 'e', 'r' };
|
|
119
|
+
|
|
120
|
+
static int r_mark_regions(struct SN_env * z) {
|
|
121
|
+
z->I[0] = z->l;
|
|
122
|
+
while(1) { /* goto, line 30 */
|
|
123
|
+
int c = z->c;
|
|
124
|
+
if (!(in_grouping(z, g_v, 97, 248))) goto lab0;
|
|
125
|
+
z->c = c;
|
|
126
|
+
break;
|
|
127
|
+
lab0:
|
|
128
|
+
z->c = c;
|
|
129
|
+
if (z->c >= z->l) return 0;
|
|
130
|
+
z->c++;
|
|
131
|
+
}
|
|
132
|
+
while(1) { /* gopast, line 30 */
|
|
133
|
+
if (!(out_grouping(z, g_v, 97, 248))) goto lab1;
|
|
134
|
+
break;
|
|
135
|
+
lab1:
|
|
136
|
+
if (z->c >= z->l) return 0;
|
|
137
|
+
z->c++;
|
|
138
|
+
}
|
|
139
|
+
z->I[0] = z->c; /* setmark p1, line 30 */
|
|
140
|
+
/* try, line 31 */
|
|
141
|
+
if (!(z->I[0] < 3)) goto lab2;
|
|
142
|
+
z->I[0] = 3;
|
|
143
|
+
lab2:
|
|
144
|
+
return 1;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
static int r_main_suffix(struct SN_env * z) {
|
|
148
|
+
int among_var;
|
|
149
|
+
{ int m3; /* setlimit, line 37 */
|
|
150
|
+
int m = z->l - z->c; (void) m;
|
|
151
|
+
if (z->c < z->I[0]) return 0;
|
|
152
|
+
z->c = z->I[0]; /* tomark, line 37 */
|
|
153
|
+
m3 = z->lb; z->lb = z->c;
|
|
154
|
+
z->c = z->l - m;
|
|
155
|
+
z->ket = z->c; /* [, line 37 */
|
|
156
|
+
among_var = find_among_b(z, a_0, 29); /* substring, line 37 */
|
|
157
|
+
if (!(among_var)) { z->lb = m3; return 0; }
|
|
158
|
+
z->bra = z->c; /* ], line 37 */
|
|
159
|
+
z->lb = m3;
|
|
160
|
+
}
|
|
161
|
+
switch(among_var) {
|
|
162
|
+
case 0: return 0;
|
|
163
|
+
case 1:
|
|
164
|
+
{ int ret;
|
|
165
|
+
ret = slice_del(z); /* delete, line 43 */
|
|
166
|
+
if (ret < 0) return ret;
|
|
167
|
+
}
|
|
168
|
+
break;
|
|
169
|
+
case 2:
|
|
170
|
+
if (!(in_grouping_b(z, g_s_ending, 98, 122))) return 0;
|
|
171
|
+
{ int ret;
|
|
172
|
+
ret = slice_del(z); /* delete, line 45 */
|
|
173
|
+
if (ret < 0) return ret;
|
|
174
|
+
}
|
|
175
|
+
break;
|
|
176
|
+
case 3:
|
|
177
|
+
{ int ret;
|
|
178
|
+
ret = slice_from_s(z, 2, s_0); /* <-, line 47 */
|
|
179
|
+
if (ret < 0) return ret;
|
|
180
|
+
}
|
|
181
|
+
break;
|
|
182
|
+
}
|
|
183
|
+
return 1;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
static int r_consonant_pair(struct SN_env * z) {
|
|
187
|
+
{ int m_test = z->l - z->c; /* test, line 52 */
|
|
188
|
+
{ int m3; /* setlimit, line 53 */
|
|
189
|
+
int m = z->l - z->c; (void) m;
|
|
190
|
+
if (z->c < z->I[0]) return 0;
|
|
191
|
+
z->c = z->I[0]; /* tomark, line 53 */
|
|
192
|
+
m3 = z->lb; z->lb = z->c;
|
|
193
|
+
z->c = z->l - m;
|
|
194
|
+
z->ket = z->c; /* [, line 53 */
|
|
195
|
+
if (!(find_among_b(z, a_1, 2))) { z->lb = m3; return 0; } /* substring, line 53 */
|
|
196
|
+
z->bra = z->c; /* ], line 53 */
|
|
197
|
+
z->lb = m3;
|
|
198
|
+
}
|
|
199
|
+
z->c = z->l - m_test;
|
|
200
|
+
}
|
|
201
|
+
if (z->c <= z->lb) return 0;
|
|
202
|
+
z->c--; /* next, line 58 */
|
|
203
|
+
z->bra = z->c; /* ], line 58 */
|
|
204
|
+
{ int ret;
|
|
205
|
+
ret = slice_del(z); /* delete, line 58 */
|
|
206
|
+
if (ret < 0) return ret;
|
|
207
|
+
}
|
|
208
|
+
return 1;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
static int r_other_suffix(struct SN_env * z) {
|
|
212
|
+
int among_var;
|
|
213
|
+
{ int m3; /* setlimit, line 62 */
|
|
214
|
+
int m = z->l - z->c; (void) m;
|
|
215
|
+
if (z->c < z->I[0]) return 0;
|
|
216
|
+
z->c = z->I[0]; /* tomark, line 62 */
|
|
217
|
+
m3 = z->lb; z->lb = z->c;
|
|
218
|
+
z->c = z->l - m;
|
|
219
|
+
z->ket = z->c; /* [, line 62 */
|
|
220
|
+
among_var = find_among_b(z, a_2, 11); /* substring, line 62 */
|
|
221
|
+
if (!(among_var)) { z->lb = m3; return 0; }
|
|
222
|
+
z->bra = z->c; /* ], line 62 */
|
|
223
|
+
z->lb = m3;
|
|
224
|
+
}
|
|
225
|
+
switch(among_var) {
|
|
226
|
+
case 0: return 0;
|
|
227
|
+
case 1:
|
|
228
|
+
{ int ret;
|
|
229
|
+
ret = slice_del(z); /* delete, line 66 */
|
|
230
|
+
if (ret < 0) return ret;
|
|
231
|
+
}
|
|
232
|
+
break;
|
|
233
|
+
}
|
|
234
|
+
return 1;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
extern int norwegian_stem(struct SN_env * z) {
|
|
238
|
+
{ int c = z->c; /* do, line 73 */
|
|
239
|
+
{ int ret = r_mark_regions(z);
|
|
240
|
+
if (ret == 0) goto lab0; /* call mark_regions, line 73 */
|
|
241
|
+
if (ret < 0) return ret;
|
|
242
|
+
}
|
|
243
|
+
lab0:
|
|
244
|
+
z->c = c;
|
|
245
|
+
}
|
|
246
|
+
z->lb = z->c; z->c = z->l; /* backwards, line 74 */
|
|
247
|
+
|
|
248
|
+
{ int m = z->l - z->c; (void) m; /* do, line 75 */
|
|
249
|
+
{ int ret = r_main_suffix(z);
|
|
250
|
+
if (ret == 0) goto lab1; /* call main_suffix, line 75 */
|
|
251
|
+
if (ret < 0) return ret;
|
|
252
|
+
}
|
|
253
|
+
lab1:
|
|
254
|
+
z->c = z->l - m;
|
|
255
|
+
}
|
|
256
|
+
{ int m = z->l - z->c; (void) m; /* do, line 76 */
|
|
257
|
+
{ int ret = r_consonant_pair(z);
|
|
258
|
+
if (ret == 0) goto lab2; /* call consonant_pair, line 76 */
|
|
259
|
+
if (ret < 0) return ret;
|
|
260
|
+
}
|
|
261
|
+
lab2:
|
|
262
|
+
z->c = z->l - m;
|
|
263
|
+
}
|
|
264
|
+
{ int m = z->l - z->c; (void) m; /* do, line 77 */
|
|
265
|
+
{ int ret = r_other_suffix(z);
|
|
266
|
+
if (ret == 0) goto lab3; /* call other_suffix, line 77 */
|
|
267
|
+
if (ret < 0) return ret;
|
|
268
|
+
}
|
|
269
|
+
lab3:
|
|
270
|
+
z->c = z->l - m;
|
|
271
|
+
}
|
|
272
|
+
z->c = z->lb;
|
|
273
|
+
return 1;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
extern struct SN_env * norwegian_create_env(void) { return SN_create_env(0, 1, 0); }
|
|
277
|
+
|
|
278
|
+
extern void norwegian_close_env(struct SN_env * z) { SN_close_env(z); }
|
|
279
|
+
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
|
|
2
|
+
/* This file was generated automatically by the Snowball to ANSI C compiler */
|
|
3
|
+
|
|
4
|
+
#ifdef __cplusplus
|
|
5
|
+
extern "C" {
|
|
6
|
+
#endif
|
|
7
|
+
|
|
8
|
+
extern struct SN_env * norwegian_create_env(void);
|
|
9
|
+
extern void norwegian_close_env(struct SN_env * z);
|
|
10
|
+
|
|
11
|
+
extern int norwegian_stem(struct SN_env * z);
|
|
12
|
+
|
|
13
|
+
#ifdef __cplusplus
|
|
14
|
+
}
|
|
15
|
+
#endif
|
|
16
|
+
|