pylucene 3.5.0-3
[pylucene.git] / lucene-java-3.5.0 / lucene / contrib / analyzers / common / src / java / org / tartarus / snowball / ext / RomanianStemmer.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 RomanianStemmer extends SnowballProgram {
11
12         private Among a_0[] = {
13             new Among ( "", -1, 3, "", this),
14             new Among ( "I", 0, 1, "", this),
15             new Among ( "U", 0, 2, "", this)
16         };
17
18         private Among a_1[] = {
19             new Among ( "ea", -1, 3, "", this),
20             new Among ( "a\u0163ia", -1, 7, "", this),
21             new Among ( "aua", -1, 2, "", this),
22             new Among ( "iua", -1, 4, "", this),
23             new Among ( "a\u0163ie", -1, 7, "", this),
24             new Among ( "ele", -1, 3, "", this),
25             new Among ( "ile", -1, 5, "", this),
26             new Among ( "iile", 6, 4, "", this),
27             new Among ( "iei", -1, 4, "", this),
28             new Among ( "atei", -1, 6, "", this),
29             new Among ( "ii", -1, 4, "", this),
30             new Among ( "ului", -1, 1, "", this),
31             new Among ( "ul", -1, 1, "", this),
32             new Among ( "elor", -1, 3, "", this),
33             new Among ( "ilor", -1, 4, "", this),
34             new Among ( "iilor", 14, 4, "", this)
35         };
36
37         private Among a_2[] = {
38             new Among ( "icala", -1, 4, "", this),
39             new Among ( "iciva", -1, 4, "", this),
40             new Among ( "ativa", -1, 5, "", this),
41             new Among ( "itiva", -1, 6, "", this),
42             new Among ( "icale", -1, 4, "", this),
43             new Among ( "a\u0163iune", -1, 5, "", this),
44             new Among ( "i\u0163iune", -1, 6, "", this),
45             new Among ( "atoare", -1, 5, "", this),
46             new Among ( "itoare", -1, 6, "", this),
47             new Among ( "\u0103toare", -1, 5, "", this),
48             new Among ( "icitate", -1, 4, "", this),
49             new Among ( "abilitate", -1, 1, "", this),
50             new Among ( "ibilitate", -1, 2, "", this),
51             new Among ( "ivitate", -1, 3, "", this),
52             new Among ( "icive", -1, 4, "", this),
53             new Among ( "ative", -1, 5, "", this),
54             new Among ( "itive", -1, 6, "", this),
55             new Among ( "icali", -1, 4, "", this),
56             new Among ( "atori", -1, 5, "", this),
57             new Among ( "icatori", 18, 4, "", this),
58             new Among ( "itori", -1, 6, "", this),
59             new Among ( "\u0103tori", -1, 5, "", this),
60             new Among ( "icitati", -1, 4, "", this),
61             new Among ( "abilitati", -1, 1, "", this),
62             new Among ( "ivitati", -1, 3, "", this),
63             new Among ( "icivi", -1, 4, "", this),
64             new Among ( "ativi", -1, 5, "", this),
65             new Among ( "itivi", -1, 6, "", this),
66             new Among ( "icit\u0103i", -1, 4, "", this),
67             new Among ( "abilit\u0103i", -1, 1, "", this),
68             new Among ( "ivit\u0103i", -1, 3, "", this),
69             new Among ( "icit\u0103\u0163i", -1, 4, "", this),
70             new Among ( "abilit\u0103\u0163i", -1, 1, "", this),
71             new Among ( "ivit\u0103\u0163i", -1, 3, "", this),
72             new Among ( "ical", -1, 4, "", this),
73             new Among ( "ator", -1, 5, "", this),
74             new Among ( "icator", 35, 4, "", this),
75             new Among ( "itor", -1, 6, "", this),
76             new Among ( "\u0103tor", -1, 5, "", this),
77             new Among ( "iciv", -1, 4, "", this),
78             new Among ( "ativ", -1, 5, "", this),
79             new Among ( "itiv", -1, 6, "", this),
80             new Among ( "ical\u0103", -1, 4, "", this),
81             new Among ( "iciv\u0103", -1, 4, "", this),
82             new Among ( "ativ\u0103", -1, 5, "", this),
83             new Among ( "itiv\u0103", -1, 6, "", this)
84         };
85
86         private Among a_3[] = {
87             new Among ( "ica", -1, 1, "", this),
88             new Among ( "abila", -1, 1, "", this),
89             new Among ( "ibila", -1, 1, "", this),
90             new Among ( "oasa", -1, 1, "", this),
91             new Among ( "ata", -1, 1, "", this),
92             new Among ( "ita", -1, 1, "", this),
93             new Among ( "anta", -1, 1, "", this),
94             new Among ( "ista", -1, 3, "", this),
95             new Among ( "uta", -1, 1, "", this),
96             new Among ( "iva", -1, 1, "", this),
97             new Among ( "ic", -1, 1, "", this),
98             new Among ( "ice", -1, 1, "", this),
99             new Among ( "abile", -1, 1, "", this),
100             new Among ( "ibile", -1, 1, "", this),
101             new Among ( "isme", -1, 3, "", this),
102             new Among ( "iune", -1, 2, "", this),
103             new Among ( "oase", -1, 1, "", this),
104             new Among ( "ate", -1, 1, "", this),
105             new Among ( "itate", 17, 1, "", this),
106             new Among ( "ite", -1, 1, "", this),
107             new Among ( "ante", -1, 1, "", this),
108             new Among ( "iste", -1, 3, "", this),
109             new Among ( "ute", -1, 1, "", this),
110             new Among ( "ive", -1, 1, "", this),
111             new Among ( "ici", -1, 1, "", this),
112             new Among ( "abili", -1, 1, "", this),
113             new Among ( "ibili", -1, 1, "", this),
114             new Among ( "iuni", -1, 2, "", this),
115             new Among ( "atori", -1, 1, "", this),
116             new Among ( "osi", -1, 1, "", this),
117             new Among ( "ati", -1, 1, "", this),
118             new Among ( "itati", 30, 1, "", this),
119             new Among ( "iti", -1, 1, "", this),
120             new Among ( "anti", -1, 1, "", this),
121             new Among ( "isti", -1, 3, "", this),
122             new Among ( "uti", -1, 1, "", this),
123             new Among ( "i\u015Fti", -1, 3, "", this),
124             new Among ( "ivi", -1, 1, "", this),
125             new Among ( "it\u0103i", -1, 1, "", this),
126             new Among ( "o\u015Fi", -1, 1, "", this),
127             new Among ( "it\u0103\u0163i", -1, 1, "", this),
128             new Among ( "abil", -1, 1, "", this),
129             new Among ( "ibil", -1, 1, "", this),
130             new Among ( "ism", -1, 3, "", this),
131             new Among ( "ator", -1, 1, "", this),
132             new Among ( "os", -1, 1, "", this),
133             new Among ( "at", -1, 1, "", this),
134             new Among ( "it", -1, 1, "", this),
135             new Among ( "ant", -1, 1, "", this),
136             new Among ( "ist", -1, 3, "", this),
137             new Among ( "ut", -1, 1, "", this),
138             new Among ( "iv", -1, 1, "", this),
139             new Among ( "ic\u0103", -1, 1, "", this),
140             new Among ( "abil\u0103", -1, 1, "", this),
141             new Among ( "ibil\u0103", -1, 1, "", this),
142             new Among ( "oas\u0103", -1, 1, "", this),
143             new Among ( "at\u0103", -1, 1, "", this),
144             new Among ( "it\u0103", -1, 1, "", this),
145             new Among ( "ant\u0103", -1, 1, "", this),
146             new Among ( "ist\u0103", -1, 3, "", this),
147             new Among ( "ut\u0103", -1, 1, "", this),
148             new Among ( "iv\u0103", -1, 1, "", this)
149         };
150
151         private Among a_4[] = {
152             new Among ( "ea", -1, 1, "", this),
153             new Among ( "ia", -1, 1, "", this),
154             new Among ( "esc", -1, 1, "", this),
155             new Among ( "\u0103sc", -1, 1, "", this),
156             new Among ( "ind", -1, 1, "", this),
157             new Among ( "\u00E2nd", -1, 1, "", this),
158             new Among ( "are", -1, 1, "", this),
159             new Among ( "ere", -1, 1, "", this),
160             new Among ( "ire", -1, 1, "", this),
161             new Among ( "\u00E2re", -1, 1, "", this),
162             new Among ( "se", -1, 2, "", this),
163             new Among ( "ase", 10, 1, "", this),
164             new Among ( "sese", 10, 2, "", this),
165             new Among ( "ise", 10, 1, "", this),
166             new Among ( "use", 10, 1, "", this),
167             new Among ( "\u00E2se", 10, 1, "", this),
168             new Among ( "e\u015Fte", -1, 1, "", this),
169             new Among ( "\u0103\u015Fte", -1, 1, "", this),
170             new Among ( "eze", -1, 1, "", this),
171             new Among ( "ai", -1, 1, "", this),
172             new Among ( "eai", 19, 1, "", this),
173             new Among ( "iai", 19, 1, "", this),
174             new Among ( "sei", -1, 2, "", this),
175             new Among ( "e\u015Fti", -1, 1, "", this),
176             new Among ( "\u0103\u015Fti", -1, 1, "", this),
177             new Among ( "ui", -1, 1, "", this),
178             new Among ( "ezi", -1, 1, "", this),
179             new Among ( "\u00E2i", -1, 1, "", this),
180             new Among ( "a\u015Fi", -1, 1, "", this),
181             new Among ( "se\u015Fi", -1, 2, "", this),
182             new Among ( "ase\u015Fi", 29, 1, "", this),
183             new Among ( "sese\u015Fi", 29, 2, "", this),
184             new Among ( "ise\u015Fi", 29, 1, "", this),
185             new Among ( "use\u015Fi", 29, 1, "", this),
186             new Among ( "\u00E2se\u015Fi", 29, 1, "", this),
187             new Among ( "i\u015Fi", -1, 1, "", this),
188             new Among ( "u\u015Fi", -1, 1, "", this),
189             new Among ( "\u00E2\u015Fi", -1, 1, "", this),
190             new Among ( "a\u0163i", -1, 2, "", this),
191             new Among ( "ea\u0163i", 38, 1, "", this),
192             new Among ( "ia\u0163i", 38, 1, "", this),
193             new Among ( "e\u0163i", -1, 2, "", this),
194             new Among ( "i\u0163i", -1, 2, "", this),
195             new Among ( "\u00E2\u0163i", -1, 2, "", this),
196             new Among ( "ar\u0103\u0163i", -1, 1, "", this),
197             new Among ( "ser\u0103\u0163i", -1, 2, "", this),
198             new Among ( "aser\u0103\u0163i", 45, 1, "", this),
199             new Among ( "seser\u0103\u0163i", 45, 2, "", this),
200             new Among ( "iser\u0103\u0163i", 45, 1, "", this),
201             new Among ( "user\u0103\u0163i", 45, 1, "", this),
202             new Among ( "\u00E2ser\u0103\u0163i", 45, 1, "", this),
203             new Among ( "ir\u0103\u0163i", -1, 1, "", this),
204             new Among ( "ur\u0103\u0163i", -1, 1, "", this),
205             new Among ( "\u00E2r\u0103\u0163i", -1, 1, "", this),
206             new Among ( "am", -1, 1, "", this),
207             new Among ( "eam", 54, 1, "", this),
208             new Among ( "iam", 54, 1, "", this),
209             new Among ( "em", -1, 2, "", this),
210             new Among ( "asem", 57, 1, "", this),
211             new Among ( "sesem", 57, 2, "", this),
212             new Among ( "isem", 57, 1, "", this),
213             new Among ( "usem", 57, 1, "", this),
214             new Among ( "\u00E2sem", 57, 1, "", this),
215             new Among ( "im", -1, 2, "", this),
216             new Among ( "\u00E2m", -1, 2, "", this),
217             new Among ( "\u0103m", -1, 2, "", this),
218             new Among ( "ar\u0103m", 65, 1, "", this),
219             new Among ( "ser\u0103m", 65, 2, "", this),
220             new Among ( "aser\u0103m", 67, 1, "", this),
221             new Among ( "seser\u0103m", 67, 2, "", this),
222             new Among ( "iser\u0103m", 67, 1, "", this),
223             new Among ( "user\u0103m", 67, 1, "", this),
224             new Among ( "\u00E2ser\u0103m", 67, 1, "", this),
225             new Among ( "ir\u0103m", 65, 1, "", this),
226             new Among ( "ur\u0103m", 65, 1, "", this),
227             new Among ( "\u00E2r\u0103m", 65, 1, "", this),
228             new Among ( "au", -1, 1, "", this),
229             new Among ( "eau", 76, 1, "", this),
230             new Among ( "iau", 76, 1, "", this),
231             new Among ( "indu", -1, 1, "", this),
232             new Among ( "\u00E2ndu", -1, 1, "", this),
233             new Among ( "ez", -1, 1, "", this),
234             new Among ( "easc\u0103", -1, 1, "", this),
235             new Among ( "ar\u0103", -1, 1, "", this),
236             new Among ( "ser\u0103", -1, 2, "", this),
237             new Among ( "aser\u0103", 84, 1, "", this),
238             new Among ( "seser\u0103", 84, 2, "", this),
239             new Among ( "iser\u0103", 84, 1, "", this),
240             new Among ( "user\u0103", 84, 1, "", this),
241             new Among ( "\u00E2ser\u0103", 84, 1, "", this),
242             new Among ( "ir\u0103", -1, 1, "", this),
243             new Among ( "ur\u0103", -1, 1, "", this),
244             new Among ( "\u00E2r\u0103", -1, 1, "", this),
245             new Among ( "eaz\u0103", -1, 1, "", this)
246         };
247
248         private Among a_5[] = {
249             new Among ( "a", -1, 1, "", this),
250             new Among ( "e", -1, 1, "", this),
251             new Among ( "ie", 1, 1, "", this),
252             new Among ( "i", -1, 1, "", this),
253             new Among ( "\u0103", -1, 1, "", this)
254         };
255
256         private static final char g_v[] = {17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 32, 0, 0, 4 };
257
258         private boolean B_standard_suffix_removed;
259         private int I_p2;
260         private int I_p1;
261         private int I_pV;
262
263         private void copy_from(RomanianStemmer other) {
264             B_standard_suffix_removed = other.B_standard_suffix_removed;
265             I_p2 = other.I_p2;
266             I_p1 = other.I_p1;
267             I_pV = other.I_pV;
268             super.copy_from(other);
269         }
270
271         private boolean r_prelude() {
272             int v_1;
273             int v_2;
274             int v_3;
275             // (, line 31
276             // repeat, line 32
277             replab0: while(true)
278             {
279                 v_1 = cursor;
280                 lab1: do {
281                     // goto, line 32
282                     golab2: while(true)
283                     {
284                         v_2 = cursor;
285                         lab3: do {
286                             // (, line 32
287                             if (!(in_grouping(g_v, 97, 259)))
288                             {
289                                 break lab3;
290                             }
291                             // [, line 33
292                             bra = cursor;
293                             // or, line 33
294                             lab4: do {
295                                 v_3 = cursor;
296                                 lab5: do {
297                                     // (, line 33
298                                     // literal, line 33
299                                     if (!(eq_s(1, "u")))
300                                     {
301                                         break lab5;
302                                     }
303                                     // ], line 33
304                                     ket = cursor;
305                                     if (!(in_grouping(g_v, 97, 259)))
306                                     {
307                                         break lab5;
308                                     }
309                                     // <-, line 33
310                                     slice_from("U");
311                                     break lab4;
312                                 } while (false);
313                                 cursor = v_3;
314                                 // (, line 34
315                                 // literal, line 34
316                                 if (!(eq_s(1, "i")))
317                                 {
318                                     break lab3;
319                                 }
320                                 // ], line 34
321                                 ket = cursor;
322                                 if (!(in_grouping(g_v, 97, 259)))
323                                 {
324                                     break lab3;
325                                 }
326                                 // <-, line 34
327                                 slice_from("I");
328                             } while (false);
329                             cursor = v_2;
330                             break golab2;
331                         } while (false);
332                         cursor = v_2;
333                         if (cursor >= limit)
334                         {
335                             break lab1;
336                         }
337                         cursor++;
338                     }
339                     continue replab0;
340                 } while (false);
341                 cursor = v_1;
342                 break replab0;
343             }
344             return true;
345         }
346
347         private boolean r_mark_regions() {
348             int v_1;
349             int v_2;
350             int v_3;
351             int v_6;
352             int v_8;
353             // (, line 38
354             I_pV = limit;
355             I_p1 = limit;
356             I_p2 = limit;
357             // do, line 44
358             v_1 = cursor;
359             lab0: do {
360                 // (, line 44
361                 // or, line 46
362                 lab1: do {
363                     v_2 = cursor;
364                     lab2: do {
365                         // (, line 45
366                         if (!(in_grouping(g_v, 97, 259)))
367                         {
368                             break lab2;
369                         }
370                         // or, line 45
371                         lab3: do {
372                             v_3 = cursor;
373                             lab4: do {
374                                 // (, line 45
375                                 if (!(out_grouping(g_v, 97, 259)))
376                                 {
377                                     break lab4;
378                                 }
379                                 // gopast, line 45
380                                 golab5: while(true)
381                                 {
382                                     lab6: do {
383                                         if (!(in_grouping(g_v, 97, 259)))
384                                         {
385                                             break lab6;
386                                         }
387                                         break golab5;
388                                     } while (false);
389                                     if (cursor >= limit)
390                                     {
391                                         break lab4;
392                                     }
393                                     cursor++;
394                                 }
395                                 break lab3;
396                             } while (false);
397                             cursor = v_3;
398                             // (, line 45
399                             if (!(in_grouping(g_v, 97, 259)))
400                             {
401                                 break lab2;
402                             }
403                             // gopast, line 45
404                             golab7: while(true)
405                             {
406                                 lab8: do {
407                                     if (!(out_grouping(g_v, 97, 259)))
408                                     {
409                                         break lab8;
410                                     }
411                                     break golab7;
412                                 } while (false);
413                                 if (cursor >= limit)
414                                 {
415                                     break lab2;
416                                 }
417                                 cursor++;
418                             }
419                         } while (false);
420                         break lab1;
421                     } while (false);
422                     cursor = v_2;
423                     // (, line 47
424                     if (!(out_grouping(g_v, 97, 259)))
425                     {
426                         break lab0;
427                     }
428                     // or, line 47
429                     lab9: do {
430                         v_6 = cursor;
431                         lab10: do {
432                             // (, line 47
433                             if (!(out_grouping(g_v, 97, 259)))
434                             {
435                                 break lab10;
436                             }
437                             // gopast, line 47
438                             golab11: while(true)
439                             {
440                                 lab12: do {
441                                     if (!(in_grouping(g_v, 97, 259)))
442                                     {
443                                         break lab12;
444                                     }
445                                     break golab11;
446                                 } while (false);
447                                 if (cursor >= limit)
448                                 {
449                                     break lab10;
450                                 }
451                                 cursor++;
452                             }
453                             break lab9;
454                         } while (false);
455                         cursor = v_6;
456                         // (, line 47
457                         if (!(in_grouping(g_v, 97, 259)))
458                         {
459                             break lab0;
460                         }
461                         // next, line 47
462                         if (cursor >= limit)
463                         {
464                             break lab0;
465                         }
466                         cursor++;
467                     } while (false);
468                 } while (false);
469                 // setmark pV, line 48
470                 I_pV = cursor;
471             } while (false);
472             cursor = v_1;
473             // do, line 50
474             v_8 = cursor;
475             lab13: do {
476                 // (, line 50
477                 // gopast, line 51
478                 golab14: while(true)
479                 {
480                     lab15: do {
481                         if (!(in_grouping(g_v, 97, 259)))
482                         {
483                             break lab15;
484                         }
485                         break golab14;
486                     } while (false);
487                     if (cursor >= limit)
488                     {
489                         break lab13;
490                     }
491                     cursor++;
492                 }
493                 // gopast, line 51
494                 golab16: while(true)
495                 {
496                     lab17: do {
497                         if (!(out_grouping(g_v, 97, 259)))
498                         {
499                             break lab17;
500                         }
501                         break golab16;
502                     } while (false);
503                     if (cursor >= limit)
504                     {
505                         break lab13;
506                     }
507                     cursor++;
508                 }
509                 // setmark p1, line 51
510                 I_p1 = cursor;
511                 // gopast, line 52
512                 golab18: while(true)
513                 {
514                     lab19: do {
515                         if (!(in_grouping(g_v, 97, 259)))
516                         {
517                             break lab19;
518                         }
519                         break golab18;
520                     } while (false);
521                     if (cursor >= limit)
522                     {
523                         break lab13;
524                     }
525                     cursor++;
526                 }
527                 // gopast, line 52
528                 golab20: while(true)
529                 {
530                     lab21: do {
531                         if (!(out_grouping(g_v, 97, 259)))
532                         {
533                             break lab21;
534                         }
535                         break golab20;
536                     } while (false);
537                     if (cursor >= limit)
538                     {
539                         break lab13;
540                     }
541                     cursor++;
542                 }
543                 // setmark p2, line 52
544                 I_p2 = cursor;
545             } while (false);
546             cursor = v_8;
547             return true;
548         }
549
550         private boolean r_postlude() {
551             int among_var;
552             int v_1;
553             // repeat, line 56
554             replab0: while(true)
555             {
556                 v_1 = cursor;
557                 lab1: do {
558                     // (, line 56
559                     // [, line 58
560                     bra = cursor;
561                     // substring, line 58
562                     among_var = find_among(a_0, 3);
563                     if (among_var == 0)
564                     {
565                         break lab1;
566                     }
567                     // ], line 58
568                     ket = cursor;
569                     switch(among_var) {
570                         case 0:
571                             break lab1;
572                         case 1:
573                             // (, line 59
574                             // <-, line 59
575                             slice_from("i");
576                             break;
577                         case 2:
578                             // (, line 60
579                             // <-, line 60
580                             slice_from("u");
581                             break;
582                         case 3:
583                             // (, line 61
584                             // next, line 61
585                             if (cursor >= limit)
586                             {
587                                 break lab1;
588                             }
589                             cursor++;
590                             break;
591                     }
592                     continue replab0;
593                 } while (false);
594                 cursor = v_1;
595                 break replab0;
596             }
597             return true;
598         }
599
600         private boolean r_RV() {
601             if (!(I_pV <= cursor))
602             {
603                 return false;
604             }
605             return true;
606         }
607
608         private boolean r_R1() {
609             if (!(I_p1 <= cursor))
610             {
611                 return false;
612             }
613             return true;
614         }
615
616         private boolean r_R2() {
617             if (!(I_p2 <= cursor))
618             {
619                 return false;
620             }
621             return true;
622         }
623
624         private boolean r_step_0() {
625             int among_var;
626             int v_1;
627             // (, line 72
628             // [, line 73
629             ket = cursor;
630             // substring, line 73
631             among_var = find_among_b(a_1, 16);
632             if (among_var == 0)
633             {
634                 return false;
635             }
636             // ], line 73
637             bra = cursor;
638             // call R1, line 73
639             if (!r_R1())
640             {
641                 return false;
642             }
643             switch(among_var) {
644                 case 0:
645                     return false;
646                 case 1:
647                     // (, line 75
648                     // delete, line 75
649                     slice_del();
650                     break;
651                 case 2:
652                     // (, line 77
653                     // <-, line 77
654                     slice_from("a");
655                     break;
656                 case 3:
657                     // (, line 79
658                     // <-, line 79
659                     slice_from("e");
660                     break;
661                 case 4:
662                     // (, line 81
663                     // <-, line 81
664                     slice_from("i");
665                     break;
666                 case 5:
667                     // (, line 83
668                     // not, line 83
669                     {
670                         v_1 = limit - cursor;
671                         lab0: do {
672                             // literal, line 83
673                             if (!(eq_s_b(2, "ab")))
674                             {
675                                 break lab0;
676                             }
677                             return false;
678                         } while (false);
679                         cursor = limit - v_1;
680                     }
681                     // <-, line 83
682                     slice_from("i");
683                     break;
684                 case 6:
685                     // (, line 85
686                     // <-, line 85
687                     slice_from("at");
688                     break;
689                 case 7:
690                     // (, line 87
691                     // <-, line 87
692                     slice_from("a\u0163i");
693                     break;
694             }
695             return true;
696         }
697
698         private boolean r_combo_suffix() {
699             int among_var;
700             int v_1;
701             // test, line 91
702             v_1 = limit - cursor;
703             // (, line 91
704             // [, line 92
705             ket = cursor;
706             // substring, line 92
707             among_var = find_among_b(a_2, 46);
708             if (among_var == 0)
709             {
710                 return false;
711             }
712             // ], line 92
713             bra = cursor;
714             // call R1, line 92
715             if (!r_R1())
716             {
717                 return false;
718             }
719             // (, line 92
720             switch(among_var) {
721                 case 0:
722                     return false;
723                 case 1:
724                     // (, line 100
725                     // <-, line 101
726                     slice_from("abil");
727                     break;
728                 case 2:
729                     // (, line 103
730                     // <-, line 104
731                     slice_from("ibil");
732                     break;
733                 case 3:
734                     // (, line 106
735                     // <-, line 107
736                     slice_from("iv");
737                     break;
738                 case 4:
739                     // (, line 112
740                     // <-, line 113
741                     slice_from("ic");
742                     break;
743                 case 5:
744                     // (, line 117
745                     // <-, line 118
746                     slice_from("at");
747                     break;
748                 case 6:
749                     // (, line 121
750                     // <-, line 122
751                     slice_from("it");
752                     break;
753             }
754             // set standard_suffix_removed, line 125
755             B_standard_suffix_removed = true;
756             cursor = limit - v_1;
757             return true;
758         }
759
760         private boolean r_standard_suffix() {
761             int among_var;
762             int v_1;
763             // (, line 129
764             // unset standard_suffix_removed, line 130
765             B_standard_suffix_removed = false;
766             // repeat, line 131
767             replab0: while(true)
768             {
769                 v_1 = limit - cursor;
770                 lab1: do {
771                     // call combo_suffix, line 131
772                     if (!r_combo_suffix())
773                     {
774                         break lab1;
775                     }
776                     continue replab0;
777                 } while (false);
778                 cursor = limit - v_1;
779                 break replab0;
780             }
781             // [, line 132
782             ket = cursor;
783             // substring, line 132
784             among_var = find_among_b(a_3, 62);
785             if (among_var == 0)
786             {
787                 return false;
788             }
789             // ], line 132
790             bra = cursor;
791             // call R2, line 132
792             if (!r_R2())
793             {
794                 return false;
795             }
796             // (, line 132
797             switch(among_var) {
798                 case 0:
799                     return false;
800                 case 1:
801                     // (, line 148
802                     // delete, line 149
803                     slice_del();
804                     break;
805                 case 2:
806                     // (, line 151
807                     // literal, line 152
808                     if (!(eq_s_b(1, "\u0163")))
809                     {
810                         return false;
811                     }
812                     // ], line 152
813                     bra = cursor;
814                     // <-, line 152
815                     slice_from("t");
816                     break;
817                 case 3:
818                     // (, line 155
819                     // <-, line 156
820                     slice_from("ist");
821                     break;
822             }
823             // set standard_suffix_removed, line 160
824             B_standard_suffix_removed = true;
825             return true;
826         }
827
828         private boolean r_verb_suffix() {
829             int among_var;
830             int v_1;
831             int v_2;
832             int v_3;
833             // setlimit, line 164
834             v_1 = limit - cursor;
835             // tomark, line 164
836             if (cursor < I_pV)
837             {
838                 return false;
839             }
840             cursor = I_pV;
841             v_2 = limit_backward;
842             limit_backward = cursor;
843             cursor = limit - v_1;
844             // (, line 164
845             // [, line 165
846             ket = cursor;
847             // substring, line 165
848             among_var = find_among_b(a_4, 94);
849             if (among_var == 0)
850             {
851                 limit_backward = v_2;
852                 return false;
853             }
854             // ], line 165
855             bra = cursor;
856             switch(among_var) {
857                 case 0:
858                     limit_backward = v_2;
859                     return false;
860                 case 1:
861                     // (, line 200
862                     // or, line 200
863                     lab0: do {
864                         v_3 = limit - cursor;
865                         lab1: do {
866                             if (!(out_grouping_b(g_v, 97, 259)))
867                             {
868                                 break lab1;
869                             }
870                             break lab0;
871                         } while (false);
872                         cursor = limit - v_3;
873                         // literal, line 200
874                         if (!(eq_s_b(1, "u")))
875                         {
876                             limit_backward = v_2;
877                             return false;
878                         }
879                     } while (false);
880                     // delete, line 200
881                     slice_del();
882                     break;
883                 case 2:
884                     // (, line 214
885                     // delete, line 214
886                     slice_del();
887                     break;
888             }
889             limit_backward = v_2;
890             return true;
891         }
892
893         private boolean r_vowel_suffix() {
894             int among_var;
895             // (, line 218
896             // [, line 219
897             ket = cursor;
898             // substring, line 219
899             among_var = find_among_b(a_5, 5);
900             if (among_var == 0)
901             {
902                 return false;
903             }
904             // ], line 219
905             bra = cursor;
906             // call RV, line 219
907             if (!r_RV())
908             {
909                 return false;
910             }
911             switch(among_var) {
912                 case 0:
913                     return false;
914                 case 1:
915                     // (, line 220
916                     // delete, line 220
917                     slice_del();
918                     break;
919             }
920             return true;
921         }
922
923         public boolean stem() {
924             int v_1;
925             int v_2;
926             int v_3;
927             int v_4;
928             int v_5;
929             int v_6;
930             int v_7;
931             int v_8;
932             // (, line 225
933             // do, line 226
934             v_1 = cursor;
935             lab0: do {
936                 // call prelude, line 226
937                 if (!r_prelude())
938                 {
939                     break lab0;
940                 }
941             } while (false);
942             cursor = v_1;
943             // do, line 227
944             v_2 = cursor;
945             lab1: do {
946                 // call mark_regions, line 227
947                 if (!r_mark_regions())
948                 {
949                     break lab1;
950                 }
951             } while (false);
952             cursor = v_2;
953             // backwards, line 228
954             limit_backward = cursor; cursor = limit;
955             // (, line 228
956             // do, line 229
957             v_3 = limit - cursor;
958             lab2: do {
959                 // call step_0, line 229
960                 if (!r_step_0())
961                 {
962                     break lab2;
963                 }
964             } while (false);
965             cursor = limit - v_3;
966             // do, line 230
967             v_4 = limit - cursor;
968             lab3: do {
969                 // call standard_suffix, line 230
970                 if (!r_standard_suffix())
971                 {
972                     break lab3;
973                 }
974             } while (false);
975             cursor = limit - v_4;
976             // do, line 231
977             v_5 = limit - cursor;
978             lab4: do {
979                 // (, line 231
980                 // or, line 231
981                 lab5: do {
982                     v_6 = limit - cursor;
983                     lab6: do {
984                         // Boolean test standard_suffix_removed, line 231
985                         if (!(B_standard_suffix_removed))
986                         {
987                             break lab6;
988                         }
989                         break lab5;
990                     } while (false);
991                     cursor = limit - v_6;
992                     // call verb_suffix, line 231
993                     if (!r_verb_suffix())
994                     {
995                         break lab4;
996                     }
997                 } while (false);
998             } while (false);
999             cursor = limit - v_5;
1000             // do, line 232
1001             v_7 = limit - cursor;
1002             lab7: do {
1003                 // call vowel_suffix, line 232
1004                 if (!r_vowel_suffix())
1005                 {
1006                     break lab7;
1007                 }
1008             } while (false);
1009             cursor = limit - v_7;
1010             cursor = limit_backward;            // do, line 234
1011             v_8 = cursor;
1012             lab8: do {
1013                 // call postlude, line 234
1014                 if (!r_postlude())
1015                 {
1016                     break lab8;
1017                 }
1018             } while (false);
1019             cursor = v_8;
1020             return true;
1021         }
1022
1023 }
1024