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