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