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 italianStemmer
extends SnowballProgram
{
12 private Among a_0
[] = {
13 new Among ( "", -1, 7, "", this),
14 new Among ( "qu", 0, 6, "", this),
15 new Among ( "\u00E1", 0, 1, "", this),
16 new Among ( "\u00E9", 0, 2, "", this),
17 new Among ( "\u00ED", 0, 3, "", this),
18 new Among ( "\u00F3", 0, 4, "", this),
19 new Among ( "\u00FA", 0, 5, "", this)
22 private Among a_1
[] = {
23 new Among ( "", -1, 3, "", this),
24 new Among ( "I", 0, 1, "", this),
25 new Among ( "U", 0, 2, "", this)
28 private Among a_2
[] = {
29 new Among ( "la", -1, -1, "", this),
30 new Among ( "cela", 0, -1, "", this),
31 new Among ( "gliela", 0, -1, "", this),
32 new Among ( "mela", 0, -1, "", this),
33 new Among ( "tela", 0, -1, "", this),
34 new Among ( "vela", 0, -1, "", this),
35 new Among ( "le", -1, -1, "", this),
36 new Among ( "cele", 6, -1, "", this),
37 new Among ( "gliele", 6, -1, "", this),
38 new Among ( "mele", 6, -1, "", this),
39 new Among ( "tele", 6, -1, "", this),
40 new Among ( "vele", 6, -1, "", this),
41 new Among ( "ne", -1, -1, "", this),
42 new Among ( "cene", 12, -1, "", this),
43 new Among ( "gliene", 12, -1, "", this),
44 new Among ( "mene", 12, -1, "", this),
45 new Among ( "sene", 12, -1, "", this),
46 new Among ( "tene", 12, -1, "", this),
47 new Among ( "vene", 12, -1, "", this),
48 new Among ( "ci", -1, -1, "", this),
49 new Among ( "li", -1, -1, "", this),
50 new Among ( "celi", 20, -1, "", this),
51 new Among ( "glieli", 20, -1, "", this),
52 new Among ( "meli", 20, -1, "", this),
53 new Among ( "teli", 20, -1, "", this),
54 new Among ( "veli", 20, -1, "", this),
55 new Among ( "gli", 20, -1, "", this),
56 new Among ( "mi", -1, -1, "", this),
57 new Among ( "si", -1, -1, "", this),
58 new Among ( "ti", -1, -1, "", this),
59 new Among ( "vi", -1, -1, "", this),
60 new Among ( "lo", -1, -1, "", this),
61 new Among ( "celo", 31, -1, "", this),
62 new Among ( "glielo", 31, -1, "", this),
63 new Among ( "melo", 31, -1, "", this),
64 new Among ( "telo", 31, -1, "", this),
65 new Among ( "velo", 31, -1, "", this)
68 private Among a_3
[] = {
69 new Among ( "ando", -1, 1, "", this),
70 new Among ( "endo", -1, 1, "", this),
71 new Among ( "ar", -1, 2, "", this),
72 new Among ( "er", -1, 2, "", this),
73 new Among ( "ir", -1, 2, "", this)
76 private Among a_4
[] = {
77 new Among ( "ic", -1, -1, "", this),
78 new Among ( "abil", -1, -1, "", this),
79 new Among ( "os", -1, -1, "", this),
80 new Among ( "iv", -1, 1, "", this)
83 private Among a_5
[] = {
84 new Among ( "ic", -1, 1, "", this),
85 new Among ( "abil", -1, 1, "", this),
86 new Among ( "iv", -1, 1, "", this)
89 private Among a_6
[] = {
90 new Among ( "ica", -1, 1, "", this),
91 new Among ( "logia", -1, 3, "", this),
92 new Among ( "osa", -1, 1, "", this),
93 new Among ( "ista", -1, 1, "", this),
94 new Among ( "iva", -1, 9, "", this),
95 new Among ( "anza", -1, 1, "", this),
96 new Among ( "enza", -1, 5, "", this),
97 new Among ( "ice", -1, 1, "", this),
98 new Among ( "atrice", 7, 1, "", this),
99 new Among ( "iche", -1, 1, "", this),
100 new Among ( "logie", -1, 3, "", this),
101 new Among ( "abile", -1, 1, "", this),
102 new Among ( "ibile", -1, 1, "", this),
103 new Among ( "usione", -1, 4, "", this),
104 new Among ( "azione", -1, 2, "", this),
105 new Among ( "uzione", -1, 4, "", this),
106 new Among ( "atore", -1, 2, "", this),
107 new Among ( "ose", -1, 1, "", this),
108 new Among ( "ante", -1, 1, "", this),
109 new Among ( "mente", -1, 1, "", this),
110 new Among ( "amente", 19, 7, "", this),
111 new Among ( "iste", -1, 1, "", this),
112 new Among ( "ive", -1, 9, "", this),
113 new Among ( "anze", -1, 1, "", this),
114 new Among ( "enze", -1, 5, "", this),
115 new Among ( "ici", -1, 1, "", this),
116 new Among ( "atrici", 25, 1, "", this),
117 new Among ( "ichi", -1, 1, "", this),
118 new Among ( "abili", -1, 1, "", this),
119 new Among ( "ibili", -1, 1, "", this),
120 new Among ( "ismi", -1, 1, "", this),
121 new Among ( "usioni", -1, 4, "", this),
122 new Among ( "azioni", -1, 2, "", this),
123 new Among ( "uzioni", -1, 4, "", this),
124 new Among ( "atori", -1, 2, "", this),
125 new Among ( "osi", -1, 1, "", this),
126 new Among ( "anti", -1, 1, "", this),
127 new Among ( "amenti", -1, 6, "", this),
128 new Among ( "imenti", -1, 6, "", this),
129 new Among ( "isti", -1, 1, "", this),
130 new Among ( "ivi", -1, 9, "", this),
131 new Among ( "ico", -1, 1, "", this),
132 new Among ( "ismo", -1, 1, "", this),
133 new Among ( "oso", -1, 1, "", this),
134 new Among ( "amento", -1, 6, "", this),
135 new Among ( "imento", -1, 6, "", this),
136 new Among ( "ivo", -1, 9, "", this),
137 new Among ( "it\u00E0", -1, 8, "", this),
138 new Among ( "ist\u00E0", -1, 1, "", this),
139 new Among ( "ist\u00E8", -1, 1, "", this),
140 new Among ( "ist\u00EC", -1, 1, "", this)
143 private Among a_7
[] = {
144 new Among ( "isca", -1, 1, "", this),
145 new Among ( "enda", -1, 1, "", this),
146 new Among ( "ata", -1, 1, "", this),
147 new Among ( "ita", -1, 1, "", this),
148 new Among ( "uta", -1, 1, "", this),
149 new Among ( "ava", -1, 1, "", this),
150 new Among ( "eva", -1, 1, "", this),
151 new Among ( "iva", -1, 1, "", this),
152 new Among ( "erebbe", -1, 1, "", this),
153 new Among ( "irebbe", -1, 1, "", this),
154 new Among ( "isce", -1, 1, "", this),
155 new Among ( "ende", -1, 1, "", this),
156 new Among ( "are", -1, 1, "", this),
157 new Among ( "ere", -1, 1, "", this),
158 new Among ( "ire", -1, 1, "", this),
159 new Among ( "asse", -1, 1, "", this),
160 new Among ( "ate", -1, 1, "", this),
161 new Among ( "avate", 16, 1, "", this),
162 new Among ( "evate", 16, 1, "", this),
163 new Among ( "ivate", 16, 1, "", this),
164 new Among ( "ete", -1, 1, "", this),
165 new Among ( "erete", 20, 1, "", this),
166 new Among ( "irete", 20, 1, "", this),
167 new Among ( "ite", -1, 1, "", this),
168 new Among ( "ereste", -1, 1, "", this),
169 new Among ( "ireste", -1, 1, "", this),
170 new Among ( "ute", -1, 1, "", this),
171 new Among ( "erai", -1, 1, "", this),
172 new Among ( "irai", -1, 1, "", this),
173 new Among ( "isci", -1, 1, "", this),
174 new Among ( "endi", -1, 1, "", this),
175 new Among ( "erei", -1, 1, "", this),
176 new Among ( "irei", -1, 1, "", this),
177 new Among ( "assi", -1, 1, "", this),
178 new Among ( "ati", -1, 1, "", this),
179 new Among ( "iti", -1, 1, "", this),
180 new Among ( "eresti", -1, 1, "", this),
181 new Among ( "iresti", -1, 1, "", this),
182 new Among ( "uti", -1, 1, "", this),
183 new Among ( "avi", -1, 1, "", this),
184 new Among ( "evi", -1, 1, "", this),
185 new Among ( "ivi", -1, 1, "", this),
186 new Among ( "isco", -1, 1, "", this),
187 new Among ( "ando", -1, 1, "", this),
188 new Among ( "endo", -1, 1, "", this),
189 new Among ( "Yamo", -1, 1, "", this),
190 new Among ( "iamo", -1, 1, "", this),
191 new Among ( "avamo", -1, 1, "", this),
192 new Among ( "evamo", -1, 1, "", this),
193 new Among ( "ivamo", -1, 1, "", this),
194 new Among ( "eremo", -1, 1, "", this),
195 new Among ( "iremo", -1, 1, "", this),
196 new Among ( "assimo", -1, 1, "", this),
197 new Among ( "ammo", -1, 1, "", this),
198 new Among ( "emmo", -1, 1, "", this),
199 new Among ( "eremmo", 54, 1, "", this),
200 new Among ( "iremmo", 54, 1, "", this),
201 new Among ( "immo", -1, 1, "", this),
202 new Among ( "ano", -1, 1, "", this),
203 new Among ( "iscano", 58, 1, "", this),
204 new Among ( "avano", 58, 1, "", this),
205 new Among ( "evano", 58, 1, "", this),
206 new Among ( "ivano", 58, 1, "", this),
207 new Among ( "eranno", -1, 1, "", this),
208 new Among ( "iranno", -1, 1, "", this),
209 new Among ( "ono", -1, 1, "", this),
210 new Among ( "iscono", 65, 1, "", this),
211 new Among ( "arono", 65, 1, "", this),
212 new Among ( "erono", 65, 1, "", this),
213 new Among ( "irono", 65, 1, "", this),
214 new Among ( "erebbero", -1, 1, "", this),
215 new Among ( "irebbero", -1, 1, "", this),
216 new Among ( "assero", -1, 1, "", this),
217 new Among ( "essero", -1, 1, "", this),
218 new Among ( "issero", -1, 1, "", this),
219 new Among ( "ato", -1, 1, "", this),
220 new Among ( "ito", -1, 1, "", this),
221 new Among ( "uto", -1, 1, "", this),
222 new Among ( "avo", -1, 1, "", this),
223 new Among ( "evo", -1, 1, "", this),
224 new Among ( "ivo", -1, 1, "", this),
225 new Among ( "ar", -1, 1, "", this),
226 new Among ( "ir", -1, 1, "", this),
227 new Among ( "er\u00E0", -1, 1, "", this),
228 new Among ( "ir\u00E0", -1, 1, "", this),
229 new Among ( "er\u00F2", -1, 1, "", this),
230 new Among ( "ir\u00F2", -1, 1, "", this)
233 private static final char g_v
[] = {17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2, 1 };
235 private static final char g_AEIO
[] = {17, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2 };
237 private static final char g_CG
[] = {17 };
243 private void copy_from(italianStemmer other
) {
247 super.copy_from(other
);
250 private boolean r_prelude() {
268 // substring, line 36
269 among_var
= find_among(a_0
, 7);
282 slice_from("\u00E0");
287 slice_from("\u00E8");
292 slice_from("\u00EC");
297 slice_from("\u00F2");
302 slice_from("\u00F9");
336 if (!(in_grouping(g_v
, 97, 249)))
354 if (!(in_grouping(g_v
, 97, 249)))
371 if (!(in_grouping(g_v
, 97, 249)))
396 private boolean r_mark_regions() {
415 if (!(in_grouping(g_v
, 97, 249)))
424 if (!(out_grouping(g_v
, 97, 249)))
432 if (!(in_grouping(g_v
, 97, 249)))
448 if (!(in_grouping(g_v
, 97, 249)))
456 if (!(out_grouping(g_v
, 97, 249)))
473 if (!(out_grouping(g_v
, 97, 249)))
482 if (!(out_grouping(g_v
, 97, 249)))
490 if (!(in_grouping(g_v
, 97, 249)))
506 if (!(in_grouping(g_v
, 97, 249)))
518 // setmark pV, line 62
530 if (!(in_grouping(g_v
, 97, 249)))
546 if (!(out_grouping(g_v
, 97, 249)))
558 // setmark p1, line 65
564 if (!(in_grouping(g_v
, 97, 249)))
580 if (!(out_grouping(g_v
, 97, 249)))
592 // setmark p2, line 66
599 private boolean r_postlude() {
610 // substring, line 72
611 among_var
= find_among(a_1
, 3);
649 private boolean r_RV() {
650 if (!(I_pV
<= cursor
))
657 private boolean r_R1() {
658 if (!(I_p1
<= cursor
))
665 private boolean r_R2() {
666 if (!(I_p2
<= cursor
))
673 private boolean r_attached_pronoun() {
678 // substring, line 87
679 if (find_among_b(a_2
, 37) == 0)
686 among_var
= find_among_b(a_3
, 5);
714 private boolean r_standard_suffix() {
723 // substring, line 104
724 among_var
= find_among_b(a_6
, 51);
754 v_1
= limit
- cursor
;
760 if (!(eq_s_b(2, "ic")))
762 cursor
= limit
- v_1
;
770 cursor
= limit
- v_1
;
827 v_2
= limit
- cursor
;
832 // substring, line 127
833 among_var
= find_among_b(a_4
, 4);
836 cursor
= limit
- v_2
;
844 cursor
= limit
- v_2
;
851 cursor
= limit
- v_2
;
858 if (!(eq_s_b(2, "at")))
860 cursor
= limit
- v_2
;
868 cursor
= limit
- v_2
;
887 v_3
= limit
- cursor
;
892 // substring, line 136
893 among_var
= find_among_b(a_5
, 3);
896 cursor
= limit
- v_3
;
903 cursor
= limit
- v_3
;
910 cursor
= limit
- v_3
;
929 v_4
= limit
- cursor
;
935 if (!(eq_s_b(2, "at")))
937 cursor
= limit
- v_4
;
945 cursor
= limit
- v_4
;
953 if (!(eq_s_b(2, "ic")))
955 cursor
= limit
- v_4
;
963 cursor
= limit
- v_4
;
974 private boolean r_verb_suffix() {
978 // setlimit, line 148
979 v_1
= limit
- cursor
;
986 v_2
= limit_backward
;
987 limit_backward
= cursor
;
988 cursor
= limit
- v_1
;
992 // substring, line 149
993 among_var
= find_among_b(a_7
, 87);
996 limit_backward
= v_2
;
1003 limit_backward
= v_2
;
1011 limit_backward
= v_2
;
1015 private boolean r_vowel_suffix() {
1020 v_1
= limit
- cursor
;
1025 if (!(in_grouping_b(g_AEIO
, 97, 242)))
1027 cursor
= limit
- v_1
;
1032 // call RV, line 172
1035 cursor
= limit
- v_1
;
1042 // literal, line 173
1043 if (!(eq_s_b(1, "i")))
1045 cursor
= limit
- v_1
;
1050 // call RV, line 173
1053 cursor
= limit
- v_1
;
1060 v_2
= limit
- cursor
;
1065 // literal, line 176
1066 if (!(eq_s_b(1, "h")))
1068 cursor
= limit
- v_2
;
1073 if (!(in_grouping_b(g_CG
, 99, 103)))
1075 cursor
= limit
- v_2
;
1078 // call RV, line 176
1081 cursor
= limit
- v_2
;
1090 public boolean stem() {
1102 // call prelude, line 182
1112 // call mark_regions, line 183
1113 if (!r_mark_regions())
1119 // backwards, line 184
1120 limit_backward
= cursor
; cursor
= limit
;
1123 v_3
= limit
- cursor
;
1125 // call attached_pronoun, line 185
1126 if (!r_attached_pronoun())
1131 cursor
= limit
- v_3
;
1133 v_4
= limit
- cursor
;
1138 v_5
= limit
- cursor
;
1140 // call standard_suffix, line 186
1141 if (!r_standard_suffix())
1147 cursor
= limit
- v_5
;
1148 // call verb_suffix, line 186
1149 if (!r_verb_suffix())
1155 cursor
= limit
- v_4
;
1157 v_6
= limit
- cursor
;
1159 // call vowel_suffix, line 187
1160 if (!r_vowel_suffix())
1165 cursor
= limit
- v_6
;
1166 cursor
= limit_backward
; // do, line 189
1169 // call postlude, line 189