55 using Among = SF.Snowball.Among;
57 namespace SF.Snowball.Ext
68 new Among(
"", -1, 3,
"", null),
69 new Among(
"I", 0, 1,
"", null),
70 new Among(
"U", 0, 2,
"", null)
74 new Among(
"ea", -1, 3,
"", null),
75 new Among(
"a\u0163ia", -1, 7,
"", null),
76 new Among(
"aua", -1, 2,
"", null),
77 new Among(
"iua", -1, 4,
"", null),
78 new Among(
"a\u0163ie", -1, 7,
"", null),
79 new Among(
"ele", -1, 3,
"", null),
80 new Among(
"ile", -1, 5,
"", null),
81 new Among(
"iile", 6, 4,
"", null),
82 new Among(
"iei", -1, 4,
"", null),
83 new Among(
"atei", -1, 6,
"", null),
84 new Among(
"ii", -1, 4,
"", null),
85 new Among(
"ului", -1, 1,
"", null),
86 new Among(
"ul", -1, 1,
"", null),
87 new Among(
"elor", -1, 3,
"", null),
88 new Among(
"ilor", -1, 4,
"", null),
89 new Among(
"iilor", 14, 4,
"", null)
93 new Among(
"icala", -1, 4,
"", null),
94 new Among(
"iciva", -1, 4,
"", null),
95 new Among(
"ativa", -1, 5,
"", null),
96 new Among(
"itiva", -1, 6,
"", null),
97 new Among(
"icale", -1, 4,
"", null),
98 new Among(
"a\u0163iune", -1, 5,
"", null),
99 new Among(
"i\u0163iune", -1, 6,
"", null),
100 new Among(
"atoare", -1, 5,
"", null),
101 new Among(
"itoare", -1, 6,
"", null),
102 new Among(
"\u0103toare", -1, 5,
"", null),
103 new Among(
"icitate", -1, 4,
"", null),
104 new Among(
"abilitate", -1, 1,
"", null),
105 new Among(
"ibilitate", -1, 2,
"", null),
106 new Among(
"ivitate", -1, 3,
"", null),
107 new Among(
"icive", -1, 4,
"", null),
108 new Among(
"ative", -1, 5,
"", null),
109 new Among(
"itive", -1, 6,
"", null),
110 new Among(
"icali", -1, 4,
"", null),
111 new Among(
"atori", -1, 5,
"", null),
112 new Among(
"icatori", 18, 4,
"", null),
113 new Among(
"itori", -1, 6,
"", null),
114 new Among(
"\u0103tori", -1, 5,
"", null),
115 new Among(
"icitati", -1, 4,
"", null),
116 new Among(
"abilitati", -1, 1,
"", null),
117 new Among(
"ivitati", -1, 3,
"", null),
118 new Among(
"icivi", -1, 4,
"", null),
119 new Among(
"ativi", -1, 5,
"", null),
120 new Among(
"itivi", -1, 6,
"", null),
121 new Among(
"icit\u0103i", -1, 4,
"", null),
122 new Among(
"abilit\u0103i", -1, 1,
"", null),
123 new Among(
"ivit\u0103i", -1, 3,
"", null),
124 new Among(
"icit\u0103\u0163i", -1, 4,
"", null),
125 new Among(
"abilit\u0103\u0163i", -1, 1,
"", null),
126 new Among(
"ivit\u0103\u0163i", -1, 3,
"", null),
127 new Among(
"ical", -1, 4,
"", null),
128 new Among(
"ator", -1, 5,
"", null),
129 new Among(
"icator", 35, 4,
"", null),
130 new Among(
"itor", -1, 6,
"", null),
131 new Among(
"\u0103tor", -1, 5,
"", null),
132 new Among(
"iciv", -1, 4,
"", null),
133 new Among(
"ativ", -1, 5,
"", null),
134 new Among(
"itiv", -1, 6,
"", null),
135 new Among(
"ical\u0103", -1, 4,
"", null),
136 new Among(
"iciv\u0103", -1, 4,
"", null),
137 new Among(
"ativ\u0103", -1, 5,
"", null),
138 new Among(
"itiv\u0103", -1, 6,
"", null)
142 new Among(
"ica", -1, 1,
"", null),
143 new Among(
"abila", -1, 1,
"", null),
144 new Among(
"ibila", -1, 1,
"", null),
145 new Among(
"oasa", -1, 1,
"", null),
146 new Among(
"ata", -1, 1,
"", null),
147 new Among(
"ita", -1, 1,
"", null),
148 new Among(
"anta", -1, 1,
"", null),
149 new Among(
"ista", -1, 3,
"", null),
150 new Among(
"uta", -1, 1,
"", null),
151 new Among(
"iva", -1, 1,
"", null),
152 new Among(
"ic", -1, 1,
"", null),
153 new Among(
"ice", -1, 1,
"", null),
154 new Among(
"abile", -1, 1,
"", null),
155 new Among(
"ibile", -1, 1,
"", null),
156 new Among(
"isme", -1, 3,
"", null),
157 new Among(
"iune", -1, 2,
"", null),
158 new Among(
"oase", -1, 1,
"", null),
159 new Among(
"ate", -1, 1,
"", null),
160 new Among(
"itate", 17, 1,
"", null),
161 new Among(
"ite", -1, 1,
"", null),
162 new Among(
"ante", -1, 1,
"", null),
163 new Among(
"iste", -1, 3,
"", null),
164 new Among(
"ute", -1, 1,
"", null),
165 new Among(
"ive", -1, 1,
"", null),
166 new Among(
"ici", -1, 1,
"", null),
167 new Among(
"abili", -1, 1,
"", null),
168 new Among(
"ibili", -1, 1,
"", null),
169 new Among(
"iuni", -1, 2,
"", null),
170 new Among(
"atori", -1, 1,
"", null),
171 new Among(
"osi", -1, 1,
"", null),
172 new Among(
"ati", -1, 1,
"", null),
173 new Among(
"itati", 30, 1,
"", null),
174 new Among(
"iti", -1, 1,
"", null),
175 new Among(
"anti", -1, 1,
"", null),
176 new Among(
"isti", -1, 3,
"", null),
177 new Among(
"uti", -1, 1,
"", null),
178 new Among(
"i\u015Fti", -1, 3,
"", null),
179 new Among(
"ivi", -1, 1,
"", null),
180 new Among(
"it\u0103i", -1, 1,
"", null),
181 new Among(
"o\u015Fi", -1, 1,
"", null),
182 new Among(
"it\u0103\u0163i", -1, 1,
"", null),
183 new Among(
"abil", -1, 1,
"", null),
184 new Among(
"ibil", -1, 1,
"", null),
185 new Among(
"ism", -1, 3,
"", null),
186 new Among(
"ator", -1, 1,
"", null),
187 new Among(
"os", -1, 1,
"", null),
188 new Among(
"at", -1, 1,
"", null),
189 new Among(
"it", -1, 1,
"", null),
190 new Among(
"ant", -1, 1,
"", null),
191 new Among(
"ist", -1, 3,
"", null),
192 new Among(
"ut", -1, 1,
"", null),
193 new Among(
"iv", -1, 1,
"", null),
194 new Among(
"ic\u0103", -1, 1,
"", null),
195 new Among(
"abil\u0103", -1, 1,
"", null),
196 new Among(
"ibil\u0103", -1, 1,
"", null),
197 new Among(
"oas\u0103", -1, 1,
"", null),
198 new Among(
"at\u0103", -1, 1,
"", null),
199 new Among(
"it\u0103", -1, 1,
"", null),
200 new Among(
"ant\u0103", -1, 1,
"", null),
201 new Among(
"ist\u0103", -1, 3,
"", null),
202 new Among(
"ut\u0103", -1, 1,
"", null),
203 new Among(
"iv\u0103", -1, 1,
"", null)
207 new Among(
"ea", -1, 1,
"", null),
208 new Among(
"ia", -1, 1,
"", null),
209 new Among(
"esc", -1, 1,
"", null),
210 new Among(
"\u0103sc", -1, 1,
"", null),
211 new Among(
"ind", -1, 1,
"", null),
212 new Among(
"\u00E2nd", -1, 1,
"", null),
213 new Among(
"are", -1, 1,
"", null),
214 new Among(
"ere", -1, 1,
"", null),
215 new Among(
"ire", -1, 1,
"", null),
216 new Among(
"\u00E2re", -1, 1,
"", null),
217 new Among(
"se", -1, 2,
"", null),
218 new Among(
"ase", 10, 1,
"", null),
219 new Among(
"sese", 10, 2,
"", null),
220 new Among(
"ise", 10, 1,
"", null),
221 new Among(
"use", 10, 1,
"", null),
222 new Among(
"\u00E2se", 10, 1,
"", null),
223 new Among(
"e\u015Fte", -1, 1,
"", null),
224 new Among(
"\u0103\u015Fte", -1, 1,
"", null),
225 new Among(
"eze", -1, 1,
"", null),
226 new Among(
"ai", -1, 1,
"", null),
227 new Among(
"eai", 19, 1,
"", null),
228 new Among(
"iai", 19, 1,
"", null),
229 new Among(
"sei", -1, 2,
"", null),
230 new Among(
"e\u015Fti", -1, 1,
"", null),
231 new Among(
"\u0103\u015Fti", -1, 1,
"", null),
232 new Among(
"ui", -1, 1,
"", null),
233 new Among(
"ezi", -1, 1,
"", null),
234 new Among(
"\u00E2i", -1, 1,
"", null),
235 new Among(
"a\u015Fi", -1, 1,
"", null),
236 new Among(
"se\u015Fi", -1, 2,
"", null),
237 new Among(
"ase\u015Fi", 29, 1,
"", null),
238 new Among(
"sese\u015Fi", 29, 2,
"", null),
239 new Among(
"ise\u015Fi", 29, 1,
"", null),
240 new Among(
"use\u015Fi", 29, 1,
"", null),
241 new Among(
"\u00E2se\u015Fi", 29, 1,
"", null),
242 new Among(
"i\u015Fi", -1, 1,
"", null),
243 new Among(
"u\u015Fi", -1, 1,
"", null),
244 new Among(
"\u00E2\u015Fi", -1, 1,
"", null),
245 new Among(
"a\u0163i", -1, 2,
"", null),
246 new Among(
"ea\u0163i", 38, 1,
"", null),
247 new Among(
"ia\u0163i", 38, 1,
"", null),
248 new Among(
"e\u0163i", -1, 2,
"", null),
249 new Among(
"i\u0163i", -1, 2,
"", null),
250 new Among(
"\u00E2\u0163i", -1, 2,
"", null),
251 new Among(
"ar\u0103\u0163i", -1, 1,
"", null),
252 new Among(
"ser\u0103\u0163i", -1, 2,
"", null),
253 new Among(
"aser\u0103\u0163i", 45, 1,
"", null),
254 new Among(
"seser\u0103\u0163i", 45, 2,
"", null),
255 new Among(
"iser\u0103\u0163i", 45, 1,
"", null),
256 new Among(
"user\u0103\u0163i", 45, 1,
"", null),
257 new Among(
"\u00E2ser\u0103\u0163i", 45, 1,
"", null),
258 new Among(
"ir\u0103\u0163i", -1, 1,
"", null),
259 new Among(
"ur\u0103\u0163i", -1, 1,
"", null),
260 new Among(
"\u00E2r\u0103\u0163i", -1, 1,
"", null),
261 new Among(
"am", -1, 1,
"", null),
262 new Among(
"eam", 54, 1,
"", null),
263 new Among(
"iam", 54, 1,
"", null),
264 new Among(
"em", -1, 2,
"", null),
265 new Among(
"asem", 57, 1,
"", null),
266 new Among(
"sesem", 57, 2,
"", null),
267 new Among(
"isem", 57, 1,
"", null),
268 new Among(
"usem", 57, 1,
"", null),
269 new Among(
"\u00E2sem", 57, 1,
"", null),
270 new Among(
"im", -1, 2,
"", null),
271 new Among(
"\u00E2m", -1, 2,
"", null),
272 new Among(
"\u0103m", -1, 2,
"", null),
273 new Among(
"ar\u0103m", 65, 1,
"", null),
274 new Among(
"ser\u0103m", 65, 2,
"", null),
275 new Among(
"aser\u0103m", 67, 1,
"", null),
276 new Among(
"seser\u0103m", 67, 2,
"", null),
277 new Among(
"iser\u0103m", 67, 1,
"", null),
278 new Among(
"user\u0103m", 67, 1,
"", null),
279 new Among(
"\u00E2ser\u0103m", 67, 1,
"", null),
280 new Among(
"ir\u0103m", 65, 1,
"", null),
281 new Among(
"ur\u0103m", 65, 1,
"", null),
282 new Among(
"\u00E2r\u0103m", 65, 1,
"", null),
283 new Among(
"au", -1, 1,
"", null),
284 new Among(
"eau", 76, 1,
"", null),
285 new Among(
"iau", 76, 1,
"", null),
286 new Among(
"indu", -1, 1,
"", null),
287 new Among(
"\u00E2ndu", -1, 1,
"", null),
288 new Among(
"ez", -1, 1,
"", null),
289 new Among(
"easc\u0103", -1, 1,
"", null),
290 new Among(
"ar\u0103", -1, 1,
"", null),
291 new Among(
"ser\u0103", -1, 2,
"", null),
292 new Among(
"aser\u0103", 84, 1,
"", null),
293 new Among(
"seser\u0103", 84, 2,
"", null),
294 new Among(
"iser\u0103", 84, 1,
"", null),
295 new Among(
"user\u0103", 84, 1,
"", null),
296 new Among(
"\u00E2ser\u0103", 84, 1,
"", null),
297 new Among(
"ir\u0103", -1, 1,
"", null),
298 new Among(
"ur\u0103", -1, 1,
"", null),
299 new Among(
"\u00E2r\u0103", -1, 1,
"", null),
300 new Among(
"eaz\u0103", -1, 1,
"", null)
304 new Among(
"a", -1, 1,
"", null),
305 new Among(
"e", -1, 1,
"", null),
306 new Among(
"ie", 1, 1,
"", null),
307 new Among(
"i", -1, 1,
"", null),
308 new Among(
"\u0103", -1, 1,
"", null)
319 private static readonly
char[] g_v =
new char[] { (char)17, (
char)65, (char)16, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)0, (
char)0, (char)2, (
char)32, (char)0, (
char)0, (char)4 };
321 private bool B_standard_suffix_removed;
328 B_standard_suffix_removed = other.B_standard_suffix_removed;
332 base.copy_from(other);
335 private bool r_prelude()
349 if (!(in_grouping(g_v, 97, 259)))
365 if (!(in_grouping(g_v, 97, 259)))
382 if (!(in_grouping(g_v, 97, 259)))
406 private bool r_mark_regions()
423 if (!(in_grouping(g_v, 97, 259)))
430 if (!(out_grouping(g_v, 97, 259)))
437 if (!(in_grouping(g_v, 97, 259)))
454 if (!(in_grouping(g_v, 97, 259)))
461 if (!(out_grouping(g_v, 97, 259)))
479 if (!(out_grouping(g_v, 97, 259)))
486 if (!(out_grouping(g_v, 97, 259)))
493 if (!(in_grouping(g_v, 97, 259)))
510 if (!(in_grouping(g_v, 97, 259)))
532 if (!(in_grouping(g_v, 97, 259)))
548 if (!(out_grouping(g_v, 97, 259)))
566 if (!(in_grouping(g_v, 97, 259)))
582 if (!(out_grouping(g_v, 97, 259)))
602 private bool r_postlude()
613 among_var = find_among(a_0, 3);
652 if (!(I_pV <= cursor))
661 if (!(I_p1 <= cursor))
670 if (!(I_p2 <= cursor))
677 private bool r_step_0()
685 among_var = find_among_b(a_1, 16);
725 v_1 = limit - cursor;
727 if (!(eq_s_b(2,
"ab")))
733 cursor = limit - v_1;
746 slice_from(
"a\u0163i");
752 private bool r_combo_suffix()
757 v_1 = limit - cursor;
762 among_var = find_among_b(a_2, 46);
811 B_standard_suffix_removed =
true;
812 cursor = limit - v_1;
816 private bool r_standard_suffix()
822 B_standard_suffix_removed =
false;
825 v_1 = limit - cursor;
827 if (!r_combo_suffix())
833 cursor = limit - v_1;
837 among_var = find_among_b(a_3, 62);
862 if (!(eq_s_b(1,
"\u0163")))
878 B_standard_suffix_removed =
true;
882 private bool r_verb_suffix()
889 v_1 = limit - cursor;
896 v_2 = limit_backward;
897 limit_backward = cursor;
898 cursor = limit - v_1;
903 among_var = find_among_b(a_4, 94);
906 limit_backward = v_2;
914 limit_backward = v_2;
919 v_3 = limit - cursor;
920 if (!(out_grouping_b(g_v, 97, 259)))
926 cursor = limit - v_3;
928 if (!(eq_s_b(1,
"u")))
930 limit_backward = v_2;
943 limit_backward = v_2;
947 private bool r_vowel_suffix()
954 among_var = find_among_b(a_5, 5);
979 public override bool Stem()
1002 if (!r_mark_regions())
1009 limit_backward = cursor; cursor = limit;
1012 v_3 = limit - cursor;
1019 cursor = limit - v_3;
1021 v_4 = limit - cursor;
1023 if (!r_standard_suffix())
1028 cursor = limit - v_4;
1030 v_5 = limit - cursor;
1033 v_6 = limit - cursor;
1035 if (!(B_standard_suffix_removed))
1041 cursor = limit - v_6;
1043 if (!r_verb_suffix())
1049 cursor = limit - v_5;
1051 v_7 = limit - cursor;
1053 if (!r_vowel_suffix())
1058 cursor = limit - v_7;
1059 cursor = limit_backward;