00001
00002
00003 #include <limits.h>
00004 #include "romanian.h"
00005
00006 static const symbol s_pool[] = {
00007 #define s_0_1 0
00008 'I',
00009 #define s_0_2 1
00010 'U',
00011 #define s_1_0 2
00012 'e', 'a',
00013 #define s_1_1 4
00014 'a', 0xC5, 0xA3, 'i', 'a',
00015 #define s_1_2 9
00016 'a', 'u', 'a',
00017 #define s_1_3 12
00018 'i', 'u', 'a',
00019 #define s_1_4 15
00020 'a', 0xC5, 0xA3, 'i', 'e',
00021 #define s_1_5 20
00022 'e', 'l', 'e',
00023 #define s_1_6 23
00024 'i', 'l', 'e',
00025 #define s_1_7 26
00026 'i', 'i', 'l', 'e',
00027 #define s_1_8 30
00028 'i', 'e', 'i',
00029 #define s_1_9 33
00030 'a', 't', 'e', 'i',
00031 #define s_1_10 37
00032 'i', 'i',
00033 #define s_1_11 39
00034 'u', 'l', 'u', 'i',
00035 #define s_1_12 43
00036 'u', 'l',
00037 #define s_1_13 45
00038 'e', 'l', 'o', 'r',
00039 #define s_1_14 49
00040 'i', 'l', 'o', 'r',
00041 #define s_1_15 53
00042 'i', 'i', 'l', 'o', 'r',
00043 #define s_2_0 58
00044 'i', 'c', 'a', 'l', 'a',
00045 #define s_2_1 63
00046 'i', 'c', 'i', 'v', 'a',
00047 #define s_2_2 68
00048 'a', 't', 'i', 'v', 'a',
00049 #define s_2_3 73
00050 'i', 't', 'i', 'v', 'a',
00051 #define s_2_4 78
00052 'i', 'c', 'a', 'l', 'e',
00053 #define s_2_5 83
00054 'a', 0xC5, 0xA3, 'i', 'u', 'n', 'e',
00055 #define s_2_6 90
00056 'i', 0xC5, 0xA3, 'i', 'u', 'n', 'e',
00057 #define s_2_7 97
00058 'a', 't', 'o', 'a', 'r', 'e',
00059 #define s_2_8 103
00060 'i', 't', 'o', 'a', 'r', 'e',
00061 #define s_2_9 109
00062 0xC4, 0x83, 't', 'o', 'a', 'r', 'e',
00063 #define s_2_10 116
00064 'i', 'c', 'i', 't', 'a', 't', 'e',
00065 #define s_2_11 123
00066 'a', 'b', 'i', 'l', 'i', 't', 'a', 't', 'e',
00067 #define s_2_12 132
00068 'i', 'b', 'i', 'l', 'i', 't', 'a', 't', 'e',
00069 #define s_2_13 141
00070 'i', 'v', 'i', 't', 'a', 't', 'e',
00071 #define s_2_14 148
00072 'i', 'c', 'i', 'v', 'e',
00073 #define s_2_15 153
00074 'a', 't', 'i', 'v', 'e',
00075 #define s_2_16 158
00076 'i', 't', 'i', 'v', 'e',
00077 #define s_2_17 163
00078 'i', 'c', 'a', 'l', 'i',
00079 #define s_2_18 168
00080 'a', 't', 'o', 'r', 'i',
00081 #define s_2_19 173
00082 'i', 'c', 'a', 't', 'o', 'r', 'i',
00083 #define s_2_20 180
00084 'i', 't', 'o', 'r', 'i',
00085 #define s_2_21 185
00086 0xC4, 0x83, 't', 'o', 'r', 'i',
00087 #define s_2_22 191
00088 'i', 'c', 'i', 't', 'a', 't', 'i',
00089 #define s_2_23 198
00090 'a', 'b', 'i', 'l', 'i', 't', 'a', 't', 'i',
00091 #define s_2_24 207
00092 'i', 'v', 'i', 't', 'a', 't', 'i',
00093 #define s_2_25 214
00094 'i', 'c', 'i', 'v', 'i',
00095 #define s_2_26 219
00096 'a', 't', 'i', 'v', 'i',
00097 #define s_2_27 224
00098 'i', 't', 'i', 'v', 'i',
00099 #define s_2_28 229
00100 'i', 'c', 'i', 't', 0xC4, 0x83, 'i',
00101 #define s_2_29 236
00102 'a', 'b', 'i', 'l', 'i', 't', 0xC4, 0x83, 'i',
00103 #define s_2_30 245
00104 'i', 'v', 'i', 't', 0xC4, 0x83, 'i',
00105 #define s_2_31 252
00106 'i', 'c', 'i', 't', 0xC4, 0x83, 0xC5, 0xA3, 'i',
00107 #define s_2_32 261
00108 'a', 'b', 'i', 'l', 'i', 't', 0xC4, 0x83, 0xC5, 0xA3, 'i',
00109 #define s_2_33 272
00110 'i', 'v', 'i', 't', 0xC4, 0x83, 0xC5, 0xA3, 'i',
00111 #define s_2_34 281
00112 'i', 'c', 'a', 'l',
00113 #define s_2_35 285
00114 'a', 't', 'o', 'r',
00115 #define s_2_36 289
00116 'i', 'c', 'a', 't', 'o', 'r',
00117 #define s_2_37 295
00118 'i', 't', 'o', 'r',
00119 #define s_2_38 299
00120 0xC4, 0x83, 't', 'o', 'r',
00121 #define s_2_39 304
00122 'i', 'c', 'i', 'v',
00123 #define s_2_40 308
00124 'a', 't', 'i', 'v',
00125 #define s_2_41 312
00126 'i', 't', 'i', 'v',
00127 #define s_2_42 316
00128 'i', 'c', 'a', 'l', 0xC4, 0x83,
00129 #define s_2_43 322
00130 'i', 'c', 'i', 'v', 0xC4, 0x83,
00131 #define s_2_44 328
00132 'a', 't', 'i', 'v', 0xC4, 0x83,
00133 #define s_2_45 334
00134 'i', 't', 'i', 'v', 0xC4, 0x83,
00135 #define s_3_0 340
00136 'i', 'c', 'a',
00137 #define s_3_1 343
00138 'a', 'b', 'i', 'l', 'a',
00139 #define s_3_2 348
00140 'i', 'b', 'i', 'l', 'a',
00141 #define s_3_3 353
00142 'o', 'a', 's', 'a',
00143 #define s_3_4 357
00144 'a', 't', 'a',
00145 #define s_3_5 360
00146 'i', 't', 'a',
00147 #define s_3_6 363
00148 'a', 'n', 't', 'a',
00149 #define s_3_7 367
00150 'i', 's', 't', 'a',
00151 #define s_3_8 371
00152 'u', 't', 'a',
00153 #define s_3_9 374
00154 'i', 'v', 'a',
00155 #define s_3_10 377
00156 'i', 'c',
00157 #define s_3_11 379
00158 'i', 'c', 'e',
00159 #define s_3_12 382
00160 'a', 'b', 'i', 'l', 'e',
00161 #define s_3_13 387
00162 'i', 'b', 'i', 'l', 'e',
00163 #define s_3_14 392
00164 'i', 's', 'm', 'e',
00165 #define s_3_15 396
00166 'i', 'u', 'n', 'e',
00167 #define s_3_16 400
00168 'o', 'a', 's', 'e',
00169 #define s_3_17 404
00170 'a', 't', 'e',
00171 #define s_3_18 407
00172 'i', 't', 'a', 't', 'e',
00173 #define s_3_19 412
00174 'i', 't', 'e',
00175 #define s_3_20 415
00176 'a', 'n', 't', 'e',
00177 #define s_3_21 419
00178 'i', 's', 't', 'e',
00179 #define s_3_22 423
00180 'u', 't', 'e',
00181 #define s_3_23 426
00182 'i', 'v', 'e',
00183 #define s_3_24 429
00184 'i', 'c', 'i',
00185 #define s_3_25 432
00186 'a', 'b', 'i', 'l', 'i',
00187 #define s_3_26 437
00188 'i', 'b', 'i', 'l', 'i',
00189 #define s_3_27 442
00190 'i', 'u', 'n', 'i',
00191 #define s_3_28 446
00192 'a', 't', 'o', 'r', 'i',
00193 #define s_3_29 451
00194 'o', 's', 'i',
00195 #define s_3_30 454
00196 'a', 't', 'i',
00197 #define s_3_31 457
00198 'i', 't', 'a', 't', 'i',
00199 #define s_3_32 462
00200 'i', 't', 'i',
00201 #define s_3_33 465
00202 'a', 'n', 't', 'i',
00203 #define s_3_34 469
00204 'i', 's', 't', 'i',
00205 #define s_3_35 473
00206 'u', 't', 'i',
00207 #define s_3_36 476
00208 'i', 0xC5, 0x9F, 't', 'i',
00209 #define s_3_37 481
00210 'i', 'v', 'i',
00211 #define s_3_38 484
00212 'i', 't', 0xC4, 0x83, 'i',
00213 #define s_3_39 489
00214 'o', 0xC5, 0x9F, 'i',
00215 #define s_3_40 493
00216 'i', 't', 0xC4, 0x83, 0xC5, 0xA3, 'i',
00217 #define s_3_41 500
00218 'a', 'b', 'i', 'l',
00219 #define s_3_42 504
00220 'i', 'b', 'i', 'l',
00221 #define s_3_43 508
00222 'i', 's', 'm',
00223 #define s_3_44 511
00224 'a', 't', 'o', 'r',
00225 #define s_3_45 515
00226 'o', 's',
00227 #define s_3_46 517
00228 'a', 't',
00229 #define s_3_47 519
00230 'i', 't',
00231 #define s_3_48 521
00232 'a', 'n', 't',
00233 #define s_3_49 524
00234 'i', 's', 't',
00235 #define s_3_50 527
00236 'u', 't',
00237 #define s_3_51 529
00238 'i', 'v',
00239 #define s_3_52 531
00240 'i', 'c', 0xC4, 0x83,
00241 #define s_3_53 535
00242 'a', 'b', 'i', 'l', 0xC4, 0x83,
00243 #define s_3_54 541
00244 'i', 'b', 'i', 'l', 0xC4, 0x83,
00245 #define s_3_55 547
00246 'o', 'a', 's', 0xC4, 0x83,
00247 #define s_3_56 552
00248 'a', 't', 0xC4, 0x83,
00249 #define s_3_57 556
00250 'i', 't', 0xC4, 0x83,
00251 #define s_3_58 560
00252 'a', 'n', 't', 0xC4, 0x83,
00253 #define s_3_59 565
00254 'i', 's', 't', 0xC4, 0x83,
00255 #define s_3_60 570
00256 'u', 't', 0xC4, 0x83,
00257 #define s_3_61 574
00258 'i', 'v', 0xC4, 0x83,
00259 #define s_4_0 578
00260 'e', 'a',
00261 #define s_4_1 580
00262 'i', 'a',
00263 #define s_4_2 582
00264 'e', 's', 'c',
00265 #define s_4_3 585
00266 0xC4, 0x83, 's', 'c',
00267 #define s_4_4 589
00268 'i', 'n', 'd',
00269 #define s_4_5 592
00270 0xC3, 0xA2, 'n', 'd',
00271 #define s_4_6 596
00272 'a', 'r', 'e',
00273 #define s_4_7 599
00274 'e', 'r', 'e',
00275 #define s_4_8 602
00276 'i', 'r', 'e',
00277 #define s_4_9 605
00278 0xC3, 0xA2, 'r', 'e',
00279 #define s_4_10 609
00280 's', 'e',
00281 #define s_4_11 611
00282 'a', 's', 'e',
00283 #define s_4_12 614
00284 's', 'e', 's', 'e',
00285 #define s_4_13 618
00286 'i', 's', 'e',
00287 #define s_4_14 621
00288 'u', 's', 'e',
00289 #define s_4_15 624
00290 0xC3, 0xA2, 's', 'e',
00291 #define s_4_16 628
00292 'e', 0xC5, 0x9F, 't', 'e',
00293 #define s_4_17 633
00294 0xC4, 0x83, 0xC5, 0x9F, 't', 'e',
00295 #define s_4_18 639
00296 'e', 'z', 'e',
00297 #define s_4_19 642
00298 'a', 'i',
00299 #define s_4_20 644
00300 'e', 'a', 'i',
00301 #define s_4_21 647
00302 'i', 'a', 'i',
00303 #define s_4_22 650
00304 's', 'e', 'i',
00305 #define s_4_23 653
00306 'e', 0xC5, 0x9F, 't', 'i',
00307 #define s_4_24 658
00308 0xC4, 0x83, 0xC5, 0x9F, 't', 'i',
00309 #define s_4_25 664
00310 'u', 'i',
00311 #define s_4_26 666
00312 'e', 'z', 'i',
00313 #define s_4_27 669
00314 'a', 0xC5, 0x9F, 'i',
00315 #define s_4_28 673
00316 's', 'e', 0xC5, 0x9F, 'i',
00317 #define s_4_29 678
00318 'a', 's', 'e', 0xC5, 0x9F, 'i',
00319 #define s_4_30 684
00320 's', 'e', 's', 'e', 0xC5, 0x9F, 'i',
00321 #define s_4_31 691
00322 'i', 's', 'e', 0xC5, 0x9F, 'i',
00323 #define s_4_32 697
00324 'u', 's', 'e', 0xC5, 0x9F, 'i',
00325 #define s_4_33 703
00326 0xC3, 0xA2, 's', 'e', 0xC5, 0x9F, 'i',
00327 #define s_4_34 710
00328 'i', 0xC5, 0x9F, 'i',
00329 #define s_4_35 714
00330 'u', 0xC5, 0x9F, 'i',
00331 #define s_4_36 718
00332 0xC3, 0xA2, 0xC5, 0x9F, 'i',
00333 #define s_4_37 723
00334 0xC3, 0xA2, 'i',
00335 #define s_4_38 726
00336 'a', 0xC5, 0xA3, 'i',
00337 #define s_4_39 730
00338 'e', 'a', 0xC5, 0xA3, 'i',
00339 #define s_4_40 735
00340 'i', 'a', 0xC5, 0xA3, 'i',
00341 #define s_4_41 740
00342 'e', 0xC5, 0xA3, 'i',
00343 #define s_4_42 744
00344 'i', 0xC5, 0xA3, 'i',
00345 #define s_4_43 748
00346 'a', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i',
00347 #define s_4_44 755
00348 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i',
00349 #define s_4_45 763
00350 'a', 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i',
00351 #define s_4_46 772
00352 's', 'e', 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i',
00353 #define s_4_47 782
00354 'i', 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i',
00355 #define s_4_48 791
00356 'u', 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i',
00357 #define s_4_49 800
00358 0xC3, 0xA2, 's', 'e', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i',
00359 #define s_4_50 810
00360 'i', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i',
00361 #define s_4_51 817
00362 'u', 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i',
00363 #define s_4_52 824
00364 0xC3, 0xA2, 'r', 0xC4, 0x83, 0xC5, 0xA3, 'i',
00365 #define s_4_53 832
00366 0xC3, 0xA2, 0xC5, 0xA3, 'i',
00367 #define s_4_54 837
00368 'a', 'm',
00369 #define s_4_55 839
00370 'e', 'a', 'm',
00371 #define s_4_56 842
00372 'i', 'a', 'm',
00373 #define s_4_57 845
00374 'e', 'm',
00375 #define s_4_58 847
00376 'a', 's', 'e', 'm',
00377 #define s_4_59 851
00378 's', 'e', 's', 'e', 'm',
00379 #define s_4_60 856
00380 'i', 's', 'e', 'm',
00381 #define s_4_61 860
00382 'u', 's', 'e', 'm',
00383 #define s_4_62 864
00384 0xC3, 0xA2, 's', 'e', 'm',
00385 #define s_4_63 869
00386 'i', 'm',
00387 #define s_4_64 871
00388 0xC4, 0x83, 'm',
00389 #define s_4_65 874
00390 'a', 'r', 0xC4, 0x83, 'm',
00391 #define s_4_66 879
00392 's', 'e', 'r', 0xC4, 0x83, 'm',
00393 #define s_4_67 885
00394 'a', 's', 'e', 'r', 0xC4, 0x83, 'm',
00395 #define s_4_68 892
00396 's', 'e', 's', 'e', 'r', 0xC4, 0x83, 'm',
00397 #define s_4_69 900
00398 'i', 's', 'e', 'r', 0xC4, 0x83, 'm',
00399 #define s_4_70 907
00400 'u', 's', 'e', 'r', 0xC4, 0x83, 'm',
00401 #define s_4_71 914
00402 0xC3, 0xA2, 's', 'e', 'r', 0xC4, 0x83, 'm',
00403 #define s_4_72 922
00404 'i', 'r', 0xC4, 0x83, 'm',
00405 #define s_4_73 927
00406 'u', 'r', 0xC4, 0x83, 'm',
00407 #define s_4_74 932
00408 0xC3, 0xA2, 'r', 0xC4, 0x83, 'm',
00409 #define s_4_75 938
00410 0xC3, 0xA2, 'm',
00411 #define s_4_76 941
00412 'a', 'u',
00413 #define s_4_77 943
00414 'e', 'a', 'u',
00415 #define s_4_78 946
00416 'i', 'a', 'u',
00417 #define s_4_79 949
00418 'i', 'n', 'd', 'u',
00419 #define s_4_80 953
00420 0xC3, 0xA2, 'n', 'd', 'u',
00421 #define s_4_81 958
00422 'e', 'z',
00423 #define s_4_82 960
00424 'e', 'a', 's', 'c', 0xC4, 0x83,
00425 #define s_4_83 966
00426 'a', 'r', 0xC4, 0x83,
00427 #define s_4_84 970
00428 's', 'e', 'r', 0xC4, 0x83,
00429 #define s_4_85 975
00430 'a', 's', 'e', 'r', 0xC4, 0x83,
00431 #define s_4_86 981
00432 's', 'e', 's', 'e', 'r', 0xC4, 0x83,
00433 #define s_4_87 988
00434 'i', 's', 'e', 'r', 0xC4, 0x83,
00435 #define s_4_88 994
00436 'u', 's', 'e', 'r', 0xC4, 0x83,
00437 #define s_4_89 1000
00438 0xC3, 0xA2, 's', 'e', 'r', 0xC4, 0x83,
00439 #define s_4_90 1007
00440 'i', 'r', 0xC4, 0x83,
00441 #define s_4_91 1011
00442 'u', 'r', 0xC4, 0x83,
00443 #define s_4_92 1015
00444 0xC3, 0xA2, 'r', 0xC4, 0x83,
00445 #define s_4_93 1020
00446 'e', 'a', 'z', 0xC4, 0x83,
00447 #define s_5_0 1025
00448 'a',
00449 #define s_5_1 1026
00450 'e',
00451 #define s_5_2 1027
00452 'i', 'e',
00453 #define s_5_3 1029
00454 'i',
00455 #define s_5_4 1030
00456 0xC4, 0x83,
00457 };
00458
00459
00460 static const struct among a_0[3] =
00461 {
00462 { 0, 0, -1, 3},
00463 { 1, s_0_1, 0, 1},
00464 { 1, s_0_2, 0, 2}
00465 };
00466
00467
00468 static const struct among a_1[16] =
00469 {
00470 { 2, s_1_0, -1, 3},
00471 { 5, s_1_1, -1, 7},
00472 { 3, s_1_2, -1, 2},
00473 { 3, s_1_3, -1, 4},
00474 { 5, s_1_4, -1, 7},
00475 { 3, s_1_5, -1, 3},
00476 { 3, s_1_6, -1, 5},
00477 { 4, s_1_7, 6, 4},
00478 { 3, s_1_8, -1, 4},
00479 { 4, s_1_9, -1, 6},
00480 { 2, s_1_10, -1, 4},
00481 { 4, s_1_11, -1, 1},
00482 { 2, s_1_12, -1, 1},
00483 { 4, s_1_13, -1, 3},
00484 { 4, s_1_14, -1, 4},
00485 { 5, s_1_15, 14, 4}
00486 };
00487
00488
00489 static const struct among a_2[46] =
00490 {
00491 { 5, s_2_0, -1, 4},
00492 { 5, s_2_1, -1, 4},
00493 { 5, s_2_2, -1, 5},
00494 { 5, s_2_3, -1, 6},
00495 { 5, s_2_4, -1, 4},
00496 { 7, s_2_5, -1, 5},
00497 { 7, s_2_6, -1, 6},
00498 { 6, s_2_7, -1, 5},
00499 { 6, s_2_8, -1, 6},
00500 { 7, s_2_9, -1, 5},
00501 { 7, s_2_10, -1, 4},
00502 { 9, s_2_11, -1, 1},
00503 { 9, s_2_12, -1, 2},
00504 { 7, s_2_13, -1, 3},
00505 { 5, s_2_14, -1, 4},
00506 { 5, s_2_15, -1, 5},
00507 { 5, s_2_16, -1, 6},
00508 { 5, s_2_17, -1, 4},
00509 { 5, s_2_18, -1, 5},
00510 { 7, s_2_19, 18, 4},
00511 { 5, s_2_20, -1, 6},
00512 { 6, s_2_21, -1, 5},
00513 { 7, s_2_22, -1, 4},
00514 { 9, s_2_23, -1, 1},
00515 { 7, s_2_24, -1, 3},
00516 { 5, s_2_25, -1, 4},
00517 { 5, s_2_26, -1, 5},
00518 { 5, s_2_27, -1, 6},
00519 { 7, s_2_28, -1, 4},
00520 { 9, s_2_29, -1, 1},
00521 { 7, s_2_30, -1, 3},
00522 { 9, s_2_31, -1, 4},
00523 { 11, s_2_32, -1, 1},
00524 { 9, s_2_33, -1, 3},
00525 { 4, s_2_34, -1, 4},
00526 { 4, s_2_35, -1, 5},
00527 { 6, s_2_36, 35, 4},
00528 { 4, s_2_37, -1, 6},
00529 { 5, s_2_38, -1, 5},
00530 { 4, s_2_39, -1, 4},
00531 { 4, s_2_40, -1, 5},
00532 { 4, s_2_41, -1, 6},
00533 { 6, s_2_42, -1, 4},
00534 { 6, s_2_43, -1, 4},
00535 { 6, s_2_44, -1, 5},
00536 { 6, s_2_45, -1, 6}
00537 };
00538
00539
00540 static const struct among a_3[62] =
00541 {
00542 { 3, s_3_0, -1, 1},
00543 { 5, s_3_1, -1, 1},
00544 { 5, s_3_2, -1, 1},
00545 { 4, s_3_3, -1, 1},
00546 { 3, s_3_4, -1, 1},
00547 { 3, s_3_5, -1, 1},
00548 { 4, s_3_6, -1, 1},
00549 { 4, s_3_7, -1, 3},
00550 { 3, s_3_8, -1, 1},
00551 { 3, s_3_9, -1, 1},
00552 { 2, s_3_10, -1, 1},
00553 { 3, s_3_11, -1, 1},
00554 { 5, s_3_12, -1, 1},
00555 { 5, s_3_13, -1, 1},
00556 { 4, s_3_14, -1, 3},
00557 { 4, s_3_15, -1, 2},
00558 { 4, s_3_16, -1, 1},
00559 { 3, s_3_17, -1, 1},
00560 { 5, s_3_18, 17, 1},
00561 { 3, s_3_19, -1, 1},
00562 { 4, s_3_20, -1, 1},
00563 { 4, s_3_21, -1, 3},
00564 { 3, s_3_22, -1, 1},
00565 { 3, s_3_23, -1, 1},
00566 { 3, s_3_24, -1, 1},
00567 { 5, s_3_25, -1, 1},
00568 { 5, s_3_26, -1, 1},
00569 { 4, s_3_27, -1, 2},
00570 { 5, s_3_28, -1, 1},
00571 { 3, s_3_29, -1, 1},
00572 { 3, s_3_30, -1, 1},
00573 { 5, s_3_31, 30, 1},
00574 { 3, s_3_32, -1, 1},
00575 { 4, s_3_33, -1, 1},
00576 { 4, s_3_34, -1, 3},
00577 { 3, s_3_35, -1, 1},
00578 { 5, s_3_36, -1, 3},
00579 { 3, s_3_37, -1, 1},
00580 { 5, s_3_38, -1, 1},
00581 { 4, s_3_39, -1, 1},
00582 { 7, s_3_40, -1, 1},
00583 { 4, s_3_41, -1, 1},
00584 { 4, s_3_42, -1, 1},
00585 { 3, s_3_43, -1, 3},
00586 { 4, s_3_44, -1, 1},
00587 { 2, s_3_45, -1, 1},
00588 { 2, s_3_46, -1, 1},
00589 { 2, s_3_47, -1, 1},
00590 { 3, s_3_48, -1, 1},
00591 { 3, s_3_49, -1, 3},
00592 { 2, s_3_50, -1, 1},
00593 { 2, s_3_51, -1, 1},
00594 { 4, s_3_52, -1, 1},
00595 { 6, s_3_53, -1, 1},
00596 { 6, s_3_54, -1, 1},
00597 { 5, s_3_55, -1, 1},
00598 { 4, s_3_56, -1, 1},
00599 { 4, s_3_57, -1, 1},
00600 { 5, s_3_58, -1, 1},
00601 { 5, s_3_59, -1, 3},
00602 { 4, s_3_60, -1, 1},
00603 { 4, s_3_61, -1, 1}
00604 };
00605
00606
00607 static const struct among a_4[94] =
00608 {
00609 { 2, s_4_0, -1, 1},
00610 { 2, s_4_1, -1, 1},
00611 { 3, s_4_2, -1, 1},
00612 { 4, s_4_3, -1, 1},
00613 { 3, s_4_4, -1, 1},
00614 { 4, s_4_5, -1, 1},
00615 { 3, s_4_6, -1, 1},
00616 { 3, s_4_7, -1, 1},
00617 { 3, s_4_8, -1, 1},
00618 { 4, s_4_9, -1, 1},
00619 { 2, s_4_10, -1, 2},
00620 { 3, s_4_11, 10, 1},
00621 { 4, s_4_12, 10, 2},
00622 { 3, s_4_13, 10, 1},
00623 { 3, s_4_14, 10, 1},
00624 { 4, s_4_15, 10, 1},
00625 { 5, s_4_16, -1, 1},
00626 { 6, s_4_17, -1, 1},
00627 { 3, s_4_18, -1, 1},
00628 { 2, s_4_19, -1, 1},
00629 { 3, s_4_20, 19, 1},
00630 { 3, s_4_21, 19, 1},
00631 { 3, s_4_22, -1, 2},
00632 { 5, s_4_23, -1, 1},
00633 { 6, s_4_24, -1, 1},
00634 { 2, s_4_25, -1, 1},
00635 { 3, s_4_26, -1, 1},
00636 { 4, s_4_27, -1, 1},
00637 { 5, s_4_28, -1, 2},
00638 { 6, s_4_29, 28, 1},
00639 { 7, s_4_30, 28, 2},
00640 { 6, s_4_31, 28, 1},
00641 { 6, s_4_32, 28, 1},
00642 { 7, s_4_33, 28, 1},
00643 { 4, s_4_34, -1, 1},
00644 { 4, s_4_35, -1, 1},
00645 { 5, s_4_36, -1, 1},
00646 { 3, s_4_37, -1, 1},
00647 { 4, s_4_38, -1, 2},
00648 { 5, s_4_39, 38, 1},
00649 { 5, s_4_40, 38, 1},
00650 { 4, s_4_41, -1, 2},
00651 { 4, s_4_42, -1, 2},
00652 { 7, s_4_43, -1, 1},
00653 { 8, s_4_44, -1, 2},
00654 { 9, s_4_45, 44, 1},
00655 { 10, s_4_46, 44, 2},
00656 { 9, s_4_47, 44, 1},
00657 { 9, s_4_48, 44, 1},
00658 { 10, s_4_49, 44, 1},
00659 { 7, s_4_50, -1, 1},
00660 { 7, s_4_51, -1, 1},
00661 { 8, s_4_52, -1, 1},
00662 { 5, s_4_53, -1, 2},
00663 { 2, s_4_54, -1, 1},
00664 { 3, s_4_55, 54, 1},
00665 { 3, s_4_56, 54, 1},
00666 { 2, s_4_57, -1, 2},
00667 { 4, s_4_58, 57, 1},
00668 { 5, s_4_59, 57, 2},
00669 { 4, s_4_60, 57, 1},
00670 { 4, s_4_61, 57, 1},
00671 { 5, s_4_62, 57, 1},
00672 { 2, s_4_63, -1, 2},
00673 { 3, s_4_64, -1, 2},
00674 { 5, s_4_65, 64, 1},
00675 { 6, s_4_66, 64, 2},
00676 { 7, s_4_67, 66, 1},
00677 { 8, s_4_68, 66, 2},
00678 { 7, s_4_69, 66, 1},
00679 { 7, s_4_70, 66, 1},
00680 { 8, s_4_71, 66, 1},
00681 { 5, s_4_72, 64, 1},
00682 { 5, s_4_73, 64, 1},
00683 { 6, s_4_74, 64, 1},
00684 { 3, s_4_75, -1, 2},
00685 { 2, s_4_76, -1, 1},
00686 { 3, s_4_77, 76, 1},
00687 { 3, s_4_78, 76, 1},
00688 { 4, s_4_79, -1, 1},
00689 { 5, s_4_80, -1, 1},
00690 { 2, s_4_81, -1, 1},
00691 { 6, s_4_82, -1, 1},
00692 { 4, s_4_83, -1, 1},
00693 { 5, s_4_84, -1, 2},
00694 { 6, s_4_85, 84, 1},
00695 { 7, s_4_86, 84, 2},
00696 { 6, s_4_87, 84, 1},
00697 { 6, s_4_88, 84, 1},
00698 { 7, s_4_89, 84, 1},
00699 { 4, s_4_90, -1, 1},
00700 { 4, s_4_91, -1, 1},
00701 { 5, s_4_92, -1, 1},
00702 { 5, s_4_93, -1, 1}
00703 };
00704
00705
00706 static const struct among a_5[5] =
00707 {
00708 { 1, s_5_0, -1, 1},
00709 { 1, s_5_1, -1, 1},
00710 { 2, s_5_2, 1, 1},
00711 { 1, s_5_3, -1, 1},
00712 { 2, s_5_4, -1, 1}
00713 };
00714
00715 static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 32, 0, 0, 4 };
00716
00717 static const symbol s_0[] = { 'U' };
00718 static const symbol s_1[] = { 'I' };
00719 static const symbol s_2[] = { 'i' };
00720 static const symbol s_3[] = { 'u' };
00721 static const symbol s_4[] = { 'a' };
00722 static const symbol s_5[] = { 'e' };
00723 static const symbol s_6[] = { 'i' };
00724 static const symbol s_7[] = { 'a', 'b' };
00725 static const symbol s_8[] = { 'i' };
00726 static const symbol s_9[] = { 'a', 't' };
00727 static const symbol s_10[] = { 'a', 0xC5, 0xA3, 'i' };
00728 static const symbol s_11[] = { 'a', 'b', 'i', 'l' };
00729 static const symbol s_12[] = { 'i', 'b', 'i', 'l' };
00730 static const symbol s_13[] = { 'i', 'v' };
00731 static const symbol s_14[] = { 'i', 'c' };
00732 static const symbol s_15[] = { 'a', 't' };
00733 static const symbol s_16[] = { 'i', 't' };
00734 static const symbol s_17[] = { 0xC5, 0xA3 };
00735 static const symbol s_18[] = { 't' };
00736 static const symbol s_19[] = { 'i', 's', 't' };
00737
00738 int Xapian::InternalStemRomanian::r_prelude() {
00739 while(1) {
00740 int c1 = c;
00741 while(1) {
00742 int c2 = c;
00743 if (in_grouping_U(g_v, 97, 259, 0)) goto lab1;
00744 bra = c;
00745 { int c3 = c;
00746 if (c == l || p[c] != 'u') goto lab3;
00747 c++;
00748 ket = c;
00749 if (in_grouping_U(g_v, 97, 259, 0)) goto lab3;
00750 { int ret = slice_from_s(1, s_0);
00751 if (ret < 0) return ret;
00752 }
00753 goto lab2;
00754 lab3:
00755 c = c3;
00756 if (c == l || p[c] != 'i') goto lab1;
00757 c++;
00758 ket = c;
00759 if (in_grouping_U(g_v, 97, 259, 0)) goto lab1;
00760 { int ret = slice_from_s(1, s_1);
00761 if (ret < 0) return ret;
00762 }
00763 }
00764 lab2:
00765 c = c2;
00766 break;
00767 lab1:
00768 c = c2;
00769 { int ret = skip_utf8(p, c, 0, l, 1);
00770 if (ret < 0) goto lab0;
00771 c = ret;
00772 }
00773 }
00774 continue;
00775 lab0:
00776 c = c1;
00777 break;
00778 }
00779 return 1;
00780 }
00781
00782 int Xapian::InternalStemRomanian::r_mark_regions() {
00783 I_pV = l;
00784 I_p1 = l;
00785 I_p2 = l;
00786 { int c1 = c;
00787 { int c2 = c;
00788 if (in_grouping_U(g_v, 97, 259, 0)) goto lab2;
00789 { int c3 = c;
00790 if (out_grouping_U(g_v, 97, 259, 0)) goto lab4;
00791 { int ret = out_grouping_U(g_v, 97, 259, 1);
00792 if (ret < 0) goto lab4;
00793 c += ret;
00794 }
00795 goto lab3;
00796 lab4:
00797 c = c3;
00798 if (in_grouping_U(g_v, 97, 259, 0)) goto lab2;
00799 { int ret = in_grouping_U(g_v, 97, 259, 1);
00800 if (ret < 0) goto lab2;
00801 c += ret;
00802 }
00803 }
00804 lab3:
00805 goto lab1;
00806 lab2:
00807 c = c2;
00808 if (out_grouping_U(g_v, 97, 259, 0)) goto lab0;
00809 { int c4 = c;
00810 if (out_grouping_U(g_v, 97, 259, 0)) goto lab6;
00811 { int ret = out_grouping_U(g_v, 97, 259, 1);
00812 if (ret < 0) goto lab6;
00813 c += ret;
00814 }
00815 goto lab5;
00816 lab6:
00817 c = c4;
00818 if (in_grouping_U(g_v, 97, 259, 0)) goto lab0;
00819 { int ret = skip_utf8(p, c, 0, l, 1);
00820 if (ret < 0) goto lab0;
00821 c = ret;
00822 }
00823 }
00824 lab5:
00825 ;
00826 }
00827 lab1:
00828 I_pV = c;
00829 lab0:
00830 c = c1;
00831 }
00832 { int c5 = c;
00833 { int ret = out_grouping_U(g_v, 97, 259, 1);
00834 if (ret < 0) goto lab7;
00835 c += ret;
00836 }
00837 { int ret = in_grouping_U(g_v, 97, 259, 1);
00838 if (ret < 0) goto lab7;
00839 c += ret;
00840 }
00841 I_p1 = c;
00842 { int ret = out_grouping_U(g_v, 97, 259, 1);
00843 if (ret < 0) goto lab7;
00844 c += ret;
00845 }
00846 { int ret = in_grouping_U(g_v, 97, 259, 1);
00847 if (ret < 0) goto lab7;
00848 c += ret;
00849 }
00850 I_p2 = c;
00851 lab7:
00852 c = c5;
00853 }
00854 return 1;
00855 }
00856
00857 int Xapian::InternalStemRomanian::r_postlude() {
00858 int among_var;
00859 while(1) {
00860 int c1 = c;
00861 bra = c;
00862 if (c >= l || (p[c + 0] != 73 && p[c + 0] != 85)) among_var = 3; else
00863 among_var = find_among(s_pool, a_0, 3, 0, 0);
00864 if (!(among_var)) goto lab0;
00865 ket = c;
00866 switch(among_var) {
00867 case 0: goto lab0;
00868 case 1:
00869 { int ret = slice_from_s(1, s_2);
00870 if (ret < 0) return ret;
00871 }
00872 break;
00873 case 2:
00874 { int ret = slice_from_s(1, s_3);
00875 if (ret < 0) return ret;
00876 }
00877 break;
00878 case 3:
00879 { int ret = skip_utf8(p, c, 0, l, 1);
00880 if (ret < 0) goto lab0;
00881 c = ret;
00882 }
00883 break;
00884 }
00885 continue;
00886 lab0:
00887 c = c1;
00888 break;
00889 }
00890 return 1;
00891 }
00892
00893 int Xapian::InternalStemRomanian::r_RV() {
00894 if (!(I_pV <= c)) return 0;
00895 return 1;
00896 }
00897
00898 int Xapian::InternalStemRomanian::r_R1() {
00899 if (!(I_p1 <= c)) return 0;
00900 return 1;
00901 }
00902
00903 int Xapian::InternalStemRomanian::r_R2() {
00904 if (!(I_p2 <= c)) return 0;
00905 return 1;
00906 }
00907
00908 int Xapian::InternalStemRomanian::r_step_0() {
00909 int among_var;
00910 ket = c;
00911 if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((266786 >> (p[c - 1] & 0x1f)) & 1)) return 0;
00912 among_var = find_among_b(s_pool, a_1, 16, 0, 0);
00913 if (!(among_var)) return 0;
00914 bra = c;
00915 { int ret = r_R1();
00916 if (ret <= 0) return ret;
00917 }
00918 switch(among_var) {
00919 case 0: return 0;
00920 case 1:
00921 if (slice_del() == -1) return -1;
00922 break;
00923 case 2:
00924 { int ret = slice_from_s(1, s_4);
00925 if (ret < 0) return ret;
00926 }
00927 break;
00928 case 3:
00929 { int ret = slice_from_s(1, s_5);
00930 if (ret < 0) return ret;
00931 }
00932 break;
00933 case 4:
00934 { int ret = slice_from_s(1, s_6);
00935 if (ret < 0) return ret;
00936 }
00937 break;
00938 case 5:
00939 { int m1 = l - c; (void)m1;
00940 if (!(eq_s_b(2, s_7))) goto lab0;
00941 return 0;
00942 lab0:
00943 c = l - m1;
00944 }
00945 { int ret = slice_from_s(1, s_8);
00946 if (ret < 0) return ret;
00947 }
00948 break;
00949 case 6:
00950 { int ret = slice_from_s(2, s_9);
00951 if (ret < 0) return ret;
00952 }
00953 break;
00954 case 7:
00955 { int ret = slice_from_s(4, s_10);
00956 if (ret < 0) return ret;
00957 }
00958 break;
00959 }
00960 return 1;
00961 }
00962
00963 int Xapian::InternalStemRomanian::r_combo_suffix() {
00964 int among_var;
00965 { int m_test1 = l - c;
00966 ket = c;
00967 among_var = find_among_b(s_pool, a_2, 46, 0, 0);
00968 if (!(among_var)) return 0;
00969 bra = c;
00970 { int ret = r_R1();
00971 if (ret <= 0) return ret;
00972 }
00973 switch(among_var) {
00974 case 0: return 0;
00975 case 1:
00976 { int ret = slice_from_s(4, s_11);
00977 if (ret < 0) return ret;
00978 }
00979 break;
00980 case 2:
00981 { int ret = slice_from_s(4, s_12);
00982 if (ret < 0) return ret;
00983 }
00984 break;
00985 case 3:
00986 { int ret = slice_from_s(2, s_13);
00987 if (ret < 0) return ret;
00988 }
00989 break;
00990 case 4:
00991 { int ret = slice_from_s(2, s_14);
00992 if (ret < 0) return ret;
00993 }
00994 break;
00995 case 5:
00996 { int ret = slice_from_s(2, s_15);
00997 if (ret < 0) return ret;
00998 }
00999 break;
01000 case 6:
01001 { int ret = slice_from_s(2, s_16);
01002 if (ret < 0) return ret;
01003 }
01004 break;
01005 }
01006 B_standard_suffix_removed = 1;
01007 c = l - m_test1;
01008 }
01009 return 1;
01010 }
01011
01012 int Xapian::InternalStemRomanian::r_standard_suffix() {
01013 int among_var;
01014 B_standard_suffix_removed = 0;
01015 while(1) {
01016 int m1 = l - c; (void)m1;
01017 { int ret = r_combo_suffix();
01018 if (ret == 0) goto lab0;
01019 if (ret < 0) return ret;
01020 }
01021 continue;
01022 lab0:
01023 c = l - m1;
01024 break;
01025 }
01026 ket = c;
01027 among_var = find_among_b(s_pool, a_3, 62, 0, 0);
01028 if (!(among_var)) return 0;
01029 bra = c;
01030 { int ret = r_R2();
01031 if (ret <= 0) return ret;
01032 }
01033 switch(among_var) {
01034 case 0: return 0;
01035 case 1:
01036 if (slice_del() == -1) return -1;
01037 break;
01038 case 2:
01039 if (!(eq_s_b(2, s_17))) return 0;
01040 bra = c;
01041 { int ret = slice_from_s(1, s_18);
01042 if (ret < 0) return ret;
01043 }
01044 break;
01045 case 3:
01046 { int ret = slice_from_s(3, s_19);
01047 if (ret < 0) return ret;
01048 }
01049 break;
01050 }
01051 B_standard_suffix_removed = 1;
01052 return 1;
01053 }
01054
01055 int Xapian::InternalStemRomanian::r_verb_suffix() {
01056 int among_var;
01057 { int m1 = l - c; (void)m1;
01058 int mlimit1;
01059 if (c < I_pV) return 0;
01060 c = I_pV;
01061 mlimit1 = lb; lb = c;
01062 c = l - m1;
01063 ket = c;
01064 among_var = find_among_b(s_pool, a_4, 94, 0, 0);
01065 if (!(among_var)) { lb = mlimit1; return 0; }
01066 bra = c;
01067 switch(among_var) {
01068 case 0: { lb = mlimit1; return 0; }
01069 case 1:
01070 { int m2 = l - c; (void)m2;
01071 if (out_grouping_b_U(g_v, 97, 259, 0)) goto lab1;
01072 goto lab0;
01073 lab1:
01074 c = l - m2;
01075 if (c <= lb || p[c - 1] != 'u') { lb = mlimit1; return 0; }
01076 c--;
01077 }
01078 lab0:
01079 if (slice_del() == -1) return -1;
01080 break;
01081 case 2:
01082 if (slice_del() == -1) return -1;
01083 break;
01084 }
01085 lb = mlimit1;
01086 }
01087 return 1;
01088 }
01089
01090 int Xapian::InternalStemRomanian::r_vowel_suffix() {
01091 int among_var;
01092 ket = c;
01093 among_var = find_among_b(s_pool, a_5, 5, 0, 0);
01094 if (!(among_var)) return 0;
01095 bra = c;
01096 { int ret = r_RV();
01097 if (ret <= 0) return ret;
01098 }
01099 switch(among_var) {
01100 case 0: return 0;
01101 case 1:
01102 if (slice_del() == -1) return -1;
01103 break;
01104 }
01105 return 1;
01106 }
01107
01108 int Xapian::InternalStemRomanian::stem() {
01109 { int c1 = c;
01110 { int ret = r_prelude();
01111 if (ret == 0) goto lab0;
01112 if (ret < 0) return ret;
01113 }
01114 lab0:
01115 c = c1;
01116 }
01117 { int c2 = c;
01118 { int ret = r_mark_regions();
01119 if (ret == 0) goto lab1;
01120 if (ret < 0) return ret;
01121 }
01122 lab1:
01123 c = c2;
01124 }
01125 lb = c; c = l;
01126
01127 { int m3 = l - c; (void)m3;
01128 { int ret = r_step_0();
01129 if (ret == 0) goto lab2;
01130 if (ret < 0) return ret;
01131 }
01132 lab2:
01133 c = l - m3;
01134 }
01135 { int m4 = l - c; (void)m4;
01136 { int ret = r_standard_suffix();
01137 if (ret == 0) goto lab3;
01138 if (ret < 0) return ret;
01139 }
01140 lab3:
01141 c = l - m4;
01142 }
01143 { int m5 = l - c; (void)m5;
01144 { int m6 = l - c; (void)m6;
01145 if (!(B_standard_suffix_removed)) goto lab6;
01146 goto lab5;
01147 lab6:
01148 c = l - m6;
01149 { int ret = r_verb_suffix();
01150 if (ret == 0) goto lab4;
01151 if (ret < 0) return ret;
01152 }
01153 }
01154 lab5:
01155 lab4:
01156 c = l - m5;
01157 }
01158 { int m7 = l - c; (void)m7;
01159 { int ret = r_vowel_suffix();
01160 if (ret == 0) goto lab7;
01161 if (ret < 0) return ret;
01162 }
01163 lab7:
01164 c = l - m7;
01165 }
01166 c = lb;
01167 { int c8 = c;
01168 { int ret = r_postlude();
01169 if (ret == 0) goto lab8;
01170 if (ret < 0) return ret;
01171 }
01172 lab8:
01173 c = c8;
01174 }
01175 return 1;
01176 }
01177
01178 Xapian::InternalStemRomanian::InternalStemRomanian()
01179 : B_standard_suffix_removed(0), I_p2(0), I_p1(0), I_pV(0)
01180 {
01181 }
01182
01183 Xapian::InternalStemRomanian::~InternalStemRomanian()
01184 {
01185 }
01186
01187 const char *
01188 Xapian::InternalStemRomanian::get_description() const
01189 {
01190 return "romanian";
01191 }