1 // This file was generated automatically by the Snowball to Java compiler
2
3 package org.tartarus.snowball.ext;
4
5 import org.tartarus.snowball.Among;
6
7 /***
8 * This class was automatically generated by a Snowball to Java compiler
9 * It implements the stemming algorithm defined by a snowball script.
10 */
11
12 public class finnishStemmer extends org.tartarus.snowball.SnowballStemmer {
13
14 private static final long serialVersionUID = 1L;
15
16 private final static finnishStemmer methodObject = new finnishStemmer ();
17
18 private final static Among a_0[] = {
19 new Among ( "pa", -1, 1, "", methodObject ),
20 new Among ( "sti", -1, 2, "", methodObject ),
21 new Among ( "kaan", -1, 1, "", methodObject ),
22 new Among ( "han", -1, 1, "", methodObject ),
23 new Among ( "kin", -1, 1, "", methodObject ),
24 new Among ( "h\u00E4n", -1, 1, "", methodObject ),
25 new Among ( "k\u00E4\u00E4n", -1, 1, "", methodObject ),
26 new Among ( "ko", -1, 1, "", methodObject ),
27 new Among ( "p\u00E4", -1, 1, "", methodObject ),
28 new Among ( "k\u00F6", -1, 1, "", methodObject )
29 };
30
31 private final static Among a_1[] = {
32 new Among ( "lla", -1, -1, "", methodObject ),
33 new Among ( "na", -1, -1, "", methodObject ),
34 new Among ( "ssa", -1, -1, "", methodObject ),
35 new Among ( "ta", -1, -1, "", methodObject ),
36 new Among ( "lta", 3, -1, "", methodObject ),
37 new Among ( "sta", 3, -1, "", methodObject )
38 };
39
40 private final static Among a_2[] = {
41 new Among ( "ll\u00E4", -1, -1, "", methodObject ),
42 new Among ( "n\u00E4", -1, -1, "", methodObject ),
43 new Among ( "ss\u00E4", -1, -1, "", methodObject ),
44 new Among ( "t\u00E4", -1, -1, "", methodObject ),
45 new Among ( "lt\u00E4", 3, -1, "", methodObject ),
46 new Among ( "st\u00E4", 3, -1, "", methodObject )
47 };
48
49 private final static Among a_3[] = {
50 new Among ( "lle", -1, -1, "", methodObject ),
51 new Among ( "ine", -1, -1, "", methodObject )
52 };
53
54 private final static Among a_4[] = {
55 new Among ( "nsa", -1, 3, "", methodObject ),
56 new Among ( "mme", -1, 3, "", methodObject ),
57 new Among ( "nne", -1, 3, "", methodObject ),
58 new Among ( "ni", -1, 2, "", methodObject ),
59 new Among ( "si", -1, 1, "", methodObject ),
60 new Among ( "an", -1, 4, "", methodObject ),
61 new Among ( "en", -1, 6, "", methodObject ),
62 new Among ( "\u00E4n", -1, 5, "", methodObject ),
63 new Among ( "ns\u00E4", -1, 3, "", methodObject )
64 };
65
66 private final static Among a_5[] = {
67 new Among ( "aa", -1, -1, "", methodObject ),
68 new Among ( "ee", -1, -1, "", methodObject ),
69 new Among ( "ii", -1, -1, "", methodObject ),
70 new Among ( "oo", -1, -1, "", methodObject ),
71 new Among ( "uu", -1, -1, "", methodObject ),
72 new Among ( "\u00E4\u00E4", -1, -1, "", methodObject ),
73 new Among ( "\u00F6\u00F6", -1, -1, "", methodObject )
74 };
75
76 private final static Among a_6[] = {
77 new Among ( "a", -1, 8, "", methodObject ),
78 new Among ( "lla", 0, -1, "", methodObject ),
79 new Among ( "na", 0, -1, "", methodObject ),
80 new Among ( "ssa", 0, -1, "", methodObject ),
81 new Among ( "ta", 0, -1, "", methodObject ),
82 new Among ( "lta", 4, -1, "", methodObject ),
83 new Among ( "sta", 4, -1, "", methodObject ),
84 new Among ( "tta", 4, 9, "", methodObject ),
85 new Among ( "lle", -1, -1, "", methodObject ),
86 new Among ( "ine", -1, -1, "", methodObject ),
87 new Among ( "ksi", -1, -1, "", methodObject ),
88 new Among ( "n", -1, 7, "", methodObject ),
89 new Among ( "han", 11, 1, "", methodObject ),
90 new Among ( "den", 11, -1, "r_VI", methodObject ),
91 new Among ( "seen", 11, -1, "r_LONG", methodObject ),
92 new Among ( "hen", 11, 2, "", methodObject ),
93 new Among ( "tten", 11, -1, "r_VI", methodObject ),
94 new Among ( "hin", 11, 3, "", methodObject ),
95 new Among ( "siin", 11, -1, "r_VI", methodObject ),
96 new Among ( "hon", 11, 4, "", methodObject ),
97 new Among ( "h\u00E4n", 11, 5, "", methodObject ),
98 new Among ( "h\u00F6n", 11, 6, "", methodObject ),
99 new Among ( "\u00E4", -1, 8, "", methodObject ),
100 new Among ( "ll\u00E4", 22, -1, "", methodObject ),
101 new Among ( "n\u00E4", 22, -1, "", methodObject ),
102 new Among ( "ss\u00E4", 22, -1, "", methodObject ),
103 new Among ( "t\u00E4", 22, -1, "", methodObject ),
104 new Among ( "lt\u00E4", 26, -1, "", methodObject ),
105 new Among ( "st\u00E4", 26, -1, "", methodObject ),
106 new Among ( "tt\u00E4", 26, 9, "", methodObject )
107 };
108
109 private final static Among a_7[] = {
110 new Among ( "eja", -1, -1, "", methodObject ),
111 new Among ( "mma", -1, 1, "", methodObject ),
112 new Among ( "imma", 1, -1, "", methodObject ),
113 new Among ( "mpa", -1, 1, "", methodObject ),
114 new Among ( "impa", 3, -1, "", methodObject ),
115 new Among ( "mmi", -1, 1, "", methodObject ),
116 new Among ( "immi", 5, -1, "", methodObject ),
117 new Among ( "mpi", -1, 1, "", methodObject ),
118 new Among ( "impi", 7, -1, "", methodObject ),
119 new Among ( "ej\u00E4", -1, -1, "", methodObject ),
120 new Among ( "mm\u00E4", -1, 1, "", methodObject ),
121 new Among ( "imm\u00E4", 10, -1, "", methodObject ),
122 new Among ( "mp\u00E4", -1, 1, "", methodObject ),
123 new Among ( "imp\u00E4", 12, -1, "", methodObject )
124 };
125
126 private final static Among a_8[] = {
127 new Among ( "i", -1, -1, "", methodObject ),
128 new Among ( "j", -1, -1, "", methodObject )
129 };
130
131 private final static Among a_9[] = {
132 new Among ( "mma", -1, 1, "", methodObject ),
133 new Among ( "imma", 0, -1, "", methodObject )
134 };
135
136 private static final char g_AEI[] = {17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8 };
137
138 private static final char g_V1[] = {17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
139
140 private static final char g_V2[] = {17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
141
142 private static final char g_particle_end[] = {17, 97, 24, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
143
144 private boolean B_ending_removed;
145 private java.lang.StringBuilder S_x = new java.lang.StringBuilder();
146 private int I_p2;
147 private int I_p1;
148
149 private void copy_from(finnishStemmer other) {
150 B_ending_removed = other.B_ending_removed;
151 S_x = other.S_x;
152 I_p2 = other.I_p2;
153 I_p1 = other.I_p1;
154 super.copy_from(other);
155 }
156
157 private boolean r_mark_regions() {
158 int v_1;
159 int v_3;
160 // (, line 41
161 I_p1 = limit;
162 I_p2 = limit;
163 // goto, line 46
164 golab0: while(true)
165 {
166 v_1 = cursor;
167 lab1: do {
168 if (!(in_grouping(g_V1, 97, 246)))
169 {
170 break lab1;
171 }
172 cursor = v_1;
173 break golab0;
174 } while (false);
175 cursor = v_1;
176 if (cursor >= limit)
177 {
178 return false;
179 }
180 cursor++;
181 }
182 // gopast, line 46
183 golab2: while(true)
184 {
185 lab3: do {
186 if (!(out_grouping(g_V1, 97, 246)))
187 {
188 break lab3;
189 }
190 break golab2;
191 } while (false);
192 if (cursor >= limit)
193 {
194 return false;
195 }
196 cursor++;
197 }
198 // setmark p1, line 46
199 I_p1 = cursor;
200 // goto, line 47
201 golab4: while(true)
202 {
203 v_3 = cursor;
204 lab5: do {
205 if (!(in_grouping(g_V1, 97, 246)))
206 {
207 break lab5;
208 }
209 cursor = v_3;
210 break golab4;
211 } while (false);
212 cursor = v_3;
213 if (cursor >= limit)
214 {
215 return false;
216 }
217 cursor++;
218 }
219 // gopast, line 47
220 golab6: while(true)
221 {
222 lab7: do {
223 if (!(out_grouping(g_V1, 97, 246)))
224 {
225 break lab7;
226 }
227 break golab6;
228 } while (false);
229 if (cursor >= limit)
230 {
231 return false;
232 }
233 cursor++;
234 }
235 // setmark p2, line 47
236 I_p2 = cursor;
237 return true;
238 }
239
240 private boolean r_R2() {
241 if (!(I_p2 <= cursor))
242 {
243 return false;
244 }
245 return true;
246 }
247
248 private boolean r_particle_etc() {
249 int among_var;
250 int v_1;
251 int v_2;
252 // (, line 54
253 // setlimit, line 55
254 v_1 = limit - cursor;
255 // tomark, line 55
256 if (cursor < I_p1)
257 {
258 return false;
259 }
260 cursor = I_p1;
261 v_2 = limit_backward;
262 limit_backward = cursor;
263 cursor = limit - v_1;
264 // (, line 55
265 // [, line 55
266 ket = cursor;
267 // substring, line 55
268 among_var = find_among_b(a_0, 10);
269 if (among_var == 0)
270 {
271 limit_backward = v_2;
272 return false;
273 }
274 // ], line 55
275 bra = cursor;
276 limit_backward = v_2;
277 switch(among_var) {
278 case 0:
279 return false;
280 case 1:
281 // (, line 62
282 if (!(in_grouping_b(g_particle_end, 97, 246)))
283 {
284 return false;
285 }
286 break;
287 case 2:
288 // (, line 64
289 // call R2, line 64
290 if (!r_R2())
291 {
292 return false;
293 }
294 break;
295 }
296 // delete, line 66
297 slice_del();
298 return true;
299 }
300
301 private boolean r_possessive() {
302 int among_var;
303 int v_1;
304 int v_2;
305 int v_3;
306 // (, line 68
307 // setlimit, line 69
308 v_1 = limit - cursor;
309 // tomark, line 69
310 if (cursor < I_p1)
311 {
312 return false;
313 }
314 cursor = I_p1;
315 v_2 = limit_backward;
316 limit_backward = cursor;
317 cursor = limit - v_1;
318 // (, line 69
319 // [, line 69
320 ket = cursor;
321 // substring, line 69
322 among_var = find_among_b(a_4, 9);
323 if (among_var == 0)
324 {
325 limit_backward = v_2;
326 return false;
327 }
328 // ], line 69
329 bra = cursor;
330 limit_backward = v_2;
331 switch(among_var) {
332 case 0:
333 return false;
334 case 1:
335 // (, line 72
336 // not, line 72
337 {
338 v_3 = limit - cursor;
339 lab0: do {
340 // literal, line 72
341 if (!(eq_s_b(1, "k")))
342 {
343 break lab0;
344 }
345 return false;
346 } while (false);
347 cursor = limit - v_3;
348 }
349 // delete, line 72
350 slice_del();
351 break;
352 case 2:
353 // (, line 74
354 // delete, line 74
355 slice_del();
356 // [, line 74
357 ket = cursor;
358 // literal, line 74
359 if (!(eq_s_b(3, "kse")))
360 {
361 return false;
362 }
363 // ], line 74
364 bra = cursor;
365 // <-, line 74
366 slice_from("ksi");
367 break;
368 case 3:
369 // (, line 78
370 // delete, line 78
371 slice_del();
372 break;
373 case 4:
374 // (, line 81
375 // among, line 81
376 if (find_among_b(a_1, 6) == 0)
377 {
378 return false;
379 }
380 // delete, line 81
381 slice_del();
382 break;
383 case 5:
384 // (, line 83
385 // among, line 83
386 if (find_among_b(a_2, 6) == 0)
387 {
388 return false;
389 }
390 // delete, line 84
391 slice_del();
392 break;
393 case 6:
394 // (, line 86
395 // among, line 86
396 if (find_among_b(a_3, 2) == 0)
397 {
398 return false;
399 }
400 // delete, line 86
401 slice_del();
402 break;
403 }
404 return true;
405 }
406
407 private boolean r_LONG() {
408 // among, line 91
409 if (find_among_b(a_5, 7) == 0)
410 {
411 return false;
412 }
413 return true;
414 }
415
416 private boolean r_VI() {
417 // (, line 93
418 // literal, line 93
419 if (!(eq_s_b(1, "i")))
420 {
421 return false;
422 }
423 if (!(in_grouping_b(g_V2, 97, 246)))
424 {
425 return false;
426 }
427 return true;
428 }
429
430 private boolean r_case_ending() {
431 int among_var;
432 int v_1;
433 int v_2;
434 int v_3;
435 int v_4;
436 int v_5;
437 // (, line 95
438 // setlimit, line 96
439 v_1 = limit - cursor;
440 // tomark, line 96
441 if (cursor < I_p1)
442 {
443 return false;
444 }
445 cursor = I_p1;
446 v_2 = limit_backward;
447 limit_backward = cursor;
448 cursor = limit - v_1;
449 // (, line 96
450 // [, line 96
451 ket = cursor;
452 // substring, line 96
453 among_var = find_among_b(a_6, 30);
454 if (among_var == 0)
455 {
456 limit_backward = v_2;
457 return false;
458 }
459 // ], line 96
460 bra = cursor;
461 limit_backward = v_2;
462 switch(among_var) {
463 case 0:
464 return false;
465 case 1:
466 // (, line 98
467 // literal, line 98
468 if (!(eq_s_b(1, "a")))
469 {
470 return false;
471 }
472 break;
473 case 2:
474 // (, line 99
475 // literal, line 99
476 if (!(eq_s_b(1, "e")))
477 {
478 return false;
479 }
480 break;
481 case 3:
482 // (, line 100
483 // literal, line 100
484 if (!(eq_s_b(1, "i")))
485 {
486 return false;
487 }
488 break;
489 case 4:
490 // (, line 101
491 // literal, line 101
492 if (!(eq_s_b(1, "o")))
493 {
494 return false;
495 }
496 break;
497 case 5:
498 // (, line 102
499 // literal, line 102
500 if (!(eq_s_b(1, "\u00E4")))
501 {
502 return false;
503 }
504 break;
505 case 6:
506 // (, line 103
507 // literal, line 103
508 if (!(eq_s_b(1, "\u00F6")))
509 {
510 return false;
511 }
512 break;
513 case 7:
514 // (, line 111
515 // try, line 111
516 v_3 = limit - cursor;
517 lab0: do {
518 // (, line 111
519 // and, line 113
520 v_4 = limit - cursor;
521 // or, line 112
522 lab1: do {
523 v_5 = limit - cursor;
524 lab2: do {
525 // call LONG, line 111
526 if (!r_LONG())
527 {
528 break lab2;
529 }
530 break lab1;
531 } while (false);
532 cursor = limit - v_5;
533 // literal, line 112
534 if (!(eq_s_b(2, "ie")))
535 {
536 cursor = limit - v_3;
537 break lab0;
538 }
539 } while (false);
540 cursor = limit - v_4;
541 // next, line 113
542 if (cursor <= limit_backward)
543 {
544 cursor = limit - v_3;
545 break lab0;
546 }
547 cursor--;
548 // ], line 113
549 bra = cursor;
550 } while (false);
551 break;
552 case 8:
553 // (, line 119
554 if (!(in_grouping_b(g_V1, 97, 246)))
555 {
556 return false;
557 }
558 if (!(out_grouping_b(g_V1, 97, 246)))
559 {
560 return false;
561 }
562 break;
563 case 9:
564 // (, line 121
565 // literal, line 121
566 if (!(eq_s_b(1, "e")))
567 {
568 return false;
569 }
570 break;
571 }
572 // delete, line 138
573 slice_del();
574 // set ending_removed, line 139
575 B_ending_removed = true;
576 return true;
577 }
578
579 private boolean r_other_endings() {
580 int among_var;
581 int v_1;
582 int v_2;
583 int v_3;
584 // (, line 141
585 // setlimit, line 142
586 v_1 = limit - cursor;
587 // tomark, line 142
588 if (cursor < I_p2)
589 {
590 return false;
591 }
592 cursor = I_p2;
593 v_2 = limit_backward;
594 limit_backward = cursor;
595 cursor = limit - v_1;
596 // (, line 142
597 // [, line 142
598 ket = cursor;
599 // substring, line 142
600 among_var = find_among_b(a_7, 14);
601 if (among_var == 0)
602 {
603 limit_backward = v_2;
604 return false;
605 }
606 // ], line 142
607 bra = cursor;
608 limit_backward = v_2;
609 switch(among_var) {
610 case 0:
611 return false;
612 case 1:
613 // (, line 146
614 // not, line 146
615 {
616 v_3 = limit - cursor;
617 lab0: do {
618 // literal, line 146
619 if (!(eq_s_b(2, "po")))
620 {
621 break lab0;
622 }
623 return false;
624 } while (false);
625 cursor = limit - v_3;
626 }
627 break;
628 }
629 // delete, line 151
630 slice_del();
631 return true;
632 }
633
634 private boolean r_i_plural() {
635 int v_1;
636 int v_2;
637 // (, line 153
638 // setlimit, line 154
639 v_1 = limit - cursor;
640 // tomark, line 154
641 if (cursor < I_p1)
642 {
643 return false;
644 }
645 cursor = I_p1;
646 v_2 = limit_backward;
647 limit_backward = cursor;
648 cursor = limit - v_1;
649 // (, line 154
650 // [, line 154
651 ket = cursor;
652 // substring, line 154
653 if (find_among_b(a_8, 2) == 0)
654 {
655 limit_backward = v_2;
656 return false;
657 }
658 // ], line 154
659 bra = cursor;
660 limit_backward = v_2;
661 // delete, line 158
662 slice_del();
663 return true;
664 }
665
666 private boolean r_t_plural() {
667 int among_var;
668 int v_1;
669 int v_2;
670 int v_3;
671 int v_4;
672 int v_5;
673 int v_6;
674 // (, line 160
675 // setlimit, line 161
676 v_1 = limit - cursor;
677 // tomark, line 161
678 if (cursor < I_p1)
679 {
680 return false;
681 }
682 cursor = I_p1;
683 v_2 = limit_backward;
684 limit_backward = cursor;
685 cursor = limit - v_1;
686 // (, line 161
687 // [, line 162
688 ket = cursor;
689 // literal, line 162
690 if (!(eq_s_b(1, "t")))
691 {
692 limit_backward = v_2;
693 return false;
694 }
695 // ], line 162
696 bra = cursor;
697 // test, line 162
698 v_3 = limit - cursor;
699 if (!(in_grouping_b(g_V1, 97, 246)))
700 {
701 limit_backward = v_2;
702 return false;
703 }
704 cursor = limit - v_3;
705 // delete, line 163
706 slice_del();
707 limit_backward = v_2;
708 // setlimit, line 165
709 v_4 = limit - cursor;
710 // tomark, line 165
711 if (cursor < I_p2)
712 {
713 return false;
714 }
715 cursor = I_p2;
716 v_5 = limit_backward;
717 limit_backward = cursor;
718 cursor = limit - v_4;
719 // (, line 165
720 // [, line 165
721 ket = cursor;
722 // substring, line 165
723 among_var = find_among_b(a_9, 2);
724 if (among_var == 0)
725 {
726 limit_backward = v_5;
727 return false;
728 }
729 // ], line 165
730 bra = cursor;
731 limit_backward = v_5;
732 switch(among_var) {
733 case 0:
734 return false;
735 case 1:
736 // (, line 167
737 // not, line 167
738 {
739 v_6 = limit - cursor;
740 lab0: do {
741 // literal, line 167
742 if (!(eq_s_b(2, "po")))
743 {
744 break lab0;
745 }
746 return false;
747 } while (false);
748 cursor = limit - v_6;
749 }
750 break;
751 }
752 // delete, line 170
753 slice_del();
754 return true;
755 }
756
757 private boolean r_tidy() {
758 int v_1;
759 int v_2;
760 int v_3;
761 int v_4;
762 int v_5;
763 int v_6;
764 int v_7;
765 int v_8;
766 int v_9;
767 // (, line 172
768 // setlimit, line 173
769 v_1 = limit - cursor;
770 // tomark, line 173
771 if (cursor < I_p1)
772 {
773 return false;
774 }
775 cursor = I_p1;
776 v_2 = limit_backward;
777 limit_backward = cursor;
778 cursor = limit - v_1;
779 // (, line 173
780 // do, line 174
781 v_3 = limit - cursor;
782 lab0: do {
783 // (, line 174
784 // and, line 174
785 v_4 = limit - cursor;
786 // call LONG, line 174
787 if (!r_LONG())
788 {
789 break lab0;
790 }
791 cursor = limit - v_4;
792 // (, line 174
793 // [, line 174
794 ket = cursor;
795 // next, line 174
796 if (cursor <= limit_backward)
797 {
798 break lab0;
799 }
800 cursor--;
801 // ], line 174
802 bra = cursor;
803 // delete, line 174
804 slice_del();
805 } while (false);
806 cursor = limit - v_3;
807 // do, line 175
808 v_5 = limit - cursor;
809 lab1: do {
810 // (, line 175
811 // [, line 175
812 ket = cursor;
813 if (!(in_grouping_b(g_AEI, 97, 228)))
814 {
815 break lab1;
816 }
817 // ], line 175
818 bra = cursor;
819 if (!(out_grouping_b(g_V1, 97, 246)))
820 {
821 break lab1;
822 }
823 // delete, line 175
824 slice_del();
825 } while (false);
826 cursor = limit - v_5;
827 // do, line 176
828 v_6 = limit - cursor;
829 lab2: do {
830 // (, line 176
831 // [, line 176
832 ket = cursor;
833 // literal, line 176
834 if (!(eq_s_b(1, "j")))
835 {
836 break lab2;
837 }
838 // ], line 176
839 bra = cursor;
840 // or, line 176
841 lab3: do {
842 v_7 = limit - cursor;
843 lab4: do {
844 // literal, line 176
845 if (!(eq_s_b(1, "o")))
846 {
847 break lab4;
848 }
849 break lab3;
850 } while (false);
851 cursor = limit - v_7;
852 // literal, line 176
853 if (!(eq_s_b(1, "u")))
854 {
855 break lab2;
856 }
857 } while (false);
858 // delete, line 176
859 slice_del();
860 } while (false);
861 cursor = limit - v_6;
862 // do, line 177
863 v_8 = limit - cursor;
864 lab5: do {
865 // (, line 177
866 // [, line 177
867 ket = cursor;
868 // literal, line 177
869 if (!(eq_s_b(1, "o")))
870 {
871 break lab5;
872 }
873 // ], line 177
874 bra = cursor;
875 // literal, line 177
876 if (!(eq_s_b(1, "j")))
877 {
878 break lab5;
879 }
880 // delete, line 177
881 slice_del();
882 } while (false);
883 cursor = limit - v_8;
884 limit_backward = v_2;
885 // goto, line 179
886 golab6: while(true)
887 {
888 v_9 = limit - cursor;
889 lab7: do {
890 if (!(out_grouping_b(g_V1, 97, 246)))
891 {
892 break lab7;
893 }
894 cursor = limit - v_9;
895 break golab6;
896 } while (false);
897 cursor = limit - v_9;
898 if (cursor <= limit_backward)
899 {
900 return false;
901 }
902 cursor--;
903 }
904 // [, line 179
905 ket = cursor;
906 // next, line 179
907 if (cursor <= limit_backward)
908 {
909 return false;
910 }
911 cursor--;
912 // ], line 179
913 bra = cursor;
914 // -> x, line 179
915 S_x = slice_to(S_x);
916 // name x, line 179
917 if (!(eq_v_b(S_x)))
918 {
919 return false;
920 }
921 // delete, line 179
922 slice_del();
923 return true;
924 }
925
926 public boolean stem() {
927 int v_1;
928 int v_2;
929 int v_3;
930 int v_4;
931 int v_5;
932 int v_6;
933 int v_7;
934 int v_8;
935 int v_9;
936 // (, line 183
937 // do, line 185
938 v_1 = cursor;
939 lab0: do {
940 // call mark_regions, line 185
941 if (!r_mark_regions())
942 {
943 break lab0;
944 }
945 } while (false);
946 cursor = v_1;
947 // unset ending_removed, line 186
948 B_ending_removed = false;
949 // backwards, line 187
950 limit_backward = cursor; cursor = limit;
951 // (, line 187
952 // do, line 188
953 v_2 = limit - cursor;
954 lab1: do {
955 // call particle_etc, line 188
956 if (!r_particle_etc())
957 {
958 break lab1;
959 }
960 } while (false);
961 cursor = limit - v_2;
962 // do, line 189
963 v_3 = limit - cursor;
964 lab2: do {
965 // call possessive, line 189
966 if (!r_possessive())
967 {
968 break lab2;
969 }
970 } while (false);
971 cursor = limit - v_3;
972 // do, line 190
973 v_4 = limit - cursor;
974 lab3: do {
975 // call case_ending, line 190
976 if (!r_case_ending())
977 {
978 break lab3;
979 }
980 } while (false);
981 cursor = limit - v_4;
982 // do, line 191
983 v_5 = limit - cursor;
984 lab4: do {
985 // call other_endings, line 191
986 if (!r_other_endings())
987 {
988 break lab4;
989 }
990 } while (false);
991 cursor = limit - v_5;
992 // or, line 192
993 lab5: do {
994 v_6 = limit - cursor;
995 lab6: do {
996 // (, line 192
997 // Boolean test ending_removed, line 192
998 if (!(B_ending_removed))
999 {
1000 break lab6;
1001 }
1002 // do, line 192
1003 v_7 = limit - cursor;
1004 lab7: do {
1005 // call i_plural, line 192
1006 if (!r_i_plural())
1007 {
1008 break lab7;
1009 }
1010 } while (false);
1011 cursor = limit - v_7;
1012 break lab5;
1013 } while (false);
1014 cursor = limit - v_6;
1015 // do, line 192
1016 v_8 = limit - cursor;
1017 lab8: do {
1018 // call t_plural, line 192
1019 if (!r_t_plural())
1020 {
1021 break lab8;
1022 }
1023 } while (false);
1024 cursor = limit - v_8;
1025 } while (false);
1026 // do, line 193
1027 v_9 = limit - cursor;
1028 lab9: do {
1029 // call tidy, line 193
1030 if (!r_tidy())
1031 {
1032 break lab9;
1033 }
1034 } while (false);
1035 cursor = limit - v_9;
1036 cursor = limit_backward; return true;
1037 }
1038
1039 public boolean equals( Object o ) {
1040 return o instanceof finnishStemmer;
1041 }
1042
1043 public int hashCode() {
1044 return finnishStemmer.class.getName().hashCode();
1045 }
1046
1047
1048
1049 }
1050