00001
00002
00003 #include <limits.h>
00004 #include "spanish.h"
00005
00006 static const symbol s_pool[] = {
00007 #define s_0_1 0
00008 0xC3, 0xA1,
00009 #define s_0_2 2
00010 0xC3, 0xA9,
00011 #define s_0_3 4
00012 0xC3, 0xAD,
00013 #define s_0_4 6
00014 0xC3, 0xB3,
00015 #define s_0_5 8
00016 0xC3, 0xBA,
00017 #define s_1_0 (s_1_1 + 2)
00018 #define s_1_1 s_1_8
00019 #define s_1_2 s_1_9
00020 #define s_1_3 10
00021 'm', 'e',
00022 #define s_1_4 s_1_1
00023 #define s_1_5 (s_1_6 + 2)
00024 #define s_1_6 s_1_11
00025 #define s_1_7 (s_1_8 + 2)
00026 #define s_1_8 12
00027 's', 'e', 'l', 'a', 's',
00028 #define s_1_9 17
00029 'l', 'e', 's',
00030 #define s_1_10 (s_1_11 + 2)
00031 #define s_1_11 20
00032 's', 'e', 'l', 'o', 's',
00033 #define s_1_12 25
00034 'n', 'o', 's',
00035 #define s_2_0 28
00036 'a', 'n', 'd', 'o',
00037 #define s_2_1 32
00038 'i', 'e', 'n', 'd', 'o',
00039 #define s_2_2 37
00040 'y', 'e', 'n', 'd', 'o',
00041 #define s_2_3 42
00042 0xC3, 0xA1, 'n', 'd', 'o',
00043 #define s_2_4 47
00044 'i', 0xC3, 0xA9, 'n', 'd', 'o',
00045 #define s_2_5 53
00046 'a', 'r',
00047 #define s_2_6 55
00048 'e', 'r',
00049 #define s_2_7 57
00050 'i', 'r',
00051 #define s_2_8 59
00052 0xC3, 0xA1, 'r',
00053 #define s_2_9 62
00054 0xC3, 0xA9, 'r',
00055 #define s_2_10 65
00056 0xC3, 0xAD, 'r',
00057 #define s_3_0 68
00058 'i', 'c',
00059 #define s_3_1 70
00060 'a', 'd',
00061 #define s_3_2 72
00062 'o', 's',
00063 #define s_3_3 74
00064 'i', 'v',
00065 #define s_4_0 76
00066 'a', 'b', 'l', 'e',
00067 #define s_4_1 80
00068 'i', 'b', 'l', 'e',
00069 #define s_4_2 84
00070 'a', 'n', 't', 'e',
00071 #define s_5_0 88
00072 'i', 'c',
00073 #define s_5_1 90
00074 'a', 'b', 'i', 'l',
00075 #define s_5_2 94
00076 'i', 'v',
00077 #define s_6_0 s_6_24
00078 #define s_6_1 s_6_25
00079 #define s_6_2 s_6_26
00080 #define s_6_3 s_6_27
00081 #define s_6_4 s_6_28
00082 #define s_6_5 s_6_29
00083 #define s_6_6 s_6_30
00084 #define s_6_7 s_6_31
00085 #define s_6_8 s_6_32
00086 #define s_6_9 s_6_33
00087 #define s_6_10 s_6_34
00088 #define s_6_11 s_6_35
00089 #define s_6_12 s_6_39
00090 #define s_6_13 (s_6_14 + 1)
00091 #define s_6_14 96
00092 'a', 'm', 'e', 'n', 't', 'e',
00093 #define s_6_15 102
00094 'a', 'c', 'i', 0xC3, 0xB3, 'n',
00095 #define s_6_16 108
00096 'u', 'c', 'i', 0xC3, 0xB3, 'n',
00097 #define s_6_17 s_6_40
00098 #define s_6_18 s_6_41
00099 #define s_6_19 s_6_42
00100 #define s_6_20 s_6_43
00101 #define s_6_21 s_6_44
00102 #define s_6_22 s_6_45
00103 #define s_6_23 s_6_3
00104 #define s_6_24 114
00105 'i', 'c', 'a', 's',
00106 #define s_6_25 118
00107 'a', 'n', 'c', 'i', 'a', 's',
00108 #define s_6_26 124
00109 'e', 'n', 'c', 'i', 'a', 's',
00110 #define s_6_27 130
00111 'a', 'd', 'o', 'r', 'a', 's',
00112 #define s_6_28 136
00113 'o', 's', 'a', 's',
00114 #define s_6_29 140
00115 'i', 's', 't', 'a', 's',
00116 #define s_6_30 145
00117 'i', 'v', 'a', 's',
00118 #define s_6_31 149
00119 'a', 'n', 'z', 'a', 's',
00120 #define s_6_32 154
00121 'l', 'o', 'g', 0xC3, 0xAD, 'a', 's',
00122 #define s_6_33 161
00123 'i', 'd', 'a', 'd', 'e', 's',
00124 #define s_6_34 167
00125 'a', 'b', 'l', 'e', 's',
00126 #define s_6_35 172
00127 'i', 'b', 'l', 'e', 's',
00128 #define s_6_36 177
00129 'a', 'c', 'i', 'o', 'n', 'e', 's',
00130 #define s_6_37 184
00131 'u', 'c', 'i', 'o', 'n', 'e', 's',
00132 #define s_6_38 191
00133 'a', 'd', 'o', 'r', 'e', 's',
00134 #define s_6_39 197
00135 'a', 'n', 't', 'e', 's',
00136 #define s_6_40 202
00137 'i', 'c', 'o', 's',
00138 #define s_6_41 206
00139 'i', 's', 'm', 'o', 's',
00140 #define s_6_42 211
00141 'o', 's', 'o', 's',
00142 #define s_6_43 215
00143 'a', 'm', 'i', 'e', 'n', 't', 'o', 's',
00144 #define s_6_44 223
00145 'i', 'm', 'i', 'e', 'n', 't', 'o', 's',
00146 #define s_6_45 231
00147 'i', 'v', 'o', 's',
00148 #define s_7_0 s_7_2
00149 #define s_7_1 s_7_3
00150 #define s_7_2 235
00151 'y', 'a', 'n',
00152 #define s_7_3 s_7_5
00153 #define s_7_4 238
00154 'y', 'e', 'r', 'o', 'n',
00155 #define s_7_5 243
00156 'y', 'e', 'n', 'd', 'o',
00157 #define s_7_6 248
00158 'y', 'o',
00159 #define s_7_7 250
00160 'y', 'a', 's',
00161 #define s_7_8 253
00162 'y', 'e', 's',
00163 #define s_7_9 256
00164 'y', 'a', 'i', 's',
00165 #define s_7_10 260
00166 'y', 'a', 'm', 'o', 's',
00167 #define s_7_11 265
00168 'y', 0xC3, 0xB3,
00169 #define s_8_0 s_8_17
00170 #define s_8_1 s_8_41
00171 #define s_8_2 s_8_42
00172 #define s_8_3 s_8_18
00173 #define s_8_4 s_8_19
00174 #define s_8_5 (s_8_6 + 2)
00175 #define s_8_6 s_8_21
00176 #define s_8_7 s_8_22
00177 #define s_8_8 s_8_23
00178 #define s_8_9 s_8_1
00179 #define s_8_10 268
00180 'e', 'd',
00181 #define s_8_11 s_8_2
00182 #define s_8_12 s_8_25
00183 #define s_8_13 s_8_26
00184 #define s_8_14 s_8_61
00185 #define s_8_15 s_8_62
00186 #define s_8_16 (s_8_17 + 2)
00187 #define s_8_17 270
00188 'a', 'b', 'a', 'n',
00189 #define s_8_18 274
00190 'a', 'r', 'a', 'n',
00191 #define s_8_19 278
00192 'i', 'e', 'r', 'a', 'n',
00193 #define s_8_20 (s_8_21 + 2)
00194 #define s_8_21 283
00195 'a', 'r', 0xC3, 0xAD, 'a', 'n',
00196 #define s_8_22 289
00197 'e', 'r', 0xC3, 0xAD, 'a', 'n',
00198 #define s_8_23 295
00199 'i', 'r', 0xC3, 0xAD, 'a', 'n',
00200 #define s_8_24 (s_8_25 + 2)
00201 #define s_8_25 301
00202 'a', 's', 'e', 'n',
00203 #define s_8_26 305
00204 'i', 'e', 's', 'e', 'n',
00205 #define s_8_27 310
00206 'a', 'r', 'o', 'n',
00207 #define s_8_28 314
00208 'i', 'e', 'r', 'o', 'n',
00209 #define s_8_29 319
00210 'a', 'r', 0xC3, 0xA1, 'n',
00211 #define s_8_30 324
00212 'e', 'r', 0xC3, 0xA1, 'n',
00213 #define s_8_31 329
00214 'i', 'r', 0xC3, 0xA1, 'n',
00215 #define s_8_32 s_8_68
00216 #define s_8_33 s_8_69
00217 #define s_8_34 334
00218 'a', 'n', 'd', 'o',
00219 #define s_8_35 338
00220 'i', 'e', 'n', 'd', 'o',
00221 #define s_8_36 s_8_3
00222 #define s_8_37 (s_8_4 + 1)
00223 #define s_8_38 s_8_8
00224 #define s_8_39 s_8_12
00225 #define s_8_40 343
00226 'a', 'b', 'a', 's',
00227 #define s_8_41 347
00228 'a', 'd', 'a', 's',
00229 #define s_8_42 351
00230 'i', 'd', 'a', 's',
00231 #define s_8_43 355
00232 'a', 'r', 'a', 's',
00233 #define s_8_44 359
00234 'i', 'e', 'r', 'a', 's',
00235 #define s_8_45 (s_8_46 + 2)
00236 #define s_8_46 364
00237 'a', 'r', 0xC3, 0xAD, 'a', 's',
00238 #define s_8_47 370
00239 'e', 'r', 0xC3, 0xAD, 'a', 's',
00240 #define s_8_48 376
00241 'i', 'r', 0xC3, 0xAD, 'a', 's',
00242 #define s_8_49 (s_8_13 + 1)
00243 #define s_8_50 382
00244 'a', 's', 'e', 's',
00245 #define s_8_51 386
00246 'i', 'e', 's', 'e', 's',
00247 #define s_8_52 391
00248 'a', 'b', 'a', 'i', 's',
00249 #define s_8_53 396
00250 'a', 'r', 'a', 'i', 's',
00251 #define s_8_54 401
00252 'i', 'e', 'r', 'a', 'i', 's',
00253 #define s_8_55 (s_8_56 + 2)
00254 #define s_8_56 407
00255 'a', 'r', 0xC3, 0xAD, 'a', 'i', 's',
00256 #define s_8_57 414
00257 'e', 'r', 0xC3, 0xAD, 'a', 'i', 's',
00258 #define s_8_58 421
00259 'i', 'r', 0xC3, 0xAD, 'a', 'i', 's',
00260 #define s_8_59 428
00261 'a', 's', 'e', 'i', 's',
00262 #define s_8_60 433
00263 'i', 'e', 's', 'e', 'i', 's',
00264 #define s_8_61 439
00265 'a', 's', 't', 'e', 'i', 's',
00266 #define s_8_62 445
00267 'i', 's', 't', 'e', 'i', 's',
00268 #define s_8_63 451
00269 0xC3, 0xA1, 'i', 's',
00270 #define s_8_64 (s_8_65 + 2)
00271 #define s_8_65 455
00272 'a', 'r', 0xC3, 0xA9, 'i', 's',
00273 #define s_8_66 461
00274 'e', 'r', 0xC3, 0xA9, 'i', 's',
00275 #define s_8_67 467
00276 'i', 'r', 0xC3, 0xA9, 'i', 's',
00277 #define s_8_68 473
00278 'a', 'd', 'o', 's',
00279 #define s_8_69 477
00280 'i', 'd', 'o', 's',
00281 #define s_8_70 (s_8_71 + 3)
00282 #define s_8_71 481
00283 0xC3, 0xA1, 'b', 'a', 'm', 'o', 's',
00284 #define s_8_72 488
00285 0xC3, 0xA1, 'r', 'a', 'm', 'o', 's',
00286 #define s_8_73 495
00287 'i', 0xC3, 0xA9, 'r', 'a', 'm', 'o', 's',
00288 #define s_8_74 (s_8_75 + 2)
00289 #define s_8_75 503
00290 'a', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's',
00291 #define s_8_76 511
00292 'e', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's',
00293 #define s_8_77 519
00294 'i', 'r', 0xC3, 0xAD, 'a', 'm', 'o', 's',
00295 #define s_8_78 (s_8_79 + 2)
00296 #define s_8_79 527
00297 'a', 'r', 'e', 'm', 'o', 's',
00298 #define s_8_80 533
00299 'e', 'r', 'e', 'm', 'o', 's',
00300 #define s_8_81 539
00301 'i', 'r', 'e', 'm', 'o', 's',
00302 #define s_8_82 545
00303 0xC3, 0xA1, 's', 'e', 'm', 'o', 's',
00304 #define s_8_83 552
00305 'i', 0xC3, 0xA9, 's', 'e', 'm', 'o', 's',
00306 #define s_8_84 560
00307 'i', 'm', 'o', 's',
00308 #define s_8_85 564
00309 'a', 'r', 0xC3, 0xA1, 's',
00310 #define s_8_86 569
00311 'e', 'r', 0xC3, 0xA1, 's',
00312 #define s_8_87 574
00313 'i', 'r', 0xC3, 0xA1, 's',
00314 #define s_8_88 579
00315 0xC3, 0xAD, 's',
00316 #define s_8_89 s_8_29
00317 #define s_8_90 s_8_30
00318 #define s_8_91 s_8_31
00319 #define s_8_92 s_8_65
00320 #define s_8_93 s_8_66
00321 #define s_8_94 s_8_67
00322 #define s_8_95 582
00323 'i', 0xC3, 0xB3,
00324 #define s_9_0 585
00325 'a',
00326 #define s_9_1 586
00327 'e',
00328 #define s_9_2 s_9_3
00329 #define s_9_3 587
00330 'o', 's',
00331 #define s_9_4 589
00332 0xC3, 0xA1,
00333 #define s_9_5 591
00334 0xC3, 0xA9,
00335 #define s_9_6 593
00336 0xC3, 0xAD,
00337 #define s_9_7 595
00338 0xC3, 0xB3,
00339 };
00340
00341
00342 static const struct among a_0[6] =
00343 {
00344 { 0, 0, -1, 6},
00345 { 2, s_0_1, 0, 1},
00346 { 2, s_0_2, 0, 2},
00347 { 2, s_0_3, 0, 3},
00348 { 2, s_0_4, 0, 4},
00349 { 2, s_0_5, 0, 5}
00350 };
00351
00352
00353 static const struct among a_1[13] =
00354 {
00355 { 2, s_1_0, -1, -1},
00356 { 4, s_1_1, 0, -1},
00357 { 2, s_1_2, -1, -1},
00358 { 2, s_1_3, -1, -1},
00359 { 2, s_1_4, -1, -1},
00360 { 2, s_1_5, -1, -1},
00361 { 4, s_1_6, 5, -1},
00362 { 3, s_1_7, -1, -1},
00363 { 5, s_1_8, 7, -1},
00364 { 3, s_1_9, -1, -1},
00365 { 3, s_1_10, -1, -1},
00366 { 5, s_1_11, 10, -1},
00367 { 3, s_1_12, -1, -1}
00368 };
00369
00370
00371 static const struct among a_2[11] =
00372 {
00373 { 4, s_2_0, -1, 6},
00374 { 5, s_2_1, -1, 6},
00375 { 5, s_2_2, -1, 7},
00376 { 5, s_2_3, -1, 2},
00377 { 6, s_2_4, -1, 1},
00378 { 2, s_2_5, -1, 6},
00379 { 2, s_2_6, -1, 6},
00380 { 2, s_2_7, -1, 6},
00381 { 3, s_2_8, -1, 3},
00382 { 3, s_2_9, -1, 4},
00383 { 3, s_2_10, -1, 5}
00384 };
00385
00386
00387 static const struct among a_3[4] =
00388 {
00389 { 2, s_3_0, -1, -1},
00390 { 2, s_3_1, -1, -1},
00391 { 2, s_3_2, -1, -1},
00392 { 2, s_3_3, -1, 1}
00393 };
00394
00395
00396 static const struct among a_4[3] =
00397 {
00398 { 4, s_4_0, -1, 1},
00399 { 4, s_4_1, -1, 1},
00400 { 4, s_4_2, -1, 1}
00401 };
00402
00403
00404 static const struct among a_5[3] =
00405 {
00406 { 2, s_5_0, -1, 1},
00407 { 4, s_5_1, -1, 1},
00408 { 2, s_5_2, -1, 1}
00409 };
00410
00411
00412 static const struct among a_6[46] =
00413 {
00414 { 3, s_6_0, -1, 1},
00415 { 5, s_6_1, -1, 2},
00416 { 5, s_6_2, -1, 5},
00417 { 5, s_6_3, -1, 2},
00418 { 3, s_6_4, -1, 1},
00419 { 4, s_6_5, -1, 1},
00420 { 3, s_6_6, -1, 9},
00421 { 4, s_6_7, -1, 1},
00422 { 6, s_6_8, -1, 3},
00423 { 4, s_6_9, -1, 8},
00424 { 4, s_6_10, -1, 1},
00425 { 4, s_6_11, -1, 1},
00426 { 4, s_6_12, -1, 2},
00427 { 5, s_6_13, -1, 7},
00428 { 6, s_6_14, 13, 6},
00429 { 6, s_6_15, -1, 2},
00430 { 6, s_6_16, -1, 4},
00431 { 3, s_6_17, -1, 1},
00432 { 4, s_6_18, -1, 1},
00433 { 3, s_6_19, -1, 1},
00434 { 7, s_6_20, -1, 1},
00435 { 7, s_6_21, -1, 1},
00436 { 3, s_6_22, -1, 9},
00437 { 4, s_6_23, -1, 2},
00438 { 4, s_6_24, -1, 1},
00439 { 6, s_6_25, -1, 2},
00440 { 6, s_6_26, -1, 5},
00441 { 6, s_6_27, -1, 2},
00442 { 4, s_6_28, -1, 1},
00443 { 5, s_6_29, -1, 1},
00444 { 4, s_6_30, -1, 9},
00445 { 5, s_6_31, -1, 1},
00446 { 7, s_6_32, -1, 3},
00447 { 6, s_6_33, -1, 8},
00448 { 5, s_6_34, -1, 1},
00449 { 5, s_6_35, -1, 1},
00450 { 7, s_6_36, -1, 2},
00451 { 7, s_6_37, -1, 4},
00452 { 6, s_6_38, -1, 2},
00453 { 5, s_6_39, -1, 2},
00454 { 4, s_6_40, -1, 1},
00455 { 5, s_6_41, -1, 1},
00456 { 4, s_6_42, -1, 1},
00457 { 8, s_6_43, -1, 1},
00458 { 8, s_6_44, -1, 1},
00459 { 4, s_6_45, -1, 9}
00460 };
00461
00462
00463 static const struct among a_7[12] =
00464 {
00465 { 2, s_7_0, -1, 1},
00466 { 2, s_7_1, -1, 1},
00467 { 3, s_7_2, -1, 1},
00468 { 3, s_7_3, -1, 1},
00469 { 5, s_7_4, -1, 1},
00470 { 5, s_7_5, -1, 1},
00471 { 2, s_7_6, -1, 1},
00472 { 3, s_7_7, -1, 1},
00473 { 3, s_7_8, -1, 1},
00474 { 4, s_7_9, -1, 1},
00475 { 5, s_7_10, -1, 1},
00476 { 3, s_7_11, -1, 1}
00477 };
00478
00479
00480 static const struct among a_8[96] =
00481 {
00482 { 3, s_8_0, -1, 2},
00483 { 3, s_8_1, -1, 2},
00484 { 3, s_8_2, -1, 2},
00485 { 3, s_8_3, -1, 2},
00486 { 4, s_8_4, -1, 2},
00487 { 3, s_8_5, -1, 2},
00488 { 5, s_8_6, 5, 2},
00489 { 5, s_8_7, 5, 2},
00490 { 5, s_8_8, 5, 2},
00491 { 2, s_8_9, -1, 2},
00492 { 2, s_8_10, -1, 2},
00493 { 2, s_8_11, -1, 2},
00494 { 3, s_8_12, -1, 2},
00495 { 4, s_8_13, -1, 2},
00496 { 4, s_8_14, -1, 2},
00497 { 4, s_8_15, -1, 2},
00498 { 2, s_8_16, -1, 2},
00499 { 4, s_8_17, 16, 2},
00500 { 4, s_8_18, 16, 2},
00501 { 5, s_8_19, 16, 2},
00502 { 4, s_8_20, 16, 2},
00503 { 6, s_8_21, 20, 2},
00504 { 6, s_8_22, 20, 2},
00505 { 6, s_8_23, 20, 2},
00506 { 2, s_8_24, -1, 1},
00507 { 4, s_8_25, 24, 2},
00508 { 5, s_8_26, 24, 2},
00509 { 4, s_8_27, -1, 2},
00510 { 5, s_8_28, -1, 2},
00511 { 5, s_8_29, -1, 2},
00512 { 5, s_8_30, -1, 2},
00513 { 5, s_8_31, -1, 2},
00514 { 3, s_8_32, -1, 2},
00515 { 3, s_8_33, -1, 2},
00516 { 4, s_8_34, -1, 2},
00517 { 5, s_8_35, -1, 2},
00518 { 2, s_8_36, -1, 2},
00519 { 2, s_8_37, -1, 2},
00520 { 2, s_8_38, -1, 2},
00521 { 2, s_8_39, -1, 2},
00522 { 4, s_8_40, 39, 2},
00523 { 4, s_8_41, 39, 2},
00524 { 4, s_8_42, 39, 2},
00525 { 4, s_8_43, 39, 2},
00526 { 5, s_8_44, 39, 2},
00527 { 4, s_8_45, 39, 2},
00528 { 6, s_8_46, 45, 2},
00529 { 6, s_8_47, 45, 2},
00530 { 6, s_8_48, 45, 2},
00531 { 2, s_8_49, -1, 1},
00532 { 4, s_8_50, 49, 2},
00533 { 5, s_8_51, 49, 2},
00534 { 5, s_8_52, -1, 2},
00535 { 5, s_8_53, -1, 2},
00536 { 6, s_8_54, -1, 2},
00537 { 5, s_8_55, -1, 2},
00538 { 7, s_8_56, 55, 2},
00539 { 7, s_8_57, 55, 2},
00540 { 7, s_8_58, 55, 2},
00541 { 5, s_8_59, -1, 2},
00542 { 6, s_8_60, -1, 2},
00543 { 6, s_8_61, -1, 2},
00544 { 6, s_8_62, -1, 2},
00545 { 4, s_8_63, -1, 2},
00546 { 4, s_8_64, -1, 1},
00547 { 6, s_8_65, 64, 2},
00548 { 6, s_8_66, 64, 2},
00549 { 6, s_8_67, 64, 2},
00550 { 4, s_8_68, -1, 2},
00551 { 4, s_8_69, -1, 2},
00552 { 4, s_8_70, -1, 2},
00553 { 7, s_8_71, 70, 2},
00554 { 7, s_8_72, 70, 2},
00555 { 8, s_8_73, 70, 2},
00556 { 6, s_8_74, 70, 2},
00557 { 8, s_8_75, 74, 2},
00558 { 8, s_8_76, 74, 2},
00559 { 8, s_8_77, 74, 2},
00560 { 4, s_8_78, -1, 1},
00561 { 6, s_8_79, 78, 2},
00562 { 6, s_8_80, 78, 2},
00563 { 6, s_8_81, 78, 2},
00564 { 7, s_8_82, 78, 2},
00565 { 8, s_8_83, 78, 2},
00566 { 4, s_8_84, -1, 2},
00567 { 5, s_8_85, -1, 2},
00568 { 5, s_8_86, -1, 2},
00569 { 5, s_8_87, -1, 2},
00570 { 3, s_8_88, -1, 2},
00571 { 4, s_8_89, -1, 2},
00572 { 4, s_8_90, -1, 2},
00573 { 4, s_8_91, -1, 2},
00574 { 4, s_8_92, -1, 2},
00575 { 4, s_8_93, -1, 2},
00576 { 4, s_8_94, -1, 2},
00577 { 3, s_8_95, -1, 2}
00578 };
00579
00580
00581 static const struct among a_9[8] =
00582 {
00583 { 1, s_9_0, -1, 1},
00584 { 1, s_9_1, -1, 2},
00585 { 1, s_9_2, -1, 1},
00586 { 2, s_9_3, -1, 1},
00587 { 2, s_9_4, -1, 1},
00588 { 2, s_9_5, -1, 2},
00589 { 2, s_9_6, -1, 1},
00590 { 2, s_9_7, -1, 1}
00591 };
00592
00593 static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 10 };
00594
00595 static const symbol s_0[] = { 'a' };
00596 static const symbol s_1[] = { 'e' };
00597 static const symbol s_2[] = { 'i' };
00598 static const symbol s_3[] = { 'o' };
00599 static const symbol s_4[] = { 'u' };
00600 static const symbol s_5[] = { 'i', 'e', 'n', 'd', 'o' };
00601 static const symbol s_6[] = { 'a', 'n', 'd', 'o' };
00602 static const symbol s_7[] = { 'a', 'r' };
00603 static const symbol s_8[] = { 'e', 'r' };
00604 static const symbol s_9[] = { 'i', 'r' };
00605 static const symbol s_10[] = { 'i', 'c' };
00606 static const symbol s_11[] = { 'l', 'o', 'g' };
00607 static const symbol s_12[] = { 'u' };
00608 static const symbol s_13[] = { 'e', 'n', 't', 'e' };
00609 static const symbol s_14[] = { 'a', 't' };
00610 static const symbol s_15[] = { 'a', 't' };
00611
00612 int Xapian::InternalStemSpanish::r_mark_regions() {
00613 I_pV = l;
00614 I_p1 = l;
00615 I_p2 = l;
00616 { int c1 = c;
00617 { int c2 = c;
00618 if (in_grouping_U(g_v, 97, 252, 0)) goto lab2;
00619 { int c3 = c;
00620 if (out_grouping_U(g_v, 97, 252, 0)) goto lab4;
00621 { int ret = out_grouping_U(g_v, 97, 252, 1);
00622 if (ret < 0) goto lab4;
00623 c += ret;
00624 }
00625 goto lab3;
00626 lab4:
00627 c = c3;
00628 if (in_grouping_U(g_v, 97, 252, 0)) goto lab2;
00629 { int ret = in_grouping_U(g_v, 97, 252, 1);
00630 if (ret < 0) goto lab2;
00631 c += ret;
00632 }
00633 }
00634 lab3:
00635 goto lab1;
00636 lab2:
00637 c = c2;
00638 if (out_grouping_U(g_v, 97, 252, 0)) goto lab0;
00639 { int c4 = c;
00640 if (out_grouping_U(g_v, 97, 252, 0)) goto lab6;
00641 { int ret = out_grouping_U(g_v, 97, 252, 1);
00642 if (ret < 0) goto lab6;
00643 c += ret;
00644 }
00645 goto lab5;
00646 lab6:
00647 c = c4;
00648 if (in_grouping_U(g_v, 97, 252, 0)) goto lab0;
00649 { int ret = skip_utf8(p, c, 0, l, 1);
00650 if (ret < 0) goto lab0;
00651 c = ret;
00652 }
00653 }
00654 lab5:
00655 ;
00656 }
00657 lab1:
00658 I_pV = c;
00659 lab0:
00660 c = c1;
00661 }
00662 { int c5 = c;
00663 { int ret = out_grouping_U(g_v, 97, 252, 1);
00664 if (ret < 0) goto lab7;
00665 c += ret;
00666 }
00667 { int ret = in_grouping_U(g_v, 97, 252, 1);
00668 if (ret < 0) goto lab7;
00669 c += ret;
00670 }
00671 I_p1 = c;
00672 { int ret = out_grouping_U(g_v, 97, 252, 1);
00673 if (ret < 0) goto lab7;
00674 c += ret;
00675 }
00676 { int ret = in_grouping_U(g_v, 97, 252, 1);
00677 if (ret < 0) goto lab7;
00678 c += ret;
00679 }
00680 I_p2 = c;
00681 lab7:
00682 c = c5;
00683 }
00684 return 1;
00685 }
00686
00687 int Xapian::InternalStemSpanish::r_postlude() {
00688 int among_var;
00689 while(1) {
00690 int c1 = c;
00691 bra = c;
00692 if (c + 1 >= l || p[c + 1] >> 5 != 5 || !((67641858 >> (p[c + 1] & 0x1f)) & 1)) among_var = 6; else
00693 among_var = find_among(s_pool, a_0, 6, 0, 0);
00694 if (!(among_var)) goto lab0;
00695 ket = c;
00696 switch(among_var) {
00697 case 0: goto lab0;
00698 case 1:
00699 { int ret = slice_from_s(1, s_0);
00700 if (ret < 0) return ret;
00701 }
00702 break;
00703 case 2:
00704 { int ret = slice_from_s(1, s_1);
00705 if (ret < 0) return ret;
00706 }
00707 break;
00708 case 3:
00709 { int ret = slice_from_s(1, s_2);
00710 if (ret < 0) return ret;
00711 }
00712 break;
00713 case 4:
00714 { int ret = slice_from_s(1, s_3);
00715 if (ret < 0) return ret;
00716 }
00717 break;
00718 case 5:
00719 { int ret = slice_from_s(1, s_4);
00720 if (ret < 0) return ret;
00721 }
00722 break;
00723 case 6:
00724 { int ret = skip_utf8(p, c, 0, l, 1);
00725 if (ret < 0) goto lab0;
00726 c = ret;
00727 }
00728 break;
00729 }
00730 continue;
00731 lab0:
00732 c = c1;
00733 break;
00734 }
00735 return 1;
00736 }
00737
00738 int Xapian::InternalStemSpanish::r_RV() {
00739 if (!(I_pV <= c)) return 0;
00740 return 1;
00741 }
00742
00743 int Xapian::InternalStemSpanish::r_R1() {
00744 if (!(I_p1 <= c)) return 0;
00745 return 1;
00746 }
00747
00748 int Xapian::InternalStemSpanish::r_R2() {
00749 if (!(I_p2 <= c)) return 0;
00750 return 1;
00751 }
00752
00753 int Xapian::InternalStemSpanish::r_attached_pronoun() {
00754 int among_var;
00755 ket = c;
00756 if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((557090 >> (p[c - 1] & 0x1f)) & 1)) return 0;
00757 if (!(find_among_b(s_pool, a_1, 13, 0, 0))) return 0;
00758 bra = c;
00759 if (c - 1 <= lb || (p[c - 1] != 111 && p[c - 1] != 114)) return 0;
00760 among_var = find_among_b(s_pool, a_2, 11, 0, 0);
00761 if (!(among_var)) return 0;
00762 { int ret = r_RV();
00763 if (ret <= 0) return ret;
00764 }
00765 switch(among_var) {
00766 case 0: return 0;
00767 case 1:
00768 bra = c;
00769 { int ret = slice_from_s(5, s_5);
00770 if (ret < 0) return ret;
00771 }
00772 break;
00773 case 2:
00774 bra = c;
00775 { int ret = slice_from_s(4, s_6);
00776 if (ret < 0) return ret;
00777 }
00778 break;
00779 case 3:
00780 bra = c;
00781 { int ret = slice_from_s(2, s_7);
00782 if (ret < 0) return ret;
00783 }
00784 break;
00785 case 4:
00786 bra = c;
00787 { int ret = slice_from_s(2, s_8);
00788 if (ret < 0) return ret;
00789 }
00790 break;
00791 case 5:
00792 bra = c;
00793 { int ret = slice_from_s(2, s_9);
00794 if (ret < 0) return ret;
00795 }
00796 break;
00797 case 6:
00798 if (slice_del() == -1) return -1;
00799 break;
00800 case 7:
00801 if (c <= lb || p[c - 1] != 'u') return 0;
00802 c--;
00803 if (slice_del() == -1) return -1;
00804 break;
00805 }
00806 return 1;
00807 }
00808
00809 int Xapian::InternalStemSpanish::r_standard_suffix() {
00810 int among_var;
00811 ket = c;
00812 if (c - 2 <= lb || p[c - 1] >> 5 != 3 || !((835634 >> (p[c - 1] & 0x1f)) & 1)) return 0;
00813 among_var = find_among_b(s_pool, a_6, 46, 0, 0);
00814 if (!(among_var)) return 0;
00815 bra = c;
00816 switch(among_var) {
00817 case 0: return 0;
00818 case 1:
00819 { int ret = r_R2();
00820 if (ret <= 0) return ret;
00821 }
00822 if (slice_del() == -1) return -1;
00823 break;
00824 case 2:
00825 { int ret = r_R2();
00826 if (ret <= 0) return ret;
00827 }
00828 if (slice_del() == -1) return -1;
00829 { int m1 = l - c; (void)m1;
00830 ket = c;
00831 if (!(eq_s_b(2, s_10))) { c = l - m1; goto lab0; }
00832 bra = c;
00833 { int ret = r_R2();
00834 if (ret == 0) { c = l - m1; goto lab0; }
00835 if (ret < 0) return ret;
00836 }
00837 if (slice_del() == -1) return -1;
00838 lab0:
00839 ;
00840 }
00841 break;
00842 case 3:
00843 { int ret = r_R2();
00844 if (ret <= 0) return ret;
00845 }
00846 { int ret = slice_from_s(3, s_11);
00847 if (ret < 0) return ret;
00848 }
00849 break;
00850 case 4:
00851 { int ret = r_R2();
00852 if (ret <= 0) return ret;
00853 }
00854 { int ret = slice_from_s(1, s_12);
00855 if (ret < 0) return ret;
00856 }
00857 break;
00858 case 5:
00859 { int ret = r_R2();
00860 if (ret <= 0) return ret;
00861 }
00862 { int ret = slice_from_s(4, s_13);
00863 if (ret < 0) return ret;
00864 }
00865 break;
00866 case 6:
00867 { int ret = r_R1();
00868 if (ret <= 0) return ret;
00869 }
00870 if (slice_del() == -1) return -1;
00871 { int m2 = l - c; (void)m2;
00872 ket = c;
00873 if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((4718616 >> (p[c - 1] & 0x1f)) & 1)) { c = l - m2; goto lab1; }
00874 among_var = find_among_b(s_pool, a_3, 4, 0, 0);
00875 if (!(among_var)) { c = l - m2; goto lab1; }
00876 bra = c;
00877 { int ret = r_R2();
00878 if (ret == 0) { c = l - m2; goto lab1; }
00879 if (ret < 0) return ret;
00880 }
00881 if (slice_del() == -1) return -1;
00882 switch(among_var) {
00883 case 0: { c = l - m2; goto lab1; }
00884 case 1:
00885 ket = c;
00886 if (!(eq_s_b(2, s_14))) { c = l - m2; goto lab1; }
00887 bra = c;
00888 { int ret = r_R2();
00889 if (ret == 0) { c = l - m2; goto lab1; }
00890 if (ret < 0) return ret;
00891 }
00892 if (slice_del() == -1) return -1;
00893 break;
00894 }
00895 lab1:
00896 ;
00897 }
00898 break;
00899 case 7:
00900 { int ret = r_R2();
00901 if (ret <= 0) return ret;
00902 }
00903 if (slice_del() == -1) return -1;
00904 { int m3 = l - c; (void)m3;
00905 ket = c;
00906 if (c - 3 <= lb || p[c - 1] != 101) { c = l - m3; goto lab2; }
00907 among_var = find_among_b(s_pool, a_4, 3, 0, 0);
00908 if (!(among_var)) { c = l - m3; goto lab2; }
00909 bra = c;
00910 switch(among_var) {
00911 case 0: { c = l - m3; goto lab2; }
00912 case 1:
00913 { int ret = r_R2();
00914 if (ret == 0) { c = l - m3; goto lab2; }
00915 if (ret < 0) return ret;
00916 }
00917 if (slice_del() == -1) return -1;
00918 break;
00919 }
00920 lab2:
00921 ;
00922 }
00923 break;
00924 case 8:
00925 { int ret = r_R2();
00926 if (ret <= 0) return ret;
00927 }
00928 if (slice_del() == -1) return -1;
00929 { int m4 = l - c; (void)m4;
00930 ket = c;
00931 if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((4198408 >> (p[c - 1] & 0x1f)) & 1)) { c = l - m4; goto lab3; }
00932 among_var = find_among_b(s_pool, a_5, 3, 0, 0);
00933 if (!(among_var)) { c = l - m4; goto lab3; }
00934 bra = c;
00935 switch(among_var) {
00936 case 0: { c = l - m4; goto lab3; }
00937 case 1:
00938 { int ret = r_R2();
00939 if (ret == 0) { c = l - m4; goto lab3; }
00940 if (ret < 0) return ret;
00941 }
00942 if (slice_del() == -1) return -1;
00943 break;
00944 }
00945 lab3:
00946 ;
00947 }
00948 break;
00949 case 9:
00950 { int ret = r_R2();
00951 if (ret <= 0) return ret;
00952 }
00953 if (slice_del() == -1) return -1;
00954 { int m5 = l - c; (void)m5;
00955 ket = c;
00956 if (!(eq_s_b(2, s_15))) { c = l - m5; goto lab4; }
00957 bra = c;
00958 { int ret = r_R2();
00959 if (ret == 0) { c = l - m5; goto lab4; }
00960 if (ret < 0) return ret;
00961 }
00962 if (slice_del() == -1) return -1;
00963 lab4:
00964 ;
00965 }
00966 break;
00967 }
00968 return 1;
00969 }
00970
00971 int Xapian::InternalStemSpanish::r_y_verb_suffix() {
00972 int among_var;
00973 { int m1 = l - c; (void)m1;
00974 int mlimit1;
00975 if (c < I_pV) return 0;
00976 c = I_pV;
00977 mlimit1 = lb; lb = c;
00978 c = l - m1;
00979 ket = c;
00980 among_var = find_among_b(s_pool, a_7, 12, 0, 0);
00981 if (!(among_var)) { lb = mlimit1; return 0; }
00982 bra = c;
00983 lb = mlimit1;
00984 }
00985 switch(among_var) {
00986 case 0: return 0;
00987 case 1:
00988 if (c <= lb || p[c - 1] != 'u') return 0;
00989 c--;
00990 if (slice_del() == -1) return -1;
00991 break;
00992 }
00993 return 1;
00994 }
00995
00996 int Xapian::InternalStemSpanish::r_verb_suffix() {
00997 int among_var;
00998 { int m1 = l - c; (void)m1;
00999 int mlimit1;
01000 if (c < I_pV) return 0;
01001 c = I_pV;
01002 mlimit1 = lb; lb = c;
01003 c = l - m1;
01004 ket = c;
01005 among_var = find_among_b(s_pool, a_8, 96, 0, 0);
01006 if (!(among_var)) { lb = mlimit1; return 0; }
01007 bra = c;
01008 lb = mlimit1;
01009 }
01010 switch(among_var) {
01011 case 0: return 0;
01012 case 1:
01013 { int m2 = l - c; (void)m2;
01014 if (c <= lb || p[c - 1] != 'u') { c = l - m2; goto lab0; }
01015 c--;
01016 { int m_test3 = l - c;
01017 if (c <= lb || p[c - 1] != 'g') { c = l - m2; goto lab0; }
01018 c--;
01019 c = l - m_test3;
01020 }
01021 lab0:
01022 ;
01023 }
01024 bra = c;
01025 if (slice_del() == -1) return -1;
01026 break;
01027 case 2:
01028 if (slice_del() == -1) return -1;
01029 break;
01030 }
01031 return 1;
01032 }
01033
01034 int Xapian::InternalStemSpanish::r_residual_suffix() {
01035 int among_var;
01036 ket = c;
01037 among_var = find_among_b(s_pool, a_9, 8, 0, 0);
01038 if (!(among_var)) return 0;
01039 bra = c;
01040 switch(among_var) {
01041 case 0: return 0;
01042 case 1:
01043 { int ret = r_RV();
01044 if (ret <= 0) return ret;
01045 }
01046 if (slice_del() == -1) return -1;
01047 break;
01048 case 2:
01049 { int ret = r_RV();
01050 if (ret <= 0) return ret;
01051 }
01052 if (slice_del() == -1) return -1;
01053 { int m1 = l - c; (void)m1;
01054 ket = c;
01055 if (c <= lb || p[c - 1] != 'u') { c = l - m1; goto lab0; }
01056 c--;
01057 bra = c;
01058 { int m_test2 = l - c;
01059 if (c <= lb || p[c - 1] != 'g') { c = l - m1; goto lab0; }
01060 c--;
01061 c = l - m_test2;
01062 }
01063 { int ret = r_RV();
01064 if (ret == 0) { c = l - m1; goto lab0; }
01065 if (ret < 0) return ret;
01066 }
01067 if (slice_del() == -1) return -1;
01068 lab0:
01069 ;
01070 }
01071 break;
01072 }
01073 return 1;
01074 }
01075
01076 int Xapian::InternalStemSpanish::stem() {
01077 { int c1 = c;
01078 { int ret = r_mark_regions();
01079 if (ret == 0) goto lab0;
01080 if (ret < 0) return ret;
01081 }
01082 lab0:
01083 c = c1;
01084 }
01085 lb = c; c = l;
01086
01087 { int m2 = l - c; (void)m2;
01088 { int ret = r_attached_pronoun();
01089 if (ret == 0) goto lab1;
01090 if (ret < 0) return ret;
01091 }
01092 lab1:
01093 c = l - m2;
01094 }
01095 { int m3 = l - c; (void)m3;
01096 { int m4 = l - c; (void)m4;
01097 { int ret = r_standard_suffix();
01098 if (ret == 0) goto lab4;
01099 if (ret < 0) return ret;
01100 }
01101 goto lab3;
01102 lab4:
01103 c = l - m4;
01104 { int ret = r_y_verb_suffix();
01105 if (ret == 0) goto lab5;
01106 if (ret < 0) return ret;
01107 }
01108 goto lab3;
01109 lab5:
01110 c = l - m4;
01111 { int ret = r_verb_suffix();
01112 if (ret == 0) goto lab2;
01113 if (ret < 0) return ret;
01114 }
01115 }
01116 lab3:
01117 lab2:
01118 c = l - m3;
01119 }
01120 { int m5 = l - c; (void)m5;
01121 { int ret = r_residual_suffix();
01122 if (ret == 0) goto lab6;
01123 if (ret < 0) return ret;
01124 }
01125 lab6:
01126 c = l - m5;
01127 }
01128 c = lb;
01129 { int c6 = c;
01130 { int ret = r_postlude();
01131 if (ret == 0) goto lab7;
01132 if (ret < 0) return ret;
01133 }
01134 lab7:
01135 c = c6;
01136 }
01137 return 1;
01138 }
01139
01140 Xapian::InternalStemSpanish::InternalStemSpanish()
01141 : I_p2(0), I_p1(0), I_pV(0)
01142 {
01143 }
01144
01145 Xapian::InternalStemSpanish::~InternalStemSpanish()
01146 {
01147 }
01148
01149 std::string
01150 Xapian::InternalStemSpanish::get_description() const
01151 {
01152 return "spanish";
01153 }