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,590 +0,0 @@
1
- /* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
2
-
3
- #include "stem_header.h"
4
-
5
- extern int dutch_ISO_8859_1_stem(struct SN_env * z);
6
-
7
- static int r_standard_suffix(struct SN_env * z);
8
- static int r_undouble(struct SN_env * z);
9
- static int r_R2(struct SN_env * z);
10
- static int r_R1(struct SN_env * z);
11
- static int r_mark_regions(struct SN_env * z);
12
- static int r_en_ending(struct SN_env * z);
13
- static int r_e_ending(struct SN_env * z);
14
- static int r_postlude(struct SN_env * z);
15
- static int r_prelude(struct SN_env * z);
16
-
17
- extern struct SN_env * dutch_ISO_8859_1_create_env(void);
18
- extern void dutch_ISO_8859_1_close_env(struct SN_env * z);
19
-
20
- static const symbol s_0_1[1] = { 0xE1 };
21
- static const symbol s_0_2[1] = { 0xE4 };
22
- static const symbol s_0_3[1] = { 0xE9 };
23
- static const symbol s_0_4[1] = { 0xEB };
24
- static const symbol s_0_5[1] = { 0xED };
25
- static const symbol s_0_6[1] = { 0xEF };
26
- static const symbol s_0_7[1] = { 0xF3 };
27
- static const symbol s_0_8[1] = { 0xF6 };
28
- static const symbol s_0_9[1] = { 0xFA };
29
- static const symbol s_0_10[1] = { 0xFC };
30
-
31
- static const struct among a_0[11] =
32
- {
33
- { 0, 0, -1, 6, 0},
34
- { 1, s_0_1, 0, 1, 0},
35
- { 1, s_0_2, 0, 1, 0},
36
- { 1, s_0_3, 0, 2, 0},
37
- { 1, s_0_4, 0, 2, 0},
38
- { 1, s_0_5, 0, 3, 0},
39
- { 1, s_0_6, 0, 3, 0},
40
- { 1, s_0_7, 0, 4, 0},
41
- { 1, s_0_8, 0, 4, 0},
42
- { 1, s_0_9, 0, 5, 0},
43
- { 1, s_0_10, 0, 5, 0}
44
- };
45
-
46
- static const symbol s_1_1[1] = { 'I' };
47
- static const symbol s_1_2[1] = { 'Y' };
48
-
49
- static const struct among a_1[3] =
50
- {
51
- { 0, 0, -1, 3, 0},
52
- { 1, s_1_1, 0, 2, 0},
53
- { 1, s_1_2, 0, 1, 0}
54
- };
55
-
56
- static const symbol s_2_0[2] = { 'd', 'd' };
57
- static const symbol s_2_1[2] = { 'k', 'k' };
58
- static const symbol s_2_2[2] = { 't', 't' };
59
-
60
- static const struct among a_2[3] =
61
- {
62
- { 2, s_2_0, -1, -1, 0},
63
- { 2, s_2_1, -1, -1, 0},
64
- { 2, s_2_2, -1, -1, 0}
65
- };
66
-
67
- static const symbol s_3_0[3] = { 'e', 'n', 'e' };
68
- static const symbol s_3_1[2] = { 's', 'e' };
69
- static const symbol s_3_2[2] = { 'e', 'n' };
70
- static const symbol s_3_3[5] = { 'h', 'e', 'd', 'e', 'n' };
71
- static const symbol s_3_4[1] = { 's' };
72
-
73
- static const struct among a_3[5] =
74
- {
75
- { 3, s_3_0, -1, 2, 0},
76
- { 2, s_3_1, -1, 3, 0},
77
- { 2, s_3_2, -1, 2, 0},
78
- { 5, s_3_3, 2, 1, 0},
79
- { 1, s_3_4, -1, 3, 0}
80
- };
81
-
82
- static const symbol s_4_0[3] = { 'e', 'n', 'd' };
83
- static const symbol s_4_1[2] = { 'i', 'g' };
84
- static const symbol s_4_2[3] = { 'i', 'n', 'g' };
85
- static const symbol s_4_3[4] = { 'l', 'i', 'j', 'k' };
86
- static const symbol s_4_4[4] = { 'b', 'a', 'a', 'r' };
87
- static const symbol s_4_5[3] = { 'b', 'a', 'r' };
88
-
89
- static const struct among a_4[6] =
90
- {
91
- { 3, s_4_0, -1, 1, 0},
92
- { 2, s_4_1, -1, 2, 0},
93
- { 3, s_4_2, -1, 1, 0},
94
- { 4, s_4_3, -1, 3, 0},
95
- { 4, s_4_4, -1, 4, 0},
96
- { 3, s_4_5, -1, 5, 0}
97
- };
98
-
99
- static const symbol s_5_0[2] = { 'a', 'a' };
100
- static const symbol s_5_1[2] = { 'e', 'e' };
101
- static const symbol s_5_2[2] = { 'o', 'o' };
102
- static const symbol s_5_3[2] = { 'u', 'u' };
103
-
104
- static const struct among a_5[4] =
105
- {
106
- { 2, s_5_0, -1, -1, 0},
107
- { 2, s_5_1, -1, -1, 0},
108
- { 2, s_5_2, -1, -1, 0},
109
- { 2, s_5_3, -1, -1, 0}
110
- };
111
-
112
- static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
113
-
114
- static const unsigned char g_v_I[] = { 1, 0, 0, 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
115
-
116
- static const unsigned char g_v_j[] = { 17, 67, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
117
-
118
- static const symbol s_0[] = { 'a' };
119
- static const symbol s_1[] = { 'e' };
120
- static const symbol s_2[] = { 'i' };
121
- static const symbol s_3[] = { 'o' };
122
- static const symbol s_4[] = { 'u' };
123
- static const symbol s_5[] = { 'Y' };
124
- static const symbol s_6[] = { 'I' };
125
- static const symbol s_7[] = { 'Y' };
126
- static const symbol s_8[] = { 'y' };
127
- static const symbol s_9[] = { 'i' };
128
- static const symbol s_10[] = { 'g', 'e', 'm' };
129
- static const symbol s_11[] = { 'h', 'e', 'i', 'd' };
130
- static const symbol s_12[] = { 'h', 'e', 'i', 'd' };
131
- static const symbol s_13[] = { 'e', 'n' };
132
- static const symbol s_14[] = { 'i', 'g' };
133
-
134
- static int r_prelude(struct SN_env * z) {
135
- int among_var;
136
- { int c_test1 = z->c;
137
- while(1) {
138
- int c2 = z->c;
139
- z->bra = z->c;
140
- if (z->c >= z->l || z->p[z->c + 0] >> 5 != 7 || !((340306450 >> (z->p[z->c + 0] & 0x1f)) & 1)) among_var = 6; else
141
- among_var = find_among(z, a_0, 11);
142
- if (!(among_var)) goto lab0;
143
- z->ket = z->c;
144
- switch (among_var) {
145
- case 1:
146
- { int ret = slice_from_s(z, 1, s_0);
147
- if (ret < 0) return ret;
148
- }
149
- break;
150
- case 2:
151
- { int ret = slice_from_s(z, 1, s_1);
152
- if (ret < 0) return ret;
153
- }
154
- break;
155
- case 3:
156
- { int ret = slice_from_s(z, 1, s_2);
157
- if (ret < 0) return ret;
158
- }
159
- break;
160
- case 4:
161
- { int ret = slice_from_s(z, 1, s_3);
162
- if (ret < 0) return ret;
163
- }
164
- break;
165
- case 5:
166
- { int ret = slice_from_s(z, 1, s_4);
167
- if (ret < 0) return ret;
168
- }
169
- break;
170
- case 6:
171
- if (z->c >= z->l) goto lab0;
172
- z->c++;
173
- break;
174
- }
175
- continue;
176
- lab0:
177
- z->c = c2;
178
- break;
179
- }
180
- z->c = c_test1;
181
- }
182
- { int c3 = z->c;
183
- z->bra = z->c;
184
- if (z->c == z->l || z->p[z->c] != 'y') { z->c = c3; goto lab1; }
185
- z->c++;
186
- z->ket = z->c;
187
- { int ret = slice_from_s(z, 1, s_5);
188
- if (ret < 0) return ret;
189
- }
190
- lab1:
191
- ;
192
- }
193
- while(1) {
194
- int c4 = z->c;
195
- while(1) {
196
- int c5 = z->c;
197
- if (in_grouping(z, g_v, 97, 232, 0)) goto lab3;
198
- z->bra = z->c;
199
- { int c6 = z->c;
200
- if (z->c == z->l || z->p[z->c] != 'i') goto lab5;
201
- z->c++;
202
- z->ket = z->c;
203
- if (in_grouping(z, g_v, 97, 232, 0)) goto lab5;
204
- { int ret = slice_from_s(z, 1, s_6);
205
- if (ret < 0) return ret;
206
- }
207
- goto lab4;
208
- lab5:
209
- z->c = c6;
210
- if (z->c == z->l || z->p[z->c] != 'y') goto lab3;
211
- z->c++;
212
- z->ket = z->c;
213
- { int ret = slice_from_s(z, 1, s_7);
214
- if (ret < 0) return ret;
215
- }
216
- }
217
- lab4:
218
- z->c = c5;
219
- break;
220
- lab3:
221
- z->c = c5;
222
- if (z->c >= z->l) goto lab2;
223
- z->c++;
224
- }
225
- continue;
226
- lab2:
227
- z->c = c4;
228
- break;
229
- }
230
- return 1;
231
- }
232
-
233
- static int r_mark_regions(struct SN_env * z) {
234
- z->I[1] = z->l;
235
- z->I[0] = z->l;
236
- {
237
- int ret = out_grouping(z, g_v, 97, 232, 1);
238
- if (ret < 0) return 0;
239
- z->c += ret;
240
- }
241
- {
242
- int ret = in_grouping(z, g_v, 97, 232, 1);
243
- if (ret < 0) return 0;
244
- z->c += ret;
245
- }
246
- z->I[1] = z->c;
247
-
248
- if (!(z->I[1] < 3)) goto lab0;
249
- z->I[1] = 3;
250
- lab0:
251
- {
252
- int ret = out_grouping(z, g_v, 97, 232, 1);
253
- if (ret < 0) return 0;
254
- z->c += ret;
255
- }
256
- {
257
- int ret = in_grouping(z, g_v, 97, 232, 1);
258
- if (ret < 0) return 0;
259
- z->c += ret;
260
- }
261
- z->I[0] = z->c;
262
- return 1;
263
- }
264
-
265
- static int r_postlude(struct SN_env * z) {
266
- int among_var;
267
- while(1) {
268
- int c1 = z->c;
269
- z->bra = z->c;
270
- if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 89)) among_var = 3; else
271
- among_var = find_among(z, a_1, 3);
272
- if (!(among_var)) goto lab0;
273
- z->ket = z->c;
274
- switch (among_var) {
275
- case 1:
276
- { int ret = slice_from_s(z, 1, s_8);
277
- if (ret < 0) return ret;
278
- }
279
- break;
280
- case 2:
281
- { int ret = slice_from_s(z, 1, s_9);
282
- if (ret < 0) return ret;
283
- }
284
- break;
285
- case 3:
286
- if (z->c >= z->l) goto lab0;
287
- z->c++;
288
- break;
289
- }
290
- continue;
291
- lab0:
292
- z->c = c1;
293
- break;
294
- }
295
- return 1;
296
- }
297
-
298
- static int r_R1(struct SN_env * z) {
299
- if (!(z->I[1] <= z->c)) return 0;
300
- return 1;
301
- }
302
-
303
- static int r_R2(struct SN_env * z) {
304
- if (!(z->I[0] <= z->c)) return 0;
305
- return 1;
306
- }
307
-
308
- static int r_undouble(struct SN_env * z) {
309
- { int m_test1 = z->l - z->c;
310
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1050640 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
311
- if (!(find_among_b(z, a_2, 3))) return 0;
312
- z->c = z->l - m_test1;
313
- }
314
- z->ket = z->c;
315
- if (z->c <= z->lb) return 0;
316
- z->c--;
317
- z->bra = z->c;
318
- { int ret = slice_del(z);
319
- if (ret < 0) return ret;
320
- }
321
- return 1;
322
- }
323
-
324
- static int r_e_ending(struct SN_env * z) {
325
- z->I[2] = 0;
326
- z->ket = z->c;
327
- if (z->c <= z->lb || z->p[z->c - 1] != 'e') return 0;
328
- z->c--;
329
- z->bra = z->c;
330
- { int ret = r_R1(z);
331
- if (ret <= 0) return ret;
332
- }
333
- { int m_test1 = z->l - z->c;
334
- if (out_grouping_b(z, g_v, 97, 232, 0)) return 0;
335
- z->c = z->l - m_test1;
336
- }
337
- { int ret = slice_del(z);
338
- if (ret < 0) return ret;
339
- }
340
- z->I[2] = 1;
341
- { int ret = r_undouble(z);
342
- if (ret <= 0) return ret;
343
- }
344
- return 1;
345
- }
346
-
347
- static int r_en_ending(struct SN_env * z) {
348
- { int ret = r_R1(z);
349
- if (ret <= 0) return ret;
350
- }
351
- { int m1 = z->l - z->c; (void)m1;
352
- if (out_grouping_b(z, g_v, 97, 232, 0)) return 0;
353
- z->c = z->l - m1;
354
- { int m2 = z->l - z->c; (void)m2;
355
- if (!(eq_s_b(z, 3, s_10))) goto lab0;
356
- return 0;
357
- lab0:
358
- z->c = z->l - m2;
359
- }
360
- }
361
- { int ret = slice_del(z);
362
- if (ret < 0) return ret;
363
- }
364
- { int ret = r_undouble(z);
365
- if (ret <= 0) return ret;
366
- }
367
- return 1;
368
- }
369
-
370
- static int r_standard_suffix(struct SN_env * z) {
371
- int among_var;
372
- { int m1 = z->l - z->c; (void)m1;
373
- z->ket = z->c;
374
- if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((540704 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
375
- among_var = find_among_b(z, a_3, 5);
376
- if (!(among_var)) goto lab0;
377
- z->bra = z->c;
378
- switch (among_var) {
379
- case 1:
380
- { int ret = r_R1(z);
381
- if (ret == 0) goto lab0;
382
- if (ret < 0) return ret;
383
- }
384
- { int ret = slice_from_s(z, 4, s_11);
385
- if (ret < 0) return ret;
386
- }
387
- break;
388
- case 2:
389
- { int ret = r_en_ending(z);
390
- if (ret == 0) goto lab0;
391
- if (ret < 0) return ret;
392
- }
393
- break;
394
- case 3:
395
- { int ret = r_R1(z);
396
- if (ret == 0) goto lab0;
397
- if (ret < 0) return ret;
398
- }
399
- if (out_grouping_b(z, g_v_j, 97, 232, 0)) goto lab0;
400
- { int ret = slice_del(z);
401
- if (ret < 0) return ret;
402
- }
403
- break;
404
- }
405
- lab0:
406
- z->c = z->l - m1;
407
- }
408
- { int m2 = z->l - z->c; (void)m2;
409
- { int ret = r_e_ending(z);
410
- if (ret < 0) return ret;
411
- }
412
- z->c = z->l - m2;
413
- }
414
- { int m3 = z->l - z->c; (void)m3;
415
- z->ket = z->c;
416
- if (!(eq_s_b(z, 4, s_12))) goto lab1;
417
- z->bra = z->c;
418
- { int ret = r_R2(z);
419
- if (ret == 0) goto lab1;
420
- if (ret < 0) return ret;
421
- }
422
- { int m4 = z->l - z->c; (void)m4;
423
- if (z->c <= z->lb || z->p[z->c - 1] != 'c') goto lab2;
424
- z->c--;
425
- goto lab1;
426
- lab2:
427
- z->c = z->l - m4;
428
- }
429
- { int ret = slice_del(z);
430
- if (ret < 0) return ret;
431
- }
432
- z->ket = z->c;
433
- if (!(eq_s_b(z, 2, s_13))) goto lab1;
434
- z->bra = z->c;
435
- { int ret = r_en_ending(z);
436
- if (ret == 0) goto lab1;
437
- if (ret < 0) return ret;
438
- }
439
- lab1:
440
- z->c = z->l - m3;
441
- }
442
- { int m5 = z->l - z->c; (void)m5;
443
- z->ket = z->c;
444
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab3;
445
- among_var = find_among_b(z, a_4, 6);
446
- if (!(among_var)) goto lab3;
447
- z->bra = z->c;
448
- switch (among_var) {
449
- case 1:
450
- { int ret = r_R2(z);
451
- if (ret == 0) goto lab3;
452
- if (ret < 0) return ret;
453
- }
454
- { int ret = slice_del(z);
455
- if (ret < 0) return ret;
456
- }
457
- { int m6 = z->l - z->c; (void)m6;
458
- z->ket = z->c;
459
- if (!(eq_s_b(z, 2, s_14))) goto lab5;
460
- z->bra = z->c;
461
- { int ret = r_R2(z);
462
- if (ret == 0) goto lab5;
463
- if (ret < 0) return ret;
464
- }
465
- { int m7 = z->l - z->c; (void)m7;
466
- if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab6;
467
- z->c--;
468
- goto lab5;
469
- lab6:
470
- z->c = z->l - m7;
471
- }
472
- { int ret = slice_del(z);
473
- if (ret < 0) return ret;
474
- }
475
- goto lab4;
476
- lab5:
477
- z->c = z->l - m6;
478
- { int ret = r_undouble(z);
479
- if (ret == 0) goto lab3;
480
- if (ret < 0) return ret;
481
- }
482
- }
483
- lab4:
484
- break;
485
- case 2:
486
- { int ret = r_R2(z);
487
- if (ret == 0) goto lab3;
488
- if (ret < 0) return ret;
489
- }
490
- { int m8 = z->l - z->c; (void)m8;
491
- if (z->c <= z->lb || z->p[z->c - 1] != 'e') goto lab7;
492
- z->c--;
493
- goto lab3;
494
- lab7:
495
- z->c = z->l - m8;
496
- }
497
- { int ret = slice_del(z);
498
- if (ret < 0) return ret;
499
- }
500
- break;
501
- case 3:
502
- { int ret = r_R2(z);
503
- if (ret == 0) goto lab3;
504
- if (ret < 0) return ret;
505
- }
506
- { int ret = slice_del(z);
507
- if (ret < 0) return ret;
508
- }
509
- { int ret = r_e_ending(z);
510
- if (ret == 0) goto lab3;
511
- if (ret < 0) return ret;
512
- }
513
- break;
514
- case 4:
515
- { int ret = r_R2(z);
516
- if (ret == 0) goto lab3;
517
- if (ret < 0) return ret;
518
- }
519
- { int ret = slice_del(z);
520
- if (ret < 0) return ret;
521
- }
522
- break;
523
- case 5:
524
- { int ret = r_R2(z);
525
- if (ret == 0) goto lab3;
526
- if (ret < 0) return ret;
527
- }
528
- if (!(z->I[2])) goto lab3;
529
- { int ret = slice_del(z);
530
- if (ret < 0) return ret;
531
- }
532
- break;
533
- }
534
- lab3:
535
- z->c = z->l - m5;
536
- }
537
- { int m9 = z->l - z->c; (void)m9;
538
- if (out_grouping_b(z, g_v_I, 73, 232, 0)) goto lab8;
539
- { int m_test10 = z->l - z->c;
540
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2129954 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab8;
541
- if (!(find_among_b(z, a_5, 4))) goto lab8;
542
- if (out_grouping_b(z, g_v, 97, 232, 0)) goto lab8;
543
- z->c = z->l - m_test10;
544
- }
545
- z->ket = z->c;
546
- if (z->c <= z->lb) goto lab8;
547
- z->c--;
548
- z->bra = z->c;
549
- { int ret = slice_del(z);
550
- if (ret < 0) return ret;
551
- }
552
- lab8:
553
- z->c = z->l - m9;
554
- }
555
- return 1;
556
- }
557
-
558
- extern int dutch_ISO_8859_1_stem(struct SN_env * z) {
559
- { int c1 = z->c;
560
- { int ret = r_prelude(z);
561
- if (ret < 0) return ret;
562
- }
563
- z->c = c1;
564
- }
565
- { int c2 = z->c;
566
- { int ret = r_mark_regions(z);
567
- if (ret < 0) return ret;
568
- }
569
- z->c = c2;
570
- }
571
- z->lb = z->c; z->c = z->l;
572
-
573
-
574
- { int ret = r_standard_suffix(z);
575
- if (ret < 0) return ret;
576
- }
577
- z->c = z->lb;
578
- { int c3 = z->c;
579
- { int ret = r_postlude(z);
580
- if (ret < 0) return ret;
581
- }
582
- z->c = c3;
583
- }
584
- return 1;
585
- }
586
-
587
- extern struct SN_env * dutch_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); }
588
-
589
- extern void dutch_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
590
-
@@ -1,6 +0,0 @@
1
- /* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
2
-
3
- extern struct SN_env * dutch_ISO_8859_1_create_env(void);
4
- extern void dutch_ISO_8859_1_close_env(struct SN_env * z);
5
-
6
- extern int dutch_ISO_8859_1_stem(struct SN_env * z);