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