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