isomorfeus-ferret 0.12.4 → 0.12.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +612 -612
  3. data/README.md +80 -48
  4. data/ext/isomorfeus_ferret_ext/bm_hash.c +9 -6
  5. data/ext/isomorfeus_ferret_ext/bm_micro_string.c +4 -2
  6. data/ext/isomorfeus_ferret_ext/frb_store.c +34 -5
  7. data/ext/isomorfeus_ferret_ext/frt_posh.h +11 -19
  8. data/ext/isomorfeus_ferret_ext/frt_q_parser.c +1844 -1911
  9. data/ext/isomorfeus_ferret_ext/frt_q_phrase.c +7 -7
  10. data/ext/isomorfeus_ferret_ext/frt_scanner.c +1 -0
  11. data/ext/isomorfeus_ferret_ext/frt_scanner_mb.c +1 -0
  12. data/ext/isomorfeus_ferret_ext/frt_scanner_utf8.c +1 -0
  13. data/ext/isomorfeus_ferret_ext/frt_search.h +1 -1
  14. data/ext/isomorfeus_ferret_ext/libstemmer.c +14 -11
  15. data/ext/isomorfeus_ferret_ext/libstemmer.h +4 -9
  16. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_basque.c +1167 -0
  17. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_basque.h +6 -0
  18. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_catalan.c +1433 -0
  19. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_catalan.h +6 -0
  20. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_danish.c +120 -143
  21. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_danish.h +1 -2
  22. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_dutch.c +217 -237
  23. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_dutch.h +1 -1
  24. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_english.c +377 -432
  25. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_english.h +1 -1
  26. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_finnish.c +298 -342
  27. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_finnish.h +1 -2
  28. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_french.c +530 -524
  29. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_french.h +1 -1
  30. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_german.c +201 -214
  31. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_german.h +1 -1
  32. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_hungarian.c +1 -1
  33. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_indonesian.c +394 -0
  34. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_indonesian.h +6 -0
  35. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_irish.c +457 -0
  36. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_irish.h +6 -0
  37. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_italian.c +396 -439
  38. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_italian.h +1 -1
  39. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_norwegian.c +104 -128
  40. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_norwegian.h +1 -1
  41. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_porter.c +242 -273
  42. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_porter.h +1 -1
  43. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_portuguese.c +406 -461
  44. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_portuguese.h +1 -2
  45. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_spanish.c +405 -456
  46. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_spanish.h +1 -1
  47. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_swedish.c +108 -126
  48. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_swedish.h +1 -1
  49. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_2_hungarian.c +849 -0
  50. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_2_hungarian.h +6 -0
  51. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_2_romanian.c +373 -405
  52. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_2_romanian.h +1 -1
  53. data/ext/isomorfeus_ferret_ext/stem_KOI8_R_russian.c +288 -305
  54. data/ext/isomorfeus_ferret_ext/stem_KOI8_R_russian.h +1 -1
  55. data/ext/isomorfeus_ferret_ext/stem_UTF_8_arabic.c +1651 -0
  56. data/ext/isomorfeus_ferret_ext/stem_UTF_8_arabic.h +6 -0
  57. data/ext/isomorfeus_ferret_ext/stem_UTF_8_armenian.c +546 -0
  58. data/ext/isomorfeus_ferret_ext/stem_UTF_8_armenian.h +6 -0
  59. data/ext/isomorfeus_ferret_ext/stem_UTF_8_basque.c +1171 -0
  60. data/ext/isomorfeus_ferret_ext/stem_UTF_8_basque.h +6 -0
  61. data/ext/isomorfeus_ferret_ext/stem_UTF_8_catalan.c +1436 -0
  62. data/ext/isomorfeus_ferret_ext/stem_UTF_8_catalan.h +6 -0
  63. data/ext/isomorfeus_ferret_ext/stem_UTF_8_danish.c +121 -141
  64. data/ext/isomorfeus_ferret_ext/stem_UTF_8_danish.h +1 -1
  65. data/ext/isomorfeus_ferret_ext/stem_UTF_8_dutch.c +221 -241
  66. data/ext/isomorfeus_ferret_ext/stem_UTF_8_dutch.h +1 -1
  67. data/ext/isomorfeus_ferret_ext/stem_UTF_8_english.c +381 -431
  68. data/ext/isomorfeus_ferret_ext/stem_UTF_8_english.h +1 -1
  69. data/ext/isomorfeus_ferret_ext/stem_UTF_8_finnish.c +300 -345
  70. data/ext/isomorfeus_ferret_ext/stem_UTF_8_finnish.h +1 -1
  71. data/ext/isomorfeus_ferret_ext/stem_UTF_8_french.c +518 -511
  72. data/ext/isomorfeus_ferret_ext/stem_UTF_8_french.h +1 -1
  73. data/ext/isomorfeus_ferret_ext/stem_UTF_8_german.c +201 -209
  74. data/ext/isomorfeus_ferret_ext/stem_UTF_8_german.h +1 -1
  75. data/ext/isomorfeus_ferret_ext/stem_UTF_8_greek.c +3660 -0
  76. data/ext/isomorfeus_ferret_ext/stem_UTF_8_greek.h +6 -0
  77. data/ext/isomorfeus_ferret_ext/stem_UTF_8_hindi.c +309 -0
  78. data/ext/isomorfeus_ferret_ext/stem_UTF_8_hindi.h +6 -0
  79. data/ext/isomorfeus_ferret_ext/stem_UTF_8_hungarian.c +306 -671
  80. data/ext/isomorfeus_ferret_ext/stem_UTF_8_hungarian.h +1 -1
  81. data/ext/isomorfeus_ferret_ext/stem_UTF_8_indonesian.c +394 -0
  82. data/ext/isomorfeus_ferret_ext/stem_UTF_8_indonesian.h +6 -0
  83. data/ext/isomorfeus_ferret_ext/stem_UTF_8_irish.c +457 -0
  84. data/ext/isomorfeus_ferret_ext/stem_UTF_8_irish.h +6 -0
  85. data/ext/isomorfeus_ferret_ext/stem_UTF_8_italian.c +400 -442
  86. data/ext/isomorfeus_ferret_ext/stem_UTF_8_italian.h +1 -1
  87. data/ext/isomorfeus_ferret_ext/stem_UTF_8_lithuanian.c +824 -0
  88. data/ext/isomorfeus_ferret_ext/stem_UTF_8_lithuanian.h +6 -0
  89. data/ext/isomorfeus_ferret_ext/stem_UTF_8_nepali.c +408 -0
  90. data/ext/isomorfeus_ferret_ext/stem_UTF_8_nepali.h +6 -0
  91. data/ext/isomorfeus_ferret_ext/stem_UTF_8_norwegian.c +105 -127
  92. data/ext/isomorfeus_ferret_ext/stem_UTF_8_norwegian.h +1 -1
  93. data/ext/isomorfeus_ferret_ext/stem_UTF_8_porter.c +245 -276
  94. data/ext/isomorfeus_ferret_ext/stem_UTF_8_porter.h +1 -1
  95. data/ext/isomorfeus_ferret_ext/stem_UTF_8_portuguese.c +409 -464
  96. data/ext/isomorfeus_ferret_ext/stem_UTF_8_portuguese.h +1 -1
  97. data/ext/isomorfeus_ferret_ext/stem_UTF_8_romanian.c +376 -408
  98. data/ext/isomorfeus_ferret_ext/stem_UTF_8_romanian.h +1 -1
  99. data/ext/isomorfeus_ferret_ext/stem_UTF_8_russian.c +272 -287
  100. data/ext/isomorfeus_ferret_ext/stem_UTF_8_russian.h +1 -1
  101. data/ext/isomorfeus_ferret_ext/stem_UTF_8_serbian.c +6530 -0
  102. data/ext/isomorfeus_ferret_ext/stem_UTF_8_serbian.h +6 -0
  103. data/ext/isomorfeus_ferret_ext/stem_UTF_8_spanish.c +407 -458
  104. data/ext/isomorfeus_ferret_ext/stem_UTF_8_spanish.h +1 -1
  105. data/ext/isomorfeus_ferret_ext/stem_UTF_8_swedish.c +110 -125
  106. data/ext/isomorfeus_ferret_ext/stem_UTF_8_swedish.h +1 -1
  107. data/ext/isomorfeus_ferret_ext/stem_UTF_8_tamil.c +1865 -0
  108. data/ext/isomorfeus_ferret_ext/stem_UTF_8_tamil.h +6 -0
  109. data/ext/isomorfeus_ferret_ext/stem_UTF_8_turkish.c +698 -806
  110. data/ext/isomorfeus_ferret_ext/stem_UTF_8_turkish.h +1 -1
  111. data/ext/isomorfeus_ferret_ext/stem_UTF_8_yiddish.c +1220 -0
  112. data/ext/isomorfeus_ferret_ext/stem_UTF_8_yiddish.h +6 -0
  113. data/ext/isomorfeus_ferret_ext/stem_api.c +1 -9
  114. data/ext/isomorfeus_ferret_ext/stem_api.h +1 -3
  115. data/ext/isomorfeus_ferret_ext/stem_header.h +30 -26
  116. data/ext/isomorfeus_ferret_ext/stem_modules.h +113 -26
  117. data/ext/isomorfeus_ferret_ext/stem_modules.txt +18 -5
  118. data/ext/isomorfeus_ferret_ext/stem_utilities.c +167 -132
  119. data/ext/isomorfeus_ferret_ext/test.c +7 -1
  120. data/ext/isomorfeus_ferret_ext/test_search.c +0 -1
  121. data/lib/isomorfeus/ferret/version.rb +1 -1
  122. metadata +39 -4
  123. data/ext/isomorfeus_ferret_ext/q_parser.y +0 -1366
@@ -1,4 +1,4 @@
1
- /* This file was generated automatically by the Snowball to ANSI C compiler */
1
+ /* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
2
2
 
3
3
  #include "stem_header.h"
4
4
 
@@ -30,15 +30,15 @@ static const symbol s_0_8[6] = { 0xD9, 0xD7, 0xDB, 0xC9, 0xD3, 0xD8 };
30
30
 
31
31
  static const struct among a_0[9] =
32
32
  {
33
- /* 0 */ { 3, s_0_0, -1, 1, 0},
34
- /* 1 */ { 4, s_0_1, 0, 2, 0},
35
- /* 2 */ { 4, s_0_2, 0, 2, 0},
36
- /* 3 */ { 1, s_0_3, -1, 1, 0},
37
- /* 4 */ { 2, s_0_4, 3, 2, 0},
38
- /* 5 */ { 2, s_0_5, 3, 2, 0},
39
- /* 6 */ { 5, s_0_6, -1, 1, 0},
40
- /* 7 */ { 6, s_0_7, 6, 2, 0},
41
- /* 8 */ { 6, s_0_8, 6, 2, 0}
33
+ { 3, s_0_0, -1, 1, 0},
34
+ { 4, s_0_1, 0, 2, 0},
35
+ { 4, s_0_2, 0, 2, 0},
36
+ { 1, s_0_3, -1, 1, 0},
37
+ { 2, s_0_4, 3, 2, 0},
38
+ { 2, s_0_5, 3, 2, 0},
39
+ { 5, s_0_6, -1, 1, 0},
40
+ { 6, s_0_7, 6, 2, 0},
41
+ { 6, s_0_8, 6, 2, 0}
42
42
  };
43
43
 
44
44
  static const symbol s_1_0[2] = { 0xC0, 0xC0 };
@@ -70,32 +70,32 @@ static const symbol s_1_25[3] = { 0xCF, 0xCD, 0xD5 };
70
70
 
71
71
  static const struct among a_1[26] =
72
72
  {
73
- /* 0 */ { 2, s_1_0, -1, 1, 0},
74
- /* 1 */ { 2, s_1_1, -1, 1, 0},
75
- /* 2 */ { 2, s_1_2, -1, 1, 0},
76
- /* 3 */ { 2, s_1_3, -1, 1, 0},
77
- /* 4 */ { 2, s_1_4, -1, 1, 0},
78
- /* 5 */ { 2, s_1_5, -1, 1, 0},
79
- /* 6 */ { 2, s_1_6, -1, 1, 0},
80
- /* 7 */ { 2, s_1_7, -1, 1, 0},
81
- /* 8 */ { 2, s_1_8, -1, 1, 0},
82
- /* 9 */ { 2, s_1_9, -1, 1, 0},
83
- /* 10 */ { 3, s_1_10, -1, 1, 0},
84
- /* 11 */ { 3, s_1_11, -1, 1, 0},
85
- /* 12 */ { 2, s_1_12, -1, 1, 0},
86
- /* 13 */ { 2, s_1_13, -1, 1, 0},
87
- /* 14 */ { 2, s_1_14, -1, 1, 0},
88
- /* 15 */ { 2, s_1_15, -1, 1, 0},
89
- /* 16 */ { 2, s_1_16, -1, 1, 0},
90
- /* 17 */ { 2, s_1_17, -1, 1, 0},
91
- /* 18 */ { 2, s_1_18, -1, 1, 0},
92
- /* 19 */ { 2, s_1_19, -1, 1, 0},
93
- /* 20 */ { 3, s_1_20, -1, 1, 0},
94
- /* 21 */ { 3, s_1_21, -1, 1, 0},
95
- /* 22 */ { 2, s_1_22, -1, 1, 0},
96
- /* 23 */ { 2, s_1_23, -1, 1, 0},
97
- /* 24 */ { 3, s_1_24, -1, 1, 0},
98
- /* 25 */ { 3, s_1_25, -1, 1, 0}
73
+ { 2, s_1_0, -1, 1, 0},
74
+ { 2, s_1_1, -1, 1, 0},
75
+ { 2, s_1_2, -1, 1, 0},
76
+ { 2, s_1_3, -1, 1, 0},
77
+ { 2, s_1_4, -1, 1, 0},
78
+ { 2, s_1_5, -1, 1, 0},
79
+ { 2, s_1_6, -1, 1, 0},
80
+ { 2, s_1_7, -1, 1, 0},
81
+ { 2, s_1_8, -1, 1, 0},
82
+ { 2, s_1_9, -1, 1, 0},
83
+ { 3, s_1_10, -1, 1, 0},
84
+ { 3, s_1_11, -1, 1, 0},
85
+ { 2, s_1_12, -1, 1, 0},
86
+ { 2, s_1_13, -1, 1, 0},
87
+ { 2, s_1_14, -1, 1, 0},
88
+ { 2, s_1_15, -1, 1, 0},
89
+ { 2, s_1_16, -1, 1, 0},
90
+ { 2, s_1_17, -1, 1, 0},
91
+ { 2, s_1_18, -1, 1, 0},
92
+ { 2, s_1_19, -1, 1, 0},
93
+ { 3, s_1_20, -1, 1, 0},
94
+ { 3, s_1_21, -1, 1, 0},
95
+ { 2, s_1_22, -1, 1, 0},
96
+ { 2, s_1_23, -1, 1, 0},
97
+ { 3, s_1_24, -1, 1, 0},
98
+ { 3, s_1_25, -1, 1, 0}
99
99
  };
100
100
 
101
101
  static const symbol s_2_0[2] = { 0xC5, 0xCD };
@@ -109,14 +109,14 @@ static const symbol s_2_7[3] = { 0xD5, 0xC0, 0xDD };
109
109
 
110
110
  static const struct among a_2[8] =
111
111
  {
112
- /* 0 */ { 2, s_2_0, -1, 1, 0},
113
- /* 1 */ { 2, s_2_1, -1, 1, 0},
114
- /* 2 */ { 2, s_2_2, -1, 1, 0},
115
- /* 3 */ { 3, s_2_3, 2, 2, 0},
116
- /* 4 */ { 3, s_2_4, 2, 2, 0},
117
- /* 5 */ { 1, s_2_5, -1, 1, 0},
118
- /* 6 */ { 2, s_2_6, 5, 1, 0},
119
- /* 7 */ { 3, s_2_7, 6, 2, 0}
112
+ { 2, s_2_0, -1, 1, 0},
113
+ { 2, s_2_1, -1, 1, 0},
114
+ { 2, s_2_2, -1, 1, 0},
115
+ { 3, s_2_3, 2, 2, 0},
116
+ { 3, s_2_4, 2, 2, 0},
117
+ { 1, s_2_5, -1, 1, 0},
118
+ { 2, s_2_6, 5, 1, 0},
119
+ { 3, s_2_7, 6, 2, 0}
120
120
  };
121
121
 
122
122
  static const symbol s_3_0[2] = { 0xD3, 0xD1 };
@@ -124,8 +124,8 @@ static const symbol s_3_1[2] = { 0xD3, 0xD8 };
124
124
 
125
125
  static const struct among a_3[2] =
126
126
  {
127
- /* 0 */ { 2, s_3_0, -1, 1, 0},
128
- /* 1 */ { 2, s_3_1, -1, 1, 0}
127
+ { 2, s_3_0, -1, 1, 0},
128
+ { 2, s_3_1, -1, 1, 0}
129
129
  };
130
130
 
131
131
  static const symbol s_4_0[1] = { 0xC0 };
@@ -177,52 +177,52 @@ static const symbol s_4_45[3] = { 0xC5, 0xCE, 0xD9 };
177
177
 
178
178
  static const struct among a_4[46] =
179
179
  {
180
- /* 0 */ { 1, s_4_0, -1, 2, 0},
181
- /* 1 */ { 2, s_4_1, 0, 2, 0},
182
- /* 2 */ { 2, s_4_2, -1, 1, 0},
183
- /* 3 */ { 3, s_4_3, 2, 2, 0},
184
- /* 4 */ { 3, s_4_4, 2, 2, 0},
185
- /* 5 */ { 2, s_4_5, -1, 1, 0},
186
- /* 6 */ { 3, s_4_6, 5, 2, 0},
187
- /* 7 */ { 3, s_4_7, -1, 1, 0},
188
- /* 8 */ { 3, s_4_8, -1, 2, 0},
189
- /* 9 */ { 3, s_4_9, -1, 1, 0},
190
- /* 10 */ { 4, s_4_10, 9, 2, 0},
191
- /* 11 */ { 4, s_4_11, 9, 2, 0},
192
- /* 12 */ { 2, s_4_12, -1, 1, 0},
193
- /* 13 */ { 3, s_4_13, 12, 2, 0},
194
- /* 14 */ { 3, s_4_14, 12, 2, 0},
195
- /* 15 */ { 1, s_4_15, -1, 1, 0},
196
- /* 16 */ { 2, s_4_16, 15, 2, 0},
197
- /* 17 */ { 2, s_4_17, 15, 2, 0},
198
- /* 18 */ { 1, s_4_18, -1, 1, 0},
199
- /* 19 */ { 2, s_4_19, 18, 2, 0},
200
- /* 20 */ { 2, s_4_20, 18, 2, 0},
201
- /* 21 */ { 2, s_4_21, -1, 1, 0},
202
- /* 22 */ { 2, s_4_22, -1, 2, 0},
203
- /* 23 */ { 2, s_4_23, -1, 2, 0},
204
- /* 24 */ { 1, s_4_24, -1, 1, 0},
205
- /* 25 */ { 2, s_4_25, 24, 2, 0},
206
- /* 26 */ { 2, s_4_26, -1, 1, 0},
207
- /* 27 */ { 3, s_4_27, 26, 2, 0},
208
- /* 28 */ { 3, s_4_28, 26, 2, 0},
209
- /* 29 */ { 2, s_4_29, -1, 1, 0},
210
- /* 30 */ { 3, s_4_30, 29, 2, 0},
211
- /* 31 */ { 3, s_4_31, 29, 1, 0},
212
- /* 32 */ { 2, s_4_32, -1, 1, 0},
213
- /* 33 */ { 3, s_4_33, 32, 2, 0},
214
- /* 34 */ { 2, s_4_34, -1, 1, 0},
215
- /* 35 */ { 3, s_4_35, 34, 2, 0},
216
- /* 36 */ { 2, s_4_36, -1, 2, 0},
217
- /* 37 */ { 2, s_4_37, -1, 2, 0},
218
- /* 38 */ { 2, s_4_38, -1, 2, 0},
219
- /* 39 */ { 2, s_4_39, -1, 1, 0},
220
- /* 40 */ { 3, s_4_40, 39, 2, 0},
221
- /* 41 */ { 3, s_4_41, 39, 2, 0},
222
- /* 42 */ { 3, s_4_42, -1, 1, 0},
223
- /* 43 */ { 3, s_4_43, -1, 2, 0},
224
- /* 44 */ { 2, s_4_44, -1, 1, 0},
225
- /* 45 */ { 3, s_4_45, 44, 2, 0}
180
+ { 1, s_4_0, -1, 2, 0},
181
+ { 2, s_4_1, 0, 2, 0},
182
+ { 2, s_4_2, -1, 1, 0},
183
+ { 3, s_4_3, 2, 2, 0},
184
+ { 3, s_4_4, 2, 2, 0},
185
+ { 2, s_4_5, -1, 1, 0},
186
+ { 3, s_4_6, 5, 2, 0},
187
+ { 3, s_4_7, -1, 1, 0},
188
+ { 3, s_4_8, -1, 2, 0},
189
+ { 3, s_4_9, -1, 1, 0},
190
+ { 4, s_4_10, 9, 2, 0},
191
+ { 4, s_4_11, 9, 2, 0},
192
+ { 2, s_4_12, -1, 1, 0},
193
+ { 3, s_4_13, 12, 2, 0},
194
+ { 3, s_4_14, 12, 2, 0},
195
+ { 1, s_4_15, -1, 1, 0},
196
+ { 2, s_4_16, 15, 2, 0},
197
+ { 2, s_4_17, 15, 2, 0},
198
+ { 1, s_4_18, -1, 1, 0},
199
+ { 2, s_4_19, 18, 2, 0},
200
+ { 2, s_4_20, 18, 2, 0},
201
+ { 2, s_4_21, -1, 1, 0},
202
+ { 2, s_4_22, -1, 2, 0},
203
+ { 2, s_4_23, -1, 2, 0},
204
+ { 1, s_4_24, -1, 1, 0},
205
+ { 2, s_4_25, 24, 2, 0},
206
+ { 2, s_4_26, -1, 1, 0},
207
+ { 3, s_4_27, 26, 2, 0},
208
+ { 3, s_4_28, 26, 2, 0},
209
+ { 2, s_4_29, -1, 1, 0},
210
+ { 3, s_4_30, 29, 2, 0},
211
+ { 3, s_4_31, 29, 1, 0},
212
+ { 2, s_4_32, -1, 1, 0},
213
+ { 3, s_4_33, 32, 2, 0},
214
+ { 2, s_4_34, -1, 1, 0},
215
+ { 3, s_4_35, 34, 2, 0},
216
+ { 2, s_4_36, -1, 2, 0},
217
+ { 2, s_4_37, -1, 2, 0},
218
+ { 2, s_4_38, -1, 2, 0},
219
+ { 2, s_4_39, -1, 1, 0},
220
+ { 3, s_4_40, 39, 2, 0},
221
+ { 3, s_4_41, 39, 2, 0},
222
+ { 3, s_4_42, -1, 1, 0},
223
+ { 3, s_4_43, -1, 2, 0},
224
+ { 2, s_4_44, -1, 1, 0},
225
+ { 3, s_4_45, 44, 2, 0}
226
226
  };
227
227
 
228
228
  static const symbol s_5_0[1] = { 0xC0 };
@@ -264,42 +264,42 @@ static const symbol s_5_35[1] = { 0xD9 };
264
264
 
265
265
  static const struct among a_5[36] =
266
266
  {
267
- /* 0 */ { 1, s_5_0, -1, 1, 0},
268
- /* 1 */ { 2, s_5_1, 0, 1, 0},
269
- /* 2 */ { 2, s_5_2, 0, 1, 0},
270
- /* 3 */ { 1, s_5_3, -1, 1, 0},
271
- /* 4 */ { 1, s_5_4, -1, 1, 0},
272
- /* 5 */ { 2, s_5_5, 4, 1, 0},
273
- /* 6 */ { 2, s_5_6, 4, 1, 0},
274
- /* 7 */ { 2, s_5_7, -1, 1, 0},
275
- /* 8 */ { 2, s_5_8, -1, 1, 0},
276
- /* 9 */ { 3, s_5_9, 8, 1, 0},
277
- /* 10 */ { 1, s_5_10, -1, 1, 0},
278
- /* 11 */ { 2, s_5_11, 10, 1, 0},
279
- /* 12 */ { 2, s_5_12, 10, 1, 0},
280
- /* 13 */ { 3, s_5_13, 10, 1, 0},
281
- /* 14 */ { 3, s_5_14, 10, 1, 0},
282
- /* 15 */ { 4, s_5_15, 14, 1, 0},
283
- /* 16 */ { 1, s_5_16, -1, 1, 0},
284
- /* 17 */ { 2, s_5_17, 16, 1, 0},
285
- /* 18 */ { 3, s_5_18, 17, 1, 0},
286
- /* 19 */ { 2, s_5_19, 16, 1, 0},
287
- /* 20 */ { 2, s_5_20, 16, 1, 0},
288
- /* 21 */ { 2, s_5_21, -1, 1, 0},
289
- /* 22 */ { 2, s_5_22, -1, 1, 0},
290
- /* 23 */ { 3, s_5_23, 22, 1, 0},
291
- /* 24 */ { 2, s_5_24, -1, 1, 0},
292
- /* 25 */ { 2, s_5_25, -1, 1, 0},
293
- /* 26 */ { 3, s_5_26, 25, 1, 0},
294
- /* 27 */ { 1, s_5_27, -1, 1, 0},
295
- /* 28 */ { 1, s_5_28, -1, 1, 0},
296
- /* 29 */ { 2, s_5_29, 28, 1, 0},
297
- /* 30 */ { 2, s_5_30, 28, 1, 0},
298
- /* 31 */ { 1, s_5_31, -1, 1, 0},
299
- /* 32 */ { 2, s_5_32, -1, 1, 0},
300
- /* 33 */ { 2, s_5_33, -1, 1, 0},
301
- /* 34 */ { 1, s_5_34, -1, 1, 0},
302
- /* 35 */ { 1, s_5_35, -1, 1, 0}
267
+ { 1, s_5_0, -1, 1, 0},
268
+ { 2, s_5_1, 0, 1, 0},
269
+ { 2, s_5_2, 0, 1, 0},
270
+ { 1, s_5_3, -1, 1, 0},
271
+ { 1, s_5_4, -1, 1, 0},
272
+ { 2, s_5_5, 4, 1, 0},
273
+ { 2, s_5_6, 4, 1, 0},
274
+ { 2, s_5_7, -1, 1, 0},
275
+ { 2, s_5_8, -1, 1, 0},
276
+ { 3, s_5_9, 8, 1, 0},
277
+ { 1, s_5_10, -1, 1, 0},
278
+ { 2, s_5_11, 10, 1, 0},
279
+ { 2, s_5_12, 10, 1, 0},
280
+ { 3, s_5_13, 10, 1, 0},
281
+ { 3, s_5_14, 10, 1, 0},
282
+ { 4, s_5_15, 14, 1, 0},
283
+ { 1, s_5_16, -1, 1, 0},
284
+ { 2, s_5_17, 16, 1, 0},
285
+ { 3, s_5_18, 17, 1, 0},
286
+ { 2, s_5_19, 16, 1, 0},
287
+ { 2, s_5_20, 16, 1, 0},
288
+ { 2, s_5_21, -1, 1, 0},
289
+ { 2, s_5_22, -1, 1, 0},
290
+ { 3, s_5_23, 22, 1, 0},
291
+ { 2, s_5_24, -1, 1, 0},
292
+ { 2, s_5_25, -1, 1, 0},
293
+ { 3, s_5_26, 25, 1, 0},
294
+ { 1, s_5_27, -1, 1, 0},
295
+ { 1, s_5_28, -1, 1, 0},
296
+ { 2, s_5_29, 28, 1, 0},
297
+ { 2, s_5_30, 28, 1, 0},
298
+ { 1, s_5_31, -1, 1, 0},
299
+ { 2, s_5_32, -1, 1, 0},
300
+ { 2, s_5_33, -1, 1, 0},
301
+ { 1, s_5_34, -1, 1, 0},
302
+ { 1, s_5_35, -1, 1, 0}
303
303
  };
304
304
 
305
305
  static const symbol s_6_0[3] = { 0xCF, 0xD3, 0xD4 };
@@ -307,8 +307,8 @@ static const symbol s_6_1[4] = { 0xCF, 0xD3, 0xD4, 0xD8 };
307
307
 
308
308
  static const struct among a_6[2] =
309
309
  {
310
- /* 0 */ { 3, s_6_0, -1, 1, 0},
311
- /* 1 */ { 4, s_6_1, -1, 1, 0}
310
+ { 3, s_6_0, -1, 1, 0},
311
+ { 4, s_6_1, -1, 1, 0}
312
312
  };
313
313
 
314
314
  static const symbol s_7_0[4] = { 0xC5, 0xCA, 0xDB, 0xC5 };
@@ -318,51 +318,42 @@ static const symbol s_7_3[3] = { 0xC5, 0xCA, 0xDB };
318
318
 
319
319
  static const struct among a_7[4] =
320
320
  {
321
- /* 0 */ { 4, s_7_0, -1, 1, 0},
322
- /* 1 */ { 1, s_7_1, -1, 2, 0},
323
- /* 2 */ { 1, s_7_2, -1, 3, 0},
324
- /* 3 */ { 3, s_7_3, -1, 1, 0}
321
+ { 4, s_7_0, -1, 1, 0},
322
+ { 1, s_7_1, -1, 2, 0},
323
+ { 1, s_7_2, -1, 3, 0},
324
+ { 3, s_7_3, -1, 1, 0}
325
325
  };
326
326
 
327
327
  static const unsigned char g_v[] = { 35, 130, 34, 18 };
328
328
 
329
- static const symbol s_0[] = { 0xC1 };
330
- static const symbol s_1[] = { 0xD1 };
331
- static const symbol s_2[] = { 0xC1 };
332
- static const symbol s_3[] = { 0xD1 };
333
- static const symbol s_4[] = { 0xC1 };
334
- static const symbol s_5[] = { 0xD1 };
335
- static const symbol s_6[] = { 0xCE };
336
- static const symbol s_7[] = { 0xCE };
337
- static const symbol s_8[] = { 0xCE };
338
- static const symbol s_9[] = { 0xC9 };
329
+ static const symbol s_0[] = { 0xC5 };
339
330
 
340
331
  static int r_mark_regions(struct SN_env * z) {
341
- z->I[0] = z->l;
342
332
  z->I[1] = z->l;
343
- { int c1 = z->c; /* do, line 63 */
344
- { /* gopast */ /* grouping v, line 64 */
333
+ z->I[0] = z->l;
334
+ { int c1 = z->c;
335
+ {
345
336
  int ret = out_grouping(z, g_v, 192, 220, 1);
346
337
  if (ret < 0) goto lab0;
347
338
  z->c += ret;
348
339
  }
349
- z->I[0] = z->c; /* setmark pV, line 64 */
350
- { /* gopast */ /* non v, line 64 */
340
+ z->I[1] = z->c;
341
+ {
351
342
  int ret = in_grouping(z, g_v, 192, 220, 1);
352
343
  if (ret < 0) goto lab0;
353
344
  z->c += ret;
354
345
  }
355
- { /* gopast */ /* grouping v, line 65 */
346
+ {
356
347
  int ret = out_grouping(z, g_v, 192, 220, 1);
357
348
  if (ret < 0) goto lab0;
358
349
  z->c += ret;
359
350
  }
360
- { /* gopast */ /* non v, line 65 */
351
+ {
361
352
  int ret = in_grouping(z, g_v, 192, 220, 1);
362
353
  if (ret < 0) goto lab0;
363
354
  z->c += ret;
364
355
  }
365
- z->I[1] = z->c; /* setmark p2, line 65 */
356
+ z->I[0] = z->c;
366
357
  lab0:
367
358
  z->c = c1;
368
359
  }
@@ -370,34 +361,35 @@ static int r_mark_regions(struct SN_env * z) {
370
361
  }
371
362
 
372
363
  static int r_R2(struct SN_env * z) {
373
- if (!(z->I[1] <= z->c)) return 0;
364
+ if (!(z->I[0] <= z->c)) return 0;
374
365
  return 1;
375
366
  }
376
367
 
377
368
  static int r_perfective_gerund(struct SN_env * z) {
378
369
  int among_var;
379
- z->ket = z->c; /* [, line 74 */
370
+ z->ket = z->c;
380
371
  if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((25166336 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
381
- among_var = find_among_b(z, a_0, 9); /* substring, line 74 */
372
+ among_var = find_among_b(z, a_0, 9);
382
373
  if (!(among_var)) return 0;
383
- z->bra = z->c; /* ], line 74 */
384
- switch(among_var) {
385
- case 0: return 0;
374
+ z->bra = z->c;
375
+ switch (among_var) {
386
376
  case 1:
387
- { int m1 = z->l - z->c; (void)m1; /* or, line 78 */
388
- if (!(eq_s_b(z, 1, s_0))) goto lab1;
377
+ { int m1 = z->l - z->c; (void)m1;
378
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab1;
379
+ z->c--;
389
380
  goto lab0;
390
381
  lab1:
391
382
  z->c = z->l - m1;
392
- if (!(eq_s_b(z, 1, s_1))) return 0;
383
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) return 0;
384
+ z->c--;
393
385
  }
394
386
  lab0:
395
- { int ret = slice_del(z); /* delete, line 78 */
387
+ { int ret = slice_del(z);
396
388
  if (ret < 0) return ret;
397
389
  }
398
390
  break;
399
391
  case 2:
400
- { int ret = slice_del(z); /* delete, line 85 */
392
+ { int ret = slice_del(z);
401
393
  if (ret < 0) return ret;
402
394
  }
403
395
  break;
@@ -406,19 +398,12 @@ static int r_perfective_gerund(struct SN_env * z) {
406
398
  }
407
399
 
408
400
  static int r_adjective(struct SN_env * z) {
409
- int among_var;
410
- z->ket = z->c; /* [, line 90 */
401
+ z->ket = z->c;
411
402
  if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((2271009 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
412
- among_var = find_among_b(z, a_1, 26); /* substring, line 90 */
413
- if (!(among_var)) return 0;
414
- z->bra = z->c; /* ], line 90 */
415
- switch(among_var) {
416
- case 0: return 0;
417
- case 1:
418
- { int ret = slice_del(z); /* delete, line 99 */
419
- if (ret < 0) return ret;
420
- }
421
- break;
403
+ if (!(find_among_b(z, a_1, 26))) return 0;
404
+ z->bra = z->c;
405
+ { int ret = slice_del(z);
406
+ if (ret < 0) return ret;
422
407
  }
423
408
  return 1;
424
409
  }
@@ -426,32 +411,32 @@ static int r_adjective(struct SN_env * z) {
426
411
  static int r_adjectival(struct SN_env * z) {
427
412
  int among_var;
428
413
  { int ret = r_adjective(z);
429
- if (ret == 0) return 0; /* call adjective, line 104 */
430
- if (ret < 0) return ret;
414
+ if (ret <= 0) return ret;
431
415
  }
432
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 111 */
433
- z->ket = z->c; /* [, line 112 */
434
- if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((671113216 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m_keep; goto lab0; }
435
- among_var = find_among_b(z, a_2, 8); /* substring, line 112 */
436
- if (!(among_var)) { z->c = z->l - m_keep; goto lab0; }
437
- z->bra = z->c; /* ], line 112 */
438
- switch(among_var) {
439
- case 0: { z->c = z->l - m_keep; goto lab0; }
416
+ { int m1 = z->l - z->c; (void)m1;
417
+ z->ket = z->c;
418
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((671113216 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->c = z->l - m1; goto lab0; }
419
+ among_var = find_among_b(z, a_2, 8);
420
+ if (!(among_var)) { z->c = z->l - m1; goto lab0; }
421
+ z->bra = z->c;
422
+ switch (among_var) {
440
423
  case 1:
441
- { int m1 = z->l - z->c; (void)m1; /* or, line 117 */
442
- if (!(eq_s_b(z, 1, s_2))) goto lab2;
424
+ { int m2 = z->l - z->c; (void)m2;
425
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab2;
426
+ z->c--;
443
427
  goto lab1;
444
428
  lab2:
445
- z->c = z->l - m1;
446
- if (!(eq_s_b(z, 1, s_3))) { z->c = z->l - m_keep; goto lab0; }
429
+ z->c = z->l - m2;
430
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) { z->c = z->l - m1; goto lab0; }
431
+ z->c--;
447
432
  }
448
433
  lab1:
449
- { int ret = slice_del(z); /* delete, line 117 */
434
+ { int ret = slice_del(z);
450
435
  if (ret < 0) return ret;
451
436
  }
452
437
  break;
453
438
  case 2:
454
- { int ret = slice_del(z); /* delete, line 124 */
439
+ { int ret = slice_del(z);
455
440
  if (ret < 0) return ret;
456
441
  }
457
442
  break;
@@ -463,47 +448,41 @@ static int r_adjectival(struct SN_env * z) {
463
448
  }
464
449
 
465
450
  static int r_reflexive(struct SN_env * z) {
466
- int among_var;
467
- z->ket = z->c; /* [, line 131 */
451
+ z->ket = z->c;
468
452
  if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 209 && z->p[z->c - 1] != 216)) return 0;
469
- among_var = find_among_b(z, a_3, 2); /* substring, line 131 */
470
- if (!(among_var)) return 0;
471
- z->bra = z->c; /* ], line 131 */
472
- switch(among_var) {
473
- case 0: return 0;
474
- case 1:
475
- { int ret = slice_del(z); /* delete, line 134 */
476
- if (ret < 0) return ret;
477
- }
478
- break;
453
+ if (!(find_among_b(z, a_3, 2))) return 0;
454
+ z->bra = z->c;
455
+ { int ret = slice_del(z);
456
+ if (ret < 0) return ret;
479
457
  }
480
458
  return 1;
481
459
  }
482
460
 
483
461
  static int r_verb(struct SN_env * z) {
484
462
  int among_var;
485
- z->ket = z->c; /* [, line 139 */
463
+ z->ket = z->c;
486
464
  if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((51443235 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
487
- among_var = find_among_b(z, a_4, 46); /* substring, line 139 */
465
+ among_var = find_among_b(z, a_4, 46);
488
466
  if (!(among_var)) return 0;
489
- z->bra = z->c; /* ], line 139 */
490
- switch(among_var) {
491
- case 0: return 0;
467
+ z->bra = z->c;
468
+ switch (among_var) {
492
469
  case 1:
493
- { int m1 = z->l - z->c; (void)m1; /* or, line 145 */
494
- if (!(eq_s_b(z, 1, s_4))) goto lab1;
470
+ { int m1 = z->l - z->c; (void)m1;
471
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xC1) goto lab1;
472
+ z->c--;
495
473
  goto lab0;
496
474
  lab1:
497
475
  z->c = z->l - m1;
498
- if (!(eq_s_b(z, 1, s_5))) return 0;
476
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) return 0;
477
+ z->c--;
499
478
  }
500
479
  lab0:
501
- { int ret = slice_del(z); /* delete, line 145 */
480
+ { int ret = slice_del(z);
502
481
  if (ret < 0) return ret;
503
482
  }
504
483
  break;
505
484
  case 2:
506
- { int ret = slice_del(z); /* delete, line 153 */
485
+ { int ret = slice_del(z);
507
486
  if (ret < 0) return ret;
508
487
  }
509
488
  break;
@@ -512,74 +491,61 @@ static int r_verb(struct SN_env * z) {
512
491
  }
513
492
 
514
493
  static int r_noun(struct SN_env * z) {
515
- int among_var;
516
- z->ket = z->c; /* [, line 162 */
494
+ z->ket = z->c;
517
495
  if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((60991267 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
518
- among_var = find_among_b(z, a_5, 36); /* substring, line 162 */
519
- if (!(among_var)) return 0;
520
- z->bra = z->c; /* ], line 162 */
521
- switch(among_var) {
522
- case 0: return 0;
523
- case 1:
524
- { int ret = slice_del(z); /* delete, line 169 */
525
- if (ret < 0) return ret;
526
- }
527
- break;
496
+ if (!(find_among_b(z, a_5, 36))) return 0;
497
+ z->bra = z->c;
498
+ { int ret = slice_del(z);
499
+ if (ret < 0) return ret;
528
500
  }
529
501
  return 1;
530
502
  }
531
503
 
532
504
  static int r_derivational(struct SN_env * z) {
533
- int among_var;
534
- z->ket = z->c; /* [, line 178 */
505
+ z->ket = z->c;
535
506
  if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 212 && z->p[z->c - 1] != 216)) return 0;
536
- among_var = find_among_b(z, a_6, 2); /* substring, line 178 */
537
- if (!(among_var)) return 0;
538
- z->bra = z->c; /* ], line 178 */
507
+ if (!(find_among_b(z, a_6, 2))) return 0;
508
+ z->bra = z->c;
539
509
  { int ret = r_R2(z);
540
- if (ret == 0) return 0; /* call R2, line 178 */
541
- if (ret < 0) return ret;
510
+ if (ret <= 0) return ret;
542
511
  }
543
- switch(among_var) {
544
- case 0: return 0;
545
- case 1:
546
- { int ret = slice_del(z); /* delete, line 181 */
547
- if (ret < 0) return ret;
548
- }
549
- break;
512
+ { int ret = slice_del(z);
513
+ if (ret < 0) return ret;
550
514
  }
551
515
  return 1;
552
516
  }
553
517
 
554
518
  static int r_tidy_up(struct SN_env * z) {
555
519
  int among_var;
556
- z->ket = z->c; /* [, line 186 */
520
+ z->ket = z->c;
557
521
  if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((151011360 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
558
- among_var = find_among_b(z, a_7, 4); /* substring, line 186 */
522
+ among_var = find_among_b(z, a_7, 4);
559
523
  if (!(among_var)) return 0;
560
- z->bra = z->c; /* ], line 186 */
561
- switch(among_var) {
562
- case 0: return 0;
524
+ z->bra = z->c;
525
+ switch (among_var) {
563
526
  case 1:
564
- { int ret = slice_del(z); /* delete, line 190 */
527
+ { int ret = slice_del(z);
565
528
  if (ret < 0) return ret;
566
529
  }
567
- z->ket = z->c; /* [, line 191 */
568
- if (!(eq_s_b(z, 1, s_6))) return 0;
569
- z->bra = z->c; /* ], line 191 */
570
- if (!(eq_s_b(z, 1, s_7))) return 0;
571
- { int ret = slice_del(z); /* delete, line 191 */
530
+ z->ket = z->c;
531
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0;
532
+ z->c--;
533
+ z->bra = z->c;
534
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0;
535
+ z->c--;
536
+ { int ret = slice_del(z);
572
537
  if (ret < 0) return ret;
573
538
  }
574
539
  break;
575
540
  case 2:
576
- if (!(eq_s_b(z, 1, s_8))) return 0;
577
- { int ret = slice_del(z); /* delete, line 194 */
541
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0;
542
+ z->c--;
543
+ { int ret = slice_del(z);
578
544
  if (ret < 0) return ret;
579
545
  }
580
546
  break;
581
547
  case 3:
582
- { int ret = slice_del(z); /* delete, line 196 */
548
+ { int ret = slice_del(z);
583
549
  if (ret < 0) return ret;
584
550
  }
585
551
  break;
@@ -588,99 +554,116 @@ static int r_tidy_up(struct SN_env * z) {
588
554
  }
589
555
 
590
556
  extern int russian_KOI8_R_stem(struct SN_env * z) {
591
- { int c1 = z->c; /* do, line 203 */
592
- { int ret = r_mark_regions(z);
593
- if (ret == 0) goto lab0; /* call mark_regions, line 203 */
594
- if (ret < 0) return ret;
557
+ { int c1 = z->c;
558
+ while(1) {
559
+ int c2 = z->c;
560
+ while(1) {
561
+ int c3 = z->c;
562
+ z->bra = z->c;
563
+ if (z->c == z->l || z->p[z->c] != 0xA3) goto lab2;
564
+ z->c++;
565
+ z->ket = z->c;
566
+ z->c = c3;
567
+ break;
568
+ lab2:
569
+ z->c = c3;
570
+ if (z->c >= z->l) goto lab1;
571
+ z->c++;
572
+ }
573
+ { int ret = slice_from_s(z, 1, s_0);
574
+ if (ret < 0) return ret;
575
+ }
576
+ continue;
577
+ lab1:
578
+ z->c = c2;
579
+ break;
595
580
  }
596
- lab0:
597
581
  z->c = c1;
598
582
  }
599
- z->lb = z->c; z->c = z->l; /* backwards, line 204 */
600
-
601
- { int mlimit; /* setlimit, line 204 */
602
- int m2 = z->l - z->c; (void)m2;
603
- if (z->c < z->I[0]) return 0;
604
- z->c = z->I[0]; /* tomark, line 204 */
605
- mlimit = z->lb; z->lb = z->c;
606
- z->c = z->l - m2;
607
- { int m3 = z->l - z->c; (void)m3; /* do, line 205 */
608
- { int m4 = z->l - z->c; (void)m4; /* or, line 206 */
583
+
584
+ { int ret = r_mark_regions(z);
585
+ if (ret < 0) return ret;
586
+ }
587
+ z->lb = z->c; z->c = z->l;
588
+
589
+
590
+ { int mlimit4;
591
+ if (z->c < z->I[1]) return 0;
592
+ mlimit4 = z->lb; z->lb = z->I[1];
593
+ { int m5 = z->l - z->c; (void)m5;
594
+ { int m6 = z->l - z->c; (void)m6;
609
595
  { int ret = r_perfective_gerund(z);
610
- if (ret == 0) goto lab3; /* call perfective_gerund, line 206 */
596
+ if (ret == 0) goto lab5;
611
597
  if (ret < 0) return ret;
612
598
  }
613
- goto lab2;
614
- lab3:
615
- z->c = z->l - m4;
616
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 207 */
599
+ goto lab4;
600
+ lab5:
601
+ z->c = z->l - m6;
602
+ { int m7 = z->l - z->c; (void)m7;
617
603
  { int ret = r_reflexive(z);
618
- if (ret == 0) { z->c = z->l - m_keep; goto lab4; } /* call reflexive, line 207 */
604
+ if (ret == 0) { z->c = z->l - m7; goto lab6; }
619
605
  if (ret < 0) return ret;
620
606
  }
621
- lab4:
607
+ lab6:
622
608
  ;
623
609
  }
624
- { int m5 = z->l - z->c; (void)m5; /* or, line 208 */
610
+ { int m8 = z->l - z->c; (void)m8;
625
611
  { int ret = r_adjectival(z);
626
- if (ret == 0) goto lab6; /* call adjectival, line 208 */
612
+ if (ret == 0) goto lab8;
627
613
  if (ret < 0) return ret;
628
614
  }
629
- goto lab5;
630
- lab6:
631
- z->c = z->l - m5;
615
+ goto lab7;
616
+ lab8:
617
+ z->c = z->l - m8;
632
618
  { int ret = r_verb(z);
633
- if (ret == 0) goto lab7; /* call verb, line 208 */
619
+ if (ret == 0) goto lab9;
634
620
  if (ret < 0) return ret;
635
621
  }
636
- goto lab5;
637
- lab7:
638
- z->c = z->l - m5;
622
+ goto lab7;
623
+ lab9:
624
+ z->c = z->l - m8;
639
625
  { int ret = r_noun(z);
640
- if (ret == 0) goto lab1; /* call noun, line 208 */
626
+ if (ret == 0) goto lab3;
641
627
  if (ret < 0) return ret;
642
628
  }
643
629
  }
644
- lab5:
630
+ lab7:
645
631
  ;
646
632
  }
647
- lab2:
648
- lab1:
649
- z->c = z->l - m3;
633
+ lab4:
634
+ lab3:
635
+ z->c = z->l - m5;
650
636
  }
651
- { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 211 */
652
- z->ket = z->c; /* [, line 211 */
653
- if (!(eq_s_b(z, 1, s_9))) { z->c = z->l - m_keep; goto lab8; }
654
- z->bra = z->c; /* ], line 211 */
655
- { int ret = slice_del(z); /* delete, line 211 */
637
+ { int m9 = z->l - z->c; (void)m9;
638
+ z->ket = z->c;
639
+ if (z->c <= z->lb || z->p[z->c - 1] != 0xC9) { z->c = z->l - m9; goto lab10; }
640
+ z->c--;
641
+ z->bra = z->c;
642
+ { int ret = slice_del(z);
656
643
  if (ret < 0) return ret;
657
644
  }
658
- lab8:
645
+ lab10:
659
646
  ;
660
647
  }
661
- { int m6 = z->l - z->c; (void)m6; /* do, line 214 */
648
+ { int m10 = z->l - z->c; (void)m10;
662
649
  { int ret = r_derivational(z);
663
- if (ret == 0) goto lab9; /* call derivational, line 214 */
664
650
  if (ret < 0) return ret;
665
651
  }
666
- lab9:
667
- z->c = z->l - m6;
652
+ z->c = z->l - m10;
668
653
  }
669
- { int m7 = z->l - z->c; (void)m7; /* do, line 215 */
654
+ { int m11 = z->l - z->c; (void)m11;
670
655
  { int ret = r_tidy_up(z);
671
- if (ret == 0) goto lab10; /* call tidy_up, line 215 */
672
656
  if (ret < 0) return ret;
673
657
  }
674
- lab10:
675
- z->c = z->l - m7;
658
+ z->c = z->l - m11;
676
659
  }
677
- z->lb = mlimit;
660
+ z->lb = mlimit4;
678
661
  }
679
662
  z->c = z->lb;
680
663
  return 1;
681
664
  }
682
665
 
683
- extern struct SN_env * russian_KOI8_R_create_env(void) { return SN_create_env(0, 2, 0); }
666
+ extern struct SN_env * russian_KOI8_R_create_env(void) { return SN_create_env(0, 2); }
684
667
 
685
668
  extern void russian_KOI8_R_close_env(struct SN_env * z) { SN_close_env(z, 0); }
686
669