1 // This file was generated automatically by the Snowball to Java compiler
3 package org
.tartarus
.snowball
.ext
;
4 import org
.tartarus
.snowball
.SnowballProgram
;
5 import org
.tartarus
.snowball
.Among
;
8 * Generated class implementing code defined by a snowball script.
10 public class frenchStemmer
extends SnowballProgram
{
12 private Among a_0
[] = {
13 new Among ( "col", -1, -1, "", this),
14 new Among ( "par", -1, -1, "", this),
15 new Among ( "tap", -1, -1, "", this)
18 private Among a_1
[] = {
19 new Among ( "", -1, 4, "", this),
20 new Among ( "I", 0, 1, "", this),
21 new Among ( "U", 0, 2, "", this),
22 new Among ( "Y", 0, 3, "", this)
25 private Among a_2
[] = {
26 new Among ( "iqU", -1, 3, "", this),
27 new Among ( "abl", -1, 3, "", this),
28 new Among ( "I\u00E8r", -1, 4, "", this),
29 new Among ( "i\u00E8r", -1, 4, "", this),
30 new Among ( "eus", -1, 2, "", this),
31 new Among ( "iv", -1, 1, "", this)
34 private Among a_3
[] = {
35 new Among ( "ic", -1, 2, "", this),
36 new Among ( "abil", -1, 1, "", this),
37 new Among ( "iv", -1, 3, "", this)
40 private Among a_4
[] = {
41 new Among ( "iqUe", -1, 1, "", this),
42 new Among ( "atrice", -1, 2, "", this),
43 new Among ( "ance", -1, 1, "", this),
44 new Among ( "ence", -1, 5, "", this),
45 new Among ( "logie", -1, 3, "", this),
46 new Among ( "able", -1, 1, "", this),
47 new Among ( "isme", -1, 1, "", this),
48 new Among ( "euse", -1, 11, "", this),
49 new Among ( "iste", -1, 1, "", this),
50 new Among ( "ive", -1, 8, "", this),
51 new Among ( "if", -1, 8, "", this),
52 new Among ( "usion", -1, 4, "", this),
53 new Among ( "ation", -1, 2, "", this),
54 new Among ( "ution", -1, 4, "", this),
55 new Among ( "ateur", -1, 2, "", this),
56 new Among ( "iqUes", -1, 1, "", this),
57 new Among ( "atrices", -1, 2, "", this),
58 new Among ( "ances", -1, 1, "", this),
59 new Among ( "ences", -1, 5, "", this),
60 new Among ( "logies", -1, 3, "", this),
61 new Among ( "ables", -1, 1, "", this),
62 new Among ( "ismes", -1, 1, "", this),
63 new Among ( "euses", -1, 11, "", this),
64 new Among ( "istes", -1, 1, "", this),
65 new Among ( "ives", -1, 8, "", this),
66 new Among ( "ifs", -1, 8, "", this),
67 new Among ( "usions", -1, 4, "", this),
68 new Among ( "ations", -1, 2, "", this),
69 new Among ( "utions", -1, 4, "", this),
70 new Among ( "ateurs", -1, 2, "", this),
71 new Among ( "ments", -1, 15, "", this),
72 new Among ( "ements", 30, 6, "", this),
73 new Among ( "issements", 31, 12, "", this),
74 new Among ( "it\u00E9s", -1, 7, "", this),
75 new Among ( "ment", -1, 15, "", this),
76 new Among ( "ement", 34, 6, "", this),
77 new Among ( "issement", 35, 12, "", this),
78 new Among ( "amment", 34, 13, "", this),
79 new Among ( "emment", 34, 14, "", this),
80 new Among ( "aux", -1, 10, "", this),
81 new Among ( "eaux", 39, 9, "", this),
82 new Among ( "eux", -1, 1, "", this),
83 new Among ( "it\u00E9", -1, 7, "", this)
86 private Among a_5
[] = {
87 new Among ( "ira", -1, 1, "", this),
88 new Among ( "ie", -1, 1, "", this),
89 new Among ( "isse", -1, 1, "", this),
90 new Among ( "issante", -1, 1, "", this),
91 new Among ( "i", -1, 1, "", this),
92 new Among ( "irai", 4, 1, "", this),
93 new Among ( "ir", -1, 1, "", this),
94 new Among ( "iras", -1, 1, "", this),
95 new Among ( "ies", -1, 1, "", this),
96 new Among ( "\u00EEmes", -1, 1, "", this),
97 new Among ( "isses", -1, 1, "", this),
98 new Among ( "issantes", -1, 1, "", this),
99 new Among ( "\u00EEtes", -1, 1, "", this),
100 new Among ( "is", -1, 1, "", this),
101 new Among ( "irais", 13, 1, "", this),
102 new Among ( "issais", 13, 1, "", this),
103 new Among ( "irions", -1, 1, "", this),
104 new Among ( "issions", -1, 1, "", this),
105 new Among ( "irons", -1, 1, "", this),
106 new Among ( "issons", -1, 1, "", this),
107 new Among ( "issants", -1, 1, "", this),
108 new Among ( "it", -1, 1, "", this),
109 new Among ( "irait", 21, 1, "", this),
110 new Among ( "issait", 21, 1, "", this),
111 new Among ( "issant", -1, 1, "", this),
112 new Among ( "iraIent", -1, 1, "", this),
113 new Among ( "issaIent", -1, 1, "", this),
114 new Among ( "irent", -1, 1, "", this),
115 new Among ( "issent", -1, 1, "", this),
116 new Among ( "iront", -1, 1, "", this),
117 new Among ( "\u00EEt", -1, 1, "", this),
118 new Among ( "iriez", -1, 1, "", this),
119 new Among ( "issiez", -1, 1, "", this),
120 new Among ( "irez", -1, 1, "", this),
121 new Among ( "issez", -1, 1, "", this)
124 private Among a_6
[] = {
125 new Among ( "a", -1, 3, "", this),
126 new Among ( "era", 0, 2, "", this),
127 new Among ( "asse", -1, 3, "", this),
128 new Among ( "ante", -1, 3, "", this),
129 new Among ( "\u00E9e", -1, 2, "", this),
130 new Among ( "ai", -1, 3, "", this),
131 new Among ( "erai", 5, 2, "", this),
132 new Among ( "er", -1, 2, "", this),
133 new Among ( "as", -1, 3, "", this),
134 new Among ( "eras", 8, 2, "", this),
135 new Among ( "\u00E2mes", -1, 3, "", this),
136 new Among ( "asses", -1, 3, "", this),
137 new Among ( "antes", -1, 3, "", this),
138 new Among ( "\u00E2tes", -1, 3, "", this),
139 new Among ( "\u00E9es", -1, 2, "", this),
140 new Among ( "ais", -1, 3, "", this),
141 new Among ( "erais", 15, 2, "", this),
142 new Among ( "ions", -1, 1, "", this),
143 new Among ( "erions", 17, 2, "", this),
144 new Among ( "assions", 17, 3, "", this),
145 new Among ( "erons", -1, 2, "", this),
146 new Among ( "ants", -1, 3, "", this),
147 new Among ( "\u00E9s", -1, 2, "", this),
148 new Among ( "ait", -1, 3, "", this),
149 new Among ( "erait", 23, 2, "", this),
150 new Among ( "ant", -1, 3, "", this),
151 new Among ( "aIent", -1, 3, "", this),
152 new Among ( "eraIent", 26, 2, "", this),
153 new Among ( "\u00E8rent", -1, 2, "", this),
154 new Among ( "assent", -1, 3, "", this),
155 new Among ( "eront", -1, 2, "", this),
156 new Among ( "\u00E2t", -1, 3, "", this),
157 new Among ( "ez", -1, 2, "", this),
158 new Among ( "iez", 32, 2, "", this),
159 new Among ( "eriez", 33, 2, "", this),
160 new Among ( "assiez", 33, 3, "", this),
161 new Among ( "erez", 32, 2, "", this),
162 new Among ( "\u00E9", -1, 2, "", this)
165 private Among a_7
[] = {
166 new Among ( "e", -1, 3, "", this),
167 new Among ( "I\u00E8re", 0, 2, "", this),
168 new Among ( "i\u00E8re", 0, 2, "", this),
169 new Among ( "ion", -1, 1, "", this),
170 new Among ( "Ier", -1, 2, "", this),
171 new Among ( "ier", -1, 2, "", this),
172 new Among ( "\u00EB", -1, 4, "", this)
175 private Among a_8
[] = {
176 new Among ( "ell", -1, -1, "", this),
177 new Among ( "eill", -1, -1, "", this),
178 new Among ( "enn", -1, -1, "", this),
179 new Among ( "onn", -1, -1, "", this),
180 new Among ( "ett", -1, -1, "", this)
183 private static final char g_v
[] = {17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 130, 103, 8, 5 };
185 private static final char g_keep_with_s
[] = {1, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
191 private void copy_from(frenchStemmer other
) {
195 super.copy_from(other
);
198 private boolean r_prelude() {
219 if (!(in_grouping(g_v
, 97, 251)))
237 if (!(in_grouping(g_v
, 97, 251)))
255 if (!(in_grouping(g_v
, 97, 251)))
289 if (!(in_grouping(g_v
, 97, 251)))
334 private boolean r_mark_regions() {
351 if (!(in_grouping(g_v
, 97, 251)))
355 if (!(in_grouping(g_v
, 97, 251)))
370 if (find_among(a_0
, 3) == 0)
388 if (!(in_grouping(g_v
, 97, 251)))
401 // setmark pV, line 67
413 if (!(in_grouping(g_v
, 97, 251)))
429 if (!(out_grouping(g_v
, 97, 251)))
441 // setmark p1, line 70
447 if (!(in_grouping(g_v
, 97, 251)))
463 if (!(out_grouping(g_v
, 97, 251)))
475 // setmark p2, line 71
482 private boolean r_postlude() {
493 // substring, line 77
494 among_var
= find_among(a_1
, 4);
537 private boolean r_RV() {
538 if (!(I_pV
<= cursor
))
545 private boolean r_R1() {
546 if (!(I_p1
<= cursor
))
553 private boolean r_R2() {
554 if (!(I_p2
<= cursor
))
561 private boolean r_standard_suffix() {
577 // substring, line 92
578 among_var
= find_among_b(a_4
, 43);
608 v_1
= limit
- cursor
;
614 if (!(eq_s_b(2, "ic")))
616 cursor
= limit
- v_1
;
623 v_2
= limit
- cursor
;
635 cursor
= limit
- v_2
;
681 v_3
= limit
- cursor
;
686 // substring, line 116
687 among_var
= find_among_b(a_2
, 6);
690 cursor
= limit
- v_3
;
697 cursor
= limit
- v_3
;
704 cursor
= limit
- v_3
;
712 if (!(eq_s_b(2, "at")))
714 cursor
= limit
- v_3
;
722 cursor
= limit
- v_3
;
732 v_4
= limit
- cursor
;
744 cursor
= limit
- v_4
;
749 cursor
= limit
- v_3
;
761 cursor
= limit
- v_3
;
772 cursor
= limit
- v_3
;
791 v_5
= limit
- cursor
;
796 // substring, line 131
797 among_var
= find_among_b(a_3
, 3);
800 cursor
= limit
- v_5
;
807 cursor
= limit
- v_5
;
813 v_6
= limit
- cursor
;
825 cursor
= limit
- v_6
;
834 v_7
= limit
- cursor
;
846 cursor
= limit
- v_7
;
856 cursor
= limit
- v_5
;
875 v_8
= limit
- cursor
;
881 if (!(eq_s_b(2, "at")))
883 cursor
= limit
- v_8
;
891 cursor
= limit
- v_8
;
899 if (!(eq_s_b(2, "ic")))
901 cursor
= limit
- v_8
;
908 v_9
= limit
- cursor
;
920 cursor
= limit
- v_9
;
945 v_10
= limit
- cursor
;
957 cursor
= limit
- v_10
;
975 if (!(out_grouping_b(g_v
, 97, 251)))
1009 v_11
= limit
- cursor
;
1011 if (!(in_grouping_b(g_v
, 97, 251)))
1015 // call RV, line 158
1020 cursor
= limit
- v_11
;
1030 private boolean r_i_verb_suffix() {
1034 // setlimit, line 163
1035 v_1
= limit
- cursor
;
1042 v_2
= limit_backward
;
1043 limit_backward
= cursor
;
1044 cursor
= limit
- v_1
;
1048 // substring, line 164
1049 among_var
= find_among_b(a_5
, 35);
1052 limit_backward
= v_2
;
1059 limit_backward
= v_2
;
1063 if (!(out_grouping_b(g_v
, 97, 251)))
1065 limit_backward
= v_2
;
1072 limit_backward
= v_2
;
1076 private boolean r_verb_suffix() {
1081 // setlimit, line 174
1082 v_1
= limit
- cursor
;
1089 v_2
= limit_backward
;
1090 limit_backward
= cursor
;
1091 cursor
= limit
- v_1
;
1095 // substring, line 175
1096 among_var
= find_among_b(a_6
, 38);
1099 limit_backward
= v_2
;
1106 limit_backward
= v_2
;
1110 // call R2, line 177
1113 limit_backward
= v_2
;
1129 v_3
= limit
- cursor
;
1134 // literal, line 191
1135 if (!(eq_s_b(1, "e")))
1137 cursor
= limit
- v_3
;
1147 limit_backward
= v_2
;
1151 private boolean r_residual_suffix() {
1160 v_1
= limit
- cursor
;
1165 // literal, line 199
1166 if (!(eq_s_b(1, "s")))
1168 cursor
= limit
- v_1
;
1174 v_2
= limit
- cursor
;
1175 if (!(out_grouping_b(g_keep_with_s
, 97, 232)))
1177 cursor
= limit
- v_1
;
1180 cursor
= limit
- v_2
;
1184 // setlimit, line 200
1185 v_3
= limit
- cursor
;
1192 v_4
= limit_backward
;
1193 limit_backward
= cursor
;
1194 cursor
= limit
- v_3
;
1198 // substring, line 201
1199 among_var
= find_among_b(a_7
, 7);
1202 limit_backward
= v_4
;
1209 limit_backward
= v_4
;
1213 // call R2, line 202
1216 limit_backward
= v_4
;
1221 v_5
= limit
- cursor
;
1223 // literal, line 202
1224 if (!(eq_s_b(1, "s")))
1230 cursor
= limit
- v_5
;
1231 // literal, line 202
1232 if (!(eq_s_b(1, "t")))
1234 limit_backward
= v_4
;
1253 // literal, line 206
1254 if (!(eq_s_b(2, "gu")))
1256 limit_backward
= v_4
;
1263 limit_backward
= v_4
;
1267 private boolean r_un_double() {
1271 v_1
= limit
- cursor
;
1273 if (find_among_b(a_8
, 5) == 0)
1277 cursor
= limit
- v_1
;
1281 if (cursor
<= limit_backward
)
1293 private boolean r_un_accent() {
1296 // atleast, line 216
1299 // atleast, line 216
1300 replab0
: while(true)
1303 if (!(out_grouping_b(g_v
, 97, 251)))
1321 v_3
= limit
- cursor
;
1323 // literal, line 217
1324 if (!(eq_s_b(1, "\u00E9")))
1330 cursor
= limit
- v_3
;
1331 // literal, line 217
1332 if (!(eq_s_b(1, "\u00E8")))
1344 public boolean stem() {
1360 // call prelude, line 223
1370 // call mark_regions, line 224
1371 if (!r_mark_regions())
1377 // backwards, line 225
1378 limit_backward
= cursor
; cursor
= limit
;
1381 v_3
= limit
- cursor
;
1386 v_4
= limit
- cursor
;
1390 v_5
= limit
- cursor
;
1394 v_6
= limit
- cursor
;
1396 // call standard_suffix, line 229
1397 if (!r_standard_suffix())
1403 cursor
= limit
- v_6
;
1405 // call i_verb_suffix, line 230
1406 if (!r_i_verb_suffix())
1412 cursor
= limit
- v_6
;
1413 // call verb_suffix, line 231
1414 if (!r_verb_suffix())
1419 cursor
= limit
- v_5
;
1421 v_7
= limit
- cursor
;
1428 v_8
= limit
- cursor
;
1431 // literal, line 234
1432 if (!(eq_s_b(1, "Y")))
1442 cursor
= limit
- v_8
;
1444 // literal, line 235
1445 if (!(eq_s_b(1, "\u00E7")))
1447 cursor
= limit
- v_7
;
1458 cursor
= limit
- v_4
;
1459 // call residual_suffix, line 238
1460 if (!r_residual_suffix())
1466 cursor
= limit
- v_3
;
1468 v_9
= limit
- cursor
;
1470 // call un_double, line 243
1476 cursor
= limit
- v_9
;
1478 v_10
= limit
- cursor
;
1480 // call un_accent, line 244
1486 cursor
= limit
- v_10
;
1487 cursor
= limit_backward
; // do, line 246
1490 // call postlude, line 246