xref: /Lucene/lucene/analysis/common/src/java/org/tartarus/snowball/ext/FrenchStemmer.java (revision 0b1d8ccba6cf394f707a09217813a25ec1504e50)
1 // Generated by Snowball 2.0.0 - https://snowballstem.org/
2 
3 package org.tartarus.snowball.ext;
4 
5 import org.tartarus.snowball.Among;
6 
7 /**
8  * This class implements the stemming algorithm defined by a snowball script.
9  *
10  * <p>Generated by Snowball 2.0.0 - https://snowballstem.org/
11  */
12 @SuppressWarnings("unused")
13 public class FrenchStemmer extends org.tartarus.snowball.SnowballStemmer {
14 
15   private static final long serialVersionUID = 1L;
16   private static final java.lang.invoke.MethodHandles.Lookup methodObject =
17       java.lang.invoke.MethodHandles.lookup();
18 
19   private static final Among a_0[] = {
20     new Among("col", -1, -1), new Among("par", -1, -1), new Among("tap", -1, -1)
21   };
22 
23   private static final Among a_1[] = {
24     new Among("", -1, 7),
25     new Among("H", 0, 6),
26     new Among("He", 1, 4),
27     new Among("Hi", 1, 5),
28     new Among("I", 0, 1),
29     new Among("U", 0, 2),
30     new Among("Y", 0, 3)
31   };
32 
33   private static final Among a_2[] = {
34     new Among("iqU", -1, 3),
35     new Among("abl", -1, 3),
36     new Among("I\u00E8r", -1, 4),
37     new Among("i\u00E8r", -1, 4),
38     new Among("eus", -1, 2),
39     new Among("iv", -1, 1)
40   };
41 
42   private static final Among a_3[] = {
43     new Among("ic", -1, 2), new Among("abil", -1, 1), new Among("iv", -1, 3)
44   };
45 
46   private static final Among a_4[] = {
47     new Among("iqUe", -1, 1),
48     new Among("atrice", -1, 2),
49     new Among("ance", -1, 1),
50     new Among("ence", -1, 5),
51     new Among("logie", -1, 3),
52     new Among("able", -1, 1),
53     new Among("isme", -1, 1),
54     new Among("euse", -1, 11),
55     new Among("iste", -1, 1),
56     new Among("ive", -1, 8),
57     new Among("if", -1, 8),
58     new Among("usion", -1, 4),
59     new Among("ation", -1, 2),
60     new Among("ution", -1, 4),
61     new Among("ateur", -1, 2),
62     new Among("iqUes", -1, 1),
63     new Among("atrices", -1, 2),
64     new Among("ances", -1, 1),
65     new Among("ences", -1, 5),
66     new Among("logies", -1, 3),
67     new Among("ables", -1, 1),
68     new Among("ismes", -1, 1),
69     new Among("euses", -1, 11),
70     new Among("istes", -1, 1),
71     new Among("ives", -1, 8),
72     new Among("ifs", -1, 8),
73     new Among("usions", -1, 4),
74     new Among("ations", -1, 2),
75     new Among("utions", -1, 4),
76     new Among("ateurs", -1, 2),
77     new Among("ments", -1, 15),
78     new Among("ements", 30, 6),
79     new Among("issements", 31, 12),
80     new Among("it\u00E9s", -1, 7),
81     new Among("ment", -1, 15),
82     new Among("ement", 34, 6),
83     new Among("issement", 35, 12),
84     new Among("amment", 34, 13),
85     new Among("emment", 34, 14),
86     new Among("aux", -1, 10),
87     new Among("eaux", 39, 9),
88     new Among("eux", -1, 1),
89     new Among("it\u00E9", -1, 7)
90   };
91 
92   private static final Among a_5[] = {
93     new Among("ira", -1, 1),
94     new Among("ie", -1, 1),
95     new Among("isse", -1, 1),
96     new Among("issante", -1, 1),
97     new Among("i", -1, 1),
98     new Among("irai", 4, 1),
99     new Among("ir", -1, 1),
100     new Among("iras", -1, 1),
101     new Among("ies", -1, 1),
102     new Among("\u00EEmes", -1, 1),
103     new Among("isses", -1, 1),
104     new Among("issantes", -1, 1),
105     new Among("\u00EEtes", -1, 1),
106     new Among("is", -1, 1),
107     new Among("irais", 13, 1),
108     new Among("issais", 13, 1),
109     new Among("irions", -1, 1),
110     new Among("issions", -1, 1),
111     new Among("irons", -1, 1),
112     new Among("issons", -1, 1),
113     new Among("issants", -1, 1),
114     new Among("it", -1, 1),
115     new Among("irait", 21, 1),
116     new Among("issait", 21, 1),
117     new Among("issant", -1, 1),
118     new Among("iraIent", -1, 1),
119     new Among("issaIent", -1, 1),
120     new Among("irent", -1, 1),
121     new Among("issent", -1, 1),
122     new Among("iront", -1, 1),
123     new Among("\u00EEt", -1, 1),
124     new Among("iriez", -1, 1),
125     new Among("issiez", -1, 1),
126     new Among("irez", -1, 1),
127     new Among("issez", -1, 1)
128   };
129 
130   private static final Among a_6[] = {
131     new Among("a", -1, 3),
132     new Among("era", 0, 2),
133     new Among("asse", -1, 3),
134     new Among("ante", -1, 3),
135     new Among("\u00E9e", -1, 2),
136     new Among("ai", -1, 3),
137     new Among("erai", 5, 2),
138     new Among("er", -1, 2),
139     new Among("as", -1, 3),
140     new Among("eras", 8, 2),
141     new Among("\u00E2mes", -1, 3),
142     new Among("asses", -1, 3),
143     new Among("antes", -1, 3),
144     new Among("\u00E2tes", -1, 3),
145     new Among("\u00E9es", -1, 2),
146     new Among("ais", -1, 3),
147     new Among("erais", 15, 2),
148     new Among("ions", -1, 1),
149     new Among("erions", 17, 2),
150     new Among("assions", 17, 3),
151     new Among("erons", -1, 2),
152     new Among("ants", -1, 3),
153     new Among("\u00E9s", -1, 2),
154     new Among("ait", -1, 3),
155     new Among("erait", 23, 2),
156     new Among("ant", -1, 3),
157     new Among("aIent", -1, 3),
158     new Among("eraIent", 26, 2),
159     new Among("\u00E8rent", -1, 2),
160     new Among("assent", -1, 3),
161     new Among("eront", -1, 2),
162     new Among("\u00E2t", -1, 3),
163     new Among("ez", -1, 2),
164     new Among("iez", 32, 2),
165     new Among("eriez", 33, 2),
166     new Among("assiez", 33, 3),
167     new Among("erez", 32, 2),
168     new Among("\u00E9", -1, 2)
169   };
170 
171   private static final Among a_7[] = {
172     new Among("e", -1, 3),
173     new Among("I\u00E8re", 0, 2),
174     new Among("i\u00E8re", 0, 2),
175     new Among("ion", -1, 1),
176     new Among("Ier", -1, 2),
177     new Among("ier", -1, 2)
178   };
179 
180   private static final Among a_8[] = {
181     new Among("ell", -1, -1),
182     new Among("eill", -1, -1),
183     new Among("enn", -1, -1),
184     new Among("onn", -1, -1),
185     new Among("ett", -1, -1)
186   };
187 
188   private static final char g_v[] = {
189     17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 130, 103, 8, 5
190   };
191 
192   private static final char g_keep_with_s[] = {
193     1, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128
194   };
195 
196   private int I_p2;
197   private int I_p1;
198   private int I_pV;
199 
r_prelude()200   private boolean r_prelude() {
201     while (true) {
202       int v_1 = cursor;
203       lab0:
204       {
205         golab1:
206         while (true) {
207           int v_2 = cursor;
208           lab2:
209           {
210             lab3:
211             {
212               int v_3 = cursor;
213               lab4:
214               {
215                 if (!(in_grouping(g_v, 97, 251))) {
216                   break lab4;
217                 }
218                 bra = cursor;
219                 lab5:
220                 {
221                   int v_4 = cursor;
222                   lab6:
223                   {
224                     if (!(eq_s("u"))) {
225                       break lab6;
226                     }
227                     ket = cursor;
228                     if (!(in_grouping(g_v, 97, 251))) {
229                       break lab6;
230                     }
231                     slice_from("U");
232                     break lab5;
233                   }
234                   cursor = v_4;
235                   lab7:
236                   {
237                     if (!(eq_s("i"))) {
238                       break lab7;
239                     }
240                     ket = cursor;
241                     if (!(in_grouping(g_v, 97, 251))) {
242                       break lab7;
243                     }
244                     slice_from("I");
245                     break lab5;
246                   }
247                   cursor = v_4;
248                   if (!(eq_s("y"))) {
249                     break lab4;
250                   }
251                   ket = cursor;
252                   slice_from("Y");
253                 }
254                 break lab3;
255               }
256               cursor = v_3;
257               lab8:
258               {
259                 bra = cursor;
260                 if (!(eq_s("\u00EB"))) {
261                   break lab8;
262                 }
263                 ket = cursor;
264                 slice_from("He");
265                 break lab3;
266               }
267               cursor = v_3;
268               lab9:
269               {
270                 bra = cursor;
271                 if (!(eq_s("\u00EF"))) {
272                   break lab9;
273                 }
274                 ket = cursor;
275                 slice_from("Hi");
276                 break lab3;
277               }
278               cursor = v_3;
279               lab10:
280               {
281                 bra = cursor;
282                 if (!(eq_s("y"))) {
283                   break lab10;
284                 }
285                 ket = cursor;
286                 if (!(in_grouping(g_v, 97, 251))) {
287                   break lab10;
288                 }
289                 slice_from("Y");
290                 break lab3;
291               }
292               cursor = v_3;
293               if (!(eq_s("q"))) {
294                 break lab2;
295               }
296               bra = cursor;
297               if (!(eq_s("u"))) {
298                 break lab2;
299               }
300               ket = cursor;
301               slice_from("U");
302             }
303             cursor = v_2;
304             break golab1;
305           }
306           cursor = v_2;
307           if (cursor >= limit) {
308             break lab0;
309           }
310           cursor++;
311         }
312         continue;
313       }
314       cursor = v_1;
315       break;
316     }
317     return true;
318   }
319 
r_mark_regions()320   private boolean r_mark_regions() {
321     I_pV = limit;
322     I_p1 = limit;
323     I_p2 = limit;
324     int v_1 = cursor;
325     lab0:
326     {
327       lab1:
328       {
329         int v_2 = cursor;
330         lab2:
331         {
332           if (!(in_grouping(g_v, 97, 251))) {
333             break lab2;
334           }
335           if (!(in_grouping(g_v, 97, 251))) {
336             break lab2;
337           }
338           if (cursor >= limit) {
339             break lab2;
340           }
341           cursor++;
342           break lab1;
343         }
344         cursor = v_2;
345         lab3:
346         {
347           if (find_among(a_0) == 0) {
348             break lab3;
349           }
350           break lab1;
351         }
352         cursor = v_2;
353         if (cursor >= limit) {
354           break lab0;
355         }
356         cursor++;
357         golab4:
358         while (true) {
359           lab5:
360           {
361             if (!(in_grouping(g_v, 97, 251))) {
362               break lab5;
363             }
364             break golab4;
365           }
366           if (cursor >= limit) {
367             break lab0;
368           }
369           cursor++;
370         }
371       }
372       I_pV = cursor;
373     }
374     cursor = v_1;
375     int v_4 = cursor;
376     lab6:
377     {
378       golab7:
379       while (true) {
380         lab8:
381         {
382           if (!(in_grouping(g_v, 97, 251))) {
383             break lab8;
384           }
385           break golab7;
386         }
387         if (cursor >= limit) {
388           break lab6;
389         }
390         cursor++;
391       }
392       golab9:
393       while (true) {
394         lab10:
395         {
396           if (!(out_grouping(g_v, 97, 251))) {
397             break lab10;
398           }
399           break golab9;
400         }
401         if (cursor >= limit) {
402           break lab6;
403         }
404         cursor++;
405       }
406       I_p1 = cursor;
407       golab11:
408       while (true) {
409         lab12:
410         {
411           if (!(in_grouping(g_v, 97, 251))) {
412             break lab12;
413           }
414           break golab11;
415         }
416         if (cursor >= limit) {
417           break lab6;
418         }
419         cursor++;
420       }
421       golab13:
422       while (true) {
423         lab14:
424         {
425           if (!(out_grouping(g_v, 97, 251))) {
426             break lab14;
427           }
428           break golab13;
429         }
430         if (cursor >= limit) {
431           break lab6;
432         }
433         cursor++;
434       }
435       I_p2 = cursor;
436     }
437     cursor = v_4;
438     return true;
439   }
440 
r_postlude()441   private boolean r_postlude() {
442     int among_var;
443     while (true) {
444       int v_1 = cursor;
445       lab0:
446       {
447         bra = cursor;
448         among_var = find_among(a_1);
449         if (among_var == 0) {
450           break lab0;
451         }
452         ket = cursor;
453         switch (among_var) {
454           case 1:
455             slice_from("i");
456             break;
457           case 2:
458             slice_from("u");
459             break;
460           case 3:
461             slice_from("y");
462             break;
463           case 4:
464             slice_from("\u00EB");
465             break;
466           case 5:
467             slice_from("\u00EF");
468             break;
469           case 6:
470             slice_del();
471             break;
472           case 7:
473             if (cursor >= limit) {
474               break lab0;
475             }
476             cursor++;
477             break;
478         }
479         continue;
480       }
481       cursor = v_1;
482       break;
483     }
484     return true;
485   }
486 
r_RV()487   private boolean r_RV() {
488     if (!(I_pV <= cursor)) {
489       return false;
490     }
491     return true;
492   }
493 
r_R1()494   private boolean r_R1() {
495     if (!(I_p1 <= cursor)) {
496       return false;
497     }
498     return true;
499   }
500 
r_R2()501   private boolean r_R2() {
502     if (!(I_p2 <= cursor)) {
503       return false;
504     }
505     return true;
506   }
507 
r_standard_suffix()508   private boolean r_standard_suffix() {
509     int among_var;
510     ket = cursor;
511     among_var = find_among_b(a_4);
512     if (among_var == 0) {
513       return false;
514     }
515     bra = cursor;
516     switch (among_var) {
517       case 1:
518         if (!r_R2()) {
519           return false;
520         }
521         slice_del();
522         break;
523       case 2:
524         if (!r_R2()) {
525           return false;
526         }
527         slice_del();
528         int v_1 = limit - cursor;
529         lab0:
530         {
531           ket = cursor;
532           if (!(eq_s_b("ic"))) {
533             cursor = limit - v_1;
534             break lab0;
535           }
536           bra = cursor;
537           lab1:
538           {
539             int v_2 = limit - cursor;
540             lab2:
541             {
542               if (!r_R2()) {
543                 break lab2;
544               }
545               slice_del();
546               break lab1;
547             }
548             cursor = limit - v_2;
549             slice_from("iqU");
550           }
551         }
552         break;
553       case 3:
554         if (!r_R2()) {
555           return false;
556         }
557         slice_from("log");
558         break;
559       case 4:
560         if (!r_R2()) {
561           return false;
562         }
563         slice_from("u");
564         break;
565       case 5:
566         if (!r_R2()) {
567           return false;
568         }
569         slice_from("ent");
570         break;
571       case 6:
572         if (!r_RV()) {
573           return false;
574         }
575         slice_del();
576         int v_3 = limit - cursor;
577         lab3:
578         {
579           ket = cursor;
580           among_var = find_among_b(a_2);
581           if (among_var == 0) {
582             cursor = limit - v_3;
583             break lab3;
584           }
585           bra = cursor;
586           switch (among_var) {
587             case 1:
588               if (!r_R2()) {
589                 cursor = limit - v_3;
590                 break lab3;
591               }
592               slice_del();
593               ket = cursor;
594               if (!(eq_s_b("at"))) {
595                 cursor = limit - v_3;
596                 break lab3;
597               }
598               bra = cursor;
599               if (!r_R2()) {
600                 cursor = limit - v_3;
601                 break lab3;
602               }
603               slice_del();
604               break;
605             case 2:
606               lab4:
607               {
608                 int v_4 = limit - cursor;
609                 lab5:
610                 {
611                   if (!r_R2()) {
612                     break lab5;
613                   }
614                   slice_del();
615                   break lab4;
616                 }
617                 cursor = limit - v_4;
618                 if (!r_R1()) {
619                   cursor = limit - v_3;
620                   break lab3;
621                 }
622                 slice_from("eux");
623               }
624               break;
625             case 3:
626               if (!r_R2()) {
627                 cursor = limit - v_3;
628                 break lab3;
629               }
630               slice_del();
631               break;
632             case 4:
633               if (!r_RV()) {
634                 cursor = limit - v_3;
635                 break lab3;
636               }
637               slice_from("i");
638               break;
639           }
640         }
641         break;
642       case 7:
643         if (!r_R2()) {
644           return false;
645         }
646         slice_del();
647         int v_5 = limit - cursor;
648         lab6:
649         {
650           ket = cursor;
651           among_var = find_among_b(a_3);
652           if (among_var == 0) {
653             cursor = limit - v_5;
654             break lab6;
655           }
656           bra = cursor;
657           switch (among_var) {
658             case 1:
659               lab7:
660               {
661                 int v_6 = limit - cursor;
662                 lab8:
663                 {
664                   if (!r_R2()) {
665                     break lab8;
666                   }
667                   slice_del();
668                   break lab7;
669                 }
670                 cursor = limit - v_6;
671                 slice_from("abl");
672               }
673               break;
674             case 2:
675               lab9:
676               {
677                 int v_7 = limit - cursor;
678                 lab10:
679                 {
680                   if (!r_R2()) {
681                     break lab10;
682                   }
683                   slice_del();
684                   break lab9;
685                 }
686                 cursor = limit - v_7;
687                 slice_from("iqU");
688               }
689               break;
690             case 3:
691               if (!r_R2()) {
692                 cursor = limit - v_5;
693                 break lab6;
694               }
695               slice_del();
696               break;
697           }
698         }
699         break;
700       case 8:
701         if (!r_R2()) {
702           return false;
703         }
704         slice_del();
705         int v_8 = limit - cursor;
706         lab11:
707         {
708           ket = cursor;
709           if (!(eq_s_b("at"))) {
710             cursor = limit - v_8;
711             break lab11;
712           }
713           bra = cursor;
714           if (!r_R2()) {
715             cursor = limit - v_8;
716             break lab11;
717           }
718           slice_del();
719           ket = cursor;
720           if (!(eq_s_b("ic"))) {
721             cursor = limit - v_8;
722             break lab11;
723           }
724           bra = cursor;
725           lab12:
726           {
727             int v_9 = limit - cursor;
728             lab13:
729             {
730               if (!r_R2()) {
731                 break lab13;
732               }
733               slice_del();
734               break lab12;
735             }
736             cursor = limit - v_9;
737             slice_from("iqU");
738           }
739         }
740         break;
741       case 9:
742         slice_from("eau");
743         break;
744       case 10:
745         if (!r_R1()) {
746           return false;
747         }
748         slice_from("al");
749         break;
750       case 11:
751         lab14:
752         {
753           int v_10 = limit - cursor;
754           lab15:
755           {
756             if (!r_R2()) {
757               break lab15;
758             }
759             slice_del();
760             break lab14;
761           }
762           cursor = limit - v_10;
763           if (!r_R1()) {
764             return false;
765           }
766           slice_from("eux");
767         }
768         break;
769       case 12:
770         if (!r_R1()) {
771           return false;
772         }
773         if (!(out_grouping_b(g_v, 97, 251))) {
774           return false;
775         }
776         slice_del();
777         break;
778       case 13:
779         if (!r_RV()) {
780           return false;
781         }
782         slice_from("ant");
783         return false;
784       case 14:
785         if (!r_RV()) {
786           return false;
787         }
788         slice_from("ent");
789         return false;
790       case 15:
791         int v_11 = limit - cursor;
792         if (!(in_grouping_b(g_v, 97, 251))) {
793           return false;
794         }
795         if (!r_RV()) {
796           return false;
797         }
798         cursor = limit - v_11;
799         slice_del();
800         return false;
801     }
802     return true;
803   }
804 
r_i_verb_suffix()805   private boolean r_i_verb_suffix() {
806     if (cursor < I_pV) {
807       return false;
808     }
809     int v_2 = limit_backward;
810     limit_backward = I_pV;
811     ket = cursor;
812     if (find_among_b(a_5) == 0) {
813       limit_backward = v_2;
814       return false;
815     }
816     bra = cursor;
817     {
818       int v_3 = limit - cursor;
819       lab0:
820       {
821         if (!(eq_s_b("H"))) {
822           break lab0;
823         }
824         limit_backward = v_2;
825         return false;
826       }
827       cursor = limit - v_3;
828     }
829     if (!(out_grouping_b(g_v, 97, 251))) {
830       limit_backward = v_2;
831       return false;
832     }
833     slice_del();
834     limit_backward = v_2;
835     return true;
836   }
837 
r_verb_suffix()838   private boolean r_verb_suffix() {
839     int among_var;
840     if (cursor < I_pV) {
841       return false;
842     }
843     int v_2 = limit_backward;
844     limit_backward = I_pV;
845     ket = cursor;
846     among_var = find_among_b(a_6);
847     if (among_var == 0) {
848       limit_backward = v_2;
849       return false;
850     }
851     bra = cursor;
852     switch (among_var) {
853       case 1:
854         if (!r_R2()) {
855           limit_backward = v_2;
856           return false;
857         }
858         slice_del();
859         break;
860       case 2:
861         slice_del();
862         break;
863       case 3:
864         slice_del();
865         int v_3 = limit - cursor;
866         lab0:
867         {
868           ket = cursor;
869           if (!(eq_s_b("e"))) {
870             cursor = limit - v_3;
871             break lab0;
872           }
873           bra = cursor;
874           slice_del();
875         }
876         break;
877     }
878     limit_backward = v_2;
879     return true;
880   }
881 
r_residual_suffix()882   private boolean r_residual_suffix() {
883     int among_var;
884     int v_1 = limit - cursor;
885     lab0:
886     {
887       ket = cursor;
888       if (!(eq_s_b("s"))) {
889         cursor = limit - v_1;
890         break lab0;
891       }
892       bra = cursor;
893       int v_2 = limit - cursor;
894       lab1:
895       {
896         int v_3 = limit - cursor;
897         lab2:
898         {
899           if (!(eq_s_b("Hi"))) {
900             break lab2;
901           }
902           break lab1;
903         }
904         cursor = limit - v_3;
905         if (!(out_grouping_b(g_keep_with_s, 97, 232))) {
906           cursor = limit - v_1;
907           break lab0;
908         }
909       }
910       cursor = limit - v_2;
911       slice_del();
912     }
913     if (cursor < I_pV) {
914       return false;
915     }
916     int v_5 = limit_backward;
917     limit_backward = I_pV;
918     ket = cursor;
919     among_var = find_among_b(a_7);
920     if (among_var == 0) {
921       limit_backward = v_5;
922       return false;
923     }
924     bra = cursor;
925     switch (among_var) {
926       case 1:
927         if (!r_R2()) {
928           limit_backward = v_5;
929           return false;
930         }
931         lab3:
932         {
933           int v_6 = limit - cursor;
934           lab4:
935           {
936             if (!(eq_s_b("s"))) {
937               break lab4;
938             }
939             break lab3;
940           }
941           cursor = limit - v_6;
942           if (!(eq_s_b("t"))) {
943             limit_backward = v_5;
944             return false;
945           }
946         }
947         slice_del();
948         break;
949       case 2:
950         slice_from("i");
951         break;
952       case 3:
953         slice_del();
954         break;
955     }
956     limit_backward = v_5;
957     return true;
958   }
959 
r_un_double()960   private boolean r_un_double() {
961     int v_1 = limit - cursor;
962     if (find_among_b(a_8) == 0) {
963       return false;
964     }
965     cursor = limit - v_1;
966     ket = cursor;
967     if (cursor <= limit_backward) {
968       return false;
969     }
970     cursor--;
971     bra = cursor;
972     slice_del();
973     return true;
974   }
975 
r_un_accent()976   private boolean r_un_accent() {
977     {
978       int v_1 = 1;
979       while (true) {
980         lab0:
981         {
982           if (!(out_grouping_b(g_v, 97, 251))) {
983             break lab0;
984           }
985           v_1--;
986           continue;
987         }
988         break;
989       }
990       if (v_1 > 0) {
991         return false;
992       }
993     }
994     ket = cursor;
995     lab1:
996     {
997       int v_3 = limit - cursor;
998       lab2:
999       {
1000         if (!(eq_s_b("\u00E9"))) {
1001           break lab2;
1002         }
1003         break lab1;
1004       }
1005       cursor = limit - v_3;
1006       if (!(eq_s_b("\u00E8"))) {
1007         return false;
1008       }
1009     }
1010     bra = cursor;
1011     slice_from("e");
1012     return true;
1013   }
1014 
1015   @Override
stem()1016   public boolean stem() {
1017     int v_1 = cursor;
1018     r_prelude();
1019     cursor = v_1;
1020     r_mark_regions();
1021     limit_backward = cursor;
1022     cursor = limit;
1023     int v_3 = limit - cursor;
1024     lab0:
1025     {
1026       lab1:
1027       {
1028         int v_4 = limit - cursor;
1029         lab2:
1030         {
1031           int v_5 = limit - cursor;
1032           lab3:
1033           {
1034             int v_6 = limit - cursor;
1035             lab4:
1036             {
1037               if (!r_standard_suffix()) {
1038                 break lab4;
1039               }
1040               break lab3;
1041             }
1042             cursor = limit - v_6;
1043             lab5:
1044             {
1045               if (!r_i_verb_suffix()) {
1046                 break lab5;
1047               }
1048               break lab3;
1049             }
1050             cursor = limit - v_6;
1051             if (!r_verb_suffix()) {
1052               break lab2;
1053             }
1054           }
1055           cursor = limit - v_5;
1056           int v_7 = limit - cursor;
1057           lab6:
1058           {
1059             ket = cursor;
1060             lab7:
1061             {
1062               int v_8 = limit - cursor;
1063               lab8:
1064               {
1065                 if (!(eq_s_b("Y"))) {
1066                   break lab8;
1067                 }
1068                 bra = cursor;
1069                 slice_from("i");
1070                 break lab7;
1071               }
1072               cursor = limit - v_8;
1073               if (!(eq_s_b("\u00E7"))) {
1074                 cursor = limit - v_7;
1075                 break lab6;
1076               }
1077               bra = cursor;
1078               slice_from("c");
1079             }
1080           }
1081           break lab1;
1082         }
1083         cursor = limit - v_4;
1084         if (!r_residual_suffix()) {
1085           break lab0;
1086         }
1087       }
1088     }
1089     cursor = limit - v_3;
1090     int v_9 = limit - cursor;
1091     r_un_double();
1092     cursor = limit - v_9;
1093     int v_10 = limit - cursor;
1094     r_un_accent();
1095     cursor = limit - v_10;
1096     cursor = limit_backward;
1097     int v_11 = cursor;
1098     r_postlude();
1099     cursor = v_11;
1100     return true;
1101   }
1102 
1103   @Override
equals(Object o)1104   public boolean equals(Object o) {
1105     return o instanceof FrenchStemmer;
1106   }
1107 
1108   @Override
hashCode()1109   public int hashCode() {
1110     return FrenchStemmer.class.getName().hashCode();
1111   }
1112 }
1113