55 using Among = SF.Snowball.Among;
57 namespace SF.Snowball.Ext
68 new Among(
"cs", -1, -1,
"", null),
69 new Among(
"dzs", -1, -1,
"", null),
70 new Among(
"gy", -1, -1,
"", null),
71 new Among(
"ly", -1, -1,
"", null),
72 new Among(
"ny", -1, -1,
"", null),
73 new Among(
"sz", -1, -1,
"", null),
74 new Among(
"ty", -1, -1,
"", null),
75 new Among(
"zs", -1, -1,
"", null)
79 new Among(
"\u00E1", -1, 1,
"", null),
80 new Among(
"\u00E9", -1, 2,
"", null)
84 new Among(
"bb", -1, -1,
"", null),
85 new Among(
"cc", -1, -1,
"", null),
86 new Among(
"dd", -1, -1,
"", null),
87 new Among(
"ff", -1, -1,
"", null),
88 new Among(
"gg", -1, -1,
"", null),
89 new Among(
"jj", -1, -1,
"", null),
90 new Among(
"kk", -1, -1,
"", null),
91 new Among(
"ll", -1, -1,
"", null),
92 new Among(
"mm", -1, -1,
"", null),
93 new Among(
"nn", -1, -1,
"", null),
94 new Among(
"pp", -1, -1,
"", null),
95 new Among(
"rr", -1, -1,
"", null),
96 new Among(
"ccs", -1, -1,
"", null),
97 new Among(
"ss", -1, -1,
"", null),
98 new Among(
"zzs", -1, -1,
"", null),
99 new Among(
"tt", -1, -1,
"", null),
100 new Among(
"vv", -1, -1,
"", null),
101 new Among(
"ggy", -1, -1,
"", null),
102 new Among(
"lly", -1, -1,
"", null),
103 new Among(
"nny", -1, -1,
"", null),
104 new Among(
"tty", -1, -1,
"", null),
105 new Among(
"ssz", -1, -1,
"", null),
106 new Among(
"zz", -1, -1,
"", null)
110 new Among(
"al", -1, 1,
"", null),
111 new Among(
"el", -1, 2,
"", null)
115 new Among(
"ba", -1, -1,
"", null),
116 new Among(
"ra", -1, -1,
"", null),
117 new Among(
"be", -1, -1,
"", null),
118 new Among(
"re", -1, -1,
"", null),
119 new Among(
"ig", -1, -1,
"", null),
120 new Among(
"nak", -1, -1,
"", null),
121 new Among(
"nek", -1, -1,
"", null),
122 new Among(
"val", -1, -1,
"", null),
123 new Among(
"vel", -1, -1,
"", null),
124 new Among(
"ul", -1, -1,
"", null),
125 new Among(
"n\u00E1l", -1, -1,
"", null),
126 new Among(
"n\u00E9l", -1, -1,
"", null),
127 new Among(
"b\u00F3l", -1, -1,
"", null),
128 new Among(
"r\u00F3l", -1, -1,
"", null),
129 new Among(
"t\u00F3l", -1, -1,
"", null),
130 new Among(
"b\u00F5l", -1, -1,
"", null),
131 new Among(
"r\u00F5l", -1, -1,
"", null),
132 new Among(
"t\u00F5l", -1, -1,
"", null),
133 new Among(
"\u00FCl", -1, -1,
"", null),
134 new Among(
"n", -1, -1,
"", null),
135 new Among(
"an", 19, -1,
"", null),
136 new Among(
"ban", 20, -1,
"", null),
137 new Among(
"en", 19, -1,
"", null),
138 new Among(
"ben", 22, -1,
"", null),
139 new Among(
"k\u00E9ppen", 22, -1,
"", null),
140 new Among(
"on", 19, -1,
"", null),
141 new Among(
"\u00F6n", 19, -1,
"", null),
142 new Among(
"k\u00E9pp", -1, -1,
"", null),
143 new Among(
"kor", -1, -1,
"", null),
144 new Among(
"t", -1, -1,
"", null),
145 new Among(
"at", 29, -1,
"", null),
146 new Among(
"et", 29, -1,
"", null),
147 new Among(
"k\u00E9nt", 29, -1,
"", null),
148 new Among(
"ank\u00E9nt", 32, -1,
"", null),
149 new Among(
"enk\u00E9nt", 32, -1,
"", null),
150 new Among(
"onk\u00E9nt", 32, -1,
"", null),
151 new Among(
"ot", 29, -1,
"", null),
152 new Among(
"\u00E9rt", 29, -1,
"", null),
153 new Among(
"\u00F6t", 29, -1,
"", null),
154 new Among(
"hez", -1, -1,
"", null),
155 new Among(
"hoz", -1, -1,
"", null),
156 new Among(
"h\u00F6z", -1, -1,
"", null),
157 new Among(
"v\u00E1", -1, -1,
"", null),
158 new Among(
"v\u00E9", -1, -1,
"", null)
162 new Among(
"\u00E1n", -1, 2,
"", null),
163 new Among(
"\u00E9n", -1, 1,
"", null),
164 new Among(
"\u00E1nk\u00E9nt", -1, 3,
"", null)
168 new Among(
"stul", -1, 2,
"", null),
169 new Among(
"astul", 0, 1,
"", null),
170 new Among(
"\u00E1stul", 0, 3,
"", null),
171 new Among(
"st\u00FCl", -1, 2,
"", null),
172 new Among(
"est\u00FCl", 3, 1,
"", null),
173 new Among(
"\u00E9st\u00FCl", 3, 4,
"", null)
177 new Among(
"\u00E1", -1, 1,
"", null),
178 new Among(
"\u00E9", -1, 2,
"", null)
182 new Among(
"k", -1, 7,
"", null),
183 new Among(
"ak", 0, 4,
"", null),
184 new Among(
"ek", 0, 6,
"", null),
185 new Among(
"ok", 0, 5,
"", null),
186 new Among(
"\u00E1k", 0, 1,
"", null),
187 new Among(
"\u00E9k", 0, 2,
"", null),
188 new Among(
"\u00F6k", 0, 3,
"", null)
192 new Among(
"\u00E9i", -1, 7,
"", null),
193 new Among(
"\u00E1\u00E9i", 0, 6,
"", null),
194 new Among(
"\u00E9\u00E9i", 0, 5,
"", null),
195 new Among(
"\u00E9", -1, 9,
"", null),
196 new Among(
"k\u00E9", 3, 4,
"", null),
197 new Among(
"ak\u00E9", 4, 1,
"", null),
198 new Among(
"ek\u00E9", 4, 1,
"", null),
199 new Among(
"ok\u00E9", 4, 1,
"", null),
200 new Among(
"\u00E1k\u00E9", 4, 3,
"", null),
201 new Among(
"\u00E9k\u00E9", 4, 2,
"", null),
202 new Among(
"\u00F6k\u00E9", 4, 1,
"", null),
203 new Among(
"\u00E9\u00E9", 3, 8,
"", null)
207 new Among(
"a", -1, 18,
"", null),
208 new Among(
"ja", 0, 17,
"", null),
209 new Among(
"d", -1, 16,
"", null),
210 new Among(
"ad", 2, 13,
"", null),
211 new Among(
"ed", 2, 13,
"", null),
212 new Among(
"od", 2, 13,
"", null),
213 new Among(
"\u00E1d", 2, 14,
"", null),
214 new Among(
"\u00E9d", 2, 15,
"", null),
215 new Among(
"\u00F6d", 2, 13,
"", null),
216 new Among(
"e", -1, 18,
"", null),
217 new Among(
"je", 9, 17,
"", null),
218 new Among(
"nk", -1, 4,
"", null),
219 new Among(
"unk", 11, 1,
"", null),
220 new Among(
"\u00E1nk", 11, 2,
"", null),
221 new Among(
"\u00E9nk", 11, 3,
"", null),
222 new Among(
"\u00FCnk", 11, 1,
"", null),
223 new Among(
"uk", -1, 8,
"", null),
224 new Among(
"juk", 16, 7,
"", null),
225 new Among(
"\u00E1juk", 17, 5,
"", null),
226 new Among(
"\u00FCk", -1, 8,
"", null),
227 new Among(
"j\u00FCk", 19, 7,
"", null),
228 new Among(
"\u00E9j\u00FCk", 20, 6,
"", null),
229 new Among(
"m", -1, 12,
"", null),
230 new Among(
"am", 22, 9,
"", null),
231 new Among(
"em", 22, 9,
"", null),
232 new Among(
"om", 22, 9,
"", null),
233 new Among(
"\u00E1m", 22, 10,
"", null),
234 new Among(
"\u00E9m", 22, 11,
"", null),
235 new Among(
"o", -1, 18,
"", null),
236 new Among(
"\u00E1", -1, 19,
"", null),
237 new Among(
"\u00E9", -1, 20,
"", null)
241 new Among(
"id", -1, 10,
"", null),
242 new Among(
"aid", 0, 9,
"", null),
243 new Among(
"jaid", 1, 6,
"", null),
244 new Among(
"eid", 0, 9,
"", null),
245 new Among(
"jeid", 3, 6,
"", null),
246 new Among(
"\u00E1id", 0, 7,
"", null),
247 new Among(
"\u00E9id", 0, 8,
"", null),
248 new Among(
"i", -1, 15,
"", null),
249 new Among(
"ai", 7, 14,
"", null),
250 new Among(
"jai", 8, 11,
"", null),
251 new Among(
"ei", 7, 14,
"", null),
252 new Among(
"jei", 10, 11,
"", null),
253 new Among(
"\u00E1i", 7, 12,
"", null),
254 new Among(
"\u00E9i", 7, 13,
"", null),
255 new Among(
"itek", -1, 24,
"", null),
256 new Among(
"eitek", 14, 21,
"", null),
257 new Among(
"jeitek", 15, 20,
"", null),
258 new Among(
"\u00E9itek", 14, 23,
"", null),
259 new Among(
"ik", -1, 29,
"", null),
260 new Among(
"aik", 18, 26,
"", null),
261 new Among(
"jaik", 19, 25,
"", null),
262 new Among(
"eik", 18, 26,
"", null),
263 new Among(
"jeik", 21, 25,
"", null),
264 new Among(
"\u00E1ik", 18, 27,
"", null),
265 new Among(
"\u00E9ik", 18, 28,
"", null),
266 new Among(
"ink", -1, 20,
"", null),
267 new Among(
"aink", 25, 17,
"", null),
268 new Among(
"jaink", 26, 16,
"", null),
269 new Among(
"eink", 25, 17,
"", null),
270 new Among(
"jeink", 28, 16,
"", null),
271 new Among(
"\u00E1ink", 25, 18,
"", null),
272 new Among(
"\u00E9ink", 25, 19,
"", null),
273 new Among(
"aitok", -1, 21,
"", null),
274 new Among(
"jaitok", 32, 20,
"", null),
275 new Among(
"\u00E1itok", -1, 22,
"", null),
276 new Among(
"im", -1, 5,
"", null),
277 new Among(
"aim", 35, 4,
"", null),
278 new Among(
"jaim", 36, 1,
"", null),
279 new Among(
"eim", 35, 4,
"", null),
280 new Among(
"jeim", 38, 1,
"", null),
281 new Among(
"\u00E1im", 35, 2,
"", null),
282 new Among(
"\u00E9im", 35, 3,
"", null)
297 private Among[] a_10;
298 private Among[] a_11;
299 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)1, (
char)17, (char)52, (
char)14 };
303 private void copy_from(HungarianStemmer other)
306 base.copy_from(other);
309 private bool r_mark_regions()
319 if (!(in_grouping(g_v, 97, 252)))
327 if (!(out_grouping(g_v, 97, 252)))
345 if (find_among(a_0, 8) == 0)
365 if (!(out_grouping(g_v, 97, 252)))
372 if (!(in_grouping(g_v, 97, 252)))
393 if (!(I_p1 <= cursor))
400 private bool r_v_ending()
407 among_var = find_among_b(a_1, 2);
437 private bool r_double()
442 v_1 = limit - cursor;
444 if (find_among_b(a_2, 23) == 0)
448 cursor = limit - v_1;
452 private bool r_undouble()
456 if (cursor <= limit_backward)
466 if (limit_backward > c || c > limit)
479 private bool r_instrum()
486 among_var = find_among_b(a_3, 2);
529 private bool r_case()
535 if (find_among_b(a_4, 44) == 0)
556 private bool r_case_special()
563 among_var = find_among_b(a_5, 3);
598 private bool r_case_other()
605 among_var = find_among_b(a_6, 6);
645 private bool r_factive()
652 among_var = find_among_b(a_7, 2);
695 private bool r_plural()
702 among_var = find_among_b(a_8, 7);
757 private bool r_owned()
764 among_var = find_among_b(a_9, 12);
829 private bool r_sing_owner()
836 among_var = find_among_b(a_10, 31);
956 private bool r_plur_owner()
963 among_var = find_among_b(a_11, 42);
1128 public override bool Stem()
1144 if (!r_mark_regions())
1151 limit_backward = cursor; cursor = limit;
1154 v_2 = limit - cursor;
1161 cursor = limit - v_2;
1163 v_3 = limit - cursor;
1170 cursor = limit - v_3;
1172 v_4 = limit - cursor;
1174 if (!r_case_special())
1179 cursor = limit - v_4;
1181 v_5 = limit - cursor;
1183 if (!r_case_other())
1188 cursor = limit - v_5;
1190 v_6 = limit - cursor;
1197 cursor = limit - v_6;
1199 v_7 = limit - cursor;
1206 cursor = limit - v_7;
1208 v_8 = limit - cursor;
1210 if (!r_sing_owner())
1215 cursor = limit - v_8;
1217 v_9 = limit - cursor;
1219 if (!r_plur_owner())
1224 cursor = limit - v_9;
1226 v_10 = limit - cursor;
1233 cursor = limit - v_10;
1234 cursor = limit_backward;