00001
00002
00003
00004 #include "header.h"
00005
00006 #ifdef __cplusplus
00007 extern "C" {
00008 #endif
00009 extern int portuguese_UTF_8_stem(struct SN_env * z);
00010 #ifdef __cplusplus
00011 }
00012 #endif
00013 static int r_residual_form(struct SN_env * z);
00014 static int r_residual_suffix(struct SN_env * z);
00015 static int r_verb_suffix(struct SN_env * z);
00016 static int r_standard_suffix(struct SN_env * z);
00017 static int r_R2(struct SN_env * z);
00018 static int r_R1(struct SN_env * z);
00019 static int r_RV(struct SN_env * z);
00020 static int r_mark_regions(struct SN_env * z);
00021 static int r_postlude(struct SN_env * z);
00022 static int r_prelude(struct SN_env * z);
00023 #ifdef __cplusplus
00024 extern "C" {
00025 #endif
00026
00027
00028 extern struct SN_env * portuguese_UTF_8_create_env(void);
00029 extern void portuguese_UTF_8_close_env(struct SN_env * z);
00030
00031
00032 #ifdef __cplusplus
00033 }
00034 #endif
00035 static const symbol s_0_1[2] = { 0xC3, 0xA3 };
00036 static const symbol s_0_2[2] = { 0xC3, 0xB5 };
00037
00038 static const struct among a_0[3] =
00039 {
00040 { 0, 0, -1, 3, 0},
00041 { 2, s_0_1, 0, 1, 0},
00042 { 2, s_0_2, 0, 2, 0}
00043 };
00044
00045 static const symbol s_1_1[2] = { 'a', '~' };
00046 static const symbol s_1_2[2] = { 'o', '~' };
00047
00048 static const struct among a_1[3] =
00049 {
00050 { 0, 0, -1, 3, 0},
00051 { 2, s_1_1, 0, 1, 0},
00052 { 2, s_1_2, 0, 2, 0}
00053 };
00054
00055 static const symbol s_2_0[2] = { 'i', 'c' };
00056 static const symbol s_2_1[2] = { 'a', 'd' };
00057 static const symbol s_2_2[2] = { 'o', 's' };
00058 static const symbol s_2_3[2] = { 'i', 'v' };
00059
00060 static const struct among a_2[4] =
00061 {
00062 { 2, s_2_0, -1, -1, 0},
00063 { 2, s_2_1, -1, -1, 0},
00064 { 2, s_2_2, -1, -1, 0},
00065 { 2, s_2_3, -1, 1, 0}
00066 };
00067
00068 static const symbol s_3_0[4] = { 'a', 'n', 't', 'e' };
00069 static const symbol s_3_1[4] = { 'a', 'v', 'e', 'l' };
00070 static const symbol s_3_2[5] = { 0xC3, 0xAD, 'v', 'e', 'l' };
00071
00072 static const struct among a_3[3] =
00073 {
00074 { 4, s_3_0, -1, 1, 0},
00075 { 4, s_3_1, -1, 1, 0},
00076 { 5, s_3_2, -1, 1, 0}
00077 };
00078
00079 static const symbol s_4_0[2] = { 'i', 'c' };
00080 static const symbol s_4_1[4] = { 'a', 'b', 'i', 'l' };
00081 static const symbol s_4_2[2] = { 'i', 'v' };
00082
00083 static const struct among a_4[3] =
00084 {
00085 { 2, s_4_0, -1, 1, 0},
00086 { 4, s_4_1, -1, 1, 0},
00087 { 2, s_4_2, -1, 1, 0}
00088 };
00089
00090 static const symbol s_5_0[3] = { 'i', 'c', 'a' };
00091 static const symbol s_5_1[6] = { 0xC3, 0xA2, 'n', 'c', 'i', 'a' };
00092 static const symbol s_5_2[6] = { 0xC3, 0xAA, 'n', 'c', 'i', 'a' };
00093 static const symbol s_5_3[3] = { 'i', 'r', 'a' };
00094 static const symbol s_5_4[5] = { 'a', 'd', 'o', 'r', 'a' };
00095 static const symbol s_5_5[3] = { 'o', 's', 'a' };
00096 static const symbol s_5_6[4] = { 'i', 's', 't', 'a' };
00097 static const symbol s_5_7[3] = { 'i', 'v', 'a' };
00098 static const symbol s_5_8[3] = { 'e', 'z', 'a' };
00099 static const symbol s_5_9[6] = { 'l', 'o', 'g', 0xC3, 0xAD, 'a' };
00100 static const symbol s_5_10[5] = { 'i', 'd', 'a', 'd', 'e' };
00101 static const symbol s_5_11[4] = { 'a', 'n', 't', 'e' };
00102 static const symbol s_5_12[5] = { 'm', 'e', 'n', 't', 'e' };
00103 static const symbol s_5_13[6] = { 'a', 'm', 'e', 'n', 't', 'e' };
00104 static const symbol s_5_14[5] = { 0xC3, 0xA1, 'v', 'e', 'l' };
00105 static const symbol s_5_15[5] = { 0xC3, 0xAD, 'v', 'e', 'l' };
00106 static const symbol s_5_16[6] = { 'u', 'c', 'i', 0xC3, 0xB3, 'n' };
00107 static const symbol s_5_17[3] = { 'i', 'c', 'o' };
00108 static const symbol s_5_18[4] = { 'i', 's', 'm', 'o' };
00109 static const symbol s_5_19[3] = { 'o', 's', 'o' };
00110 static const symbol s_5_20[6] = { 'a', 'm', 'e', 'n', 't', 'o' };
00111 static const symbol s_5_21[6] = { 'i', 'm', 'e', 'n', 't', 'o' };
00112 static const symbol s_5_22[3] = { 'i', 'v', 'o' };
00113 static const symbol s_5_23[6] = { 'a', 0xC3, 0xA7, 'a', '~', 'o' };
00114 static const symbol s_5_24[4] = { 'a', 'd', 'o', 'r' };
00115 static const symbol s_5_25[4] = { 'i', 'c', 'a', 's' };
00116 static const symbol s_5_26[7] = { 0xC3, 0xAA, 'n', 'c', 'i', 'a', 's' };
00117 static const symbol s_5_27[4] = { 'i', 'r', 'a', 's' };
00118 static const symbol s_5_28[6] = { 'a', 'd', 'o', 'r', 'a', 's' };
00119 static const symbol s_5_29[4] = { 'o', 's', 'a', 's' };
00120 static const symbol s_5_30[5] = { 'i', 's', 't', 'a', 's' };
00121 static const symbol s_5_31[4] = { 'i', 'v', 'a', 's' };
00122 static const symbol s_5_32[4] = { 'e', 'z', 'a', 's' };
00123 static const symbol s_5_33[7] = { 'l', 'o', 'g', 0xC3, 0xAD, 'a', 's' };
00124 static const symbol s_5_34[6] = { 'i', 'd', 'a', 'd', 'e', 's' };
00125 static const symbol s_5_35[7] = { 'u', 'c', 'i', 'o', 'n', 'e', 's' };
00126 static const symbol s_5_36[6] = { 'a', 'd', 'o', 'r', 'e', 's' };
00127 static const symbol s_5_37[5] = { 'a', 'n', 't', 'e', 's' };
00128 static const symbol s_5_38[7] = { 'a', 0xC3, 0xA7, 'o', '~', 'e', 's' };
00129 static const symbol s_5_39[4] = { 'i', 'c', 'o', 's' };
00130 static const symbol s_5_40[5] = { 'i', 's', 'm', 'o', 's' };
00131 static const symbol s_5_41[4] = { 'o', 's', 'o', 's' };
00132 static const symbol s_5_42[7] = { 'a', 'm', 'e', 'n', 't', 'o', 's' };
00133 static const symbol s_5_43[7] = { 'i', 'm', 'e', 'n', 't', 'o', 's' };
00134 static const symbol s_5_44[4] = { 'i', 'v', 'o', 's' };
00135
00136 static const struct among a_5[45] =
00137 {
00138 { 3, s_5_0, -1, 1, 0},
00139 { 6, s_5_1, -1, 1, 0},
00140 { 6, s_5_2, -1, 4, 0},
00141 { 3, s_5_3, -1, 9, 0},
00142 { 5, s_5_4, -1, 1, 0},
00143 { 3, s_5_5, -1, 1, 0},
00144 { 4, s_5_6, -1, 1, 0},
00145 { 3, s_5_7, -1, 8, 0},
00146 { 3, s_5_8, -1, 1, 0},
00147 { 6, s_5_9, -1, 2, 0},
00148 { 5, s_5_10, -1, 7, 0},
00149 { 4, s_5_11, -1, 1, 0},
00150 { 5, s_5_12, -1, 6, 0},
00151 { 6, s_5_13, 12, 5, 0},
00152 { 5, s_5_14, -1, 1, 0},
00153 { 5, s_5_15, -1, 1, 0},
00154 { 6, s_5_16, -1, 3, 0},
00155 { 3, s_5_17, -1, 1, 0},
00156 { 4, s_5_18, -1, 1, 0},
00157 { 3, s_5_19, -1, 1, 0},
00158 { 6, s_5_20, -1, 1, 0},
00159 { 6, s_5_21, -1, 1, 0},
00160 { 3, s_5_22, -1, 8, 0},
00161 { 6, s_5_23, -1, 1, 0},
00162 { 4, s_5_24, -1, 1, 0},
00163 { 4, s_5_25, -1, 1, 0},
00164 { 7, s_5_26, -1, 4, 0},
00165 { 4, s_5_27, -1, 9, 0},
00166 { 6, s_5_28, -1, 1, 0},
00167 { 4, s_5_29, -1, 1, 0},
00168 { 5, s_5_30, -1, 1, 0},
00169 { 4, s_5_31, -1, 8, 0},
00170 { 4, s_5_32, -1, 1, 0},
00171 { 7, s_5_33, -1, 2, 0},
00172 { 6, s_5_34, -1, 7, 0},
00173 { 7, s_5_35, -1, 3, 0},
00174 { 6, s_5_36, -1, 1, 0},
00175 { 5, s_5_37, -1, 1, 0},
00176 { 7, s_5_38, -1, 1, 0},
00177 { 4, s_5_39, -1, 1, 0},
00178 { 5, s_5_40, -1, 1, 0},
00179 { 4, s_5_41, -1, 1, 0},
00180 { 7, s_5_42, -1, 1, 0},
00181 { 7, s_5_43, -1, 1, 0},
00182 { 4, s_5_44, -1, 8, 0}
00183 };
00184
00185 static const symbol s_6_0[3] = { 'a', 'd', 'a' };
00186 static const symbol s_6_1[3] = { 'i', 'd', 'a' };
00187 static const symbol s_6_2[2] = { 'i', 'a' };
00188 static const symbol s_6_3[4] = { 'a', 'r', 'i', 'a' };
00189 static const symbol s_6_4[4] = { 'e', 'r', 'i', 'a' };
00190 static const symbol s_6_5[4] = { 'i', 'r', 'i', 'a' };
00191 static const symbol s_6_6[3] = { 'a', 'r', 'a' };
00192 static const symbol s_6_7[3] = { 'e', 'r', 'a' };
00193 static const symbol s_6_8[3] = { 'i', 'r', 'a' };
00194 static const symbol s_6_9[3] = { 'a', 'v', 'a' };
00195 static const symbol s_6_10[4] = { 'a', 's', 's', 'e' };
00196 static const symbol s_6_11[4] = { 'e', 's', 's', 'e' };
00197 static const symbol s_6_12[4] = { 'i', 's', 's', 'e' };
00198 static const symbol s_6_13[4] = { 'a', 's', 't', 'e' };
00199 static const symbol s_6_14[4] = { 'e', 's', 't', 'e' };
00200 static const symbol s_6_15[4] = { 'i', 's', 't', 'e' };
00201 static const symbol s_6_16[2] = { 'e', 'i' };
00202 static const symbol s_6_17[4] = { 'a', 'r', 'e', 'i' };
00203 static const symbol s_6_18[4] = { 'e', 'r', 'e', 'i' };
00204 static const symbol s_6_19[4] = { 'i', 'r', 'e', 'i' };
00205 static const symbol s_6_20[2] = { 'a', 'm' };
00206 static const symbol s_6_21[3] = { 'i', 'a', 'm' };
00207 static const symbol s_6_22[5] = { 'a', 'r', 'i', 'a', 'm' };
00208 static const symbol s_6_23[5] = { 'e', 'r', 'i', 'a', 'm' };
00209 static const symbol s_6_24[5] = { 'i', 'r', 'i', 'a', 'm' };
00210 static const symbol s_6_25[4] = { 'a', 'r', 'a', 'm' };
00211 static const symbol s_6_26[4] = { 'e', 'r', 'a', 'm' };
00212 static const symbol s_6_27[4] = { 'i', 'r', 'a', 'm' };
00213 static const symbol s_6_28[4] = { 'a', 'v', 'a', 'm' };
00214 static const symbol s_6_29[2] = { 'e', 'm' };
00215 static const symbol s_6_30[4] = { 'a', 'r', 'e', 'm' };
00216 static const symbol s_6_31[4] = { 'e', 'r', 'e', 'm' };
00217 static const symbol s_6_32[4] = { 'i', 'r', 'e', 'm' };
00218 static const symbol s_6_33[5] = { 'a', 's', 's', 'e', 'm' };
00219 static const symbol s_6_34[5] = { 'e', 's', 's', 'e', 'm' };
00220 static const symbol s_6_35[5] = { 'i', 's', 's', 'e', 'm' };
00221 static const symbol s_6_36[3] = { 'a', 'd', 'o' };
00222 static const symbol s_6_37[3] = { 'i', 'd', 'o' };
00223 static const symbol s_6_38[4] = { 'a', 'n', 'd', 'o' };
00224 static const symbol s_6_39[4] = { 'e', 'n', 'd', 'o' };
00225 static const symbol s_6_40[4] = { 'i', 'n', 'd', 'o' };
00226 static const symbol s_6_41[5] = { 'a', 'r', 'a', '~', 'o' };
00227 static const symbol s_6_42[5] = { 'e', 'r', 'a', '~', 'o' };
00228 static const symbol s_6_43[5] = { 'i', 'r', 'a', '~', 'o' };
00229 static const symbol s_6_44[2] = { 'a', 'r' };
00230 static const symbol s_6_45[2] = { 'e', 'r' };
00231 static const symbol s_6_46[2] = { 'i', 'r' };
00232 static const symbol s_6_47[2] = { 'a', 's' };
00233 static const symbol s_6_48[4] = { 'a', 'd', 'a', 's' };
00234 static const symbol s_6_49[4] = { 'i', 'd', 'a', 's' };
00235 static const symbol s_6_50[3] = { 'i', 'a', 's' };
00236 static const symbol s_6_51[5] = { 'a', 'r', 'i', 'a', 's' };
00237 static const symbol s_6_52[5] = { 'e', 'r', 'i', 'a', 's' };
00238 static const symbol s_6_53[5] = { 'i', 'r', 'i', 'a', 's' };
00239 static const symbol s_6_54[4] = { 'a', 'r', 'a', 's' };
00240 static const symbol s_6_55[4] = { 'e', 'r', 'a', 's' };
00241 static const symbol s_6_56[4] = { 'i', 'r', 'a', 's' };
00242 static const symbol s_6_57[4] = { 'a', 'v', 'a', 's' };
00243 static const symbol s_6_58[2] = { 'e', 's' };
00244 static const symbol s_6_59[5] = { 'a', 'r', 'd', 'e', 's' };
00245 static const symbol s_6_60[5] = { 'e', 'r', 'd', 'e', 's' };
00246 static const symbol s_6_61[5] = { 'i', 'r', 'd', 'e', 's' };
00247 static const symbol s_6_62[4] = { 'a', 'r', 'e', 's' };
00248 static const symbol s_6_63[4] = { 'e', 'r', 'e', 's' };
00249 static const symbol s_6_64[4] = { 'i', 'r', 'e', 's' };
00250 static const symbol s_6_65[5] = { 'a', 's', 's', 'e', 's' };
00251 static const symbol s_6_66[5] = { 'e', 's', 's', 'e', 's' };
00252 static const symbol s_6_67[5] = { 'i', 's', 's', 'e', 's' };
00253 static const symbol s_6_68[5] = { 'a', 's', 't', 'e', 's' };
00254 static const symbol s_6_69[5] = { 'e', 's', 't', 'e', 's' };
00255 static const symbol s_6_70[5] = { 'i', 's', 't', 'e', 's' };
00256 static const symbol s_6_71[2] = { 'i', 's' };
00257 static const symbol s_6_72[3] = { 'a', 'i', 's' };
00258 static const symbol s_6_73[3] = { 'e', 'i', 's' };
00259 static const symbol s_6_74[5] = { 'a', 'r', 'e', 'i', 's' };
00260 static const symbol s_6_75[5] = { 'e', 'r', 'e', 'i', 's' };
00261 static const symbol s_6_76[5] = { 'i', 'r', 'e', 'i', 's' };
00262 static const symbol s_6_77[6] = { 0xC3, 0xA1, 'r', 'e', 'i', 's' };
00263 static const symbol s_6_78[6] = { 0xC3, 0xA9, 'r', 'e', 'i', 's' };
00264 static const symbol s_6_79[6] = { 0xC3, 0xAD, 'r', 'e', 'i', 's' };
00265 static const symbol s_6_80[7] = { 0xC3, 0xA1, 's', 's', 'e', 'i', 's' };
00266 static const symbol s_6_81[7] = { 0xC3, 0xA9, 's', 's', 'e', 'i', 's' };
00267 static const symbol s_6_82[7] = { 0xC3, 0xAD, 's', 's', 'e', 'i', 's' };
00268 static const symbol s_6_83[6] = { 0xC3, 0xA1, 'v', 'e', 'i', 's' };
00269 static const symbol s_6_84[5] = { 0xC3, 0xAD, 'e', 'i', 's' };
00270 static const symbol s_6_85[7] = { 'a', 'r', 0xC3, 0xAD, 'e', 'i', 's' };
00271 static const symbol s_6_86[7] = { 'e', 'r', 0xC3, 0xAD, 'e', 'i', 's' };
00272 static const symbol s_6_87[7] = { 'i', 'r', 0xC3, 0xAD, 'e', 'i', 's' };
00273 static const symbol s_6_88[4] = { 'a', 'd', 'o', 's' };
00274 static const symbol s_6_89[4] = { 'i', 'd', 'o', 's' };
00275 static const symbol s_6_90[4] = { 'a', 'm', 'o', 's' };
00276 static const symbol s_6_91[7] = { 0xC3, 0xA1, 'r', 'a', 'm', 'o', 's' };
00277 static const symbol s_6_92[7] = { 0xC3, 0xA9, 'r', 'a', 'm', 'o', 's' };
00278 static const symbol s_6_93[7] = { 0xC3, 0xAD, 'r', 'a', 'm', 'o', 's' };
00279 static const symbol s_6_94[7] = { 0xC3, 0xA1, 'v', 'a', 'm', 'o', 's' };
00280 static const symbol s_6_95[6] = { 0xC3, 0xAD, 'a', 'm', 'o', 's' };
00281 static const symbol s_6_96[8] = { 'a', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
00282 static const symbol s_6_97[8] = { 'e', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
00283 static const symbol s_6_98[8] = { 'i', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's' };
00284 static const symbol s_6_99[4] = { 'e', 'm', 'o', 's' };
00285 static const symbol s_6_100[6] = { 'a', 'r', 'e', 'm', 'o', 's' };
00286 static const symbol s_6_101[6] = { 'e', 'r', 'e', 'm', 'o', 's' };
00287 static const symbol s_6_102[6] = { 'i', 'r', 'e', 'm', 'o', 's' };
00288 static const symbol s_6_103[8] = { 0xC3, 0xA1, 's', 's', 'e', 'm', 'o', 's' };
00289 static const symbol s_6_104[8] = { 0xC3, 0xAA, 's', 's', 'e', 'm', 'o', 's' };
00290 static const symbol s_6_105[8] = { 0xC3, 0xAD, 's', 's', 'e', 'm', 'o', 's' };
00291 static const symbol s_6_106[4] = { 'i', 'm', 'o', 's' };
00292 static const symbol s_6_107[5] = { 'a', 'r', 'm', 'o', 's' };
00293 static const symbol s_6_108[5] = { 'e', 'r', 'm', 'o', 's' };
00294 static const symbol s_6_109[5] = { 'i', 'r', 'm', 'o', 's' };
00295 static const symbol s_6_110[5] = { 0xC3, 0xA1, 'm', 'o', 's' };
00296 static const symbol s_6_111[5] = { 'a', 'r', 0xC3, 0xA1, 's' };
00297 static const symbol s_6_112[5] = { 'e', 'r', 0xC3, 0xA1, 's' };
00298 static const symbol s_6_113[5] = { 'i', 'r', 0xC3, 0xA1, 's' };
00299 static const symbol s_6_114[2] = { 'e', 'u' };
00300 static const symbol s_6_115[2] = { 'i', 'u' };
00301 static const symbol s_6_116[2] = { 'o', 'u' };
00302 static const symbol s_6_117[4] = { 'a', 'r', 0xC3, 0xA1 };
00303 static const symbol s_6_118[4] = { 'e', 'r', 0xC3, 0xA1 };
00304 static const symbol s_6_119[4] = { 'i', 'r', 0xC3, 0xA1 };
00305
00306 static const struct among a_6[120] =
00307 {
00308 { 3, s_6_0, -1, 1, 0},
00309 { 3, s_6_1, -1, 1, 0},
00310 { 2, s_6_2, -1, 1, 0},
00311 { 4, s_6_3, 2, 1, 0},
00312 { 4, s_6_4, 2, 1, 0},
00313 { 4, s_6_5, 2, 1, 0},
00314 { 3, s_6_6, -1, 1, 0},
00315 { 3, s_6_7, -1, 1, 0},
00316 { 3, s_6_8, -1, 1, 0},
00317 { 3, s_6_9, -1, 1, 0},
00318 { 4, s_6_10, -1, 1, 0},
00319 { 4, s_6_11, -1, 1, 0},
00320 { 4, s_6_12, -1, 1, 0},
00321 { 4, s_6_13, -1, 1, 0},
00322 { 4, s_6_14, -1, 1, 0},
00323 { 4, s_6_15, -1, 1, 0},
00324 { 2, s_6_16, -1, 1, 0},
00325 { 4, s_6_17, 16, 1, 0},
00326 { 4, s_6_18, 16, 1, 0},
00327 { 4, s_6_19, 16, 1, 0},
00328 { 2, s_6_20, -1, 1, 0},
00329 { 3, s_6_21, 20, 1, 0},
00330 { 5, s_6_22, 21, 1, 0},
00331 { 5, s_6_23, 21, 1, 0},
00332 { 5, s_6_24, 21, 1, 0},
00333 { 4, s_6_25, 20, 1, 0},
00334 { 4, s_6_26, 20, 1, 0},
00335 { 4, s_6_27, 20, 1, 0},
00336 { 4, s_6_28, 20, 1, 0},
00337 { 2, s_6_29, -1, 1, 0},
00338 { 4, s_6_30, 29, 1, 0},
00339 { 4, s_6_31, 29, 1, 0},
00340 { 4, s_6_32, 29, 1, 0},
00341 { 5, s_6_33, 29, 1, 0},
00342 { 5, s_6_34, 29, 1, 0},
00343 { 5, s_6_35, 29, 1, 0},
00344 { 3, s_6_36, -1, 1, 0},
00345 { 3, s_6_37, -1, 1, 0},
00346 { 4, s_6_38, -1, 1, 0},
00347 { 4, s_6_39, -1, 1, 0},
00348 { 4, s_6_40, -1, 1, 0},
00349 { 5, s_6_41, -1, 1, 0},
00350 { 5, s_6_42, -1, 1, 0},
00351 { 5, s_6_43, -1, 1, 0},
00352 { 2, s_6_44, -1, 1, 0},
00353 { 2, s_6_45, -1, 1, 0},
00354 { 2, s_6_46, -1, 1, 0},
00355 { 2, s_6_47, -1, 1, 0},
00356 { 4, s_6_48, 47, 1, 0},
00357 { 4, s_6_49, 47, 1, 0},
00358 { 3, s_6_50, 47, 1, 0},
00359 { 5, s_6_51, 50, 1, 0},
00360 { 5, s_6_52, 50, 1, 0},
00361 { 5, s_6_53, 50, 1, 0},
00362 { 4, s_6_54, 47, 1, 0},
00363 { 4, s_6_55, 47, 1, 0},
00364 { 4, s_6_56, 47, 1, 0},
00365 { 4, s_6_57, 47, 1, 0},
00366 { 2, s_6_58, -1, 1, 0},
00367 { 5, s_6_59, 58, 1, 0},
00368 { 5, s_6_60, 58, 1, 0},
00369 { 5, s_6_61, 58, 1, 0},
00370 { 4, s_6_62, 58, 1, 0},
00371 { 4, s_6_63, 58, 1, 0},
00372 { 4, s_6_64, 58, 1, 0},
00373 { 5, s_6_65, 58, 1, 0},
00374 { 5, s_6_66, 58, 1, 0},
00375 { 5, s_6_67, 58, 1, 0},
00376 { 5, s_6_68, 58, 1, 0},
00377 { 5, s_6_69, 58, 1, 0},
00378 { 5, s_6_70, 58, 1, 0},
00379 { 2, s_6_71, -1, 1, 0},
00380 { 3, s_6_72, 71, 1, 0},
00381 { 3, s_6_73, 71, 1, 0},
00382 { 5, s_6_74, 73, 1, 0},
00383 { 5, s_6_75, 73, 1, 0},
00384 { 5, s_6_76, 73, 1, 0},
00385 { 6, s_6_77, 73, 1, 0},
00386 { 6, s_6_78, 73, 1, 0},
00387 { 6, s_6_79, 73, 1, 0},
00388 { 7, s_6_80, 73, 1, 0},
00389 { 7, s_6_81, 73, 1, 0},
00390 { 7, s_6_82, 73, 1, 0},
00391 { 6, s_6_83, 73, 1, 0},
00392 { 5, s_6_84, 73, 1, 0},
00393 { 7, s_6_85, 84, 1, 0},
00394 { 7, s_6_86, 84, 1, 0},
00395 { 7, s_6_87, 84, 1, 0},
00396 { 4, s_6_88, -1, 1, 0},
00397 { 4, s_6_89, -1, 1, 0},
00398 { 4, s_6_90, -1, 1, 0},
00399 { 7, s_6_91, 90, 1, 0},
00400 { 7, s_6_92, 90, 1, 0},
00401 { 7, s_6_93, 90, 1, 0},
00402 { 7, s_6_94, 90, 1, 0},
00403 { 6, s_6_95, 90, 1, 0},
00404 { 8, s_6_96, 95, 1, 0},
00405 { 8, s_6_97, 95, 1, 0},
00406 { 8, s_6_98, 95, 1, 0},
00407 { 4, s_6_99, -1, 1, 0},
00408 { 6, s_6_100, 99, 1, 0},
00409 { 6, s_6_101, 99, 1, 0},
00410 { 6, s_6_102, 99, 1, 0},
00411 { 8, s_6_103, 99, 1, 0},
00412 { 8, s_6_104, 99, 1, 0},
00413 { 8, s_6_105, 99, 1, 0},
00414 { 4, s_6_106, -1, 1, 0},
00415 { 5, s_6_107, -1, 1, 0},
00416 { 5, s_6_108, -1, 1, 0},
00417 { 5, s_6_109, -1, 1, 0},
00418 { 5, s_6_110, -1, 1, 0},
00419 { 5, s_6_111, -1, 1, 0},
00420 { 5, s_6_112, -1, 1, 0},
00421 { 5, s_6_113, -1, 1, 0},
00422 { 2, s_6_114, -1, 1, 0},
00423 { 2, s_6_115, -1, 1, 0},
00424 { 2, s_6_116, -1, 1, 0},
00425 { 4, s_6_117, -1, 1, 0},
00426 { 4, s_6_118, -1, 1, 0},
00427 { 4, s_6_119, -1, 1, 0}
00428 };
00429
00430 static const symbol s_7_0[1] = { 'a' };
00431 static const symbol s_7_1[1] = { 'i' };
00432 static const symbol s_7_2[1] = { 'o' };
00433 static const symbol s_7_3[2] = { 'o', 's' };
00434 static const symbol s_7_4[2] = { 0xC3, 0xA1 };
00435 static const symbol s_7_5[2] = { 0xC3, 0xAD };
00436 static const symbol s_7_6[2] = { 0xC3, 0xB3 };
00437
00438 static const struct among a_7[7] =
00439 {
00440 { 1, s_7_0, -1, 1, 0},
00441 { 1, s_7_1, -1, 1, 0},
00442 { 1, s_7_2, -1, 1, 0},
00443 { 2, s_7_3, -1, 1, 0},
00444 { 2, s_7_4, -1, 1, 0},
00445 { 2, s_7_5, -1, 1, 0},
00446 { 2, s_7_6, -1, 1, 0}
00447 };
00448
00449 static const symbol s_8_0[1] = { 'e' };
00450 static const symbol s_8_1[2] = { 0xC3, 0xA7 };
00451 static const symbol s_8_2[2] = { 0xC3, 0xA9 };
00452 static const symbol s_8_3[2] = { 0xC3, 0xAA };
00453
00454 static const struct among a_8[4] =
00455 {
00456 { 1, s_8_0, -1, 1, 0},
00457 { 2, s_8_1, -1, 2, 0},
00458 { 2, s_8_2, -1, 1, 0},
00459 { 2, s_8_3, -1, 1, 0}
00460 };
00461
00462 static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 12, 2 };
00463
00464 static const symbol s_0[] = { 'a', '~' };
00465 static const symbol s_1[] = { 'o', '~' };
00466 static const symbol s_2[] = { 0xC3, 0xA3 };
00467 static const symbol s_3[] = { 0xC3, 0xB5 };
00468 static const symbol s_4[] = { 'l', 'o', 'g' };
00469 static const symbol s_5[] = { 'u' };
00470 static const symbol s_6[] = { 'e', 'n', 't', 'e' };
00471 static const symbol s_7[] = { 'a', 't' };
00472 static const symbol s_8[] = { 'a', 't' };
00473 static const symbol s_9[] = { 'e' };
00474 static const symbol s_10[] = { 'i', 'r' };
00475 static const symbol s_11[] = { 'u' };
00476 static const symbol s_12[] = { 'g' };
00477 static const symbol s_13[] = { 'i' };
00478 static const symbol s_14[] = { 'c' };
00479 static const symbol s_15[] = { 'c' };
00480 static const symbol s_16[] = { 'i' };
00481 static const symbol s_17[] = { 'c' };
00482
00483 static int r_prelude(struct SN_env * z) {
00484 int among_var;
00485 while(1) {
00486 int c1 = z->c;
00487 z->bra = z->c;
00488 if (z->c + 1 >= z->l || (z->p[z->c + 1] != 163 && z->p[z->c + 1] != 181)) among_var = 3; else
00489 among_var = find_among(z, a_0, 3);
00490 if (!(among_var)) goto lab0;
00491 z->ket = z->c;
00492 switch(among_var) {
00493 case 0: goto lab0;
00494 case 1:
00495 { int ret = slice_from_s(z, 2, s_0);
00496 if (ret < 0) return ret;
00497 }
00498 break;
00499 case 2:
00500 { int ret = slice_from_s(z, 2, s_1);
00501 if (ret < 0) return ret;
00502 }
00503 break;
00504 case 3:
00505 { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
00506 if (ret < 0) goto lab0;
00507 z->c = ret;
00508 }
00509 break;
00510 }
00511 continue;
00512 lab0:
00513 z->c = c1;
00514 break;
00515 }
00516 return 1;
00517 }
00518
00519 static int r_mark_regions(struct SN_env * z) {
00520 z->I[0] = z->l;
00521 z->I[1] = z->l;
00522 z->I[2] = z->l;
00523 { int c1 = z->c;
00524 { int c2 = z->c;
00525 if (in_grouping_U(z, g_v, 97, 250, 0)) goto lab2;
00526 { int c3 = z->c;
00527 if (out_grouping_U(z, g_v, 97, 250, 0)) goto lab4;
00528 {
00529 int ret = out_grouping_U(z, g_v, 97, 250, 1);
00530 if (ret < 0) goto lab4;
00531 z->c += ret;
00532 }
00533 goto lab3;
00534 lab4:
00535 z->c = c3;
00536 if (in_grouping_U(z, g_v, 97, 250, 0)) goto lab2;
00537 {
00538 int ret = in_grouping_U(z, g_v, 97, 250, 1);
00539 if (ret < 0) goto lab2;
00540 z->c += ret;
00541 }
00542 }
00543 lab3:
00544 goto lab1;
00545 lab2:
00546 z->c = c2;
00547 if (out_grouping_U(z, g_v, 97, 250, 0)) goto lab0;
00548 { int c4 = z->c;
00549 if (out_grouping_U(z, g_v, 97, 250, 0)) goto lab6;
00550 {
00551 int ret = out_grouping_U(z, g_v, 97, 250, 1);
00552 if (ret < 0) goto lab6;
00553 z->c += ret;
00554 }
00555 goto lab5;
00556 lab6:
00557 z->c = c4;
00558 if (in_grouping_U(z, g_v, 97, 250, 0)) goto lab0;
00559 { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
00560 if (ret < 0) goto lab0;
00561 z->c = ret;
00562 }
00563 }
00564 lab5:
00565 ;
00566 }
00567 lab1:
00568 z->I[0] = z->c;
00569 lab0:
00570 z->c = c1;
00571 }
00572 { int c5 = z->c;
00573 {
00574 int ret = out_grouping_U(z, g_v, 97, 250, 1);
00575 if (ret < 0) goto lab7;
00576 z->c += ret;
00577 }
00578 {
00579 int ret = in_grouping_U(z, g_v, 97, 250, 1);
00580 if (ret < 0) goto lab7;
00581 z->c += ret;
00582 }
00583 z->I[1] = z->c;
00584 {
00585 int ret = out_grouping_U(z, g_v, 97, 250, 1);
00586 if (ret < 0) goto lab7;
00587 z->c += ret;
00588 }
00589 {
00590 int ret = in_grouping_U(z, g_v, 97, 250, 1);
00591 if (ret < 0) goto lab7;
00592 z->c += ret;
00593 }
00594 z->I[2] = z->c;
00595 lab7:
00596 z->c = c5;
00597 }
00598 return 1;
00599 }
00600
00601 static int r_postlude(struct SN_env * z) {
00602 int among_var;
00603 while(1) {
00604 int c1 = z->c;
00605 z->bra = z->c;
00606 if (z->c + 1 >= z->l || z->p[z->c + 1] != 126) among_var = 3; else
00607 among_var = find_among(z, a_1, 3);
00608 if (!(among_var)) goto lab0;
00609 z->ket = z->c;
00610 switch(among_var) {
00611 case 0: goto lab0;
00612 case 1:
00613 { int ret = slice_from_s(z, 2, s_2);
00614 if (ret < 0) return ret;
00615 }
00616 break;
00617 case 2:
00618 { int ret = slice_from_s(z, 2, s_3);
00619 if (ret < 0) return ret;
00620 }
00621 break;
00622 case 3:
00623 { int ret = skip_utf8(z->p, z->c, 0, z->l, 1);
00624 if (ret < 0) goto lab0;
00625 z->c = ret;
00626 }
00627 break;
00628 }
00629 continue;
00630 lab0:
00631 z->c = c1;
00632 break;
00633 }
00634 return 1;
00635 }
00636
00637 static int r_RV(struct SN_env * z) {
00638 if (!(z->I[0] <= z->c)) return 0;
00639 return 1;
00640 }
00641
00642 static int r_R1(struct SN_env * z) {
00643 if (!(z->I[1] <= z->c)) return 0;
00644 return 1;
00645 }
00646
00647 static int r_R2(struct SN_env * z) {
00648 if (!(z->I[2] <= z->c)) return 0;
00649 return 1;
00650 }
00651
00652 static int r_standard_suffix(struct SN_env * z) {
00653 int among_var;
00654 z->ket = z->c;
00655 if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((839714 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
00656 among_var = find_among_b(z, a_5, 45);
00657 if (!(among_var)) return 0;
00658 z->bra = z->c;
00659 switch(among_var) {
00660 case 0: return 0;
00661 case 1:
00662 { int ret = r_R2(z);
00663 if (ret == 0) return 0;
00664 if (ret < 0) return ret;
00665 }
00666 { int ret = slice_del(z);
00667 if (ret < 0) return ret;
00668 }
00669 break;
00670 case 2:
00671 { int ret = r_R2(z);
00672 if (ret == 0) return 0;
00673 if (ret < 0) return ret;
00674 }
00675 { int ret = slice_from_s(z, 3, s_4);
00676 if (ret < 0) return ret;
00677 }
00678 break;
00679 case 3:
00680 { int ret = r_R2(z);
00681 if (ret == 0) return 0;
00682 if (ret < 0) return ret;
00683 }
00684 { int ret = slice_from_s(z, 1, s_5);
00685 if (ret < 0) return ret;
00686 }
00687 break;
00688 case 4:
00689 { int ret = r_R2(z);
00690 if (ret == 0) return 0;
00691 if (ret < 0) return ret;
00692 }
00693 { int ret = slice_from_s(z, 4, s_6);
00694 if (ret < 0) return ret;
00695 }
00696 break;
00697 case 5:
00698 { int ret = r_R1(z);
00699 if (ret == 0) return 0;
00700 if (ret < 0) return ret;
00701 }
00702 { int ret = slice_del(z);
00703 if (ret < 0) return ret;
00704 }
00705 { int m_keep = z->l - z->c;
00706 z->ket = z->c;
00707 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4718616 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m_keep; goto lab0; }
00708 among_var = find_among_b(z, a_2, 4);
00709 if (!(among_var)) { z->c = z->l - m_keep; goto lab0; }
00710 z->bra = z->c;
00711 { int ret = r_R2(z);
00712 if (ret == 0) { z->c = z->l - m_keep; goto lab0; }
00713 if (ret < 0) return ret;
00714 }
00715 { int ret = slice_del(z);
00716 if (ret < 0) return ret;
00717 }
00718 switch(among_var) {
00719 case 0: { z->c = z->l - m_keep; goto lab0; }
00720 case 1:
00721 z->ket = z->c;
00722 if (!(eq_s_b(z, 2, s_7))) { z->c = z->l - m_keep; goto lab0; }
00723 z->bra = z->c;
00724 { int ret = r_R2(z);
00725 if (ret == 0) { z->c = z->l - m_keep; goto lab0; }
00726 if (ret < 0) return ret;
00727 }
00728 { int ret = slice_del(z);
00729 if (ret < 0) return ret;
00730 }
00731 break;
00732 }
00733 lab0:
00734 ;
00735 }
00736 break;
00737 case 6:
00738 { int ret = r_R2(z);
00739 if (ret == 0) return 0;
00740 if (ret < 0) return ret;
00741 }
00742 { int ret = slice_del(z);
00743 if (ret < 0) return ret;
00744 }
00745 { int m_keep = z->l - z->c;
00746 z->ket = z->c;
00747 if (z->c - 3 <= z->lb || (z->p[z->c - 1] != 101 && z->p[z->c - 1] != 108)) { z->c = z->l - m_keep; goto lab1; }
00748 among_var = find_among_b(z, a_3, 3);
00749 if (!(among_var)) { z->c = z->l - m_keep; goto lab1; }
00750 z->bra = z->c;
00751 switch(among_var) {
00752 case 0: { z->c = z->l - m_keep; goto lab1; }
00753 case 1:
00754 { int ret = r_R2(z);
00755 if (ret == 0) { z->c = z->l - m_keep; goto lab1; }
00756 if (ret < 0) return ret;
00757 }
00758 { int ret = slice_del(z);
00759 if (ret < 0) return ret;
00760 }
00761 break;
00762 }
00763 lab1:
00764 ;
00765 }
00766 break;
00767 case 7:
00768 { int ret = r_R2(z);
00769 if (ret == 0) return 0;
00770 if (ret < 0) return ret;
00771 }
00772 { int ret = slice_del(z);
00773 if (ret < 0) return ret;
00774 }
00775 { int m_keep = z->l - z->c;
00776 z->ket = z->c;
00777 if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((4198408 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m_keep; goto lab2; }
00778 among_var = find_among_b(z, a_4, 3);
00779 if (!(among_var)) { z->c = z->l - m_keep; goto lab2; }
00780 z->bra = z->c;
00781 switch(among_var) {
00782 case 0: { z->c = z->l - m_keep; goto lab2; }
00783 case 1:
00784 { int ret = r_R2(z);
00785 if (ret == 0) { z->c = z->l - m_keep; goto lab2; }
00786 if (ret < 0) return ret;
00787 }
00788 { int ret = slice_del(z);
00789 if (ret < 0) return ret;
00790 }
00791 break;
00792 }
00793 lab2:
00794 ;
00795 }
00796 break;
00797 case 8:
00798 { int ret = r_R2(z);
00799 if (ret == 0) return 0;
00800 if (ret < 0) return ret;
00801 }
00802 { int ret = slice_del(z);
00803 if (ret < 0) return ret;
00804 }
00805 { int m_keep = z->l - z->c;
00806 z->ket = z->c;
00807 if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m_keep; goto lab3; }
00808 z->bra = z->c;
00809 { int ret = r_R2(z);
00810 if (ret == 0) { z->c = z->l - m_keep; goto lab3; }
00811 if (ret < 0) return ret;
00812 }
00813 { int ret = slice_del(z);
00814 if (ret < 0) return ret;
00815 }
00816 lab3:
00817 ;
00818 }
00819 break;
00820 case 9:
00821 { int ret = r_RV(z);
00822 if (ret == 0) return 0;
00823 if (ret < 0) return ret;
00824 }
00825 if (!(eq_s_b(z, 1, s_9))) return 0;
00826 { int ret = slice_from_s(z, 2, s_10);
00827 if (ret < 0) return ret;
00828 }
00829 break;
00830 }
00831 return 1;
00832 }
00833
00834 static int r_verb_suffix(struct SN_env * z) {
00835 int among_var;
00836 { int mlimit;
00837 int m1 = z->l - z->c; (void)m1;
00838 if (z->c < z->I[0]) return 0;
00839 z->c = z->I[0];
00840 mlimit = z->lb; z->lb = z->c;
00841 z->c = z->l - m1;
00842 z->ket = z->c;
00843 among_var = find_among_b(z, a_6, 120);
00844 if (!(among_var)) { z->lb = mlimit; return 0; }
00845 z->bra = z->c;
00846 switch(among_var) {
00847 case 0: { z->lb = mlimit; return 0; }
00848 case 1:
00849 { int ret = slice_del(z);
00850 if (ret < 0) return ret;
00851 }
00852 break;
00853 }
00854 z->lb = mlimit;
00855 }
00856 return 1;
00857 }
00858
00859 static int r_residual_suffix(struct SN_env * z) {
00860 int among_var;
00861 z->ket = z->c;
00862 among_var = find_among_b(z, a_7, 7);
00863 if (!(among_var)) return 0;
00864 z->bra = z->c;
00865 switch(among_var) {
00866 case 0: return 0;
00867 case 1:
00868 { int ret = r_RV(z);
00869 if (ret == 0) return 0;
00870 if (ret < 0) return ret;
00871 }
00872 { int ret = slice_del(z);
00873 if (ret < 0) return ret;
00874 }
00875 break;
00876 }
00877 return 1;
00878 }
00879
00880 static int r_residual_form(struct SN_env * z) {
00881 int among_var;
00882 z->ket = z->c;
00883 among_var = find_among_b(z, a_8, 4);
00884 if (!(among_var)) return 0;
00885 z->bra = z->c;
00886 switch(among_var) {
00887 case 0: return 0;
00888 case 1:
00889 { int ret = r_RV(z);
00890 if (ret == 0) return 0;
00891 if (ret < 0) return ret;
00892 }
00893 { int ret = slice_del(z);
00894 if (ret < 0) return ret;
00895 }
00896 z->ket = z->c;
00897 { int m1 = z->l - z->c; (void)m1;
00898 if (!(eq_s_b(z, 1, s_11))) goto lab1;
00899 z->bra = z->c;
00900 { int m_test = z->l - z->c;
00901 if (!(eq_s_b(z, 1, s_12))) goto lab1;
00902 z->c = z->l - m_test;
00903 }
00904 goto lab0;
00905 lab1:
00906 z->c = z->l - m1;
00907 if (!(eq_s_b(z, 1, s_13))) return 0;
00908 z->bra = z->c;
00909 { int m_test = z->l - z->c;
00910 if (!(eq_s_b(z, 1, s_14))) return 0;
00911 z->c = z->l - m_test;
00912 }
00913 }
00914 lab0:
00915 { int ret = r_RV(z);
00916 if (ret == 0) return 0;
00917 if (ret < 0) return ret;
00918 }
00919 { int ret = slice_del(z);
00920 if (ret < 0) return ret;
00921 }
00922 break;
00923 case 2:
00924 { int ret = slice_from_s(z, 1, s_15);
00925 if (ret < 0) return ret;
00926 }
00927 break;
00928 }
00929 return 1;
00930 }
00931
00932 extern int portuguese_UTF_8_stem(struct SN_env * z) {
00933 { int c1 = z->c;
00934 { int ret = r_prelude(z);
00935 if (ret == 0) goto lab0;
00936 if (ret < 0) return ret;
00937 }
00938 lab0:
00939 z->c = c1;
00940 }
00941 { int c2 = z->c;
00942 { int ret = r_mark_regions(z);
00943 if (ret == 0) goto lab1;
00944 if (ret < 0) return ret;
00945 }
00946 lab1:
00947 z->c = c2;
00948 }
00949 z->lb = z->c; z->c = z->l;
00950
00951 { int m3 = z->l - z->c; (void)m3;
00952 { int m4 = z->l - z->c; (void)m4;
00953 { int m5 = z->l - z->c; (void)m5;
00954 { int m6 = z->l - z->c; (void)m6;
00955 { int ret = r_standard_suffix(z);
00956 if (ret == 0) goto lab6;
00957 if (ret < 0) return ret;
00958 }
00959 goto lab5;
00960 lab6:
00961 z->c = z->l - m6;
00962 { int ret = r_verb_suffix(z);
00963 if (ret == 0) goto lab4;
00964 if (ret < 0) return ret;
00965 }
00966 }
00967 lab5:
00968 z->c = z->l - m5;
00969 { int m7 = z->l - z->c; (void)m7;
00970 z->ket = z->c;
00971 if (!(eq_s_b(z, 1, s_16))) goto lab7;
00972 z->bra = z->c;
00973 { int m_test = z->l - z->c;
00974 if (!(eq_s_b(z, 1, s_17))) goto lab7;
00975 z->c = z->l - m_test;
00976 }
00977 { int ret = r_RV(z);
00978 if (ret == 0) goto lab7;
00979 if (ret < 0) return ret;
00980 }
00981 { int ret = slice_del(z);
00982 if (ret < 0) return ret;
00983 }
00984 lab7:
00985 z->c = z->l - m7;
00986 }
00987 }
00988 goto lab3;
00989 lab4:
00990 z->c = z->l - m4;
00991 { int ret = r_residual_suffix(z);
00992 if (ret == 0) goto lab2;
00993 if (ret < 0) return ret;
00994 }
00995 }
00996 lab3:
00997 lab2:
00998 z->c = z->l - m3;
00999 }
01000 { int m8 = z->l - z->c; (void)m8;
01001 { int ret = r_residual_form(z);
01002 if (ret == 0) goto lab8;
01003 if (ret < 0) return ret;
01004 }
01005 lab8:
01006 z->c = z->l - m8;
01007 }
01008 z->c = z->lb;
01009 { int c9 = z->c;
01010 { int ret = r_postlude(z);
01011 if (ret == 0) goto lab9;
01012 if (ret < 0) return ret;
01013 }
01014 lab9:
01015 z->c = c9;
01016 }
01017 return 1;
01018 }
01019
01020 extern struct SN_env * portuguese_UTF_8_create_env(void) { return SN_create_env(0, 3, 0); }
01021
01022 extern void portuguese_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
01023