00001
00002
00003
00004 #include "header.h"
00005
00006 #ifdef __cplusplus
00007 extern "C" {
00008 #endif
00009 extern int portuguese_ISO_8859_1_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_ISO_8859_1_create_env(void);
00029 extern void portuguese_ISO_8859_1_close_env(struct SN_env * z);
00030
00031
00032 #ifdef __cplusplus
00033 }
00034 #endif
00035 static const symbol s_0_1[1] = { 0xE3 };
00036 static const symbol s_0_2[1] = { 0xF5 };
00037
00038 static const struct among a_0[3] =
00039 {
00040 { 0, 0, -1, 3, 0},
00041 { 1, s_0_1, 0, 1, 0},
00042 { 1, 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[4] = { 0xED, '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 { 4, 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[5] = { 0xE2, 'n', 'c', 'i', 'a' };
00092 static const symbol s_5_2[5] = { 0xEA, '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[5] = { 'l', 'o', 'g', 0xED, '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[4] = { 0xE1, 'v', 'e', 'l' };
00105 static const symbol s_5_15[4] = { 0xED, 'v', 'e', 'l' };
00106 static const symbol s_5_16[5] = { 'u', 'c', 'i', 0xF3, '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[5] = { 'a', 0xE7, '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[6] = { 0xEA, '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[6] = { 'l', 'o', 'g', 0xED, '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[6] = { 'a', 0xE7, '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 { 5, s_5_1, -1, 1, 0},
00140 { 5, 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 { 5, 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 { 4, s_5_14, -1, 1, 0},
00153 { 4, s_5_15, -1, 1, 0},
00154 { 5, 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 { 5, s_5_23, -1, 1, 0},
00162 { 4, s_5_24, -1, 1, 0},
00163 { 4, s_5_25, -1, 1, 0},
00164 { 6, 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 { 6, 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 { 6, 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[5] = { 0xE1, 'r', 'e', 'i', 's' };
00263 static const symbol s_6_78[5] = { 0xE9, 'r', 'e', 'i', 's' };
00264 static const symbol s_6_79[5] = { 0xED, 'r', 'e', 'i', 's' };
00265 static const symbol s_6_80[6] = { 0xE1, 's', 's', 'e', 'i', 's' };
00266 static const symbol s_6_81[6] = { 0xE9, 's', 's', 'e', 'i', 's' };
00267 static const symbol s_6_82[6] = { 0xED, 's', 's', 'e', 'i', 's' };
00268 static const symbol s_6_83[5] = { 0xE1, 'v', 'e', 'i', 's' };
00269 static const symbol s_6_84[4] = { 0xED, 'e', 'i', 's' };
00270 static const symbol s_6_85[6] = { 'a', 'r', 0xED, 'e', 'i', 's' };
00271 static const symbol s_6_86[6] = { 'e', 'r', 0xED, 'e', 'i', 's' };
00272 static const symbol s_6_87[6] = { 'i', 'r', 0xED, '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[6] = { 0xE1, 'r', 'a', 'm', 'o', 's' };
00277 static const symbol s_6_92[6] = { 0xE9, 'r', 'a', 'm', 'o', 's' };
00278 static const symbol s_6_93[6] = { 0xED, 'r', 'a', 'm', 'o', 's' };
00279 static const symbol s_6_94[6] = { 0xE1, 'v', 'a', 'm', 'o', 's' };
00280 static const symbol s_6_95[5] = { 0xED, 'a', 'm', 'o', 's' };
00281 static const symbol s_6_96[7] = { 'a', 'r', 0xED, 'a', 'm', 'o', 's' };
00282 static const symbol s_6_97[7] = { 'e', 'r', 0xED, 'a', 'm', 'o', 's' };
00283 static const symbol s_6_98[7] = { 'i', 'r', 0xED, '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[7] = { 0xE1, 's', 's', 'e', 'm', 'o', 's' };
00289 static const symbol s_6_104[7] = { 0xEA, 's', 's', 'e', 'm', 'o', 's' };
00290 static const symbol s_6_105[7] = { 0xED, '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[4] = { 0xE1, 'm', 'o', 's' };
00296 static const symbol s_6_111[4] = { 'a', 'r', 0xE1, 's' };
00297 static const symbol s_6_112[4] = { 'e', 'r', 0xE1, 's' };
00298 static const symbol s_6_113[4] = { 'i', 'r', 0xE1, '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[3] = { 'a', 'r', 0xE1 };
00303 static const symbol s_6_118[3] = { 'e', 'r', 0xE1 };
00304 static const symbol s_6_119[3] = { 'i', 'r', 0xE1 };
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 { 5, s_6_77, 73, 1, 0},
00386 { 5, s_6_78, 73, 1, 0},
00387 { 5, s_6_79, 73, 1, 0},
00388 { 6, s_6_80, 73, 1, 0},
00389 { 6, s_6_81, 73, 1, 0},
00390 { 6, s_6_82, 73, 1, 0},
00391 { 5, s_6_83, 73, 1, 0},
00392 { 4, s_6_84, 73, 1, 0},
00393 { 6, s_6_85, 84, 1, 0},
00394 { 6, s_6_86, 84, 1, 0},
00395 { 6, 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 { 6, s_6_91, 90, 1, 0},
00400 { 6, s_6_92, 90, 1, 0},
00401 { 6, s_6_93, 90, 1, 0},
00402 { 6, s_6_94, 90, 1, 0},
00403 { 5, s_6_95, 90, 1, 0},
00404 { 7, s_6_96, 95, 1, 0},
00405 { 7, s_6_97, 95, 1, 0},
00406 { 7, 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 { 7, s_6_103, 99, 1, 0},
00412 { 7, s_6_104, 99, 1, 0},
00413 { 7, 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 { 4, s_6_110, -1, 1, 0},
00419 { 4, s_6_111, -1, 1, 0},
00420 { 4, s_6_112, -1, 1, 0},
00421 { 4, 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 { 3, s_6_117, -1, 1, 0},
00426 { 3, s_6_118, -1, 1, 0},
00427 { 3, 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[1] = { 0xE1 };
00435 static const symbol s_7_5[1] = { 0xED };
00436 static const symbol s_7_6[1] = { 0xF3 };
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 { 1, s_7_4, -1, 1, 0},
00445 { 1, s_7_5, -1, 1, 0},
00446 { 1, s_7_6, -1, 1, 0}
00447 };
00448
00449 static const symbol s_8_0[1] = { 'e' };
00450 static const symbol s_8_1[1] = { 0xE7 };
00451 static const symbol s_8_2[1] = { 0xE9 };
00452 static const symbol s_8_3[1] = { 0xEA };
00453
00454 static const struct among a_8[4] =
00455 {
00456 { 1, s_8_0, -1, 1, 0},
00457 { 1, s_8_1, -1, 2, 0},
00458 { 1, s_8_2, -1, 1, 0},
00459 { 1, 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[] = { 0xE3 };
00467 static const symbol s_3[] = { 0xF5 };
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 >= z->l || (z->p[z->c + 0] != 227 && z->p[z->c + 0] != 245)) 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 if (z->c >= z->l) goto lab0;
00506 z->c++;
00507 break;
00508 }
00509 continue;
00510 lab0:
00511 z->c = c1;
00512 break;
00513 }
00514 return 1;
00515 }
00516
00517 static int r_mark_regions(struct SN_env * z) {
00518 z->I[0] = z->l;
00519 z->I[1] = z->l;
00520 z->I[2] = z->l;
00521 { int c1 = z->c;
00522 { int c2 = z->c;
00523 if (in_grouping(z, g_v, 97, 250, 0)) goto lab2;
00524 { int c3 = z->c;
00525 if (out_grouping(z, g_v, 97, 250, 0)) goto lab4;
00526 {
00527 int ret = out_grouping(z, g_v, 97, 250, 1);
00528 if (ret < 0) goto lab4;
00529 z->c += ret;
00530 }
00531 goto lab3;
00532 lab4:
00533 z->c = c3;
00534 if (in_grouping(z, g_v, 97, 250, 0)) goto lab2;
00535 {
00536 int ret = in_grouping(z, g_v, 97, 250, 1);
00537 if (ret < 0) goto lab2;
00538 z->c += ret;
00539 }
00540 }
00541 lab3:
00542 goto lab1;
00543 lab2:
00544 z->c = c2;
00545 if (out_grouping(z, g_v, 97, 250, 0)) goto lab0;
00546 { int c4 = z->c;
00547 if (out_grouping(z, g_v, 97, 250, 0)) goto lab6;
00548 {
00549 int ret = out_grouping(z, g_v, 97, 250, 1);
00550 if (ret < 0) goto lab6;
00551 z->c += ret;
00552 }
00553 goto lab5;
00554 lab6:
00555 z->c = c4;
00556 if (in_grouping(z, g_v, 97, 250, 0)) goto lab0;
00557 if (z->c >= z->l) goto lab0;
00558 z->c++;
00559 }
00560 lab5:
00561 ;
00562 }
00563 lab1:
00564 z->I[0] = z->c;
00565 lab0:
00566 z->c = c1;
00567 }
00568 { int c5 = z->c;
00569 {
00570 int ret = out_grouping(z, g_v, 97, 250, 1);
00571 if (ret < 0) goto lab7;
00572 z->c += ret;
00573 }
00574 {
00575 int ret = in_grouping(z, g_v, 97, 250, 1);
00576 if (ret < 0) goto lab7;
00577 z->c += ret;
00578 }
00579 z->I[1] = z->c;
00580 {
00581 int ret = out_grouping(z, g_v, 97, 250, 1);
00582 if (ret < 0) goto lab7;
00583 z->c += ret;
00584 }
00585 {
00586 int ret = in_grouping(z, g_v, 97, 250, 1);
00587 if (ret < 0) goto lab7;
00588 z->c += ret;
00589 }
00590 z->I[2] = z->c;
00591 lab7:
00592 z->c = c5;
00593 }
00594 return 1;
00595 }
00596
00597 static int r_postlude(struct SN_env * z) {
00598 int among_var;
00599 while(1) {
00600 int c1 = z->c;
00601 z->bra = z->c;
00602 if (z->c + 1 >= z->l || z->p[z->c + 1] != 126) among_var = 3; else
00603 among_var = find_among(z, a_1, 3);
00604 if (!(among_var)) goto lab0;
00605 z->ket = z->c;
00606 switch(among_var) {
00607 case 0: goto lab0;
00608 case 1:
00609 { int ret = slice_from_s(z, 1, s_2);
00610 if (ret < 0) return ret;
00611 }
00612 break;
00613 case 2:
00614 { int ret = slice_from_s(z, 1, s_3);
00615 if (ret < 0) return ret;
00616 }
00617 break;
00618 case 3:
00619 if (z->c >= z->l) goto lab0;
00620 z->c++;
00621 break;
00622 }
00623 continue;
00624 lab0:
00625 z->c = c1;
00626 break;
00627 }
00628 return 1;
00629 }
00630
00631 static int r_RV(struct SN_env * z) {
00632 if (!(z->I[0] <= z->c)) return 0;
00633 return 1;
00634 }
00635
00636 static int r_R1(struct SN_env * z) {
00637 if (!(z->I[1] <= z->c)) return 0;
00638 return 1;
00639 }
00640
00641 static int r_R2(struct SN_env * z) {
00642 if (!(z->I[2] <= z->c)) return 0;
00643 return 1;
00644 }
00645
00646 static int r_standard_suffix(struct SN_env * z) {
00647 int among_var;
00648 z->ket = z->c;
00649 if (z->c - 2 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((839714 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
00650 among_var = find_among_b(z, a_5, 45);
00651 if (!(among_var)) return 0;
00652 z->bra = z->c;
00653 switch(among_var) {
00654 case 0: return 0;
00655 case 1:
00656 { int ret = r_R2(z);
00657 if (ret == 0) return 0;
00658 if (ret < 0) return ret;
00659 }
00660 { int ret = slice_del(z);
00661 if (ret < 0) return ret;
00662 }
00663 break;
00664 case 2:
00665 { int ret = r_R2(z);
00666 if (ret == 0) return 0;
00667 if (ret < 0) return ret;
00668 }
00669 { int ret = slice_from_s(z, 3, s_4);
00670 if (ret < 0) return ret;
00671 }
00672 break;
00673 case 3:
00674 { int ret = r_R2(z);
00675 if (ret == 0) return 0;
00676 if (ret < 0) return ret;
00677 }
00678 { int ret = slice_from_s(z, 1, s_5);
00679 if (ret < 0) return ret;
00680 }
00681 break;
00682 case 4:
00683 { int ret = r_R2(z);
00684 if (ret == 0) return 0;
00685 if (ret < 0) return ret;
00686 }
00687 { int ret = slice_from_s(z, 4, s_6);
00688 if (ret < 0) return ret;
00689 }
00690 break;
00691 case 5:
00692 { int ret = r_R1(z);
00693 if (ret == 0) return 0;
00694 if (ret < 0) return ret;
00695 }
00696 { int ret = slice_del(z);
00697 if (ret < 0) return ret;
00698 }
00699 { int m_keep = z->l - z->c;
00700 z->ket = z->c;
00701 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; }
00702 among_var = find_among_b(z, a_2, 4);
00703 if (!(among_var)) { z->c = z->l - m_keep; goto lab0; }
00704 z->bra = z->c;
00705 { int ret = r_R2(z);
00706 if (ret == 0) { z->c = z->l - m_keep; goto lab0; }
00707 if (ret < 0) return ret;
00708 }
00709 { int ret = slice_del(z);
00710 if (ret < 0) return ret;
00711 }
00712 switch(among_var) {
00713 case 0: { z->c = z->l - m_keep; goto lab0; }
00714 case 1:
00715 z->ket = z->c;
00716 if (!(eq_s_b(z, 2, s_7))) { z->c = z->l - m_keep; goto lab0; }
00717 z->bra = z->c;
00718 { int ret = r_R2(z);
00719 if (ret == 0) { z->c = z->l - m_keep; goto lab0; }
00720 if (ret < 0) return ret;
00721 }
00722 { int ret = slice_del(z);
00723 if (ret < 0) return ret;
00724 }
00725 break;
00726 }
00727 lab0:
00728 ;
00729 }
00730 break;
00731 case 6:
00732 { int ret = r_R2(z);
00733 if (ret == 0) return 0;
00734 if (ret < 0) return ret;
00735 }
00736 { int ret = slice_del(z);
00737 if (ret < 0) return ret;
00738 }
00739 { int m_keep = z->l - z->c;
00740 z->ket = z->c;
00741 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; }
00742 among_var = find_among_b(z, a_3, 3);
00743 if (!(among_var)) { z->c = z->l - m_keep; goto lab1; }
00744 z->bra = z->c;
00745 switch(among_var) {
00746 case 0: { z->c = z->l - m_keep; goto lab1; }
00747 case 1:
00748 { int ret = r_R2(z);
00749 if (ret == 0) { z->c = z->l - m_keep; goto lab1; }
00750 if (ret < 0) return ret;
00751 }
00752 { int ret = slice_del(z);
00753 if (ret < 0) return ret;
00754 }
00755 break;
00756 }
00757 lab1:
00758 ;
00759 }
00760 break;
00761 case 7:
00762 { int ret = r_R2(z);
00763 if (ret == 0) return 0;
00764 if (ret < 0) return ret;
00765 }
00766 { int ret = slice_del(z);
00767 if (ret < 0) return ret;
00768 }
00769 { int m_keep = z->l - z->c;
00770 z->ket = z->c;
00771 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; }
00772 among_var = find_among_b(z, a_4, 3);
00773 if (!(among_var)) { z->c = z->l - m_keep; goto lab2; }
00774 z->bra = z->c;
00775 switch(among_var) {
00776 case 0: { z->c = z->l - m_keep; goto lab2; }
00777 case 1:
00778 { int ret = r_R2(z);
00779 if (ret == 0) { z->c = z->l - m_keep; goto lab2; }
00780 if (ret < 0) return ret;
00781 }
00782 { int ret = slice_del(z);
00783 if (ret < 0) return ret;
00784 }
00785 break;
00786 }
00787 lab2:
00788 ;
00789 }
00790 break;
00791 case 8:
00792 { int ret = r_R2(z);
00793 if (ret == 0) return 0;
00794 if (ret < 0) return ret;
00795 }
00796 { int ret = slice_del(z);
00797 if (ret < 0) return ret;
00798 }
00799 { int m_keep = z->l - z->c;
00800 z->ket = z->c;
00801 if (!(eq_s_b(z, 2, s_8))) { z->c = z->l - m_keep; goto lab3; }
00802 z->bra = z->c;
00803 { int ret = r_R2(z);
00804 if (ret == 0) { z->c = z->l - m_keep; goto lab3; }
00805 if (ret < 0) return ret;
00806 }
00807 { int ret = slice_del(z);
00808 if (ret < 0) return ret;
00809 }
00810 lab3:
00811 ;
00812 }
00813 break;
00814 case 9:
00815 { int ret = r_RV(z);
00816 if (ret == 0) return 0;
00817 if (ret < 0) return ret;
00818 }
00819 if (!(eq_s_b(z, 1, s_9))) return 0;
00820 { int ret = slice_from_s(z, 2, s_10);
00821 if (ret < 0) return ret;
00822 }
00823 break;
00824 }
00825 return 1;
00826 }
00827
00828 static int r_verb_suffix(struct SN_env * z) {
00829 int among_var;
00830 { int mlimit;
00831 int m1 = z->l - z->c; (void)m1;
00832 if (z->c < z->I[0]) return 0;
00833 z->c = z->I[0];
00834 mlimit = z->lb; z->lb = z->c;
00835 z->c = z->l - m1;
00836 z->ket = z->c;
00837 among_var = find_among_b(z, a_6, 120);
00838 if (!(among_var)) { z->lb = mlimit; return 0; }
00839 z->bra = z->c;
00840 switch(among_var) {
00841 case 0: { z->lb = mlimit; return 0; }
00842 case 1:
00843 { int ret = slice_del(z);
00844 if (ret < 0) return ret;
00845 }
00846 break;
00847 }
00848 z->lb = mlimit;
00849 }
00850 return 1;
00851 }
00852
00853 static int r_residual_suffix(struct SN_env * z) {
00854 int among_var;
00855 z->ket = z->c;
00856 among_var = find_among_b(z, a_7, 7);
00857 if (!(among_var)) return 0;
00858 z->bra = z->c;
00859 switch(among_var) {
00860 case 0: return 0;
00861 case 1:
00862 { int ret = r_RV(z);
00863 if (ret == 0) return 0;
00864 if (ret < 0) return ret;
00865 }
00866 { int ret = slice_del(z);
00867 if (ret < 0) return ret;
00868 }
00869 break;
00870 }
00871 return 1;
00872 }
00873
00874 static int r_residual_form(struct SN_env * z) {
00875 int among_var;
00876 z->ket = z->c;
00877 among_var = find_among_b(z, a_8, 4);
00878 if (!(among_var)) return 0;
00879 z->bra = z->c;
00880 switch(among_var) {
00881 case 0: return 0;
00882 case 1:
00883 { int ret = r_RV(z);
00884 if (ret == 0) return 0;
00885 if (ret < 0) return ret;
00886 }
00887 { int ret = slice_del(z);
00888 if (ret < 0) return ret;
00889 }
00890 z->ket = z->c;
00891 { int m1 = z->l - z->c; (void)m1;
00892 if (!(eq_s_b(z, 1, s_11))) goto lab1;
00893 z->bra = z->c;
00894 { int m_test = z->l - z->c;
00895 if (!(eq_s_b(z, 1, s_12))) goto lab1;
00896 z->c = z->l - m_test;
00897 }
00898 goto lab0;
00899 lab1:
00900 z->c = z->l - m1;
00901 if (!(eq_s_b(z, 1, s_13))) return 0;
00902 z->bra = z->c;
00903 { int m_test = z->l - z->c;
00904 if (!(eq_s_b(z, 1, s_14))) return 0;
00905 z->c = z->l - m_test;
00906 }
00907 }
00908 lab0:
00909 { int ret = r_RV(z);
00910 if (ret == 0) return 0;
00911 if (ret < 0) return ret;
00912 }
00913 { int ret = slice_del(z);
00914 if (ret < 0) return ret;
00915 }
00916 break;
00917 case 2:
00918 { int ret = slice_from_s(z, 1, s_15);
00919 if (ret < 0) return ret;
00920 }
00921 break;
00922 }
00923 return 1;
00924 }
00925
00926 extern int portuguese_ISO_8859_1_stem(struct SN_env * z) {
00927 { int c1 = z->c;
00928 { int ret = r_prelude(z);
00929 if (ret == 0) goto lab0;
00930 if (ret < 0) return ret;
00931 }
00932 lab0:
00933 z->c = c1;
00934 }
00935 { int c2 = z->c;
00936 { int ret = r_mark_regions(z);
00937 if (ret == 0) goto lab1;
00938 if (ret < 0) return ret;
00939 }
00940 lab1:
00941 z->c = c2;
00942 }
00943 z->lb = z->c; z->c = z->l;
00944
00945 { int m3 = z->l - z->c; (void)m3;
00946 { int m4 = z->l - z->c; (void)m4;
00947 { int m5 = z->l - z->c; (void)m5;
00948 { int m6 = z->l - z->c; (void)m6;
00949 { int ret = r_standard_suffix(z);
00950 if (ret == 0) goto lab6;
00951 if (ret < 0) return ret;
00952 }
00953 goto lab5;
00954 lab6:
00955 z->c = z->l - m6;
00956 { int ret = r_verb_suffix(z);
00957 if (ret == 0) goto lab4;
00958 if (ret < 0) return ret;
00959 }
00960 }
00961 lab5:
00962 z->c = z->l - m5;
00963 { int m7 = z->l - z->c; (void)m7;
00964 z->ket = z->c;
00965 if (!(eq_s_b(z, 1, s_16))) goto lab7;
00966 z->bra = z->c;
00967 { int m_test = z->l - z->c;
00968 if (!(eq_s_b(z, 1, s_17))) goto lab7;
00969 z->c = z->l - m_test;
00970 }
00971 { int ret = r_RV(z);
00972 if (ret == 0) goto lab7;
00973 if (ret < 0) return ret;
00974 }
00975 { int ret = slice_del(z);
00976 if (ret < 0) return ret;
00977 }
00978 lab7:
00979 z->c = z->l - m7;
00980 }
00981 }
00982 goto lab3;
00983 lab4:
00984 z->c = z->l - m4;
00985 { int ret = r_residual_suffix(z);
00986 if (ret == 0) goto lab2;
00987 if (ret < 0) return ret;
00988 }
00989 }
00990 lab3:
00991 lab2:
00992 z->c = z->l - m3;
00993 }
00994 { int m8 = z->l - z->c; (void)m8;
00995 { int ret = r_residual_form(z);
00996 if (ret == 0) goto lab8;
00997 if (ret < 0) return ret;
00998 }
00999 lab8:
01000 z->c = z->l - m8;
01001 }
01002 z->c = z->lb;
01003 { int c9 = z->c;
01004 { int ret = r_postlude(z);
01005 if (ret == 0) goto lab9;
01006 if (ret < 0) return ret;
01007 }
01008 lab9:
01009 z->c = c9;
01010 }
01011 return 1;
01012 }
01013
01014 extern struct SN_env * portuguese_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); }
01015
01016 extern void portuguese_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
01017