00001
00002
00003 #include <limits.h>
00004 #include "italian.h"
00005
00006 static const symbol s_0_1[2] = { 'q', 'u' };
00007 static const symbol s_0_2[2] = { 0xC3, 0xA1 };
00008 static const symbol s_0_3[2] = { 0xC3, 0xA9 };
00009 static const symbol s_0_4[2] = { 0xC3, 0xAD };
00010 static const symbol s_0_5[2] = { 0xC3, 0xB3 };
00011 static const symbol s_0_6[2] = { 0xC3, 0xBA };
00012
00013 static const struct among a_0[7] =
00014 {
00015 { 0, 0, -1, 7},
00016 { 2, s_0_1, 0, 6},
00017 { 2, s_0_2, 0, 1},
00018 { 2, s_0_3, 0, 2},
00019 { 2, s_0_4, 0, 3},
00020 { 2, s_0_5, 0, 4},
00021 { 2, s_0_6, 0, 5}
00022 };
00023
00024 static const symbol s_1_1[1] = { 'I' };
00025 static const symbol s_1_2[1] = { 'U' };
00026
00027 static const struct among a_1[3] =
00028 {
00029 { 0, 0, -1, 3},
00030 { 1, s_1_1, 0, 1},
00031 { 1, s_1_2, 0, 2}
00032 };
00033
00034 static const symbol s_2_0[2] = { 'l', 'a' };
00035 static const symbol s_2_1[4] = { 'c', 'e', 'l', 'a' };
00036 static const symbol s_2_2[6] = { 'g', 'l', 'i', 'e', 'l', 'a' };
00037 static const symbol s_2_3[4] = { 'm', 'e', 'l', 'a' };
00038 static const symbol s_2_4[4] = { 't', 'e', 'l', 'a' };
00039 static const symbol s_2_5[4] = { 'v', 'e', 'l', 'a' };
00040 static const symbol s_2_6[2] = { 'l', 'e' };
00041 static const symbol s_2_7[4] = { 'c', 'e', 'l', 'e' };
00042 static const symbol s_2_8[6] = { 'g', 'l', 'i', 'e', 'l', 'e' };
00043 static const symbol s_2_9[4] = { 'm', 'e', 'l', 'e' };
00044 static const symbol s_2_10[4] = { 't', 'e', 'l', 'e' };
00045 static const symbol s_2_11[4] = { 'v', 'e', 'l', 'e' };
00046 static const symbol s_2_12[2] = { 'n', 'e' };
00047 static const symbol s_2_13[4] = { 'c', 'e', 'n', 'e' };
00048 static const symbol s_2_14[6] = { 'g', 'l', 'i', 'e', 'n', 'e' };
00049 static const symbol s_2_15[4] = { 'm', 'e', 'n', 'e' };
00050 static const symbol s_2_16[4] = { 's', 'e', 'n', 'e' };
00051 static const symbol s_2_17[4] = { 't', 'e', 'n', 'e' };
00052 static const symbol s_2_18[4] = { 'v', 'e', 'n', 'e' };
00053 static const symbol s_2_19[2] = { 'c', 'i' };
00054 static const symbol s_2_20[2] = { 'l', 'i' };
00055 static const symbol s_2_21[4] = { 'c', 'e', 'l', 'i' };
00056 static const symbol s_2_22[6] = { 'g', 'l', 'i', 'e', 'l', 'i' };
00057 static const symbol s_2_23[4] = { 'm', 'e', 'l', 'i' };
00058 static const symbol s_2_24[4] = { 't', 'e', 'l', 'i' };
00059 static const symbol s_2_25[4] = { 'v', 'e', 'l', 'i' };
00060 static const symbol s_2_26[3] = { 'g', 'l', 'i' };
00061 static const symbol s_2_27[2] = { 'm', 'i' };
00062 static const symbol s_2_28[2] = { 's', 'i' };
00063 static const symbol s_2_29[2] = { 't', 'i' };
00064 static const symbol s_2_30[2] = { 'v', 'i' };
00065 static const symbol s_2_31[2] = { 'l', 'o' };
00066 static const symbol s_2_32[4] = { 'c', 'e', 'l', 'o' };
00067 static const symbol s_2_33[6] = { 'g', 'l', 'i', 'e', 'l', 'o' };
00068 static const symbol s_2_34[4] = { 'm', 'e', 'l', 'o' };
00069 static const symbol s_2_35[4] = { 't', 'e', 'l', 'o' };
00070 static const symbol s_2_36[4] = { 'v', 'e', 'l', 'o' };
00071
00072 static const struct among a_2[37] =
00073 {
00074 { 2, s_2_0, -1, -1},
00075 { 4, s_2_1, 0, -1},
00076 { 6, s_2_2, 0, -1},
00077 { 4, s_2_3, 0, -1},
00078 { 4, s_2_4, 0, -1},
00079 { 4, s_2_5, 0, -1},
00080 { 2, s_2_6, -1, -1},
00081 { 4, s_2_7, 6, -1},
00082 { 6, s_2_8, 6, -1},
00083 { 4, s_2_9, 6, -1},
00084 { 4, s_2_10, 6, -1},
00085 { 4, s_2_11, 6, -1},
00086 { 2, s_2_12, -1, -1},
00087 { 4, s_2_13, 12, -1},
00088 { 6, s_2_14, 12, -1},
00089 { 4, s_2_15, 12, -1},
00090 { 4, s_2_16, 12, -1},
00091 { 4, s_2_17, 12, -1},
00092 { 4, s_2_18, 12, -1},
00093 { 2, s_2_19, -1, -1},
00094 { 2, s_2_20, -1, -1},
00095 { 4, s_2_21, 20, -1},
00096 { 6, s_2_22, 20, -1},
00097 { 4, s_2_23, 20, -1},
00098 { 4, s_2_24, 20, -1},
00099 { 4, s_2_25, 20, -1},
00100 { 3, s_2_26, 20, -1},
00101 { 2, s_2_27, -1, -1},
00102 { 2, s_2_28, -1, -1},
00103 { 2, s_2_29, -1, -1},
00104 { 2, s_2_30, -1, -1},
00105 { 2, s_2_31, -1, -1},
00106 { 4, s_2_32, 31, -1},
00107 { 6, s_2_33, 31, -1},
00108 { 4, s_2_34, 31, -1},
00109 { 4, s_2_35, 31, -1},
00110 { 4, s_2_36, 31, -1}
00111 };
00112
00113 static const symbol s_3_0[4] = { 'a', 'n', 'd', 'o' };
00114 static const symbol s_3_1[4] = { 'e', 'n', 'd', 'o' };
00115 static const symbol s_3_2[2] = { 'a', 'r' };
00116 static const symbol s_3_3[2] = { 'e', 'r' };
00117 static const symbol s_3_4[2] = { 'i', 'r' };
00118
00119 static const struct among a_3[5] =
00120 {
00121 { 4, s_3_0, -1, 1},
00122 { 4, s_3_1, -1, 1},
00123 { 2, s_3_2, -1, 2},
00124 { 2, s_3_3, -1, 2},
00125 { 2, s_3_4, -1, 2}
00126 };
00127
00128 static const symbol s_4_0[2] = { 'i', 'c' };
00129 static const symbol s_4_1[4] = { 'a', 'b', 'i', 'l' };
00130 static const symbol s_4_2[2] = { 'o', 's' };
00131 static const symbol s_4_3[2] = { 'i', 'v' };
00132
00133 static const struct among a_4[4] =
00134 {
00135 { 2, s_4_0, -1, -1},
00136 { 4, s_4_1, -1, -1},
00137 { 2, s_4_2, -1, -1},
00138 { 2, s_4_3, -1, 1}
00139 };
00140
00141 static const symbol s_5_0[2] = { 'i', 'c' };
00142 static const symbol s_5_1[4] = { 'a', 'b', 'i', 'l' };
00143 static const symbol s_5_2[2] = { 'i', 'v' };
00144
00145 static const struct among a_5[3] =
00146 {
00147 { 2, s_5_0, -1, 1},
00148 { 4, s_5_1, -1, 1},
00149 { 2, s_5_2, -1, 1}
00150 };
00151
00152 static const symbol s_6_0[3] = { 'i', 'c', 'a' };
00153 static const symbol s_6_1[5] = { 'l', 'o', 'g', 'i', 'a' };
00154 static const symbol s_6_2[3] = { 'o', 's', 'a' };
00155 static const symbol s_6_3[4] = { 'i', 's', 't', 'a' };
00156 static const symbol s_6_4[3] = { 'i', 'v', 'a' };
00157 static const symbol s_6_5[4] = { 'a', 'n', 'z', 'a' };
00158 static const symbol s_6_6[4] = { 'e', 'n', 'z', 'a' };
00159 static const symbol s_6_7[3] = { 'i', 'c', 'e' };
00160 static const symbol s_6_8[6] = { 'a', 't', 'r', 'i', 'c', 'e' };
00161 static const symbol s_6_9[4] = { 'i', 'c', 'h', 'e' };
00162 static const symbol s_6_10[5] = { 'l', 'o', 'g', 'i', 'e' };
00163 static const symbol s_6_11[5] = { 'a', 'b', 'i', 'l', 'e' };
00164 static const symbol s_6_12[5] = { 'i', 'b', 'i', 'l', 'e' };
00165 static const symbol s_6_13[6] = { 'u', 's', 'i', 'o', 'n', 'e' };
00166 static const symbol s_6_14[6] = { 'a', 'z', 'i', 'o', 'n', 'e' };
00167 static const symbol s_6_15[6] = { 'u', 'z', 'i', 'o', 'n', 'e' };
00168 static const symbol s_6_16[5] = { 'a', 't', 'o', 'r', 'e' };
00169 static const symbol s_6_17[3] = { 'o', 's', 'e' };
00170 static const symbol s_6_18[4] = { 'a', 'n', 't', 'e' };
00171 static const symbol s_6_19[5] = { 'm', 'e', 'n', 't', 'e' };
00172 static const symbol s_6_20[6] = { 'a', 'm', 'e', 'n', 't', 'e' };
00173 static const symbol s_6_21[4] = { 'i', 's', 't', 'e' };
00174 static const symbol s_6_22[3] = { 'i', 'v', 'e' };
00175 static const symbol s_6_23[4] = { 'a', 'n', 'z', 'e' };
00176 static const symbol s_6_24[4] = { 'e', 'n', 'z', 'e' };
00177 static const symbol s_6_25[3] = { 'i', 'c', 'i' };
00178 static const symbol s_6_26[6] = { 'a', 't', 'r', 'i', 'c', 'i' };
00179 static const symbol s_6_27[4] = { 'i', 'c', 'h', 'i' };
00180 static const symbol s_6_28[5] = { 'a', 'b', 'i', 'l', 'i' };
00181 static const symbol s_6_29[5] = { 'i', 'b', 'i', 'l', 'i' };
00182 static const symbol s_6_30[4] = { 'i', 's', 'm', 'i' };
00183 static const symbol s_6_31[6] = { 'u', 's', 'i', 'o', 'n', 'i' };
00184 static const symbol s_6_32[6] = { 'a', 'z', 'i', 'o', 'n', 'i' };
00185 static const symbol s_6_33[6] = { 'u', 'z', 'i', 'o', 'n', 'i' };
00186 static const symbol s_6_34[5] = { 'a', 't', 'o', 'r', 'i' };
00187 static const symbol s_6_35[3] = { 'o', 's', 'i' };
00188 static const symbol s_6_36[4] = { 'a', 'n', 't', 'i' };
00189 static const symbol s_6_37[6] = { 'a', 'm', 'e', 'n', 't', 'i' };
00190 static const symbol s_6_38[6] = { 'i', 'm', 'e', 'n', 't', 'i' };
00191 static const symbol s_6_39[4] = { 'i', 's', 't', 'i' };
00192 static const symbol s_6_40[3] = { 'i', 'v', 'i' };
00193 static const symbol s_6_41[3] = { 'i', 'c', 'o' };
00194 static const symbol s_6_42[4] = { 'i', 's', 'm', 'o' };
00195 static const symbol s_6_43[3] = { 'o', 's', 'o' };
00196 static const symbol s_6_44[6] = { 'a', 'm', 'e', 'n', 't', 'o' };
00197 static const symbol s_6_45[6] = { 'i', 'm', 'e', 'n', 't', 'o' };
00198 static const symbol s_6_46[3] = { 'i', 'v', 'o' };
00199 static const symbol s_6_47[4] = { 'i', 't', 0xC3, 0xA0 };
00200 static const symbol s_6_48[5] = { 'i', 's', 't', 0xC3, 0xA0 };
00201 static const symbol s_6_49[5] = { 'i', 's', 't', 0xC3, 0xA8 };
00202 static const symbol s_6_50[5] = { 'i', 's', 't', 0xC3, 0xAC };
00203
00204 static const struct among a_6[51] =
00205 {
00206 { 3, s_6_0, -1, 1},
00207 { 5, s_6_1, -1, 3},
00208 { 3, s_6_2, -1, 1},
00209 { 4, s_6_3, -1, 1},
00210 { 3, s_6_4, -1, 9},
00211 { 4, s_6_5, -1, 1},
00212 { 4, s_6_6, -1, 5},
00213 { 3, s_6_7, -1, 1},
00214 { 6, s_6_8, 7, 1},
00215 { 4, s_6_9, -1, 1},
00216 { 5, s_6_10, -1, 3},
00217 { 5, s_6_11, -1, 1},
00218 { 5, s_6_12, -1, 1},
00219 { 6, s_6_13, -1, 4},
00220 { 6, s_6_14, -1, 2},
00221 { 6, s_6_15, -1, 4},
00222 { 5, s_6_16, -1, 2},
00223 { 3, s_6_17, -1, 1},
00224 { 4, s_6_18, -1, 1},
00225 { 5, s_6_19, -1, 1},
00226 { 6, s_6_20, 19, 7},
00227 { 4, s_6_21, -1, 1},
00228 { 3, s_6_22, -1, 9},
00229 { 4, s_6_23, -1, 1},
00230 { 4, s_6_24, -1, 5},
00231 { 3, s_6_25, -1, 1},
00232 { 6, s_6_26, 25, 1},
00233 { 4, s_6_27, -1, 1},
00234 { 5, s_6_28, -1, 1},
00235 { 5, s_6_29, -1, 1},
00236 { 4, s_6_30, -1, 1},
00237 { 6, s_6_31, -1, 4},
00238 { 6, s_6_32, -1, 2},
00239 { 6, s_6_33, -1, 4},
00240 { 5, s_6_34, -1, 2},
00241 { 3, s_6_35, -1, 1},
00242 { 4, s_6_36, -1, 1},
00243 { 6, s_6_37, -1, 6},
00244 { 6, s_6_38, -1, 6},
00245 { 4, s_6_39, -1, 1},
00246 { 3, s_6_40, -1, 9},
00247 { 3, s_6_41, -1, 1},
00248 { 4, s_6_42, -1, 1},
00249 { 3, s_6_43, -1, 1},
00250 { 6, s_6_44, -1, 6},
00251 { 6, s_6_45, -1, 6},
00252 { 3, s_6_46, -1, 9},
00253 { 4, s_6_47, -1, 8},
00254 { 5, s_6_48, -1, 1},
00255 { 5, s_6_49, -1, 1},
00256 { 5, s_6_50, -1, 1}
00257 };
00258
00259 static const symbol s_7_0[4] = { 'i', 's', 'c', 'a' };
00260 static const symbol s_7_1[4] = { 'e', 'n', 'd', 'a' };
00261 static const symbol s_7_2[3] = { 'a', 't', 'a' };
00262 static const symbol s_7_3[3] = { 'i', 't', 'a' };
00263 static const symbol s_7_4[3] = { 'u', 't', 'a' };
00264 static const symbol s_7_5[3] = { 'a', 'v', 'a' };
00265 static const symbol s_7_6[3] = { 'e', 'v', 'a' };
00266 static const symbol s_7_7[3] = { 'i', 'v', 'a' };
00267 static const symbol s_7_8[6] = { 'e', 'r', 'e', 'b', 'b', 'e' };
00268 static const symbol s_7_9[6] = { 'i', 'r', 'e', 'b', 'b', 'e' };
00269 static const symbol s_7_10[4] = { 'i', 's', 'c', 'e' };
00270 static const symbol s_7_11[4] = { 'e', 'n', 'd', 'e' };
00271 static const symbol s_7_12[3] = { 'a', 'r', 'e' };
00272 static const symbol s_7_13[3] = { 'e', 'r', 'e' };
00273 static const symbol s_7_14[3] = { 'i', 'r', 'e' };
00274 static const symbol s_7_15[4] = { 'a', 's', 's', 'e' };
00275 static const symbol s_7_16[3] = { 'a', 't', 'e' };
00276 static const symbol s_7_17[5] = { 'a', 'v', 'a', 't', 'e' };
00277 static const symbol s_7_18[5] = { 'e', 'v', 'a', 't', 'e' };
00278 static const symbol s_7_19[5] = { 'i', 'v', 'a', 't', 'e' };
00279 static const symbol s_7_20[3] = { 'e', 't', 'e' };
00280 static const symbol s_7_21[5] = { 'e', 'r', 'e', 't', 'e' };
00281 static const symbol s_7_22[5] = { 'i', 'r', 'e', 't', 'e' };
00282 static const symbol s_7_23[3] = { 'i', 't', 'e' };
00283 static const symbol s_7_24[6] = { 'e', 'r', 'e', 's', 't', 'e' };
00284 static const symbol s_7_25[6] = { 'i', 'r', 'e', 's', 't', 'e' };
00285 static const symbol s_7_26[3] = { 'u', 't', 'e' };
00286 static const symbol s_7_27[4] = { 'e', 'r', 'a', 'i' };
00287 static const symbol s_7_28[4] = { 'i', 'r', 'a', 'i' };
00288 static const symbol s_7_29[4] = { 'i', 's', 'c', 'i' };
00289 static const symbol s_7_30[4] = { 'e', 'n', 'd', 'i' };
00290 static const symbol s_7_31[4] = { 'e', 'r', 'e', 'i' };
00291 static const symbol s_7_32[4] = { 'i', 'r', 'e', 'i' };
00292 static const symbol s_7_33[4] = { 'a', 's', 's', 'i' };
00293 static const symbol s_7_34[3] = { 'a', 't', 'i' };
00294 static const symbol s_7_35[3] = { 'i', 't', 'i' };
00295 static const symbol s_7_36[6] = { 'e', 'r', 'e', 's', 't', 'i' };
00296 static const symbol s_7_37[6] = { 'i', 'r', 'e', 's', 't', 'i' };
00297 static const symbol s_7_38[3] = { 'u', 't', 'i' };
00298 static const symbol s_7_39[3] = { 'a', 'v', 'i' };
00299 static const symbol s_7_40[3] = { 'e', 'v', 'i' };
00300 static const symbol s_7_41[3] = { 'i', 'v', 'i' };
00301 static const symbol s_7_42[4] = { 'i', 's', 'c', 'o' };
00302 static const symbol s_7_43[4] = { 'a', 'n', 'd', 'o' };
00303 static const symbol s_7_44[4] = { 'e', 'n', 'd', 'o' };
00304 static const symbol s_7_45[4] = { 'Y', 'a', 'm', 'o' };
00305 static const symbol s_7_46[4] = { 'i', 'a', 'm', 'o' };
00306 static const symbol s_7_47[5] = { 'a', 'v', 'a', 'm', 'o' };
00307 static const symbol s_7_48[5] = { 'e', 'v', 'a', 'm', 'o' };
00308 static const symbol s_7_49[5] = { 'i', 'v', 'a', 'm', 'o' };
00309 static const symbol s_7_50[5] = { 'e', 'r', 'e', 'm', 'o' };
00310 static const symbol s_7_51[5] = { 'i', 'r', 'e', 'm', 'o' };
00311 static const symbol s_7_52[6] = { 'a', 's', 's', 'i', 'm', 'o' };
00312 static const symbol s_7_53[4] = { 'a', 'm', 'm', 'o' };
00313 static const symbol s_7_54[4] = { 'e', 'm', 'm', 'o' };
00314 static const symbol s_7_55[6] = { 'e', 'r', 'e', 'm', 'm', 'o' };
00315 static const symbol s_7_56[6] = { 'i', 'r', 'e', 'm', 'm', 'o' };
00316 static const symbol s_7_57[4] = { 'i', 'm', 'm', 'o' };
00317 static const symbol s_7_58[3] = { 'a', 'n', 'o' };
00318 static const symbol s_7_59[6] = { 'i', 's', 'c', 'a', 'n', 'o' };
00319 static const symbol s_7_60[5] = { 'a', 'v', 'a', 'n', 'o' };
00320 static const symbol s_7_61[5] = { 'e', 'v', 'a', 'n', 'o' };
00321 static const symbol s_7_62[5] = { 'i', 'v', 'a', 'n', 'o' };
00322 static const symbol s_7_63[6] = { 'e', 'r', 'a', 'n', 'n', 'o' };
00323 static const symbol s_7_64[6] = { 'i', 'r', 'a', 'n', 'n', 'o' };
00324 static const symbol s_7_65[3] = { 'o', 'n', 'o' };
00325 static const symbol s_7_66[6] = { 'i', 's', 'c', 'o', 'n', 'o' };
00326 static const symbol s_7_67[5] = { 'a', 'r', 'o', 'n', 'o' };
00327 static const symbol s_7_68[5] = { 'e', 'r', 'o', 'n', 'o' };
00328 static const symbol s_7_69[5] = { 'i', 'r', 'o', 'n', 'o' };
00329 static const symbol s_7_70[8] = { 'e', 'r', 'e', 'b', 'b', 'e', 'r', 'o' };
00330 static const symbol s_7_71[8] = { 'i', 'r', 'e', 'b', 'b', 'e', 'r', 'o' };
00331 static const symbol s_7_72[6] = { 'a', 's', 's', 'e', 'r', 'o' };
00332 static const symbol s_7_73[6] = { 'e', 's', 's', 'e', 'r', 'o' };
00333 static const symbol s_7_74[6] = { 'i', 's', 's', 'e', 'r', 'o' };
00334 static const symbol s_7_75[3] = { 'a', 't', 'o' };
00335 static const symbol s_7_76[3] = { 'i', 't', 'o' };
00336 static const symbol s_7_77[3] = { 'u', 't', 'o' };
00337 static const symbol s_7_78[3] = { 'a', 'v', 'o' };
00338 static const symbol s_7_79[3] = { 'e', 'v', 'o' };
00339 static const symbol s_7_80[3] = { 'i', 'v', 'o' };
00340 static const symbol s_7_81[2] = { 'a', 'r' };
00341 static const symbol s_7_82[2] = { 'i', 'r' };
00342 static const symbol s_7_83[4] = { 'e', 'r', 0xC3, 0xA0 };
00343 static const symbol s_7_84[4] = { 'i', 'r', 0xC3, 0xA0 };
00344 static const symbol s_7_85[4] = { 'e', 'r', 0xC3, 0xB2 };
00345 static const symbol s_7_86[4] = { 'i', 'r', 0xC3, 0xB2 };
00346
00347 static const struct among a_7[87] =
00348 {
00349 { 4, s_7_0, -1, 1},
00350 { 4, s_7_1, -1, 1},
00351 { 3, s_7_2, -1, 1},
00352 { 3, s_7_3, -1, 1},
00353 { 3, s_7_4, -1, 1},
00354 { 3, s_7_5, -1, 1},
00355 { 3, s_7_6, -1, 1},
00356 { 3, s_7_7, -1, 1},
00357 { 6, s_7_8, -1, 1},
00358 { 6, s_7_9, -1, 1},
00359 { 4, s_7_10, -1, 1},
00360 { 4, s_7_11, -1, 1},
00361 { 3, s_7_12, -1, 1},
00362 { 3, s_7_13, -1, 1},
00363 { 3, s_7_14, -1, 1},
00364 { 4, s_7_15, -1, 1},
00365 { 3, s_7_16, -1, 1},
00366 { 5, s_7_17, 16, 1},
00367 { 5, s_7_18, 16, 1},
00368 { 5, s_7_19, 16, 1},
00369 { 3, s_7_20, -1, 1},
00370 { 5, s_7_21, 20, 1},
00371 { 5, s_7_22, 20, 1},
00372 { 3, s_7_23, -1, 1},
00373 { 6, s_7_24, -1, 1},
00374 { 6, s_7_25, -1, 1},
00375 { 3, s_7_26, -1, 1},
00376 { 4, s_7_27, -1, 1},
00377 { 4, s_7_28, -1, 1},
00378 { 4, s_7_29, -1, 1},
00379 { 4, s_7_30, -1, 1},
00380 { 4, s_7_31, -1, 1},
00381 { 4, s_7_32, -1, 1},
00382 { 4, s_7_33, -1, 1},
00383 { 3, s_7_34, -1, 1},
00384 { 3, s_7_35, -1, 1},
00385 { 6, s_7_36, -1, 1},
00386 { 6, s_7_37, -1, 1},
00387 { 3, s_7_38, -1, 1},
00388 { 3, s_7_39, -1, 1},
00389 { 3, s_7_40, -1, 1},
00390 { 3, s_7_41, -1, 1},
00391 { 4, s_7_42, -1, 1},
00392 { 4, s_7_43, -1, 1},
00393 { 4, s_7_44, -1, 1},
00394 { 4, s_7_45, -1, 1},
00395 { 4, s_7_46, -1, 1},
00396 { 5, s_7_47, -1, 1},
00397 { 5, s_7_48, -1, 1},
00398 { 5, s_7_49, -1, 1},
00399 { 5, s_7_50, -1, 1},
00400 { 5, s_7_51, -1, 1},
00401 { 6, s_7_52, -1, 1},
00402 { 4, s_7_53, -1, 1},
00403 { 4, s_7_54, -1, 1},
00404 { 6, s_7_55, 54, 1},
00405 { 6, s_7_56, 54, 1},
00406 { 4, s_7_57, -1, 1},
00407 { 3, s_7_58, -1, 1},
00408 { 6, s_7_59, 58, 1},
00409 { 5, s_7_60, 58, 1},
00410 { 5, s_7_61, 58, 1},
00411 { 5, s_7_62, 58, 1},
00412 { 6, s_7_63, -1, 1},
00413 { 6, s_7_64, -1, 1},
00414 { 3, s_7_65, -1, 1},
00415 { 6, s_7_66, 65, 1},
00416 { 5, s_7_67, 65, 1},
00417 { 5, s_7_68, 65, 1},
00418 { 5, s_7_69, 65, 1},
00419 { 8, s_7_70, -1, 1},
00420 { 8, s_7_71, -1, 1},
00421 { 6, s_7_72, -1, 1},
00422 { 6, s_7_73, -1, 1},
00423 { 6, s_7_74, -1, 1},
00424 { 3, s_7_75, -1, 1},
00425 { 3, s_7_76, -1, 1},
00426 { 3, s_7_77, -1, 1},
00427 { 3, s_7_78, -1, 1},
00428 { 3, s_7_79, -1, 1},
00429 { 3, s_7_80, -1, 1},
00430 { 2, s_7_81, -1, 1},
00431 { 2, s_7_82, -1, 1},
00432 { 4, s_7_83, -1, 1},
00433 { 4, s_7_84, -1, 1},
00434 { 4, s_7_85, -1, 1},
00435 { 4, s_7_86, -1, 1}
00436 };
00437
00438 static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2, 1 };
00439
00440 static const unsigned char g_AEIO[] = { 17, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2 };
00441
00442 static const unsigned char g_CG[] = { 17 };
00443
00444 static const symbol s_0[] = { 0xC3, 0xA0 };
00445 static const symbol s_1[] = { 0xC3, 0xA8 };
00446 static const symbol s_2[] = { 0xC3, 0xAC };
00447 static const symbol s_3[] = { 0xC3, 0xB2 };
00448 static const symbol s_4[] = { 0xC3, 0xB9 };
00449 static const symbol s_5[] = { 'q', 'U' };
00450 static const symbol s_6[] = { 'U' };
00451 static const symbol s_7[] = { 'I' };
00452 static const symbol s_8[] = { 'i' };
00453 static const symbol s_9[] = { 'u' };
00454 static const symbol s_10[] = { 'e' };
00455 static const symbol s_11[] = { 'i', 'c' };
00456 static const symbol s_12[] = { 'l', 'o', 'g' };
00457 static const symbol s_13[] = { 'u' };
00458 static const symbol s_14[] = { 'e', 'n', 't', 'e' };
00459 static const symbol s_15[] = { 'a', 't' };
00460 static const symbol s_16[] = { 'a', 't' };
00461 static const symbol s_17[] = { 'i', 'c' };
00462
00463 int Xapian::InternalStemItalian::r_prelude() {
00464 int among_var;
00465 { int c_test1 = c;
00466 while(1) {
00467 int c2 = c;
00468 bra = c;
00469 among_var = find_among(a_0, 7, 0, 0);
00470 if (!(among_var)) goto lab0;
00471 ket = c;
00472 switch(among_var) {
00473 case 0: goto lab0;
00474 case 1:
00475 { int ret = slice_from_s(2, s_0);
00476 if (ret < 0) return ret;
00477 }
00478 break;
00479 case 2:
00480 { int ret = slice_from_s(2, s_1);
00481 if (ret < 0) return ret;
00482 }
00483 break;
00484 case 3:
00485 { int ret = slice_from_s(2, s_2);
00486 if (ret < 0) return ret;
00487 }
00488 break;
00489 case 4:
00490 { int ret = slice_from_s(2, s_3);
00491 if (ret < 0) return ret;
00492 }
00493 break;
00494 case 5:
00495 { int ret = slice_from_s(2, s_4);
00496 if (ret < 0) return ret;
00497 }
00498 break;
00499 case 6:
00500 { int ret = slice_from_s(2, s_5);
00501 if (ret < 0) return ret;
00502 }
00503 break;
00504 case 7:
00505 { int ret = skip_utf8(p, c, 0, l, 1);
00506 if (ret < 0) goto lab0;
00507 c = ret;
00508 }
00509 break;
00510 }
00511 continue;
00512 lab0:
00513 c = c2;
00514 break;
00515 }
00516 c = c_test1;
00517 }
00518 while(1) {
00519 int c3 = c;
00520 while(1) {
00521 int c4 = c;
00522 if (in_grouping_U(g_v, 97, 249, 0)) goto lab2;
00523 bra = c;
00524 { int c5 = c;
00525 if (c == l || p[c] != 'u') goto lab4;
00526 c++;
00527 ket = c;
00528 if (in_grouping_U(g_v, 97, 249, 0)) goto lab4;
00529 { int ret = slice_from_s(1, s_6);
00530 if (ret < 0) return ret;
00531 }
00532 goto lab3;
00533 lab4:
00534 c = c5;
00535 if (c == l || p[c] != 'i') goto lab2;
00536 c++;
00537 ket = c;
00538 if (in_grouping_U(g_v, 97, 249, 0)) goto lab2;
00539 { int ret = slice_from_s(1, s_7);
00540 if (ret < 0) return ret;
00541 }
00542 }
00543 lab3:
00544 c = c4;
00545 break;
00546 lab2:
00547 c = c4;
00548 { int ret = skip_utf8(p, c, 0, l, 1);
00549 if (ret < 0) goto lab1;
00550 c = ret;
00551 }
00552 }
00553 continue;
00554 lab1:
00555 c = c3;
00556 break;
00557 }
00558 return 1;
00559 }
00560
00561 int Xapian::InternalStemItalian::r_mark_regions() {
00562 I_pV = l;
00563 I_p1 = l;
00564 I_p2 = l;
00565 { int c1 = c;
00566 { int c2 = c;
00567 if (in_grouping_U(g_v, 97, 249, 0)) goto lab2;
00568 { int c3 = c;
00569 if (out_grouping_U(g_v, 97, 249, 0)) goto lab4;
00570 { int ret = out_grouping_U(g_v, 97, 249, 1);
00571 if (ret < 0) goto lab4;
00572 c += ret;
00573 }
00574 goto lab3;
00575 lab4:
00576 c = c3;
00577 if (in_grouping_U(g_v, 97, 249, 0)) goto lab2;
00578 { int ret = in_grouping_U(g_v, 97, 249, 1);
00579 if (ret < 0) goto lab2;
00580 c += ret;
00581 }
00582 }
00583 lab3:
00584 goto lab1;
00585 lab2:
00586 c = c2;
00587 if (out_grouping_U(g_v, 97, 249, 0)) goto lab0;
00588 { int c4 = c;
00589 if (out_grouping_U(g_v, 97, 249, 0)) goto lab6;
00590 { int ret = out_grouping_U(g_v, 97, 249, 1);
00591 if (ret < 0) goto lab6;
00592 c += ret;
00593 }
00594 goto lab5;
00595 lab6:
00596 c = c4;
00597 if (in_grouping_U(g_v, 97, 249, 0)) goto lab0;
00598 { int ret = skip_utf8(p, c, 0, l, 1);
00599 if (ret < 0) goto lab0;
00600 c = ret;
00601 }
00602 }
00603 lab5:
00604 ;
00605 }
00606 lab1:
00607 I_pV = c;
00608 lab0:
00609 c = c1;
00610 }
00611 { int c5 = c;
00612 { int ret = out_grouping_U(g_v, 97, 249, 1);
00613 if (ret < 0) goto lab7;
00614 c += ret;
00615 }
00616 { int ret = in_grouping_U(g_v, 97, 249, 1);
00617 if (ret < 0) goto lab7;
00618 c += ret;
00619 }
00620 I_p1 = c;
00621 { int ret = out_grouping_U(g_v, 97, 249, 1);
00622 if (ret < 0) goto lab7;
00623 c += ret;
00624 }
00625 { int ret = in_grouping_U(g_v, 97, 249, 1);
00626 if (ret < 0) goto lab7;
00627 c += ret;
00628 }
00629 I_p2 = c;
00630 lab7:
00631 c = c5;
00632 }
00633 return 1;
00634 }
00635
00636 int Xapian::InternalStemItalian::r_postlude() {
00637 int among_var;
00638 while(1) {
00639 int c1 = c;
00640 bra = c;
00641 if (c >= l || (p[c + 0] != 73 && p[c + 0] != 85)) among_var = 3; else
00642 among_var = find_among(a_1, 3, 0, 0);
00643 if (!(among_var)) goto lab0;
00644 ket = c;
00645 switch(among_var) {
00646 case 0: goto lab0;
00647 case 1:
00648 { int ret = slice_from_s(1, s_8);
00649 if (ret < 0) return ret;
00650 }
00651 break;
00652 case 2:
00653 { int ret = slice_from_s(1, s_9);
00654 if (ret < 0) return ret;
00655 }
00656 break;
00657 case 3:
00658 { int ret = skip_utf8(p, c, 0, l, 1);
00659 if (ret < 0) goto lab0;
00660 c = ret;
00661 }
00662 break;
00663 }
00664 continue;
00665 lab0:
00666 c = c1;
00667 break;
00668 }
00669 return 1;
00670 }
00671
00672 int Xapian::InternalStemItalian::r_RV() {
00673 if (!(I_pV <= c)) return 0;
00674 return 1;
00675 }
00676
00677 int Xapian::InternalStemItalian::r_R1() {
00678 if (!(I_p1 <= c)) return 0;
00679 return 1;
00680 }
00681
00682 int Xapian::InternalStemItalian::r_R2() {
00683 if (!(I_p2 <= c)) return 0;
00684 return 1;
00685 }
00686
00687 int Xapian::InternalStemItalian::r_attached_pronoun() {
00688 int among_var;
00689 ket = c;
00690 if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((33314 >> (p[c - 1] & 0x1f)) & 1)) return 0;
00691 if (!(find_among_b(a_2, 37, 0, 0))) return 0;
00692 bra = c;
00693 if (c - 1 <= lb || (p[c - 1] != 111 && p[c - 1] != 114)) return 0;
00694 among_var = find_among_b(a_3, 5, 0, 0);
00695 if (!(among_var)) return 0;
00696 { int ret = r_RV();
00697 if (ret <= 0) return ret;
00698 }
00699 switch(among_var) {
00700 case 0: return 0;
00701 case 1:
00702 if (slice_del() == -1) return -1;
00703 break;
00704 case 2:
00705 { int ret = slice_from_s(1, s_10);
00706 if (ret < 0) return ret;
00707 }
00708 break;
00709 }
00710 return 1;
00711 }
00712
00713 int Xapian::InternalStemItalian::r_standard_suffix() {
00714 int among_var;
00715 ket = c;
00716 among_var = find_among_b(a_6, 51, 0, 0);
00717 if (!(among_var)) return 0;
00718 bra = c;
00719 switch(among_var) {
00720 case 0: return 0;
00721 case 1:
00722 { int ret = r_R2();
00723 if (ret <= 0) return ret;
00724 }
00725 if (slice_del() == -1) return -1;
00726 break;
00727 case 2:
00728 { int ret = r_R2();
00729 if (ret <= 0) return ret;
00730 }
00731 if (slice_del() == -1) return -1;
00732 { int m1 = l - c; (void)m1;
00733 ket = c;
00734 if (!(eq_s_b(2, s_11))) { c = l - m1; goto lab0; }
00735 bra = c;
00736 { int ret = r_R2();
00737 if (ret == 0) { c = l - m1; goto lab0; }
00738 if (ret < 0) return ret;
00739 }
00740 if (slice_del() == -1) return -1;
00741 lab0:
00742 ;
00743 }
00744 break;
00745 case 3:
00746 { int ret = r_R2();
00747 if (ret <= 0) return ret;
00748 }
00749 { int ret = slice_from_s(3, s_12);
00750 if (ret < 0) return ret;
00751 }
00752 break;
00753 case 4:
00754 { int ret = r_R2();
00755 if (ret <= 0) return ret;
00756 }
00757 { int ret = slice_from_s(1, s_13);
00758 if (ret < 0) return ret;
00759 }
00760 break;
00761 case 5:
00762 { int ret = r_R2();
00763 if (ret <= 0) return ret;
00764 }
00765 { int ret = slice_from_s(4, s_14);
00766 if (ret < 0) return ret;
00767 }
00768 break;
00769 case 6:
00770 { int ret = r_RV();
00771 if (ret <= 0) return ret;
00772 }
00773 if (slice_del() == -1) return -1;
00774 break;
00775 case 7:
00776 { int ret = r_R1();
00777 if (ret <= 0) return ret;
00778 }
00779 if (slice_del() == -1) return -1;
00780 { int m2 = l - c; (void)m2;
00781 ket = c;
00782 if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((4722696 >> (p[c - 1] & 0x1f)) & 1)) { c = l - m2; goto lab1; }
00783 among_var = find_among_b(a_4, 4, 0, 0);
00784 if (!(among_var)) { c = l - m2; goto lab1; }
00785 bra = c;
00786 { int ret = r_R2();
00787 if (ret == 0) { c = l - m2; goto lab1; }
00788 if (ret < 0) return ret;
00789 }
00790 if (slice_del() == -1) return -1;
00791 switch(among_var) {
00792 case 0: { c = l - m2; goto lab1; }
00793 case 1:
00794 ket = c;
00795 if (!(eq_s_b(2, s_15))) { c = l - m2; goto lab1; }
00796 bra = c;
00797 { int ret = r_R2();
00798 if (ret == 0) { c = l - m2; goto lab1; }
00799 if (ret < 0) return ret;
00800 }
00801 if (slice_del() == -1) return -1;
00802 break;
00803 }
00804 lab1:
00805 ;
00806 }
00807 break;
00808 case 8:
00809 { int ret = r_R2();
00810 if (ret <= 0) return ret;
00811 }
00812 if (slice_del() == -1) return -1;
00813 { int m3 = l - c; (void)m3;
00814 ket = c;
00815 if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((4198408 >> (p[c - 1] & 0x1f)) & 1)) { c = l - m3; goto lab2; }
00816 among_var = find_among_b(a_5, 3, 0, 0);
00817 if (!(among_var)) { c = l - m3; goto lab2; }
00818 bra = c;
00819 switch(among_var) {
00820 case 0: { c = l - m3; goto lab2; }
00821 case 1:
00822 { int ret = r_R2();
00823 if (ret == 0) { c = l - m3; goto lab2; }
00824 if (ret < 0) return ret;
00825 }
00826 if (slice_del() == -1) return -1;
00827 break;
00828 }
00829 lab2:
00830 ;
00831 }
00832 break;
00833 case 9:
00834 { int ret = r_R2();
00835 if (ret <= 0) return ret;
00836 }
00837 if (slice_del() == -1) return -1;
00838 { int m4 = l - c; (void)m4;
00839 ket = c;
00840 if (!(eq_s_b(2, s_16))) { c = l - m4; goto lab3; }
00841 bra = c;
00842 { int ret = r_R2();
00843 if (ret == 0) { c = l - m4; goto lab3; }
00844 if (ret < 0) return ret;
00845 }
00846 if (slice_del() == -1) return -1;
00847 ket = c;
00848 if (!(eq_s_b(2, s_17))) { c = l - m4; goto lab3; }
00849 bra = c;
00850 { int ret = r_R2();
00851 if (ret == 0) { c = l - m4; goto lab3; }
00852 if (ret < 0) return ret;
00853 }
00854 if (slice_del() == -1) return -1;
00855 lab3:
00856 ;
00857 }
00858 break;
00859 }
00860 return 1;
00861 }
00862
00863 int Xapian::InternalStemItalian::r_verb_suffix() {
00864 int among_var;
00865 { int m1 = l - c; (void)m1;
00866 int mlimit1;
00867 if (c < I_pV) return 0;
00868 c = I_pV;
00869 mlimit1 = lb; lb = c;
00870 c = l - m1;
00871 ket = c;
00872 among_var = find_among_b(a_7, 87, 0, 0);
00873 if (!(among_var)) { lb = mlimit1; return 0; }
00874 bra = c;
00875 switch(among_var) {
00876 case 0: { lb = mlimit1; return 0; }
00877 case 1:
00878 if (slice_del() == -1) return -1;
00879 break;
00880 }
00881 lb = mlimit1;
00882 }
00883 return 1;
00884 }
00885
00886 int Xapian::InternalStemItalian::r_vowel_suffix() {
00887 { int m1 = l - c; (void)m1;
00888 ket = c;
00889 if (in_grouping_b_U(g_AEIO, 97, 242, 0)) { c = l - m1; goto lab0; }
00890 bra = c;
00891 { int ret = r_RV();
00892 if (ret == 0) { c = l - m1; goto lab0; }
00893 if (ret < 0) return ret;
00894 }
00895 if (slice_del() == -1) return -1;
00896 ket = c;
00897 if (c <= lb || p[c - 1] != 'i') { c = l - m1; goto lab0; }
00898 c--;
00899 bra = c;
00900 { int ret = r_RV();
00901 if (ret == 0) { c = l - m1; goto lab0; }
00902 if (ret < 0) return ret;
00903 }
00904 if (slice_del() == -1) return -1;
00905 lab0:
00906 ;
00907 }
00908 { int m2 = l - c; (void)m2;
00909 ket = c;
00910 if (c <= lb || p[c - 1] != 'h') { c = l - m2; goto lab1; }
00911 c--;
00912 bra = c;
00913 if (in_grouping_b_U(g_CG, 99, 103, 0)) { c = l - m2; goto lab1; }
00914 { int ret = r_RV();
00915 if (ret == 0) { c = l - m2; goto lab1; }
00916 if (ret < 0) return ret;
00917 }
00918 if (slice_del() == -1) return -1;
00919 lab1:
00920 ;
00921 }
00922 return 1;
00923 }
00924
00925 int Xapian::InternalStemItalian::stem() {
00926 { int c1 = c;
00927 { int ret = r_prelude();
00928 if (ret == 0) goto lab0;
00929 if (ret < 0) return ret;
00930 }
00931 lab0:
00932 c = c1;
00933 }
00934 { int c2 = c;
00935 { int ret = r_mark_regions();
00936 if (ret == 0) goto lab1;
00937 if (ret < 0) return ret;
00938 }
00939 lab1:
00940 c = c2;
00941 }
00942 lb = c; c = l;
00943
00944 { int m3 = l - c; (void)m3;
00945 { int ret = r_attached_pronoun();
00946 if (ret == 0) goto lab2;
00947 if (ret < 0) return ret;
00948 }
00949 lab2:
00950 c = l - m3;
00951 }
00952 { int m4 = l - c; (void)m4;
00953 { int m5 = l - c; (void)m5;
00954 { int ret = r_standard_suffix();
00955 if (ret == 0) goto lab5;
00956 if (ret < 0) return ret;
00957 }
00958 goto lab4;
00959 lab5:
00960 c = l - m5;
00961 { int ret = r_verb_suffix();
00962 if (ret == 0) goto lab3;
00963 if (ret < 0) return ret;
00964 }
00965 }
00966 lab4:
00967 lab3:
00968 c = l - m4;
00969 }
00970 { int m6 = l - c; (void)m6;
00971 { int ret = r_vowel_suffix();
00972 if (ret == 0) goto lab6;
00973 if (ret < 0) return ret;
00974 }
00975 lab6:
00976 c = l - m6;
00977 }
00978 c = lb;
00979 { int c7 = c;
00980 { int ret = r_postlude();
00981 if (ret == 0) goto lab7;
00982 if (ret < 0) return ret;
00983 }
00984 lab7:
00985 c = c7;
00986 }
00987 return 1;
00988 }
00989
00990 Xapian::InternalStemItalian::InternalStemItalian()
00991 : I_p2(0), I_p1(0), I_pV(0)
00992 {
00993 }
00994
00995 Xapian::InternalStemItalian::~InternalStemItalian()
00996 {
00997 }
00998
00999 const char *
01000 Xapian::InternalStemItalian::get_description() const
01001 {
01002 return "italian";
01003 }