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 portugueseStemmer extends org.tartarus.snowball.SnowballStemmer {
13  
14  private static final long serialVersionUID = 1L;
15  
16          private final static portugueseStemmer methodObject = new portugueseStemmer ();
17  
18                  private final static Among a_0[] = {
19                      new Among ( "", -1, 3, "", methodObject ),
20                      new Among ( "\u00E3", 0, 1, "", methodObject ),
21                      new Among ( "\u00F5", 0, 2, "", methodObject )
22                  };
23  
24                  private final static Among a_1[] = {
25                      new Among ( "", -1, 3, "", methodObject ),
26                      new Among ( "a~", 0, 1, "", methodObject ),
27                      new Among ( "o~", 0, 2, "", methodObject )
28                  };
29  
30                  private final static Among a_2[] = {
31                      new Among ( "ic", -1, -1, "", methodObject ),
32                      new Among ( "ad", -1, -1, "", methodObject ),
33                      new Among ( "os", -1, -1, "", methodObject ),
34                      new Among ( "iv", -1, 1, "", methodObject )
35                  };
36  
37                  private final static Among a_3[] = {
38                      new Among ( "ante", -1, 1, "", methodObject ),
39                      new Among ( "avel", -1, 1, "", methodObject ),
40                      new Among ( "\u00EDvel", -1, 1, "", methodObject )
41                  };
42  
43                  private final static Among a_4[] = {
44                      new Among ( "ic", -1, 1, "", methodObject ),
45                      new Among ( "abil", -1, 1, "", methodObject ),
46                      new Among ( "iv", -1, 1, "", methodObject )
47                  };
48  
49                  private final static Among a_5[] = {
50                      new Among ( "ica", -1, 1, "", methodObject ),
51                      new Among ( "\u00E2ncia", -1, 1, "", methodObject ),
52                      new Among ( "\u00EAncia", -1, 4, "", methodObject ),
53                      new Among ( "ira", -1, 9, "", methodObject ),
54                      new Among ( "adora", -1, 1, "", methodObject ),
55                      new Among ( "osa", -1, 1, "", methodObject ),
56                      new Among ( "ista", -1, 1, "", methodObject ),
57                      new Among ( "iva", -1, 8, "", methodObject ),
58                      new Among ( "eza", -1, 1, "", methodObject ),
59                      new Among ( "log\u00EDa", -1, 2, "", methodObject ),
60                      new Among ( "idade", -1, 7, "", methodObject ),
61                      new Among ( "ante", -1, 1, "", methodObject ),
62                      new Among ( "mente", -1, 6, "", methodObject ),
63                      new Among ( "amente", 12, 5, "", methodObject ),
64                      new Among ( "\u00E1vel", -1, 1, "", methodObject ),
65                      new Among ( "\u00EDvel", -1, 1, "", methodObject ),
66                      new Among ( "uci\u00F3n", -1, 3, "", methodObject ),
67                      new Among ( "ico", -1, 1, "", methodObject ),
68                      new Among ( "ismo", -1, 1, "", methodObject ),
69                      new Among ( "oso", -1, 1, "", methodObject ),
70                      new Among ( "amento", -1, 1, "", methodObject ),
71                      new Among ( "imento", -1, 1, "", methodObject ),
72                      new Among ( "ivo", -1, 8, "", methodObject ),
73                      new Among ( "a\u00E7a~o", -1, 1, "", methodObject ),
74                      new Among ( "ador", -1, 1, "", methodObject ),
75                      new Among ( "icas", -1, 1, "", methodObject ),
76                      new Among ( "\u00EAncias", -1, 4, "", methodObject ),
77                      new Among ( "iras", -1, 9, "", methodObject ),
78                      new Among ( "adoras", -1, 1, "", methodObject ),
79                      new Among ( "osas", -1, 1, "", methodObject ),
80                      new Among ( "istas", -1, 1, "", methodObject ),
81                      new Among ( "ivas", -1, 8, "", methodObject ),
82                      new Among ( "ezas", -1, 1, "", methodObject ),
83                      new Among ( "log\u00EDas", -1, 2, "", methodObject ),
84                      new Among ( "idades", -1, 7, "", methodObject ),
85                      new Among ( "uciones", -1, 3, "", methodObject ),
86                      new Among ( "adores", -1, 1, "", methodObject ),
87                      new Among ( "antes", -1, 1, "", methodObject ),
88                      new Among ( "a\u00E7o~es", -1, 1, "", methodObject ),
89                      new Among ( "icos", -1, 1, "", methodObject ),
90                      new Among ( "ismos", -1, 1, "", methodObject ),
91                      new Among ( "osos", -1, 1, "", methodObject ),
92                      new Among ( "amentos", -1, 1, "", methodObject ),
93                      new Among ( "imentos", -1, 1, "", methodObject ),
94                      new Among ( "ivos", -1, 8, "", methodObject )
95                  };
96  
97                  private final static Among a_6[] = {
98                      new Among ( "ada", -1, 1, "", methodObject ),
99                      new Among ( "ida", -1, 1, "", methodObject ),
100                     new Among ( "ia", -1, 1, "", methodObject ),
101                     new Among ( "aria", 2, 1, "", methodObject ),
102                     new Among ( "eria", 2, 1, "", methodObject ),
103                     new Among ( "iria", 2, 1, "", methodObject ),
104                     new Among ( "ara", -1, 1, "", methodObject ),
105                     new Among ( "era", -1, 1, "", methodObject ),
106                     new Among ( "ira", -1, 1, "", methodObject ),
107                     new Among ( "ava", -1, 1, "", methodObject ),
108                     new Among ( "asse", -1, 1, "", methodObject ),
109                     new Among ( "esse", -1, 1, "", methodObject ),
110                     new Among ( "isse", -1, 1, "", methodObject ),
111                     new Among ( "aste", -1, 1, "", methodObject ),
112                     new Among ( "este", -1, 1, "", methodObject ),
113                     new Among ( "iste", -1, 1, "", methodObject ),
114                     new Among ( "ei", -1, 1, "", methodObject ),
115                     new Among ( "arei", 16, 1, "", methodObject ),
116                     new Among ( "erei", 16, 1, "", methodObject ),
117                     new Among ( "irei", 16, 1, "", methodObject ),
118                     new Among ( "am", -1, 1, "", methodObject ),
119                     new Among ( "iam", 20, 1, "", methodObject ),
120                     new Among ( "ariam", 21, 1, "", methodObject ),
121                     new Among ( "eriam", 21, 1, "", methodObject ),
122                     new Among ( "iriam", 21, 1, "", methodObject ),
123                     new Among ( "aram", 20, 1, "", methodObject ),
124                     new Among ( "eram", 20, 1, "", methodObject ),
125                     new Among ( "iram", 20, 1, "", methodObject ),
126                     new Among ( "avam", 20, 1, "", methodObject ),
127                     new Among ( "em", -1, 1, "", methodObject ),
128                     new Among ( "arem", 29, 1, "", methodObject ),
129                     new Among ( "erem", 29, 1, "", methodObject ),
130                     new Among ( "irem", 29, 1, "", methodObject ),
131                     new Among ( "assem", 29, 1, "", methodObject ),
132                     new Among ( "essem", 29, 1, "", methodObject ),
133                     new Among ( "issem", 29, 1, "", methodObject ),
134                     new Among ( "ado", -1, 1, "", methodObject ),
135                     new Among ( "ido", -1, 1, "", methodObject ),
136                     new Among ( "ando", -1, 1, "", methodObject ),
137                     new Among ( "endo", -1, 1, "", methodObject ),
138                     new Among ( "indo", -1, 1, "", methodObject ),
139                     new Among ( "ara~o", -1, 1, "", methodObject ),
140                     new Among ( "era~o", -1, 1, "", methodObject ),
141                     new Among ( "ira~o", -1, 1, "", methodObject ),
142                     new Among ( "ar", -1, 1, "", methodObject ),
143                     new Among ( "er", -1, 1, "", methodObject ),
144                     new Among ( "ir", -1, 1, "", methodObject ),
145                     new Among ( "as", -1, 1, "", methodObject ),
146                     new Among ( "adas", 47, 1, "", methodObject ),
147                     new Among ( "idas", 47, 1, "", methodObject ),
148                     new Among ( "ias", 47, 1, "", methodObject ),
149                     new Among ( "arias", 50, 1, "", methodObject ),
150                     new Among ( "erias", 50, 1, "", methodObject ),
151                     new Among ( "irias", 50, 1, "", methodObject ),
152                     new Among ( "aras", 47, 1, "", methodObject ),
153                     new Among ( "eras", 47, 1, "", methodObject ),
154                     new Among ( "iras", 47, 1, "", methodObject ),
155                     new Among ( "avas", 47, 1, "", methodObject ),
156                     new Among ( "es", -1, 1, "", methodObject ),
157                     new Among ( "ardes", 58, 1, "", methodObject ),
158                     new Among ( "erdes", 58, 1, "", methodObject ),
159                     new Among ( "irdes", 58, 1, "", methodObject ),
160                     new Among ( "ares", 58, 1, "", methodObject ),
161                     new Among ( "eres", 58, 1, "", methodObject ),
162                     new Among ( "ires", 58, 1, "", methodObject ),
163                     new Among ( "asses", 58, 1, "", methodObject ),
164                     new Among ( "esses", 58, 1, "", methodObject ),
165                     new Among ( "isses", 58, 1, "", methodObject ),
166                     new Among ( "astes", 58, 1, "", methodObject ),
167                     new Among ( "estes", 58, 1, "", methodObject ),
168                     new Among ( "istes", 58, 1, "", methodObject ),
169                     new Among ( "is", -1, 1, "", methodObject ),
170                     new Among ( "ais", 71, 1, "", methodObject ),
171                     new Among ( "eis", 71, 1, "", methodObject ),
172                     new Among ( "areis", 73, 1, "", methodObject ),
173                     new Among ( "ereis", 73, 1, "", methodObject ),
174                     new Among ( "ireis", 73, 1, "", methodObject ),
175                     new Among ( "\u00E1reis", 73, 1, "", methodObject ),
176                     new Among ( "\u00E9reis", 73, 1, "", methodObject ),
177                     new Among ( "\u00EDreis", 73, 1, "", methodObject ),
178                     new Among ( "\u00E1sseis", 73, 1, "", methodObject ),
179                     new Among ( "\u00E9sseis", 73, 1, "", methodObject ),
180                     new Among ( "\u00EDsseis", 73, 1, "", methodObject ),
181                     new Among ( "\u00E1veis", 73, 1, "", methodObject ),
182                     new Among ( "\u00EDeis", 73, 1, "", methodObject ),
183                     new Among ( "ar\u00EDeis", 84, 1, "", methodObject ),
184                     new Among ( "er\u00EDeis", 84, 1, "", methodObject ),
185                     new Among ( "ir\u00EDeis", 84, 1, "", methodObject ),
186                     new Among ( "ados", -1, 1, "", methodObject ),
187                     new Among ( "idos", -1, 1, "", methodObject ),
188                     new Among ( "amos", -1, 1, "", methodObject ),
189                     new Among ( "\u00E1ramos", 90, 1, "", methodObject ),
190                     new Among ( "\u00E9ramos", 90, 1, "", methodObject ),
191                     new Among ( "\u00EDramos", 90, 1, "", methodObject ),
192                     new Among ( "\u00E1vamos", 90, 1, "", methodObject ),
193                     new Among ( "\u00EDamos", 90, 1, "", methodObject ),
194                     new Among ( "ar\u00EDamos", 95, 1, "", methodObject ),
195                     new Among ( "er\u00EDamos", 95, 1, "", methodObject ),
196                     new Among ( "ir\u00EDamos", 95, 1, "", methodObject ),
197                     new Among ( "emos", -1, 1, "", methodObject ),
198                     new Among ( "aremos", 99, 1, "", methodObject ),
199                     new Among ( "eremos", 99, 1, "", methodObject ),
200                     new Among ( "iremos", 99, 1, "", methodObject ),
201                     new Among ( "\u00E1ssemos", 99, 1, "", methodObject ),
202                     new Among ( "\u00EAssemos", 99, 1, "", methodObject ),
203                     new Among ( "\u00EDssemos", 99, 1, "", methodObject ),
204                     new Among ( "imos", -1, 1, "", methodObject ),
205                     new Among ( "armos", -1, 1, "", methodObject ),
206                     new Among ( "ermos", -1, 1, "", methodObject ),
207                     new Among ( "irmos", -1, 1, "", methodObject ),
208                     new Among ( "\u00E1mos", -1, 1, "", methodObject ),
209                     new Among ( "ar\u00E1s", -1, 1, "", methodObject ),
210                     new Among ( "er\u00E1s", -1, 1, "", methodObject ),
211                     new Among ( "ir\u00E1s", -1, 1, "", methodObject ),
212                     new Among ( "eu", -1, 1, "", methodObject ),
213                     new Among ( "iu", -1, 1, "", methodObject ),
214                     new Among ( "ou", -1, 1, "", methodObject ),
215                     new Among ( "ar\u00E1", -1, 1, "", methodObject ),
216                     new Among ( "er\u00E1", -1, 1, "", methodObject ),
217                     new Among ( "ir\u00E1", -1, 1, "", methodObject )
218                 };
219 
220                 private final static Among a_7[] = {
221                     new Among ( "a", -1, 1, "", methodObject ),
222                     new Among ( "i", -1, 1, "", methodObject ),
223                     new Among ( "o", -1, 1, "", methodObject ),
224                     new Among ( "os", -1, 1, "", methodObject ),
225                     new Among ( "\u00E1", -1, 1, "", methodObject ),
226                     new Among ( "\u00ED", -1, 1, "", methodObject ),
227                     new Among ( "\u00F3", -1, 1, "", methodObject )
228                 };
229 
230                 private final static Among a_8[] = {
231                     new Among ( "e", -1, 1, "", methodObject ),
232                     new Among ( "\u00E7", -1, 2, "", methodObject ),
233                     new Among ( "\u00E9", -1, 1, "", methodObject ),
234                     new Among ( "\u00EA", -1, 1, "", methodObject )
235                 };
236 
237                 private static final char g_v[] = {17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 12, 2 };
238 
239         private int I_p2;
240         private int I_p1;
241         private int I_pV;
242 
243                 private void copy_from(portugueseStemmer 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                     // repeat, line 36
254                     replab0: while(true)
255                     {
256                         v_1 = cursor;
257                         lab1: do {
258                             // (, line 36
259                             // [, line 37
260                             bra = cursor;
261                             // substring, line 37
262                             among_var = find_among(a_0, 3);
263                             if (among_var == 0)
264                             {
265                                 break lab1;
266                             }
267                             // ], line 37
268                             ket = cursor;
269                             switch(among_var) {
270                                 case 0:
271                                     break lab1;
272                                 case 1:
273                                     // (, line 38
274                                     // <-, line 38
275                                     slice_from("a~");
276                                     break;
277                                 case 2:
278                                     // (, line 39
279                                     // <-, line 39
280                                     slice_from("o~");
281                                     break;
282                                 case 3:
283                                     // (, line 40
284                                     // next, line 40
285                                     if (cursor >= limit)
286                                     {
287                                         break lab1;
288                                     }
289                                     cursor++;
290                                     break;
291                             }
292                             continue replab0;
293                         } while (false);
294                         cursor = v_1;
295                         break replab0;
296                     }
297                     return true;
298                 }
299 
300                 private boolean r_mark_regions() {
301             int v_1;
302             int v_2;
303             int v_3;
304             int v_6;
305             int v_8;
306                     // (, line 44
307                     I_pV = limit;
308                     I_p1 = limit;
309                     I_p2 = limit;
310                     // do, line 50
311                     v_1 = cursor;
312                     lab0: do {
313                         // (, line 50
314                         // or, line 52
315                         lab1: do {
316                             v_2 = cursor;
317                             lab2: do {
318                                 // (, line 51
319                                 if (!(in_grouping(g_v, 97, 250)))
320                                 {
321                                     break lab2;
322                                 }
323                                 // or, line 51
324                                 lab3: do {
325                                     v_3 = cursor;
326                                     lab4: do {
327                                         // (, line 51
328                                         if (!(out_grouping(g_v, 97, 250)))
329                                         {
330                                             break lab4;
331                                         }
332                                         // gopast, line 51
333                                         golab5: while(true)
334                                         {
335                                             lab6: do {
336                                                 if (!(in_grouping(g_v, 97, 250)))
337                                                 {
338                                                     break lab6;
339                                                 }
340                                                 break golab5;
341                                             } while (false);
342                                             if (cursor >= limit)
343                                             {
344                                                 break lab4;
345                                             }
346                                             cursor++;
347                                         }
348                                         break lab3;
349                                     } while (false);
350                                     cursor = v_3;
351                                     // (, line 51
352                                     if (!(in_grouping(g_v, 97, 250)))
353                                     {
354                                         break lab2;
355                                     }
356                                     // gopast, line 51
357                                     golab7: while(true)
358                                     {
359                                         lab8: do {
360                                             if (!(out_grouping(g_v, 97, 250)))
361                                             {
362                                                 break lab8;
363                                             }
364                                             break golab7;
365                                         } while (false);
366                                         if (cursor >= limit)
367                                         {
368                                             break lab2;
369                                         }
370                                         cursor++;
371                                     }
372                                 } while (false);
373                                 break lab1;
374                             } while (false);
375                             cursor = v_2;
376                             // (, line 53
377                             if (!(out_grouping(g_v, 97, 250)))
378                             {
379                                 break lab0;
380                             }
381                             // or, line 53
382                             lab9: do {
383                                 v_6 = cursor;
384                                 lab10: do {
385                                     // (, line 53
386                                     if (!(out_grouping(g_v, 97, 250)))
387                                     {
388                                         break lab10;
389                                     }
390                                     // gopast, line 53
391                                     golab11: while(true)
392                                     {
393                                         lab12: do {
394                                             if (!(in_grouping(g_v, 97, 250)))
395                                             {
396                                                 break lab12;
397                                             }
398                                             break golab11;
399                                         } while (false);
400                                         if (cursor >= limit)
401                                         {
402                                             break lab10;
403                                         }
404                                         cursor++;
405                                     }
406                                     break lab9;
407                                 } while (false);
408                                 cursor = v_6;
409                                 // (, line 53
410                                 if (!(in_grouping(g_v, 97, 250)))
411                                 {
412                                     break lab0;
413                                 }
414                                 // next, line 53
415                                 if (cursor >= limit)
416                                 {
417                                     break lab0;
418                                 }
419                                 cursor++;
420                             } while (false);
421                         } while (false);
422                         // setmark pV, line 54
423                         I_pV = cursor;
424                     } while (false);
425                     cursor = v_1;
426                     // do, line 56
427                     v_8 = cursor;
428                     lab13: do {
429                         // (, line 56
430                         // gopast, line 57
431                         golab14: while(true)
432                         {
433                             lab15: do {
434                                 if (!(in_grouping(g_v, 97, 250)))
435                                 {
436                                     break lab15;
437                                 }
438                                 break golab14;
439                             } while (false);
440                             if (cursor >= limit)
441                             {
442                                 break lab13;
443                             }
444                             cursor++;
445                         }
446                         // gopast, line 57
447                         golab16: while(true)
448                         {
449                             lab17: do {
450                                 if (!(out_grouping(g_v, 97, 250)))
451                                 {
452                                     break lab17;
453                                 }
454                                 break golab16;
455                             } while (false);
456                             if (cursor >= limit)
457                             {
458                                 break lab13;
459                             }
460                             cursor++;
461                         }
462                         // setmark p1, line 57
463                         I_p1 = cursor;
464                         // gopast, line 58
465                         golab18: while(true)
466                         {
467                             lab19: do {
468                                 if (!(in_grouping(g_v, 97, 250)))
469                                 {
470                                     break lab19;
471                                 }
472                                 break golab18;
473                             } while (false);
474                             if (cursor >= limit)
475                             {
476                                 break lab13;
477                             }
478                             cursor++;
479                         }
480                         // gopast, line 58
481                         golab20: while(true)
482                         {
483                             lab21: do {
484                                 if (!(out_grouping(g_v, 97, 250)))
485                                 {
486                                     break lab21;
487                                 }
488                                 break golab20;
489                             } while (false);
490                             if (cursor >= limit)
491                             {
492                                 break lab13;
493                             }
494                             cursor++;
495                         }
496                         // setmark p2, line 58
497                         I_p2 = cursor;
498                     } while (false);
499                     cursor = v_8;
500                     return true;
501                 }
502 
503                 private boolean r_postlude() {
504             int among_var;
505             int v_1;
506                     // repeat, line 62
507                     replab0: while(true)
508                     {
509                         v_1 = cursor;
510                         lab1: do {
511                             // (, line 62
512                             // [, line 63
513                             bra = cursor;
514                             // substring, line 63
515                             among_var = find_among(a_1, 3);
516                             if (among_var == 0)
517                             {
518                                 break lab1;
519                             }
520                             // ], line 63
521                             ket = cursor;
522                             switch(among_var) {
523                                 case 0:
524                                     break lab1;
525                                 case 1:
526                                     // (, line 64
527                                     // <-, line 64
528                                     slice_from("\u00E3");
529                                     break;
530                                 case 2:
531                                     // (, line 65
532                                     // <-, line 65
533                                     slice_from("\u00F5");
534                                     break;
535                                 case 3:
536                                     // (, line 66
537                                     // next, line 66
538                                     if (cursor >= limit)
539                                     {
540                                         break lab1;
541                                     }
542                                     cursor++;
543                                     break;
544                             }
545                             continue replab0;
546                         } while (false);
547                         cursor = v_1;
548                         break replab0;
549                     }
550                     return true;
551                 }
552 
553                 private boolean r_RV() {
554                     if (!(I_pV <= cursor))
555                     {
556                         return false;
557                     }
558                     return true;
559                 }
560 
561                 private boolean r_R1() {
562                     if (!(I_p1 <= cursor))
563                     {
564                         return false;
565                     }
566                     return true;
567                 }
568 
569                 private boolean r_R2() {
570                     if (!(I_p2 <= cursor))
571                     {
572                         return false;
573                     }
574                     return true;
575                 }
576 
577                 private boolean r_standard_suffix() {
578             int among_var;
579             int v_1;
580             int v_2;
581             int v_3;
582             int v_4;
583                     // (, line 76
584                     // [, line 77
585                     ket = cursor;
586                     // substring, line 77
587                     among_var = find_among_b(a_5, 45);
588                     if (among_var == 0)
589                     {
590                         return false;
591                     }
592                     // ], line 77
593                     bra = cursor;
594                     switch(among_var) {
595                         case 0:
596                             return false;
597                         case 1:
598                             // (, line 92
599                             // call R2, line 93
600                             if (!r_R2())
601                             {
602                                 return false;
603                             }
604                             // delete, line 93
605                             slice_del();
606                             break;
607                         case 2:
608                             // (, line 97
609                             // call R2, line 98
610                             if (!r_R2())
611                             {
612                                 return false;
613                             }
614                             // <-, line 98
615                             slice_from("log");
616                             break;
617                         case 3:
618                             // (, line 101
619                             // call R2, line 102
620                             if (!r_R2())
621                             {
622                                 return false;
623                             }
624                             // <-, line 102
625                             slice_from("u");
626                             break;
627                         case 4:
628                             // (, line 105
629                             // call R2, line 106
630                             if (!r_R2())
631                             {
632                                 return false;
633                             }
634                             // <-, line 106
635                             slice_from("ente");
636                             break;
637                         case 5:
638                             // (, line 109
639                             // call R1, line 110
640                             if (!r_R1())
641                             {
642                                 return false;
643                             }
644                             // delete, line 110
645                             slice_del();
646                             // try, line 111
647                             v_1 = limit - cursor;
648                             lab0: do {
649                                 // (, line 111
650                                 // [, line 112
651                                 ket = cursor;
652                                 // substring, line 112
653                                 among_var = find_among_b(a_2, 4);
654                                 if (among_var == 0)
655                                 {
656                                     cursor = limit - v_1;
657                                     break lab0;
658                                 }
659                                 // ], line 112
660                                 bra = cursor;
661                                 // call R2, line 112
662                                 if (!r_R2())
663                                 {
664                                     cursor = limit - v_1;
665                                     break lab0;
666                                 }
667                                 // delete, line 112
668                                 slice_del();
669                                 switch(among_var) {
670                                     case 0:
671                                         cursor = limit - v_1;
672                                         break lab0;
673                                     case 1:
674                                         // (, line 113
675                                         // [, line 113
676                                         ket = cursor;
677                                         // literal, line 113
678                                         if (!(eq_s_b(2, "at")))
679                                         {
680                                             cursor = limit - v_1;
681                                             break lab0;
682                                         }
683                                         // ], line 113
684                                         bra = cursor;
685                                         // call R2, line 113
686                                         if (!r_R2())
687                                         {
688                                             cursor = limit - v_1;
689                                             break lab0;
690                                         }
691                                         // delete, line 113
692                                         slice_del();
693                                         break;
694                                 }
695                             } while (false);
696                             break;
697                         case 6:
698                             // (, line 121
699                             // call R2, line 122
700                             if (!r_R2())
701                             {
702                                 return false;
703                             }
704                             // delete, line 122
705                             slice_del();
706                             // try, line 123
707                             v_2 = limit - cursor;
708                             lab1: do {
709                                 // (, line 123
710                                 // [, line 124
711                                 ket = cursor;
712                                 // substring, line 124
713                                 among_var = find_among_b(a_3, 3);
714                                 if (among_var == 0)
715                                 {
716                                     cursor = limit - v_2;
717                                     break lab1;
718                                 }
719                                 // ], line 124
720                                 bra = cursor;
721                                 switch(among_var) {
722                                     case 0:
723                                         cursor = limit - v_2;
724                                         break lab1;
725                                     case 1:
726                                         // (, line 127
727                                         // call R2, line 127
728                                         if (!r_R2())
729                                         {
730                                             cursor = limit - v_2;
731                                             break lab1;
732                                         }
733                                         // delete, line 127
734                                         slice_del();
735                                         break;
736                                 }
737                             } while (false);
738                             break;
739                         case 7:
740                             // (, line 133
741                             // call R2, line 134
742                             if (!r_R2())
743                             {
744                                 return false;
745                             }
746                             // delete, line 134
747                             slice_del();
748                             // try, line 135
749                             v_3 = limit - cursor;
750                             lab2: do {
751                                 // (, line 135
752                                 // [, line 136
753                                 ket = cursor;
754                                 // substring, line 136
755                                 among_var = find_among_b(a_4, 3);
756                                 if (among_var == 0)
757                                 {
758                                     cursor = limit - v_3;
759                                     break lab2;
760                                 }
761                                 // ], line 136
762                                 bra = cursor;
763                                 switch(among_var) {
764                                     case 0:
765                                         cursor = limit - v_3;
766                                         break lab2;
767                                     case 1:
768                                         // (, line 139
769                                         // call R2, line 139
770                                         if (!r_R2())
771                                         {
772                                             cursor = limit - v_3;
773                                             break lab2;
774                                         }
775                                         // delete, line 139
776                                         slice_del();
777                                         break;
778                                 }
779                             } while (false);
780                             break;
781                         case 8:
782                             // (, line 145
783                             // call R2, line 146
784                             if (!r_R2())
785                             {
786                                 return false;
787                             }
788                             // delete, line 146
789                             slice_del();
790                             // try, line 147
791                             v_4 = limit - cursor;
792                             lab3: do {
793                                 // (, line 147
794                                 // [, line 148
795                                 ket = cursor;
796                                 // literal, line 148
797                                 if (!(eq_s_b(2, "at")))
798                                 {
799                                     cursor = limit - v_4;
800                                     break lab3;
801                                 }
802                                 // ], line 148
803                                 bra = cursor;
804                                 // call R2, line 148
805                                 if (!r_R2())
806                                 {
807                                     cursor = limit - v_4;
808                                     break lab3;
809                                 }
810                                 // delete, line 148
811                                 slice_del();
812                             } while (false);
813                             break;
814                         case 9:
815                             // (, line 152
816                             // call RV, line 153
817                             if (!r_RV())
818                             {
819                                 return false;
820                             }
821                             // literal, line 153
822                             if (!(eq_s_b(1, "e")))
823                             {
824                                 return false;
825                             }
826                             // <-, line 154
827                             slice_from("ir");
828                             break;
829                     }
830                     return true;
831                 }
832 
833                 private boolean r_verb_suffix() {
834             int among_var;
835             int v_1;
836             int v_2;
837                     // setlimit, line 159
838                     v_1 = limit - cursor;
839                     // tomark, line 159
840                     if (cursor < I_pV)
841                     {
842                         return false;
843                     }
844                     cursor = I_pV;
845                     v_2 = limit_backward;
846                     limit_backward = cursor;
847                     cursor = limit - v_1;
848                     // (, line 159
849                     // [, line 160
850                     ket = cursor;
851                     // substring, line 160
852                     among_var = find_among_b(a_6, 120);
853                     if (among_var == 0)
854                     {
855                         limit_backward = v_2;
856                         return false;
857                     }
858                     // ], line 160
859                     bra = cursor;
860                     switch(among_var) {
861                         case 0:
862                             limit_backward = v_2;
863                             return false;
864                         case 1:
865                             // (, line 179
866                             // delete, line 179
867                             slice_del();
868                             break;
869                     }
870                     limit_backward = v_2;
871                     return true;
872                 }
873 
874                 private boolean r_residual_suffix() {
875             int among_var;
876                     // (, line 183
877                     // [, line 184
878                     ket = cursor;
879                     // substring, line 184
880                     among_var = find_among_b(a_7, 7);
881                     if (among_var == 0)
882                     {
883                         return false;
884                     }
885                     // ], line 184
886                     bra = cursor;
887                     switch(among_var) {
888                         case 0:
889                             return false;
890                         case 1:
891                             // (, line 187
892                             // call RV, line 187
893                             if (!r_RV())
894                             {
895                                 return false;
896                             }
897                             // delete, line 187
898                             slice_del();
899                             break;
900                     }
901                     return true;
902                 }
903 
904                 private boolean r_residual_form() {
905             int among_var;
906             int v_1;
907             int v_2;
908             int v_3;
909                     // (, line 191
910                     // [, line 192
911                     ket = cursor;
912                     // substring, line 192
913                     among_var = find_among_b(a_8, 4);
914                     if (among_var == 0)
915                     {
916                         return false;
917                     }
918                     // ], line 192
919                     bra = cursor;
920                     switch(among_var) {
921                         case 0:
922                             return false;
923                         case 1:
924                             // (, line 194
925                             // call RV, line 194
926                             if (!r_RV())
927                             {
928                                 return false;
929                             }
930                             // delete, line 194
931                             slice_del();
932                             // [, line 194
933                             ket = cursor;
934                             // or, line 194
935                             lab0: do {
936                                 v_1 = limit - cursor;
937                                 lab1: do {
938                                     // (, line 194
939                                     // literal, line 194
940                                     if (!(eq_s_b(1, "u")))
941                                     {
942                                         break lab1;
943                                     }
944                                     // ], line 194
945                                     bra = cursor;
946                                     // test, line 194
947                                     v_2 = limit - cursor;
948                                     // literal, line 194
949                                     if (!(eq_s_b(1, "g")))
950                                     {
951                                         break lab1;
952                                     }
953                                     cursor = limit - v_2;
954                                     break lab0;
955                                 } while (false);
956                                 cursor = limit - v_1;
957                                 // (, line 195
958                                 // literal, line 195
959                                 if (!(eq_s_b(1, "i")))
960                                 {
961                                     return false;
962                                 }
963                                 // ], line 195
964                                 bra = cursor;
965                                 // test, line 195
966                                 v_3 = limit - cursor;
967                                 // literal, line 195
968                                 if (!(eq_s_b(1, "c")))
969                                 {
970                                     return false;
971                                 }
972                                 cursor = limit - v_3;
973                             } while (false);
974                             // call RV, line 195
975                             if (!r_RV())
976                             {
977                                 return false;
978                             }
979                             // delete, line 195
980                             slice_del();
981                             break;
982                         case 2:
983                             // (, line 196
984                             // <-, line 196
985                             slice_from("c");
986                             break;
987                     }
988                     return true;
989                 }
990 
991                 public boolean stem() {
992             int v_1;
993             int v_2;
994             int v_3;
995             int v_4;
996             int v_5;
997             int v_6;
998             int v_7;
999             int v_8;
1000             int v_9;
1001             int v_10;
1002                     // (, line 201
1003                     // do, line 202
1004                     v_1 = cursor;
1005                     lab0: do {
1006                         // call prelude, line 202
1007                         if (!r_prelude())
1008                         {
1009                             break lab0;
1010                         }
1011                     } while (false);
1012                     cursor = v_1;
1013                     // do, line 203
1014                     v_2 = cursor;
1015                     lab1: do {
1016                         // call mark_regions, line 203
1017                         if (!r_mark_regions())
1018                         {
1019                             break lab1;
1020                         }
1021                     } while (false);
1022                     cursor = v_2;
1023                     // backwards, line 204
1024                     limit_backward = cursor; cursor = limit;
1025                     // (, line 204
1026                     // do, line 205
1027                     v_3 = limit - cursor;
1028                     lab2: do {
1029                         // (, line 205
1030                         // or, line 209
1031                         lab3: do {
1032                             v_4 = limit - cursor;
1033                             lab4: do {
1034                                 // (, line 206
1035                                 // and, line 207
1036                                 v_5 = limit - cursor;
1037                                 // (, line 206
1038                                 // or, line 206
1039                                 lab5: do {
1040                                     v_6 = limit - cursor;
1041                                     lab6: do {
1042                                         // call standard_suffix, line 206
1043                                         if (!r_standard_suffix())
1044                                         {
1045                                             break lab6;
1046                                         }
1047                                         break lab5;
1048                                     } while (false);
1049                                     cursor = limit - v_6;
1050                                     // call verb_suffix, line 206
1051                                     if (!r_verb_suffix())
1052                                     {
1053                                         break lab4;
1054                                     }
1055                                 } while (false);
1056                                 cursor = limit - v_5;
1057                                 // do, line 207
1058                                 v_7 = limit - cursor;
1059                                 lab7: do {
1060                                     // (, line 207
1061                                     // [, line 207
1062                                     ket = cursor;
1063                                     // literal, line 207
1064                                     if (!(eq_s_b(1, "i")))
1065                                     {
1066                                         break lab7;
1067                                     }
1068                                     // ], line 207
1069                                     bra = cursor;
1070                                     // test, line 207
1071                                     v_8 = limit - cursor;
1072                                     // literal, line 207
1073                                     if (!(eq_s_b(1, "c")))
1074                                     {
1075                                         break lab7;
1076                                     }
1077                                     cursor = limit - v_8;
1078                                     // call RV, line 207
1079                                     if (!r_RV())
1080                                     {
1081                                         break lab7;
1082                                     }
1083                                     // delete, line 207
1084                                     slice_del();
1085                                 } while (false);
1086                                 cursor = limit - v_7;
1087                                 break lab3;
1088                             } while (false);
1089                             cursor = limit - v_4;
1090                             // call residual_suffix, line 209
1091                             if (!r_residual_suffix())
1092                             {
1093                                 break lab2;
1094                             }
1095                         } while (false);
1096                     } while (false);
1097                     cursor = limit - v_3;
1098                     // do, line 211
1099                     v_9 = limit - cursor;
1100                     lab8: do {
1101                         // call residual_form, line 211
1102                         if (!r_residual_form())
1103                         {
1104                             break lab8;
1105                         }
1106                     } while (false);
1107                     cursor = limit - v_9;
1108                     cursor = limit_backward;                    // do, line 213
1109                     v_10 = cursor;
1110                     lab9: do {
1111                         // call postlude, line 213
1112                         if (!r_postlude())
1113                         {
1114                             break lab9;
1115                         }
1116                     } while (false);
1117                     cursor = v_10;
1118                     return true;
1119                 }
1120 
1121         public boolean equals( Object o ) {
1122             return o instanceof portugueseStemmer;
1123         }
1124 
1125         public int hashCode() {
1126             return portugueseStemmer.class.getName().hashCode();
1127         }
1128 
1129 
1130 
1131 }
1132