isomorfeus-ferret 0.12.4 → 0.12.7

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