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 italianStemmer extends org.tartarus.snowball.SnowballStemmer {
13
14 private static final long serialVersionUID = 1L;
15
16 private final static italianStemmer methodObject = new italianStemmer ();
17
18 private final static Among a_0[] = {
19 new Among ( "", -1, 7, "", methodObject ),
20 new Among ( "qu", 0, 6, "", methodObject ),
21 new Among ( "\u00E1", 0, 1, "", methodObject ),
22 new Among ( "\u00E9", 0, 2, "", methodObject ),
23 new Among ( "\u00ED", 0, 3, "", methodObject ),
24 new Among ( "\u00F3", 0, 4, "", methodObject ),
25 new Among ( "\u00FA", 0, 5, "", methodObject )
26 };
27
28 private final static Among a_1[] = {
29 new Among ( "", -1, 3, "", methodObject ),
30 new Among ( "I", 0, 1, "", methodObject ),
31 new Among ( "U", 0, 2, "", methodObject )
32 };
33
34 private final static Among a_2[] = {
35 new Among ( "la", -1, -1, "", methodObject ),
36 new Among ( "cela", 0, -1, "", methodObject ),
37 new Among ( "gliela", 0, -1, "", methodObject ),
38 new Among ( "mela", 0, -1, "", methodObject ),
39 new Among ( "tela", 0, -1, "", methodObject ),
40 new Among ( "vela", 0, -1, "", methodObject ),
41 new Among ( "le", -1, -1, "", methodObject ),
42 new Among ( "cele", 6, -1, "", methodObject ),
43 new Among ( "gliele", 6, -1, "", methodObject ),
44 new Among ( "mele", 6, -1, "", methodObject ),
45 new Among ( "tele", 6, -1, "", methodObject ),
46 new Among ( "vele", 6, -1, "", methodObject ),
47 new Among ( "ne", -1, -1, "", methodObject ),
48 new Among ( "cene", 12, -1, "", methodObject ),
49 new Among ( "gliene", 12, -1, "", methodObject ),
50 new Among ( "mene", 12, -1, "", methodObject ),
51 new Among ( "sene", 12, -1, "", methodObject ),
52 new Among ( "tene", 12, -1, "", methodObject ),
53 new Among ( "vene", 12, -1, "", methodObject ),
54 new Among ( "ci", -1, -1, "", methodObject ),
55 new Among ( "li", -1, -1, "", methodObject ),
56 new Among ( "celi", 20, -1, "", methodObject ),
57 new Among ( "glieli", 20, -1, "", methodObject ),
58 new Among ( "meli", 20, -1, "", methodObject ),
59 new Among ( "teli", 20, -1, "", methodObject ),
60 new Among ( "veli", 20, -1, "", methodObject ),
61 new Among ( "gli", 20, -1, "", methodObject ),
62 new Among ( "mi", -1, -1, "", methodObject ),
63 new Among ( "si", -1, -1, "", methodObject ),
64 new Among ( "ti", -1, -1, "", methodObject ),
65 new Among ( "vi", -1, -1, "", methodObject ),
66 new Among ( "lo", -1, -1, "", methodObject ),
67 new Among ( "celo", 31, -1, "", methodObject ),
68 new Among ( "glielo", 31, -1, "", methodObject ),
69 new Among ( "melo", 31, -1, "", methodObject ),
70 new Among ( "telo", 31, -1, "", methodObject ),
71 new Among ( "velo", 31, -1, "", methodObject )
72 };
73
74 private final static Among a_3[] = {
75 new Among ( "ando", -1, 1, "", methodObject ),
76 new Among ( "endo", -1, 1, "", methodObject ),
77 new Among ( "ar", -1, 2, "", methodObject ),
78 new Among ( "er", -1, 2, "", methodObject ),
79 new Among ( "ir", -1, 2, "", methodObject )
80 };
81
82 private final static Among a_4[] = {
83 new Among ( "ic", -1, -1, "", methodObject ),
84 new Among ( "abil", -1, -1, "", methodObject ),
85 new Among ( "os", -1, -1, "", methodObject ),
86 new Among ( "iv", -1, 1, "", methodObject )
87 };
88
89 private final static Among a_5[] = {
90 new Among ( "ic", -1, 1, "", methodObject ),
91 new Among ( "abil", -1, 1, "", methodObject ),
92 new Among ( "iv", -1, 1, "", methodObject )
93 };
94
95 private final static Among a_6[] = {
96 new Among ( "ica", -1, 1, "", methodObject ),
97 new Among ( "logia", -1, 3, "", methodObject ),
98 new Among ( "osa", -1, 1, "", methodObject ),
99 new Among ( "ista", -1, 1, "", methodObject ),
100 new Among ( "iva", -1, 9, "", methodObject ),
101 new Among ( "anza", -1, 1, "", methodObject ),
102 new Among ( "enza", -1, 5, "", methodObject ),
103 new Among ( "ice", -1, 1, "", methodObject ),
104 new Among ( "atrice", 7, 1, "", methodObject ),
105 new Among ( "iche", -1, 1, "", methodObject ),
106 new Among ( "logie", -1, 3, "", methodObject ),
107 new Among ( "abile", -1, 1, "", methodObject ),
108 new Among ( "ibile", -1, 1, "", methodObject ),
109 new Among ( "usione", -1, 4, "", methodObject ),
110 new Among ( "azione", -1, 2, "", methodObject ),
111 new Among ( "uzione", -1, 4, "", methodObject ),
112 new Among ( "atore", -1, 2, "", methodObject ),
113 new Among ( "ose", -1, 1, "", methodObject ),
114 new Among ( "ante", -1, 1, "", methodObject ),
115 new Among ( "mente", -1, 1, "", methodObject ),
116 new Among ( "amente", 19, 7, "", methodObject ),
117 new Among ( "iste", -1, 1, "", methodObject ),
118 new Among ( "ive", -1, 9, "", methodObject ),
119 new Among ( "anze", -1, 1, "", methodObject ),
120 new Among ( "enze", -1, 5, "", methodObject ),
121 new Among ( "ici", -1, 1, "", methodObject ),
122 new Among ( "atrici", 25, 1, "", methodObject ),
123 new Among ( "ichi", -1, 1, "", methodObject ),
124 new Among ( "abili", -1, 1, "", methodObject ),
125 new Among ( "ibili", -1, 1, "", methodObject ),
126 new Among ( "ismi", -1, 1, "", methodObject ),
127 new Among ( "usioni", -1, 4, "", methodObject ),
128 new Among ( "azioni", -1, 2, "", methodObject ),
129 new Among ( "uzioni", -1, 4, "", methodObject ),
130 new Among ( "atori", -1, 2, "", methodObject ),
131 new Among ( "osi", -1, 1, "", methodObject ),
132 new Among ( "anti", -1, 1, "", methodObject ),
133 new Among ( "amenti", -1, 6, "", methodObject ),
134 new Among ( "imenti", -1, 6, "", methodObject ),
135 new Among ( "isti", -1, 1, "", methodObject ),
136 new Among ( "ivi", -1, 9, "", methodObject ),
137 new Among ( "ico", -1, 1, "", methodObject ),
138 new Among ( "ismo", -1, 1, "", methodObject ),
139 new Among ( "oso", -1, 1, "", methodObject ),
140 new Among ( "amento", -1, 6, "", methodObject ),
141 new Among ( "imento", -1, 6, "", methodObject ),
142 new Among ( "ivo", -1, 9, "", methodObject ),
143 new Among ( "it\u00E0", -1, 8, "", methodObject ),
144 new Among ( "ist\u00E0", -1, 1, "", methodObject ),
145 new Among ( "ist\u00E8", -1, 1, "", methodObject ),
146 new Among ( "ist\u00EC", -1, 1, "", methodObject )
147 };
148
149 private final static Among a_7[] = {
150 new Among ( "isca", -1, 1, "", methodObject ),
151 new Among ( "enda", -1, 1, "", methodObject ),
152 new Among ( "ata", -1, 1, "", methodObject ),
153 new Among ( "ita", -1, 1, "", methodObject ),
154 new Among ( "uta", -1, 1, "", methodObject ),
155 new Among ( "ava", -1, 1, "", methodObject ),
156 new Among ( "eva", -1, 1, "", methodObject ),
157 new Among ( "iva", -1, 1, "", methodObject ),
158 new Among ( "erebbe", -1, 1, "", methodObject ),
159 new Among ( "irebbe", -1, 1, "", methodObject ),
160 new Among ( "isce", -1, 1, "", methodObject ),
161 new Among ( "ende", -1, 1, "", methodObject ),
162 new Among ( "are", -1, 1, "", methodObject ),
163 new Among ( "ere", -1, 1, "", methodObject ),
164 new Among ( "ire", -1, 1, "", methodObject ),
165 new Among ( "asse", -1, 1, "", methodObject ),
166 new Among ( "ate", -1, 1, "", methodObject ),
167 new Among ( "avate", 16, 1, "", methodObject ),
168 new Among ( "evate", 16, 1, "", methodObject ),
169 new Among ( "ivate", 16, 1, "", methodObject ),
170 new Among ( "ete", -1, 1, "", methodObject ),
171 new Among ( "erete", 20, 1, "", methodObject ),
172 new Among ( "irete", 20, 1, "", methodObject ),
173 new Among ( "ite", -1, 1, "", methodObject ),
174 new Among ( "ereste", -1, 1, "", methodObject ),
175 new Among ( "ireste", -1, 1, "", methodObject ),
176 new Among ( "ute", -1, 1, "", methodObject ),
177 new Among ( "erai", -1, 1, "", methodObject ),
178 new Among ( "irai", -1, 1, "", methodObject ),
179 new Among ( "isci", -1, 1, "", methodObject ),
180 new Among ( "endi", -1, 1, "", methodObject ),
181 new Among ( "erei", -1, 1, "", methodObject ),
182 new Among ( "irei", -1, 1, "", methodObject ),
183 new Among ( "assi", -1, 1, "", methodObject ),
184 new Among ( "ati", -1, 1, "", methodObject ),
185 new Among ( "iti", -1, 1, "", methodObject ),
186 new Among ( "eresti", -1, 1, "", methodObject ),
187 new Among ( "iresti", -1, 1, "", methodObject ),
188 new Among ( "uti", -1, 1, "", methodObject ),
189 new Among ( "avi", -1, 1, "", methodObject ),
190 new Among ( "evi", -1, 1, "", methodObject ),
191 new Among ( "ivi", -1, 1, "", methodObject ),
192 new Among ( "isco", -1, 1, "", methodObject ),
193 new Among ( "ando", -1, 1, "", methodObject ),
194 new Among ( "endo", -1, 1, "", methodObject ),
195 new Among ( "Yamo", -1, 1, "", methodObject ),
196 new Among ( "iamo", -1, 1, "", methodObject ),
197 new Among ( "avamo", -1, 1, "", methodObject ),
198 new Among ( "evamo", -1, 1, "", methodObject ),
199 new Among ( "ivamo", -1, 1, "", methodObject ),
200 new Among ( "eremo", -1, 1, "", methodObject ),
201 new Among ( "iremo", -1, 1, "", methodObject ),
202 new Among ( "assimo", -1, 1, "", methodObject ),
203 new Among ( "ammo", -1, 1, "", methodObject ),
204 new Among ( "emmo", -1, 1, "", methodObject ),
205 new Among ( "eremmo", 54, 1, "", methodObject ),
206 new Among ( "iremmo", 54, 1, "", methodObject ),
207 new Among ( "immo", -1, 1, "", methodObject ),
208 new Among ( "ano", -1, 1, "", methodObject ),
209 new Among ( "iscano", 58, 1, "", methodObject ),
210 new Among ( "avano", 58, 1, "", methodObject ),
211 new Among ( "evano", 58, 1, "", methodObject ),
212 new Among ( "ivano", 58, 1, "", methodObject ),
213 new Among ( "eranno", -1, 1, "", methodObject ),
214 new Among ( "iranno", -1, 1, "", methodObject ),
215 new Among ( "ono", -1, 1, "", methodObject ),
216 new Among ( "iscono", 65, 1, "", methodObject ),
217 new Among ( "arono", 65, 1, "", methodObject ),
218 new Among ( "erono", 65, 1, "", methodObject ),
219 new Among ( "irono", 65, 1, "", methodObject ),
220 new Among ( "erebbero", -1, 1, "", methodObject ),
221 new Among ( "irebbero", -1, 1, "", methodObject ),
222 new Among ( "assero", -1, 1, "", methodObject ),
223 new Among ( "essero", -1, 1, "", methodObject ),
224 new Among ( "issero", -1, 1, "", methodObject ),
225 new Among ( "ato", -1, 1, "", methodObject ),
226 new Among ( "ito", -1, 1, "", methodObject ),
227 new Among ( "uto", -1, 1, "", methodObject ),
228 new Among ( "avo", -1, 1, "", methodObject ),
229 new Among ( "evo", -1, 1, "", methodObject ),
230 new Among ( "ivo", -1, 1, "", methodObject ),
231 new Among ( "ar", -1, 1, "", methodObject ),
232 new Among ( "ir", -1, 1, "", methodObject ),
233 new Among ( "er\u00E0", -1, 1, "", methodObject ),
234 new Among ( "ir\u00E0", -1, 1, "", methodObject ),
235 new Among ( "er\u00F2", -1, 1, "", methodObject ),
236 new Among ( "ir\u00F2", -1, 1, "", methodObject )
237 };
238
239 private static final char g_v[] = {17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2, 1 };
240
241 private static final char g_AEIO[] = {17, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2 };
242
243 private static final char g_CG[] = {17 };
244
245 private int I_p2;
246 private int I_p1;
247 private int I_pV;
248
249 private void copy_from(italianStemmer other) {
250 I_p2 = other.I_p2;
251 I_p1 = other.I_p1;
252 I_pV = other.I_pV;
253 super.copy_from(other);
254 }
255
256 private boolean r_prelude() {
257 int among_var;
258 int v_1;
259 int v_2;
260 int v_3;
261 int v_4;
262 int v_5;
263 // (, line 34
264 // test, line 35
265 v_1 = cursor;
266 // repeat, line 35
267 replab0: while(true)
268 {
269 v_2 = cursor;
270 lab1: do {
271 // (, line 35
272 // [, line 36
273 bra = cursor;
274 // substring, line 36
275 among_var = find_among(a_0, 7);
276 if (among_var == 0)
277 {
278 break lab1;
279 }
280 // ], line 36
281 ket = cursor;
282 switch(among_var) {
283 case 0:
284 break lab1;
285 case 1:
286 // (, line 37
287 // <-, line 37
288 slice_from("\u00E0");
289 break;
290 case 2:
291 // (, line 38
292 // <-, line 38
293 slice_from("\u00E8");
294 break;
295 case 3:
296 // (, line 39
297 // <-, line 39
298 slice_from("\u00EC");
299 break;
300 case 4:
301 // (, line 40
302 // <-, line 40
303 slice_from("\u00F2");
304 break;
305 case 5:
306 // (, line 41
307 // <-, line 41
308 slice_from("\u00F9");
309 break;
310 case 6:
311 // (, line 42
312 // <-, line 42
313 slice_from("qU");
314 break;
315 case 7:
316 // (, line 43
317 // next, line 43
318 if (cursor >= limit)
319 {
320 break lab1;
321 }
322 cursor++;
323 break;
324 }
325 continue replab0;
326 } while (false);
327 cursor = v_2;
328 break replab0;
329 }
330 cursor = v_1;
331 // repeat, line 46
332 replab2: while(true)
333 {
334 v_3 = cursor;
335 lab3: do {
336 // goto, line 46
337 golab4: while(true)
338 {
339 v_4 = cursor;
340 lab5: do {
341 // (, line 46
342 if (!(in_grouping(g_v, 97, 249)))
343 {
344 break lab5;
345 }
346 // [, line 47
347 bra = cursor;
348 // or, line 47
349 lab6: do {
350 v_5 = cursor;
351 lab7: do {
352 // (, line 47
353 // literal, line 47
354 if (!(eq_s(1, "u")))
355 {
356 break lab7;
357 }
358 // ], line 47
359 ket = cursor;
360 if (!(in_grouping(g_v, 97, 249)))
361 {
362 break lab7;
363 }
364 // <-, line 47
365 slice_from("U");
366 break lab6;
367 } while (false);
368 cursor = v_5;
369 // (, line 48
370 // literal, line 48
371 if (!(eq_s(1, "i")))
372 {
373 break lab5;
374 }
375 // ], line 48
376 ket = cursor;
377 if (!(in_grouping(g_v, 97, 249)))
378 {
379 break lab5;
380 }
381 // <-, line 48
382 slice_from("I");
383 } while (false);
384 cursor = v_4;
385 break golab4;
386 } while (false);
387 cursor = v_4;
388 if (cursor >= limit)
389 {
390 break lab3;
391 }
392 cursor++;
393 }
394 continue replab2;
395 } while (false);
396 cursor = v_3;
397 break replab2;
398 }
399 return true;
400 }
401
402 private boolean r_mark_regions() {
403 int v_1;
404 int v_2;
405 int v_3;
406 int v_6;
407 int v_8;
408 // (, line 52
409 I_pV = limit;
410 I_p1 = limit;
411 I_p2 = limit;
412 // do, line 58
413 v_1 = cursor;
414 lab0: do {
415 // (, line 58
416 // or, line 60
417 lab1: do {
418 v_2 = cursor;
419 lab2: do {
420 // (, line 59
421 if (!(in_grouping(g_v, 97, 249)))
422 {
423 break lab2;
424 }
425 // or, line 59
426 lab3: do {
427 v_3 = cursor;
428 lab4: do {
429 // (, line 59
430 if (!(out_grouping(g_v, 97, 249)))
431 {
432 break lab4;
433 }
434 // gopast, line 59
435 golab5: while(true)
436 {
437 lab6: do {
438 if (!(in_grouping(g_v, 97, 249)))
439 {
440 break lab6;
441 }
442 break golab5;
443 } while (false);
444 if (cursor >= limit)
445 {
446 break lab4;
447 }
448 cursor++;
449 }
450 break lab3;
451 } while (false);
452 cursor = v_3;
453 // (, line 59
454 if (!(in_grouping(g_v, 97, 249)))
455 {
456 break lab2;
457 }
458 // gopast, line 59
459 golab7: while(true)
460 {
461 lab8: do {
462 if (!(out_grouping(g_v, 97, 249)))
463 {
464 break lab8;
465 }
466 break golab7;
467 } while (false);
468 if (cursor >= limit)
469 {
470 break lab2;
471 }
472 cursor++;
473 }
474 } while (false);
475 break lab1;
476 } while (false);
477 cursor = v_2;
478 // (, line 61
479 if (!(out_grouping(g_v, 97, 249)))
480 {
481 break lab0;
482 }
483 // or, line 61
484 lab9: do {
485 v_6 = cursor;
486 lab10: do {
487 // (, line 61
488 if (!(out_grouping(g_v, 97, 249)))
489 {
490 break lab10;
491 }
492 // gopast, line 61
493 golab11: while(true)
494 {
495 lab12: do {
496 if (!(in_grouping(g_v, 97, 249)))
497 {
498 break lab12;
499 }
500 break golab11;
501 } while (false);
502 if (cursor >= limit)
503 {
504 break lab10;
505 }
506 cursor++;
507 }
508 break lab9;
509 } while (false);
510 cursor = v_6;
511 // (, line 61
512 if (!(in_grouping(g_v, 97, 249)))
513 {
514 break lab0;
515 }
516 // next, line 61
517 if (cursor >= limit)
518 {
519 break lab0;
520 }
521 cursor++;
522 } while (false);
523 } while (false);
524 // setmark pV, line 62
525 I_pV = cursor;
526 } while (false);
527 cursor = v_1;
528 // do, line 64
529 v_8 = cursor;
530 lab13: do {
531 // (, line 64
532 // gopast, line 65
533 golab14: while(true)
534 {
535 lab15: do {
536 if (!(in_grouping(g_v, 97, 249)))
537 {
538 break lab15;
539 }
540 break golab14;
541 } while (false);
542 if (cursor >= limit)
543 {
544 break lab13;
545 }
546 cursor++;
547 }
548 // gopast, line 65
549 golab16: while(true)
550 {
551 lab17: do {
552 if (!(out_grouping(g_v, 97, 249)))
553 {
554 break lab17;
555 }
556 break golab16;
557 } while (false);
558 if (cursor >= limit)
559 {
560 break lab13;
561 }
562 cursor++;
563 }
564 // setmark p1, line 65
565 I_p1 = cursor;
566 // gopast, line 66
567 golab18: while(true)
568 {
569 lab19: do {
570 if (!(in_grouping(g_v, 97, 249)))
571 {
572 break lab19;
573 }
574 break golab18;
575 } while (false);
576 if (cursor >= limit)
577 {
578 break lab13;
579 }
580 cursor++;
581 }
582 // gopast, line 66
583 golab20: while(true)
584 {
585 lab21: do {
586 if (!(out_grouping(g_v, 97, 249)))
587 {
588 break lab21;
589 }
590 break golab20;
591 } while (false);
592 if (cursor >= limit)
593 {
594 break lab13;
595 }
596 cursor++;
597 }
598 // setmark p2, line 66
599 I_p2 = cursor;
600 } while (false);
601 cursor = v_8;
602 return true;
603 }
604
605 private boolean r_postlude() {
606 int among_var;
607 int v_1;
608 // repeat, line 70
609 replab0: while(true)
610 {
611 v_1 = cursor;
612 lab1: do {
613 // (, line 70
614 // [, line 72
615 bra = cursor;
616 // substring, line 72
617 among_var = find_among(a_1, 3);
618 if (among_var == 0)
619 {
620 break lab1;
621 }
622 // ], line 72
623 ket = cursor;
624 switch(among_var) {
625 case 0:
626 break lab1;
627 case 1:
628 // (, line 73
629 // <-, line 73
630 slice_from("i");
631 break;
632 case 2:
633 // (, line 74
634 // <-, line 74
635 slice_from("u");
636 break;
637 case 3:
638 // (, line 75
639 // next, line 75
640 if (cursor >= limit)
641 {
642 break lab1;
643 }
644 cursor++;
645 break;
646 }
647 continue replab0;
648 } while (false);
649 cursor = v_1;
650 break replab0;
651 }
652 return true;
653 }
654
655 private boolean r_RV() {
656 if (!(I_pV <= cursor))
657 {
658 return false;
659 }
660 return true;
661 }
662
663 private boolean r_R1() {
664 if (!(I_p1 <= cursor))
665 {
666 return false;
667 }
668 return true;
669 }
670
671 private boolean r_R2() {
672 if (!(I_p2 <= cursor))
673 {
674 return false;
675 }
676 return true;
677 }
678
679 private boolean r_attached_pronoun() {
680 int among_var;
681 // (, line 86
682 // [, line 87
683 ket = cursor;
684 // substring, line 87
685 if (find_among_b(a_2, 37) == 0)
686 {
687 return false;
688 }
689 // ], line 87
690 bra = cursor;
691 // among, line 97
692 among_var = find_among_b(a_3, 5);
693 if (among_var == 0)
694 {
695 return false;
696 }
697 // (, line 97
698 // call RV, line 97
699 if (!r_RV())
700 {
701 return false;
702 }
703 switch(among_var) {
704 case 0:
705 return false;
706 case 1:
707 // (, line 98
708 // delete, line 98
709 slice_del();
710 break;
711 case 2:
712 // (, line 99
713 // <-, line 99
714 slice_from("e");
715 break;
716 }
717 return true;
718 }
719
720 private boolean r_standard_suffix() {
721 int among_var;
722 int v_1;
723 int v_2;
724 int v_3;
725 int v_4;
726 // (, line 103
727 // [, line 104
728 ket = cursor;
729 // substring, line 104
730 among_var = find_among_b(a_6, 51);
731 if (among_var == 0)
732 {
733 return false;
734 }
735 // ], line 104
736 bra = cursor;
737 switch(among_var) {
738 case 0:
739 return false;
740 case 1:
741 // (, line 111
742 // call R2, line 111
743 if (!r_R2())
744 {
745 return false;
746 }
747 // delete, line 111
748 slice_del();
749 break;
750 case 2:
751 // (, line 113
752 // call R2, line 113
753 if (!r_R2())
754 {
755 return false;
756 }
757 // delete, line 113
758 slice_del();
759 // try, line 114
760 v_1 = limit - cursor;
761 lab0: do {
762 // (, line 114
763 // [, line 114
764 ket = cursor;
765 // literal, line 114
766 if (!(eq_s_b(2, "ic")))
767 {
768 cursor = limit - v_1;
769 break lab0;
770 }
771 // ], line 114
772 bra = cursor;
773 // call R2, line 114
774 if (!r_R2())
775 {
776 cursor = limit - v_1;
777 break lab0;
778 }
779 // delete, line 114
780 slice_del();
781 } while (false);
782 break;
783 case 3:
784 // (, line 117
785 // call R2, line 117
786 if (!r_R2())
787 {
788 return false;
789 }
790 // <-, line 117
791 slice_from("log");
792 break;
793 case 4:
794 // (, line 119
795 // call R2, line 119
796 if (!r_R2())
797 {
798 return false;
799 }
800 // <-, line 119
801 slice_from("u");
802 break;
803 case 5:
804 // (, line 121
805 // call R2, line 121
806 if (!r_R2())
807 {
808 return false;
809 }
810 // <-, line 121
811 slice_from("ente");
812 break;
813 case 6:
814 // (, line 123
815 // call RV, line 123
816 if (!r_RV())
817 {
818 return false;
819 }
820 // delete, line 123
821 slice_del();
822 break;
823 case 7:
824 // (, line 124
825 // call R1, line 125
826 if (!r_R1())
827 {
828 return false;
829 }
830 // delete, line 125
831 slice_del();
832 // try, line 126
833 v_2 = limit - cursor;
834 lab1: do {
835 // (, line 126
836 // [, line 127
837 ket = cursor;
838 // substring, line 127
839 among_var = find_among_b(a_4, 4);
840 if (among_var == 0)
841 {
842 cursor = limit - v_2;
843 break lab1;
844 }
845 // ], line 127
846 bra = cursor;
847 // call R2, line 127
848 if (!r_R2())
849 {
850 cursor = limit - v_2;
851 break lab1;
852 }
853 // delete, line 127
854 slice_del();
855 switch(among_var) {
856 case 0:
857 cursor = limit - v_2;
858 break lab1;
859 case 1:
860 // (, line 128
861 // [, line 128
862 ket = cursor;
863 // literal, line 128
864 if (!(eq_s_b(2, "at")))
865 {
866 cursor = limit - v_2;
867 break lab1;
868 }
869 // ], line 128
870 bra = cursor;
871 // call R2, line 128
872 if (!r_R2())
873 {
874 cursor = limit - v_2;
875 break lab1;
876 }
877 // delete, line 128
878 slice_del();
879 break;
880 }
881 } while (false);
882 break;
883 case 8:
884 // (, line 133
885 // call R2, line 134
886 if (!r_R2())
887 {
888 return false;
889 }
890 // delete, line 134
891 slice_del();
892 // try, line 135
893 v_3 = limit - cursor;
894 lab2: do {
895 // (, line 135
896 // [, line 136
897 ket = cursor;
898 // substring, line 136
899 among_var = find_among_b(a_5, 3);
900 if (among_var == 0)
901 {
902 cursor = limit - v_3;
903 break lab2;
904 }
905 // ], line 136
906 bra = cursor;
907 switch(among_var) {
908 case 0:
909 cursor = limit - v_3;
910 break lab2;
911 case 1:
912 // (, line 137
913 // call R2, line 137
914 if (!r_R2())
915 {
916 cursor = limit - v_3;
917 break lab2;
918 }
919 // delete, line 137
920 slice_del();
921 break;
922 }
923 } while (false);
924 break;
925 case 9:
926 // (, line 141
927 // call R2, line 142
928 if (!r_R2())
929 {
930 return false;
931 }
932 // delete, line 142
933 slice_del();
934 // try, line 143
935 v_4 = limit - cursor;
936 lab3: do {
937 // (, line 143
938 // [, line 143
939 ket = cursor;
940 // literal, line 143
941 if (!(eq_s_b(2, "at")))
942 {
943 cursor = limit - v_4;
944 break lab3;
945 }
946 // ], line 143
947 bra = cursor;
948 // call R2, line 143
949 if (!r_R2())
950 {
951 cursor = limit - v_4;
952 break lab3;
953 }
954 // delete, line 143
955 slice_del();
956 // [, line 143
957 ket = cursor;
958 // literal, line 143
959 if (!(eq_s_b(2, "ic")))
960 {
961 cursor = limit - v_4;
962 break lab3;
963 }
964 // ], line 143
965 bra = cursor;
966 // call R2, line 143
967 if (!r_R2())
968 {
969 cursor = limit - v_4;
970 break lab3;
971 }
972 // delete, line 143
973 slice_del();
974 } while (false);
975 break;
976 }
977 return true;
978 }
979
980 private boolean r_verb_suffix() {
981 int among_var;
982 int v_1;
983 int v_2;
984 // setlimit, line 148
985 v_1 = limit - cursor;
986 // tomark, line 148
987 if (cursor < I_pV)
988 {
989 return false;
990 }
991 cursor = I_pV;
992 v_2 = limit_backward;
993 limit_backward = cursor;
994 cursor = limit - v_1;
995 // (, line 148
996 // [, line 149
997 ket = cursor;
998 // substring, line 149
999 among_var = find_among_b(a_7, 87);
1000 if (among_var == 0)
1001 {
1002 limit_backward = v_2;
1003 return false;
1004 }
1005 // ], line 149
1006 bra = cursor;
1007 switch(among_var) {
1008 case 0:
1009 limit_backward = v_2;
1010 return false;
1011 case 1:
1012 // (, line 163
1013 // delete, line 163
1014 slice_del();
1015 break;
1016 }
1017 limit_backward = v_2;
1018 return true;
1019 }
1020
1021 private boolean r_vowel_suffix() {
1022 int v_1;
1023 int v_2;
1024 // (, line 170
1025 // try, line 171
1026 v_1 = limit - cursor;
1027 lab0: do {
1028 // (, line 171
1029 // [, line 172
1030 ket = cursor;
1031 if (!(in_grouping_b(g_AEIO, 97, 242)))
1032 {
1033 cursor = limit - v_1;
1034 break lab0;
1035 }
1036 // ], line 172
1037 bra = cursor;
1038 // call RV, line 172
1039 if (!r_RV())
1040 {
1041 cursor = limit - v_1;
1042 break lab0;
1043 }
1044 // delete, line 172
1045 slice_del();
1046 // [, line 173
1047 ket = cursor;
1048 // literal, line 173
1049 if (!(eq_s_b(1, "i")))
1050 {
1051 cursor = limit - v_1;
1052 break lab0;
1053 }
1054 // ], line 173
1055 bra = cursor;
1056 // call RV, line 173
1057 if (!r_RV())
1058 {
1059 cursor = limit - v_1;
1060 break lab0;
1061 }
1062 // delete, line 173
1063 slice_del();
1064 } while (false);
1065 // try, line 175
1066 v_2 = limit - cursor;
1067 lab1: do {
1068 // (, line 175
1069 // [, line 176
1070 ket = cursor;
1071 // literal, line 176
1072 if (!(eq_s_b(1, "h")))
1073 {
1074 cursor = limit - v_2;
1075 break lab1;
1076 }
1077 // ], line 176
1078 bra = cursor;
1079 if (!(in_grouping_b(g_CG, 99, 103)))
1080 {
1081 cursor = limit - v_2;
1082 break lab1;
1083 }
1084 // call RV, line 176
1085 if (!r_RV())
1086 {
1087 cursor = limit - v_2;
1088 break lab1;
1089 }
1090 // delete, line 176
1091 slice_del();
1092 } while (false);
1093 return true;
1094 }
1095
1096 public boolean stem() {
1097 int v_1;
1098 int v_2;
1099 int v_3;
1100 int v_4;
1101 int v_5;
1102 int v_6;
1103 int v_7;
1104 // (, line 181
1105 // do, line 182
1106 v_1 = cursor;
1107 lab0: do {
1108 // call prelude, line 182
1109 if (!r_prelude())
1110 {
1111 break lab0;
1112 }
1113 } while (false);
1114 cursor = v_1;
1115 // do, line 183
1116 v_2 = cursor;
1117 lab1: do {
1118 // call mark_regions, line 183
1119 if (!r_mark_regions())
1120 {
1121 break lab1;
1122 }
1123 } while (false);
1124 cursor = v_2;
1125 // backwards, line 184
1126 limit_backward = cursor; cursor = limit;
1127 // (, line 184
1128 // do, line 185
1129 v_3 = limit - cursor;
1130 lab2: do {
1131 // call attached_pronoun, line 185
1132 if (!r_attached_pronoun())
1133 {
1134 break lab2;
1135 }
1136 } while (false);
1137 cursor = limit - v_3;
1138 // do, line 186
1139 v_4 = limit - cursor;
1140 lab3: do {
1141 // (, line 186
1142 // or, line 186
1143 lab4: do {
1144 v_5 = limit - cursor;
1145 lab5: do {
1146 // call standard_suffix, line 186
1147 if (!r_standard_suffix())
1148 {
1149 break lab5;
1150 }
1151 break lab4;
1152 } while (false);
1153 cursor = limit - v_5;
1154 // call verb_suffix, line 186
1155 if (!r_verb_suffix())
1156 {
1157 break lab3;
1158 }
1159 } while (false);
1160 } while (false);
1161 cursor = limit - v_4;
1162 // do, line 187
1163 v_6 = limit - cursor;
1164 lab6: do {
1165 // call vowel_suffix, line 187
1166 if (!r_vowel_suffix())
1167 {
1168 break lab6;
1169 }
1170 } while (false);
1171 cursor = limit - v_6;
1172 cursor = limit_backward; // do, line 189
1173 v_7 = cursor;
1174 lab7: do {
1175 // call postlude, line 189
1176 if (!r_postlude())
1177 {
1178 break lab7;
1179 }
1180 } while (false);
1181 cursor = v_7;
1182 return true;
1183 }
1184
1185 public boolean equals( Object o ) {
1186 return o instanceof italianStemmer;
1187 }
1188
1189 public int hashCode() {
1190 return italianStemmer.class.getName().hashCode();
1191 }
1192
1193
1194
1195 }
1196