isomorfeus-ferret 0.12.7 → 0.13.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (164) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +101 -19
  3. data/README.md +54 -1
  4. data/ext/isomorfeus_ferret_ext/bm_bitvector.c +22 -30
  5. data/ext/isomorfeus_ferret_ext/bm_hash.c +6 -12
  6. data/ext/isomorfeus_ferret_ext/bm_micro_string.c +3 -6
  7. data/ext/isomorfeus_ferret_ext/bm_store.c +11 -22
  8. data/ext/isomorfeus_ferret_ext/brotli_common_dictionary.c +1 -1
  9. data/ext/isomorfeus_ferret_ext/brotli_dec_decode.c +1 -1
  10. data/ext/isomorfeus_ferret_ext/bzip_blocksort.c +1094 -0
  11. data/ext/isomorfeus_ferret_ext/bzip_huffman.c +205 -0
  12. data/ext/isomorfeus_ferret_ext/bzlib.c +1572 -0
  13. data/ext/isomorfeus_ferret_ext/bzlib.h +282 -0
  14. data/ext/isomorfeus_ferret_ext/bzlib_compress.c +672 -0
  15. data/ext/isomorfeus_ferret_ext/bzlib_crctable.c +104 -0
  16. data/ext/isomorfeus_ferret_ext/bzlib_decompress.c +652 -0
  17. data/ext/isomorfeus_ferret_ext/bzlib_private.h +509 -0
  18. data/ext/isomorfeus_ferret_ext/bzlib_randtable.c +84 -0
  19. data/ext/isomorfeus_ferret_ext/fio_tmpfile.h +53 -53
  20. data/ext/isomorfeus_ferret_ext/frb_analysis.c +785 -1192
  21. data/ext/isomorfeus_ferret_ext/frb_index.c +492 -474
  22. data/ext/isomorfeus_ferret_ext/frb_qparser.c +48 -60
  23. data/ext/isomorfeus_ferret_ext/frb_search.c +1520 -1002
  24. data/ext/isomorfeus_ferret_ext/frb_store.c +96 -96
  25. data/ext/isomorfeus_ferret_ext/frb_threading.h +0 -1
  26. data/ext/isomorfeus_ferret_ext/frb_utils.c +147 -196
  27. data/ext/isomorfeus_ferret_ext/frt_analysis.c +695 -1090
  28. data/ext/isomorfeus_ferret_ext/frt_analysis.h +174 -170
  29. data/ext/isomorfeus_ferret_ext/frt_array.c +2 -4
  30. data/ext/isomorfeus_ferret_ext/frt_bitvector.c +9 -16
  31. data/ext/isomorfeus_ferret_ext/frt_bitvector.h +32 -81
  32. data/ext/isomorfeus_ferret_ext/frt_document.c +15 -20
  33. data/ext/isomorfeus_ferret_ext/frt_document.h +10 -10
  34. data/ext/isomorfeus_ferret_ext/frt_except.c +5 -12
  35. data/ext/isomorfeus_ferret_ext/frt_field_index.c +3 -3
  36. data/ext/isomorfeus_ferret_ext/frt_field_index.h +6 -7
  37. data/ext/isomorfeus_ferret_ext/frt_filter.c +35 -46
  38. data/ext/isomorfeus_ferret_ext/frt_fs_store.c +1 -0
  39. data/ext/isomorfeus_ferret_ext/frt_global.c +105 -63
  40. data/ext/isomorfeus_ferret_ext/frt_global.h +7 -3
  41. data/ext/isomorfeus_ferret_ext/frt_hash.c +1 -2
  42. data/ext/isomorfeus_ferret_ext/frt_ind.c +32 -35
  43. data/ext/isomorfeus_ferret_ext/frt_ind.h +9 -9
  44. data/ext/isomorfeus_ferret_ext/frt_index.c +580 -399
  45. data/ext/isomorfeus_ferret_ext/frt_index.h +272 -291
  46. data/ext/isomorfeus_ferret_ext/frt_mempool.c +1 -2
  47. data/ext/isomorfeus_ferret_ext/frt_multimapper.c +4 -7
  48. data/ext/isomorfeus_ferret_ext/frt_q_boolean.c +67 -91
  49. data/ext/isomorfeus_ferret_ext/frt_q_const_score.c +35 -38
  50. data/ext/isomorfeus_ferret_ext/frt_q_filtered_query.c +53 -72
  51. data/ext/isomorfeus_ferret_ext/frt_q_fuzzy.c +25 -32
  52. data/ext/isomorfeus_ferret_ext/frt_q_match_all.c +21 -23
  53. data/ext/isomorfeus_ferret_ext/frt_q_multi_term.c +66 -103
  54. data/ext/isomorfeus_ferret_ext/frt_q_parser.c +207 -195
  55. data/ext/isomorfeus_ferret_ext/frt_q_phrase.c +20 -16
  56. data/ext/isomorfeus_ferret_ext/frt_q_prefix.c +17 -14
  57. data/ext/isomorfeus_ferret_ext/frt_q_range.c +102 -131
  58. data/ext/isomorfeus_ferret_ext/frt_q_span.c +179 -178
  59. data/ext/isomorfeus_ferret_ext/frt_q_term.c +47 -60
  60. data/ext/isomorfeus_ferret_ext/frt_q_wildcard.c +18 -16
  61. data/ext/isomorfeus_ferret_ext/frt_ram_store.c +45 -84
  62. data/ext/isomorfeus_ferret_ext/frt_search.c +105 -146
  63. data/ext/isomorfeus_ferret_ext/frt_search.h +331 -320
  64. data/ext/isomorfeus_ferret_ext/frt_similarity.c +5 -13
  65. data/ext/isomorfeus_ferret_ext/frt_similarity.h +7 -12
  66. data/ext/isomorfeus_ferret_ext/frt_sort.c +105 -149
  67. data/ext/isomorfeus_ferret_ext/frt_store.c +13 -7
  68. data/ext/isomorfeus_ferret_ext/frt_store.h +10 -2
  69. data/ext/isomorfeus_ferret_ext/frt_threading.h +0 -1
  70. data/ext/isomorfeus_ferret_ext/isomorfeus_ferret.c +21 -109
  71. data/ext/isomorfeus_ferret_ext/isomorfeus_ferret.h +2 -32
  72. data/ext/isomorfeus_ferret_ext/lz4.c +2495 -0
  73. data/ext/isomorfeus_ferret_ext/lz4.h +774 -0
  74. data/ext/isomorfeus_ferret_ext/lz4frame.c +1899 -0
  75. data/ext/isomorfeus_ferret_ext/lz4frame.h +623 -0
  76. data/ext/isomorfeus_ferret_ext/lz4hc.c +1615 -0
  77. data/ext/isomorfeus_ferret_ext/lz4hc.h +413 -0
  78. data/ext/isomorfeus_ferret_ext/lz4xxhash.c +1030 -0
  79. data/ext/isomorfeus_ferret_ext/lz4xxhash.h +328 -0
  80. data/ext/isomorfeus_ferret_ext/stem_modules.h +0 -86
  81. data/ext/isomorfeus_ferret_ext/test.c +1 -2
  82. data/ext/isomorfeus_ferret_ext/test_1710.c +11 -12
  83. data/ext/isomorfeus_ferret_ext/test_analysis.c +590 -583
  84. data/ext/isomorfeus_ferret_ext/test_compound_io.c +1 -1
  85. data/ext/isomorfeus_ferret_ext/test_document.c +19 -15
  86. data/ext/isomorfeus_ferret_ext/test_except.c +1 -2
  87. data/ext/isomorfeus_ferret_ext/test_fields.c +59 -60
  88. data/ext/isomorfeus_ferret_ext/test_file_deleter.c +10 -27
  89. data/ext/isomorfeus_ferret_ext/test_filter.c +11 -8
  90. data/ext/isomorfeus_ferret_ext/test_hash.c +2 -2
  91. data/ext/isomorfeus_ferret_ext/test_hashset.c +1 -1
  92. data/ext/isomorfeus_ferret_ext/test_highlighter.c +15 -11
  93. data/ext/isomorfeus_ferret_ext/test_index.c +372 -365
  94. data/ext/isomorfeus_ferret_ext/test_q_const_score.c +5 -3
  95. data/ext/isomorfeus_ferret_ext/test_q_filtered.c +5 -3
  96. data/ext/isomorfeus_ferret_ext/test_q_fuzzy.c +13 -10
  97. data/ext/isomorfeus_ferret_ext/test_q_parser.c +45 -7
  98. data/ext/isomorfeus_ferret_ext/test_q_span.c +15 -12
  99. data/ext/isomorfeus_ferret_ext/test_ram_store.c +3 -3
  100. data/ext/isomorfeus_ferret_ext/test_search.c +60 -62
  101. data/ext/isomorfeus_ferret_ext/test_segments.c +5 -4
  102. data/ext/isomorfeus_ferret_ext/test_sort.c +17 -14
  103. data/ext/isomorfeus_ferret_ext/test_store.c +2 -0
  104. data/ext/isomorfeus_ferret_ext/test_term.c +3 -1
  105. data/ext/isomorfeus_ferret_ext/test_term_vectors.c +9 -10
  106. data/ext/isomorfeus_ferret_ext/test_test.c +1 -2
  107. data/ext/isomorfeus_ferret_ext/test_threading.c +9 -10
  108. data/ext/isomorfeus_ferret_ext/testhelper.c +1 -2
  109. data/lib/isomorfeus/ferret/version.rb +1 -1
  110. metadata +27 -57
  111. data/ext/isomorfeus_ferret_ext/email.rl +0 -21
  112. data/ext/isomorfeus_ferret_ext/frt_scanner.c +0 -900
  113. data/ext/isomorfeus_ferret_ext/frt_scanner.h +0 -28
  114. data/ext/isomorfeus_ferret_ext/frt_scanner_mb.c +0 -6706
  115. data/ext/isomorfeus_ferret_ext/frt_scanner_utf8.c +0 -4420
  116. data/ext/isomorfeus_ferret_ext/scanner.h +0 -28
  117. data/ext/isomorfeus_ferret_ext/scanner.in +0 -43
  118. data/ext/isomorfeus_ferret_ext/scanner.rl +0 -84
  119. data/ext/isomorfeus_ferret_ext/scanner_mb.rl +0 -200
  120. data/ext/isomorfeus_ferret_ext/scanner_utf8.rl +0 -85
  121. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_basque.c +0 -1167
  122. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_basque.h +0 -6
  123. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_catalan.c +0 -1433
  124. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_catalan.h +0 -6
  125. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_danish.c +0 -301
  126. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_danish.h +0 -6
  127. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_dutch.c +0 -590
  128. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_dutch.h +0 -6
  129. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_english.c +0 -1049
  130. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_english.h +0 -6
  131. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_finnish.c +0 -705
  132. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_finnish.h +0 -6
  133. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_french.c +0 -1239
  134. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_french.h +0 -6
  135. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_german.c +0 -477
  136. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_german.h +0 -6
  137. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_hungarian.c +0 -1217
  138. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_hungarian.h +0 -7
  139. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_indonesian.c +0 -394
  140. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_indonesian.h +0 -6
  141. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_irish.c +0 -457
  142. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_irish.h +0 -6
  143. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_italian.c +0 -1009
  144. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_italian.h +0 -6
  145. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_norwegian.c +0 -259
  146. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_norwegian.h +0 -6
  147. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_porter.c +0 -704
  148. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_porter.h +0 -6
  149. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_portuguese.c +0 -948
  150. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_portuguese.h +0 -6
  151. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_spanish.c +0 -1028
  152. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_spanish.h +0 -6
  153. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_swedish.c +0 -275
  154. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_swedish.h +0 -6
  155. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_2_hungarian.c +0 -849
  156. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_2_hungarian.h +0 -6
  157. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_2_romanian.c +0 -952
  158. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_2_romanian.h +0 -6
  159. data/ext/isomorfeus_ferret_ext/stem_KOI8_R_russian.c +0 -669
  160. data/ext/isomorfeus_ferret_ext/stem_KOI8_R_russian.h +0 -6
  161. data/ext/isomorfeus_ferret_ext/stem_modules.txt +0 -63
  162. data/ext/isomorfeus_ferret_ext/uchar-ucs4.rl +0 -1854
  163. data/ext/isomorfeus_ferret_ext/uchar-utf8.rl +0 -1999
  164. data/ext/isomorfeus_ferret_ext/url.rl +0 -27
@@ -1,6 +0,0 @@
1
- /* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
2
-
3
- extern struct SN_env * romanian_ISO_8859_2_create_env(void);
4
- extern void romanian_ISO_8859_2_close_env(struct SN_env * z);
5
-
6
- extern int romanian_ISO_8859_2_stem(struct SN_env * z);
@@ -1,669 +0,0 @@
1
- /* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
2
-
3
- #include "stem_header.h"
4
-
5
- extern int russian_KOI8_R_stem(struct SN_env * z);
6
-
7
- static int r_tidy_up(struct SN_env * z);
8
- static int r_derivational(struct SN_env * z);
9
- static int r_noun(struct SN_env * z);
10
- static int r_verb(struct SN_env * z);
11
- static int r_reflexive(struct SN_env * z);
12
- static int r_adjectival(struct SN_env * z);
13
- static int r_adjective(struct SN_env * z);
14
- static int r_perfective_gerund(struct SN_env * z);
15
- static int r_R2(struct SN_env * z);
16
- static int r_mark_regions(struct SN_env * z);
17
-
18
- extern struct SN_env * russian_KOI8_R_create_env(void);
19
- extern void russian_KOI8_R_close_env(struct SN_env * z);
20
-
21
- static const symbol s_0_0[3] = { 0xD7, 0xDB, 0xC9 };
22
- static const symbol s_0_1[4] = { 0xC9, 0xD7, 0xDB, 0xC9 };
23
- static const symbol s_0_2[4] = { 0xD9, 0xD7, 0xDB, 0xC9 };
24
- static const symbol s_0_3[1] = { 0xD7 };
25
- static const symbol s_0_4[2] = { 0xC9, 0xD7 };
26
- static const symbol s_0_5[2] = { 0xD9, 0xD7 };
27
- static const symbol s_0_6[5] = { 0xD7, 0xDB, 0xC9, 0xD3, 0xD8 };
28
- static const symbol s_0_7[6] = { 0xC9, 0xD7, 0xDB, 0xC9, 0xD3, 0xD8 };
29
- static const symbol s_0_8[6] = { 0xD9, 0xD7, 0xDB, 0xC9, 0xD3, 0xD8 };
30
-
31
- static const struct among a_0[9] =
32
- {
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
- };
43
-
44
- static const symbol s_1_0[2] = { 0xC0, 0xC0 };
45
- static const symbol s_1_1[2] = { 0xC5, 0xC0 };
46
- static const symbol s_1_2[2] = { 0xCF, 0xC0 };
47
- static const symbol s_1_3[2] = { 0xD5, 0xC0 };
48
- static const symbol s_1_4[2] = { 0xC5, 0xC5 };
49
- static const symbol s_1_5[2] = { 0xC9, 0xC5 };
50
- static const symbol s_1_6[2] = { 0xCF, 0xC5 };
51
- static const symbol s_1_7[2] = { 0xD9, 0xC5 };
52
- static const symbol s_1_8[2] = { 0xC9, 0xC8 };
53
- static const symbol s_1_9[2] = { 0xD9, 0xC8 };
54
- static const symbol s_1_10[3] = { 0xC9, 0xCD, 0xC9 };
55
- static const symbol s_1_11[3] = { 0xD9, 0xCD, 0xC9 };
56
- static const symbol s_1_12[2] = { 0xC5, 0xCA };
57
- static const symbol s_1_13[2] = { 0xC9, 0xCA };
58
- static const symbol s_1_14[2] = { 0xCF, 0xCA };
59
- static const symbol s_1_15[2] = { 0xD9, 0xCA };
60
- static const symbol s_1_16[2] = { 0xC5, 0xCD };
61
- static const symbol s_1_17[2] = { 0xC9, 0xCD };
62
- static const symbol s_1_18[2] = { 0xCF, 0xCD };
63
- static const symbol s_1_19[2] = { 0xD9, 0xCD };
64
- static const symbol s_1_20[3] = { 0xC5, 0xC7, 0xCF };
65
- static const symbol s_1_21[3] = { 0xCF, 0xC7, 0xCF };
66
- static const symbol s_1_22[2] = { 0xC1, 0xD1 };
67
- static const symbol s_1_23[2] = { 0xD1, 0xD1 };
68
- static const symbol s_1_24[3] = { 0xC5, 0xCD, 0xD5 };
69
- static const symbol s_1_25[3] = { 0xCF, 0xCD, 0xD5 };
70
-
71
- static const struct among a_1[26] =
72
- {
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
- };
100
-
101
- static const symbol s_2_0[2] = { 0xC5, 0xCD };
102
- static const symbol s_2_1[2] = { 0xCE, 0xCE };
103
- static const symbol s_2_2[2] = { 0xD7, 0xDB };
104
- static const symbol s_2_3[3] = { 0xC9, 0xD7, 0xDB };
105
- static const symbol s_2_4[3] = { 0xD9, 0xD7, 0xDB };
106
- static const symbol s_2_5[1] = { 0xDD };
107
- static const symbol s_2_6[2] = { 0xC0, 0xDD };
108
- static const symbol s_2_7[3] = { 0xD5, 0xC0, 0xDD };
109
-
110
- static const struct among a_2[8] =
111
- {
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
- };
121
-
122
- static const symbol s_3_0[2] = { 0xD3, 0xD1 };
123
- static const symbol s_3_1[2] = { 0xD3, 0xD8 };
124
-
125
- static const struct among a_3[2] =
126
- {
127
- { 2, s_3_0, -1, 1, 0},
128
- { 2, s_3_1, -1, 1, 0}
129
- };
130
-
131
- static const symbol s_4_0[1] = { 0xC0 };
132
- static const symbol s_4_1[2] = { 0xD5, 0xC0 };
133
- static const symbol s_4_2[2] = { 0xCC, 0xC1 };
134
- static const symbol s_4_3[3] = { 0xC9, 0xCC, 0xC1 };
135
- static const symbol s_4_4[3] = { 0xD9, 0xCC, 0xC1 };
136
- static const symbol s_4_5[2] = { 0xCE, 0xC1 };
137
- static const symbol s_4_6[3] = { 0xC5, 0xCE, 0xC1 };
138
- static const symbol s_4_7[3] = { 0xC5, 0xD4, 0xC5 };
139
- static const symbol s_4_8[3] = { 0xC9, 0xD4, 0xC5 };
140
- static const symbol s_4_9[3] = { 0xCA, 0xD4, 0xC5 };
141
- static const symbol s_4_10[4] = { 0xC5, 0xCA, 0xD4, 0xC5 };
142
- static const symbol s_4_11[4] = { 0xD5, 0xCA, 0xD4, 0xC5 };
143
- static const symbol s_4_12[2] = { 0xCC, 0xC9 };
144
- static const symbol s_4_13[3] = { 0xC9, 0xCC, 0xC9 };
145
- static const symbol s_4_14[3] = { 0xD9, 0xCC, 0xC9 };
146
- static const symbol s_4_15[1] = { 0xCA };
147
- static const symbol s_4_16[2] = { 0xC5, 0xCA };
148
- static const symbol s_4_17[2] = { 0xD5, 0xCA };
149
- static const symbol s_4_18[1] = { 0xCC };
150
- static const symbol s_4_19[2] = { 0xC9, 0xCC };
151
- static const symbol s_4_20[2] = { 0xD9, 0xCC };
152
- static const symbol s_4_21[2] = { 0xC5, 0xCD };
153
- static const symbol s_4_22[2] = { 0xC9, 0xCD };
154
- static const symbol s_4_23[2] = { 0xD9, 0xCD };
155
- static const symbol s_4_24[1] = { 0xCE };
156
- static const symbol s_4_25[2] = { 0xC5, 0xCE };
157
- static const symbol s_4_26[2] = { 0xCC, 0xCF };
158
- static const symbol s_4_27[3] = { 0xC9, 0xCC, 0xCF };
159
- static const symbol s_4_28[3] = { 0xD9, 0xCC, 0xCF };
160
- static const symbol s_4_29[2] = { 0xCE, 0xCF };
161
- static const symbol s_4_30[3] = { 0xC5, 0xCE, 0xCF };
162
- static const symbol s_4_31[3] = { 0xCE, 0xCE, 0xCF };
163
- static const symbol s_4_32[2] = { 0xC0, 0xD4 };
164
- static const symbol s_4_33[3] = { 0xD5, 0xC0, 0xD4 };
165
- static const symbol s_4_34[2] = { 0xC5, 0xD4 };
166
- static const symbol s_4_35[3] = { 0xD5, 0xC5, 0xD4 };
167
- static const symbol s_4_36[2] = { 0xC9, 0xD4 };
168
- static const symbol s_4_37[2] = { 0xD1, 0xD4 };
169
- static const symbol s_4_38[2] = { 0xD9, 0xD4 };
170
- static const symbol s_4_39[2] = { 0xD4, 0xD8 };
171
- static const symbol s_4_40[3] = { 0xC9, 0xD4, 0xD8 };
172
- static const symbol s_4_41[3] = { 0xD9, 0xD4, 0xD8 };
173
- static const symbol s_4_42[3] = { 0xC5, 0xDB, 0xD8 };
174
- static const symbol s_4_43[3] = { 0xC9, 0xDB, 0xD8 };
175
- static const symbol s_4_44[2] = { 0xCE, 0xD9 };
176
- static const symbol s_4_45[3] = { 0xC5, 0xCE, 0xD9 };
177
-
178
- static const struct among a_4[46] =
179
- {
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
- };
227
-
228
- static const symbol s_5_0[1] = { 0xC0 };
229
- static const symbol s_5_1[2] = { 0xC9, 0xC0 };
230
- static const symbol s_5_2[2] = { 0xD8, 0xC0 };
231
- static const symbol s_5_3[1] = { 0xC1 };
232
- static const symbol s_5_4[1] = { 0xC5 };
233
- static const symbol s_5_5[2] = { 0xC9, 0xC5 };
234
- static const symbol s_5_6[2] = { 0xD8, 0xC5 };
235
- static const symbol s_5_7[2] = { 0xC1, 0xC8 };
236
- static const symbol s_5_8[2] = { 0xD1, 0xC8 };
237
- static const symbol s_5_9[3] = { 0xC9, 0xD1, 0xC8 };
238
- static const symbol s_5_10[1] = { 0xC9 };
239
- static const symbol s_5_11[2] = { 0xC5, 0xC9 };
240
- static const symbol s_5_12[2] = { 0xC9, 0xC9 };
241
- static const symbol s_5_13[3] = { 0xC1, 0xCD, 0xC9 };
242
- static const symbol s_5_14[3] = { 0xD1, 0xCD, 0xC9 };
243
- static const symbol s_5_15[4] = { 0xC9, 0xD1, 0xCD, 0xC9 };
244
- static const symbol s_5_16[1] = { 0xCA };
245
- static const symbol s_5_17[2] = { 0xC5, 0xCA };
246
- static const symbol s_5_18[3] = { 0xC9, 0xC5, 0xCA };
247
- static const symbol s_5_19[2] = { 0xC9, 0xCA };
248
- static const symbol s_5_20[2] = { 0xCF, 0xCA };
249
- static const symbol s_5_21[2] = { 0xC1, 0xCD };
250
- static const symbol s_5_22[2] = { 0xC5, 0xCD };
251
- static const symbol s_5_23[3] = { 0xC9, 0xC5, 0xCD };
252
- static const symbol s_5_24[2] = { 0xCF, 0xCD };
253
- static const symbol s_5_25[2] = { 0xD1, 0xCD };
254
- static const symbol s_5_26[3] = { 0xC9, 0xD1, 0xCD };
255
- static const symbol s_5_27[1] = { 0xCF };
256
- static const symbol s_5_28[1] = { 0xD1 };
257
- static const symbol s_5_29[2] = { 0xC9, 0xD1 };
258
- static const symbol s_5_30[2] = { 0xD8, 0xD1 };
259
- static const symbol s_5_31[1] = { 0xD5 };
260
- static const symbol s_5_32[2] = { 0xC5, 0xD7 };
261
- static const symbol s_5_33[2] = { 0xCF, 0xD7 };
262
- static const symbol s_5_34[1] = { 0xD8 };
263
- static const symbol s_5_35[1] = { 0xD9 };
264
-
265
- static const struct among a_5[36] =
266
- {
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
- };
304
-
305
- static const symbol s_6_0[3] = { 0xCF, 0xD3, 0xD4 };
306
- static const symbol s_6_1[4] = { 0xCF, 0xD3, 0xD4, 0xD8 };
307
-
308
- static const struct among a_6[2] =
309
- {
310
- { 3, s_6_0, -1, 1, 0},
311
- { 4, s_6_1, -1, 1, 0}
312
- };
313
-
314
- static const symbol s_7_0[4] = { 0xC5, 0xCA, 0xDB, 0xC5 };
315
- static const symbol s_7_1[1] = { 0xCE };
316
- static const symbol s_7_2[1] = { 0xD8 };
317
- static const symbol s_7_3[3] = { 0xC5, 0xCA, 0xDB };
318
-
319
- static const struct among a_7[4] =
320
- {
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
- };
326
-
327
- static const unsigned char g_v[] = { 35, 130, 34, 18 };
328
-
329
- static const symbol s_0[] = { 0xC5 };
330
-
331
- static int r_mark_regions(struct SN_env * z) {
332
- z->I[1] = z->l;
333
- z->I[0] = z->l;
334
- { int c1 = z->c;
335
- {
336
- int ret = out_grouping(z, g_v, 192, 220, 1);
337
- if (ret < 0) goto lab0;
338
- z->c += ret;
339
- }
340
- z->I[1] = z->c;
341
- {
342
- int ret = in_grouping(z, g_v, 192, 220, 1);
343
- if (ret < 0) goto lab0;
344
- z->c += ret;
345
- }
346
- {
347
- int ret = out_grouping(z, g_v, 192, 220, 1);
348
- if (ret < 0) goto lab0;
349
- z->c += ret;
350
- }
351
- {
352
- int ret = in_grouping(z, g_v, 192, 220, 1);
353
- if (ret < 0) goto lab0;
354
- z->c += ret;
355
- }
356
- z->I[0] = z->c;
357
- lab0:
358
- z->c = c1;
359
- }
360
- return 1;
361
- }
362
-
363
- static int r_R2(struct SN_env * z) {
364
- if (!(z->I[0] <= z->c)) return 0;
365
- return 1;
366
- }
367
-
368
- static int r_perfective_gerund(struct SN_env * z) {
369
- int among_var;
370
- z->ket = z->c;
371
- if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((25166336 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
372
- among_var = find_among_b(z, a_0, 9);
373
- if (!(among_var)) return 0;
374
- z->bra = z->c;
375
- switch (among_var) {
376
- case 1:
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--;
380
- goto lab0;
381
- lab1:
382
- z->c = z->l - m1;
383
- if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) return 0;
384
- z->c--;
385
- }
386
- lab0:
387
- { int ret = slice_del(z);
388
- if (ret < 0) return ret;
389
- }
390
- break;
391
- case 2:
392
- { int ret = slice_del(z);
393
- if (ret < 0) return ret;
394
- }
395
- break;
396
- }
397
- return 1;
398
- }
399
-
400
- static int r_adjective(struct SN_env * z) {
401
- z->ket = z->c;
402
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((2271009 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
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;
407
- }
408
- return 1;
409
- }
410
-
411
- static int r_adjectival(struct SN_env * z) {
412
- int among_var;
413
- { int ret = r_adjective(z);
414
- if (ret <= 0) return ret;
415
- }
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) {
423
- case 1:
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--;
427
- goto lab1;
428
- lab2:
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--;
432
- }
433
- lab1:
434
- { int ret = slice_del(z);
435
- if (ret < 0) return ret;
436
- }
437
- break;
438
- case 2:
439
- { int ret = slice_del(z);
440
- if (ret < 0) return ret;
441
- }
442
- break;
443
- }
444
- lab0:
445
- ;
446
- }
447
- return 1;
448
- }
449
-
450
- static int r_reflexive(struct SN_env * z) {
451
- z->ket = z->c;
452
- if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 209 && z->p[z->c - 1] != 216)) return 0;
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;
457
- }
458
- return 1;
459
- }
460
-
461
- static int r_verb(struct SN_env * z) {
462
- int among_var;
463
- z->ket = z->c;
464
- if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((51443235 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
465
- among_var = find_among_b(z, a_4, 46);
466
- if (!(among_var)) return 0;
467
- z->bra = z->c;
468
- switch (among_var) {
469
- case 1:
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--;
473
- goto lab0;
474
- lab1:
475
- z->c = z->l - m1;
476
- if (z->c <= z->lb || z->p[z->c - 1] != 0xD1) return 0;
477
- z->c--;
478
- }
479
- lab0:
480
- { int ret = slice_del(z);
481
- if (ret < 0) return ret;
482
- }
483
- break;
484
- case 2:
485
- { int ret = slice_del(z);
486
- if (ret < 0) return ret;
487
- }
488
- break;
489
- }
490
- return 1;
491
- }
492
-
493
- static int r_noun(struct SN_env * z) {
494
- z->ket = z->c;
495
- if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((60991267 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
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;
500
- }
501
- return 1;
502
- }
503
-
504
- static int r_derivational(struct SN_env * z) {
505
- z->ket = z->c;
506
- if (z->c - 2 <= z->lb || (z->p[z->c - 1] != 212 && z->p[z->c - 1] != 216)) return 0;
507
- if (!(find_among_b(z, a_6, 2))) return 0;
508
- z->bra = z->c;
509
- { int ret = r_R2(z);
510
- if (ret <= 0) return ret;
511
- }
512
- { int ret = slice_del(z);
513
- if (ret < 0) return ret;
514
- }
515
- return 1;
516
- }
517
-
518
- static int r_tidy_up(struct SN_env * z) {
519
- int among_var;
520
- z->ket = z->c;
521
- if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 6 || !((151011360 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
522
- among_var = find_among_b(z, a_7, 4);
523
- if (!(among_var)) return 0;
524
- z->bra = z->c;
525
- switch (among_var) {
526
- case 1:
527
- { int ret = slice_del(z);
528
- if (ret < 0) return ret;
529
- }
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);
537
- if (ret < 0) return ret;
538
- }
539
- break;
540
- case 2:
541
- if (z->c <= z->lb || z->p[z->c - 1] != 0xCE) return 0;
542
- z->c--;
543
- { int ret = slice_del(z);
544
- if (ret < 0) return ret;
545
- }
546
- break;
547
- case 3:
548
- { int ret = slice_del(z);
549
- if (ret < 0) return ret;
550
- }
551
- break;
552
- }
553
- return 1;
554
- }
555
-
556
- extern int russian_KOI8_R_stem(struct SN_env * z) {
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;
580
- }
581
- z->c = c1;
582
- }
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;
595
- { int ret = r_perfective_gerund(z);
596
- if (ret == 0) goto lab5;
597
- if (ret < 0) return ret;
598
- }
599
- goto lab4;
600
- lab5:
601
- z->c = z->l - m6;
602
- { int m7 = z->l - z->c; (void)m7;
603
- { int ret = r_reflexive(z);
604
- if (ret == 0) { z->c = z->l - m7; goto lab6; }
605
- if (ret < 0) return ret;
606
- }
607
- lab6:
608
- ;
609
- }
610
- { int m8 = z->l - z->c; (void)m8;
611
- { int ret = r_adjectival(z);
612
- if (ret == 0) goto lab8;
613
- if (ret < 0) return ret;
614
- }
615
- goto lab7;
616
- lab8:
617
- z->c = z->l - m8;
618
- { int ret = r_verb(z);
619
- if (ret == 0) goto lab9;
620
- if (ret < 0) return ret;
621
- }
622
- goto lab7;
623
- lab9:
624
- z->c = z->l - m8;
625
- { int ret = r_noun(z);
626
- if (ret == 0) goto lab3;
627
- if (ret < 0) return ret;
628
- }
629
- }
630
- lab7:
631
- ;
632
- }
633
- lab4:
634
- lab3:
635
- z->c = z->l - m5;
636
- }
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);
643
- if (ret < 0) return ret;
644
- }
645
- lab10:
646
- ;
647
- }
648
- { int m10 = z->l - z->c; (void)m10;
649
- { int ret = r_derivational(z);
650
- if (ret < 0) return ret;
651
- }
652
- z->c = z->l - m10;
653
- }
654
- { int m11 = z->l - z->c; (void)m11;
655
- { int ret = r_tidy_up(z);
656
- if (ret < 0) return ret;
657
- }
658
- z->c = z->l - m11;
659
- }
660
- z->lb = mlimit4;
661
- }
662
- z->c = z->lb;
663
- return 1;
664
- }
665
-
666
- extern struct SN_env * russian_KOI8_R_create_env(void) { return SN_create_env(0, 2); }
667
-
668
- extern void russian_KOI8_R_close_env(struct SN_env * z) { SN_close_env(z, 0); }
669
-
@@ -1,6 +0,0 @@
1
- /* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
2
-
3
- extern struct SN_env * russian_KOI8_R_create_env(void);
4
- extern void russian_KOI8_R_close_env(struct SN_env * z);
5
-
6
- extern int russian_KOI8_R_stem(struct SN_env * z);