55 using Among = SF.Snowball.Among;
57 namespace SF.Snowball.Ext
73 new Among(
"", -1, 3,
"",null),
74 new Among(
"\u00E3", 0, 1,
"",null),
75 new Among(
"\u00F5", 0, 2,
"",null)
79 new Among(
"", -1, 3,
"", null),
80 new Among(
"a~", 0, 1,
"", null),
81 new Among(
"o~", 0, 2,
"", null)
85 new Among(
"ic", -1, -1,
"", null),
86 new Among(
"ad", -1, -1,
"", null),
87 new Among(
"os", -1, -1,
"", null),
88 new Among(
"iv", -1, 1,
"", null)
92 new Among(
"ante", -1, 1,
"", null),
93 new Among(
"avel", -1, 1,
"", null),
94 new Among(
"\u00EDvel", -1, 1,
"", null)
98 new Among(
"ic", -1, 1,
"", null),
99 new Among(
"abil", -1, 1,
"", null),
100 new Among(
"iv", -1, 1,
"", null)
104 new Among(
"ica", -1, 1,
"", null),
105 new Among(
"\u00E2ncia", -1, 1,
"", null),
106 new Among(
"\u00EAncia", -1, 4,
"", null),
107 new Among(
"ira", -1, 9,
"", null),
108 new Among(
"adora", -1, 1,
"", null),
109 new Among(
"osa", -1, 1,
"", null),
110 new Among(
"ista", -1, 1,
"", null),
111 new Among(
"iva", -1, 8,
"", null),
112 new Among(
"eza", -1, 1,
"", null),
113 new Among(
"log\u00EDa", -1, 2,
"", null),
114 new Among(
"idade", -1, 7,
"", null),
115 new Among(
"ante", -1, 1,
"", null),
116 new Among(
"mente", -1, 6,
"", null),
117 new Among(
"amente", 12, 5,
"", null),
118 new Among(
"\u00E1vel", -1, 1,
"", null),
119 new Among(
"\u00EDvel", -1, 1,
"", null),
120 new Among(
"uci\u00F3n", -1, 3,
"", null),
121 new Among(
"ico", -1, 1,
"", null),
122 new Among(
"ismo", -1, 1,
"", null),
123 new Among(
"oso", -1, 1,
"", null),
124 new Among(
"amento", -1, 1,
"", null),
125 new Among(
"imento", -1, 1,
"", null),
126 new Among(
"ivo", -1, 8,
"", null),
127 new Among(
"a\u00E7a~o", -1, 1,
"", null),
128 new Among(
"ador", -1, 1,
"", null),
129 new Among(
"icas", -1, 1,
"", null),
130 new Among(
"\u00EAncias", -1, 4,
"", null),
131 new Among(
"iras", -1, 9,
"", null),
132 new Among(
"adoras", -1, 1,
"", null),
133 new Among(
"osas", -1, 1,
"", null),
134 new Among(
"istas", -1, 1,
"", null),
135 new Among(
"ivas", -1, 8,
"", null),
136 new Among(
"ezas", -1, 1,
"", null),
137 new Among(
"log\u00EDas", -1, 2,
"", null),
138 new Among(
"idades", -1, 7,
"", null),
139 new Among(
"uciones", -1, 3,
"", null),
140 new Among(
"adores", -1, 1,
"", null),
141 new Among(
"antes", -1, 1,
"", null),
142 new Among(
"a\u00E7o~es", -1, 1,
"", null),
143 new Among(
"icos", -1, 1,
"", null),
144 new Among(
"ismos", -1, 1,
"", null),
145 new Among(
"osos", -1, 1,
"", null),
146 new Among(
"amentos", -1, 1,
"", null),
147 new Among(
"imentos", -1, 1,
"", null),
148 new Among(
"ivos", -1, 8,
"", null)
152 new Among(
"ada", -1, 1,
"", null),
153 new Among(
"ida", -1, 1,
"", null),
154 new Among(
"ia", -1, 1,
"", null),
155 new Among(
"aria", 2, 1,
"", null),
156 new Among(
"eria", 2, 1,
"", null),
157 new Among(
"iria", 2, 1,
"", null),
158 new Among(
"ara", -1, 1,
"", null),
159 new Among(
"era", -1, 1,
"", null),
160 new Among(
"ira", -1, 1,
"", null),
161 new Among(
"ava", -1, 1,
"", null),
162 new Among(
"asse", -1, 1,
"", null),
163 new Among(
"esse", -1, 1,
"", null),
164 new Among(
"isse", -1, 1,
"", null),
165 new Among(
"aste", -1, 1,
"", null),
166 new Among(
"este", -1, 1,
"", null),
167 new Among(
"iste", -1, 1,
"", null),
168 new Among(
"ei", -1, 1,
"", null),
169 new Among(
"arei", 16, 1,
"", null),
170 new Among(
"erei", 16, 1,
"", null),
171 new Among(
"irei", 16, 1,
"", null),
172 new Among(
"am", -1, 1,
"", null),
173 new Among(
"iam", 20, 1,
"", null),
174 new Among(
"ariam", 21, 1,
"", null),
175 new Among(
"eriam", 21, 1,
"", null),
176 new Among(
"iriam", 21, 1,
"", null),
177 new Among(
"aram", 20, 1,
"", null),
178 new Among(
"eram", 20, 1,
"", null),
179 new Among(
"iram", 20, 1,
"", null),
180 new Among(
"avam", 20, 1,
"", null),
181 new Among(
"em", -1, 1,
"", null),
182 new Among(
"arem", 29, 1,
"", null),
183 new Among(
"erem", 29, 1,
"", null),
184 new Among(
"irem", 29, 1,
"", null),
185 new Among(
"assem", 29, 1,
"", null),
186 new Among(
"essem", 29, 1,
"", null),
187 new Among(
"issem", 29, 1,
"", null),
188 new Among(
"ado", -1, 1,
"", null),
189 new Among(
"ido", -1, 1,
"", null),
190 new Among(
"ando", -1, 1,
"", null),
191 new Among(
"endo", -1, 1,
"", null),
192 new Among(
"indo", -1, 1,
"", null),
193 new Among(
"ara~o", -1, 1,
"", null),
194 new Among(
"era~o", -1, 1,
"", null),
195 new Among(
"ira~o", -1, 1,
"", null),
196 new Among(
"ar", -1, 1,
"", null),
197 new Among(
"er", -1, 1,
"", null),
198 new Among(
"ir", -1, 1,
"", null),
199 new Among(
"as", -1, 1,
"", null),
200 new Among(
"adas", 47, 1,
"", null),
201 new Among(
"idas", 47, 1,
"", null),
202 new Among(
"ias", 47, 1,
"", null),
203 new Among(
"arias", 50, 1,
"", null),
204 new Among(
"erias", 50, 1,
"", null),
205 new Among(
"irias", 50, 1,
"", null),
206 new Among(
"aras", 47, 1,
"", null),
207 new Among(
"eras", 47, 1,
"", null),
208 new Among(
"iras", 47, 1,
"", null),
209 new Among(
"avas", 47, 1,
"", null),
210 new Among(
"es", -1, 1,
"", null),
211 new Among(
"ardes", 58, 1,
"", null),
212 new Among(
"erdes", 58, 1,
"", null),
213 new Among(
"irdes", 58, 1,
"", null),
214 new Among(
"ares", 58, 1,
"", null),
215 new Among(
"eres", 58, 1,
"", null),
216 new Among(
"ires", 58, 1,
"", null),
217 new Among(
"asses", 58, 1,
"", null),
218 new Among(
"esses", 58, 1,
"", null),
219 new Among(
"isses", 58, 1,
"", null),
220 new Among(
"astes", 58, 1,
"", null),
221 new Among(
"estes", 58, 1,
"", null),
222 new Among(
"istes", 58, 1,
"", null),
223 new Among(
"is", -1, 1,
"", null),
224 new Among(
"ais", 71, 1,
"", null),
225 new Among(
"eis", 71, 1,
"", null),
226 new Among(
"areis", 73, 1,
"", null),
227 new Among(
"ereis", 73, 1,
"", null),
228 new Among(
"ireis", 73, 1,
"", null),
229 new Among(
"\u00E1reis", 73, 1,
"", null),
230 new Among(
"\u00E9reis", 73, 1,
"", null),
231 new Among(
"\u00EDreis", 73, 1,
"", null),
232 new Among(
"\u00E1sseis", 73, 1,
"", null),
233 new Among(
"\u00E9sseis", 73, 1,
"", null),
234 new Among(
"\u00EDsseis", 73, 1,
"", null),
235 new Among(
"\u00E1veis", 73, 1,
"", null),
236 new Among(
"\u00EDeis", 73, 1,
"", null),
237 new Among(
"ar\u00EDeis", 84, 1,
"", null),
238 new Among(
"er\u00EDeis", 84, 1,
"", null),
239 new Among(
"ir\u00EDeis", 84, 1,
"", null),
240 new Among(
"ados", -1, 1,
"", null),
241 new Among(
"idos", -1, 1,
"", null),
242 new Among(
"amos", -1, 1,
"", null),
243 new Among(
"\u00E1ramos", 90, 1,
"", null),
244 new Among(
"\u00E9ramos", 90, 1,
"", null),
245 new Among(
"\u00EDramos", 90, 1,
"", null),
246 new Among(
"\u00E1vamos", 90, 1,
"", null),
247 new Among(
"\u00EDamos", 90, 1,
"", null),
248 new Among(
"ar\u00EDamos", 95, 1,
"", null),
249 new Among(
"er\u00EDamos", 95, 1,
"", null),
250 new Among(
"ir\u00EDamos", 95, 1,
"", null),
251 new Among(
"emos", -1, 1,
"", null),
252 new Among(
"aremos", 99, 1,
"", null),
253 new Among(
"eremos", 99, 1,
"", null),
254 new Among(
"iremos", 99, 1,
"", null),
255 new Among(
"\u00E1ssemos", 99, 1,
"", null),
256 new Among(
"\u00EAssemos", 99, 1,
"", null),
257 new Among(
"\u00EDssemos", 99, 1,
"", null),
258 new Among(
"imos", -1, 1,
"", null),
259 new Among(
"armos", -1, 1,
"", null),
260 new Among(
"ermos", -1, 1,
"", null),
261 new Among(
"irmos", -1, 1,
"", null),
262 new Among(
"\u00E1mos", -1, 1,
"", null),
263 new Among(
"ar\u00E1s", -1, 1,
"", null),
264 new Among(
"er\u00E1s", -1, 1,
"", null),
265 new Among(
"ir\u00E1s", -1, 1,
"", null),
266 new Among(
"eu", -1, 1,
"", null),
267 new Among(
"iu", -1, 1,
"", null),
268 new Among(
"ou", -1, 1,
"", null),
269 new Among(
"ar\u00E1", -1, 1,
"", null),
270 new Among(
"er\u00E1", -1, 1,
"", null),
271 new Among(
"ir\u00E1", -1, 1,
"", null)
275 new Among(
"a", -1, 1,
"", null),
276 new Among(
"i", -1, 1,
"", null),
277 new Among(
"o", -1, 1,
"", null),
278 new Among(
"os", -1, 1,
"", null),
279 new Among(
"\u00E1", -1, 1,
"", null),
280 new Among(
"\u00ED", -1, 1,
"", null),
281 new Among(
"\u00F3", -1, 1,
"", null)
285 new Among(
"e", -1, 1,
"", null),
286 new Among(
"\u00E7", -1, 2,
"", null),
287 new Among(
"\u00E9", -1, 1,
"", null),
288 new Among(
"\u00EA", -1, 1,
"", null)
302 private static 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)3, (
char)19, (char)12, (
char)2 };
308 private void copy_from(PortugueseStemmer other)
313 base.copy_from(other);
316 private bool r_prelude()
327 among_var = find_among(a_0, 3);
364 private bool r_mark_regions()
381 if (!(in_grouping(g_v, 97, 250)))
388 if (!(out_grouping(g_v, 97, 250)))
395 if (!(in_grouping(g_v, 97, 250)))
412 if (!(in_grouping(g_v, 97, 250)))
419 if (!(out_grouping(g_v, 97, 250)))
437 if (!(out_grouping(g_v, 97, 250)))
444 if (!(out_grouping(g_v, 97, 250)))
451 if (!(in_grouping(g_v, 97, 250)))
468 if (!(in_grouping(g_v, 97, 250)))
490 if (!(in_grouping(g_v, 97, 250)))
506 if (!(out_grouping(g_v, 97, 250)))
524 if (!(in_grouping(g_v, 97, 250)))
540 if (!(out_grouping(g_v, 97, 250)))
560 private bool r_postlude()
571 among_var = find_among(a_1, 3);
585 slice_from(
"\u00E3");
590 slice_from(
"\u00F5");
610 if (!(I_pV <= cursor))
619 if (!(I_p1 <= cursor))
628 if (!(I_p2 <= cursor))
635 private bool r_standard_suffix()
646 among_var = find_among_b(a_5, 45);
707 v_1 = limit - cursor;
712 among_var = find_among_b(a_2, 4);
715 cursor = limit - v_1;
723 cursor = limit - v_1;
731 cursor = limit - v_1;
738 if (!(eq_s_b(2,
"at")))
740 cursor = limit - v_1;
748 cursor = limit - v_1;
767 v_2 = limit - cursor;
772 among_var = find_among_b(a_3, 3);
775 cursor = limit - v_2;
783 cursor = limit - v_2;
790 cursor = limit - v_2;
809 v_3 = limit - cursor;
814 among_var = find_among_b(a_4, 3);
817 cursor = limit - v_3;
825 cursor = limit - v_3;
832 cursor = limit - v_3;
851 v_4 = limit - cursor;
856 if (!(eq_s_b(2,
"at")))
858 cursor = limit - v_4;
866 cursor = limit - v_4;
881 if (!(eq_s_b(1,
"e")))
892 private bool r_verb_suffix()
898 v_1 = limit - cursor;
905 v_2 = limit_backward;
906 limit_backward = cursor;
907 cursor = limit - v_1;
912 among_var = find_among_b(a_6, 120);
915 limit_backward = v_2;
923 limit_backward = v_2;
931 limit_backward = v_2;
935 private bool r_residual_suffix()
942 among_var = find_among_b(a_7, 7);
967 private bool r_residual_form()
977 among_var = find_among_b(a_8, 4);
1000 v_1 = limit - cursor;
1003 if (!(eq_s_b(1,
"u")))
1010 v_2 = limit - cursor;
1012 if (!(eq_s_b(1,
"g")))
1016 cursor = limit - v_2;
1019 cursor = limit - v_1;
1022 if (!(eq_s_b(1,
"i")))
1029 v_3 = limit - cursor;
1031 if (!(eq_s_b(1,
"c")))
1035 cursor = limit - v_3;
1054 public override bool Stem()
1079 if (!r_mark_regions())
1086 limit_backward = cursor; cursor = limit;
1089 v_3 = limit - cursor;
1092 v_4 = limit - cursor;
1095 v_5 = limit - cursor;
1098 v_6 = limit - cursor;
1100 if (!r_standard_suffix())
1106 cursor = limit - v_6;
1108 if (!r_verb_suffix())
1113 cursor = limit - v_5;
1115 v_7 = limit - cursor;
1120 if (!(eq_s_b(1,
"i")))
1127 v_8 = limit - cursor;
1129 if (!(eq_s_b(1,
"c")))
1133 cursor = limit - v_8;
1142 cursor = limit - v_7;
1145 cursor = limit - v_4;
1147 if (!r_residual_suffix())
1153 cursor = limit - v_3;
1155 v_9 = limit - cursor;
1157 if (!r_residual_form())
1162 cursor = limit - v_9;
1163 cursor = limit_backward;