View Javadoc

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