ferret 0.11.6 → 0.11.8.4
Sign up to get free protection for your applications and to get access to all the features.
- data/README +10 -22
- data/RELEASE_CHANGES +137 -0
- data/RELEASE_NOTES +60 -0
- data/Rakefile +379 -274
- data/TODO +100 -8
- data/bin/ferret-browser +0 -0
- data/ext/BZLIB_blocksort.c +1094 -0
- data/ext/BZLIB_bzlib.c +1578 -0
- data/ext/BZLIB_compress.c +672 -0
- data/ext/BZLIB_crctable.c +104 -0
- data/ext/BZLIB_decompress.c +626 -0
- data/ext/BZLIB_huffman.c +205 -0
- data/ext/BZLIB_randtable.c +84 -0
- data/ext/{api.c → STEMMER_api.c} +7 -10
- data/ext/{libstemmer.c → STEMMER_libstemmer.c} +3 -2
- data/ext/{stem_ISO_8859_1_danish.c → STEMMER_stem_ISO_8859_1_danish.c} +123 -124
- data/ext/{stem_ISO_8859_1_dutch.c → STEMMER_stem_ISO_8859_1_dutch.c} +177 -188
- data/ext/STEMMER_stem_ISO_8859_1_english.c +1117 -0
- data/ext/{stem_ISO_8859_1_finnish.c → STEMMER_stem_ISO_8859_1_finnish.c} +276 -306
- data/ext/STEMMER_stem_ISO_8859_1_french.c +1246 -0
- data/ext/{stem_ISO_8859_1_german.c → STEMMER_stem_ISO_8859_1_german.c} +161 -170
- data/ext/STEMMER_stem_ISO_8859_1_hungarian.c +1230 -0
- data/ext/STEMMER_stem_ISO_8859_1_italian.c +1065 -0
- data/ext/STEMMER_stem_ISO_8859_1_norwegian.c +297 -0
- data/ext/{stem_ISO_8859_1_porter.c → STEMMER_stem_ISO_8859_1_porter.c} +263 -290
- data/ext/{stem_ISO_8859_1_portuguese.c → STEMMER_stem_ISO_8859_1_portuguese.c} +362 -380
- data/ext/STEMMER_stem_ISO_8859_1_spanish.c +1093 -0
- data/ext/STEMMER_stem_ISO_8859_1_swedish.c +307 -0
- data/ext/STEMMER_stem_ISO_8859_2_romanian.c +998 -0
- data/ext/{stem_KOI8_R_russian.c → STEMMER_stem_KOI8_R_russian.c} +244 -245
- data/ext/STEMMER_stem_UTF_8_danish.c +339 -0
- data/ext/{stem_UTF_8_dutch.c → STEMMER_stem_UTF_8_dutch.c} +192 -211
- data/ext/STEMMER_stem_UTF_8_english.c +1125 -0
- data/ext/{stem_UTF_8_finnish.c → STEMMER_stem_UTF_8_finnish.c} +284 -324
- data/ext/STEMMER_stem_UTF_8_french.c +1256 -0
- data/ext/{stem_UTF_8_german.c → STEMMER_stem_UTF_8_german.c} +170 -187
- data/ext/STEMMER_stem_UTF_8_hungarian.c +1234 -0
- data/ext/STEMMER_stem_UTF_8_italian.c +1073 -0
- data/ext/STEMMER_stem_UTF_8_norwegian.c +299 -0
- data/ext/{stem_UTF_8_porter.c → STEMMER_stem_UTF_8_porter.c} +271 -310
- data/ext/STEMMER_stem_UTF_8_portuguese.c +1023 -0
- data/ext/STEMMER_stem_UTF_8_romanian.c +1004 -0
- data/ext/STEMMER_stem_UTF_8_russian.c +694 -0
- data/ext/STEMMER_stem_UTF_8_spanish.c +1097 -0
- data/ext/STEMMER_stem_UTF_8_swedish.c +309 -0
- data/ext/STEMMER_stem_UTF_8_turkish.c +2205 -0
- data/ext/{utilities.c → STEMMER_utilities.c} +100 -68
- data/ext/analysis.c +276 -121
- data/ext/analysis.h +190 -143
- data/ext/api.h +3 -4
- data/ext/array.c +5 -3
- data/ext/array.h +52 -43
- data/ext/bitvector.c +38 -482
- data/ext/bitvector.h +446 -124
- data/ext/bzlib.h +282 -0
- data/ext/bzlib_private.h +503 -0
- data/ext/compound_io.c +23 -22
- data/ext/config.h +21 -11
- data/ext/document.c +43 -40
- data/ext/document.h +31 -21
- data/ext/except.c +20 -38
- data/ext/except.h +89 -76
- data/ext/extconf.rb +3 -2
- data/ext/ferret.c +49 -35
- data/ext/ferret.h +14 -11
- data/ext/field_index.c +262 -0
- data/ext/field_index.h +52 -0
- data/ext/filter.c +11 -10
- data/ext/fs_store.c +65 -47
- data/ext/global.c +245 -165
- data/ext/global.h +252 -54
- data/ext/hash.c +200 -243
- data/ext/hash.h +205 -163
- data/ext/hashset.c +118 -96
- data/ext/hashset.h +110 -82
- data/ext/header.h +19 -19
- data/ext/helper.c +11 -10
- data/ext/helper.h +14 -6
- data/ext/index.c +745 -366
- data/ext/index.h +503 -529
- data/ext/internal.h +1020 -0
- data/ext/lang.c +10 -0
- data/ext/lang.h +35 -15
- data/ext/mempool.c +5 -4
- data/ext/mempool.h +30 -22
- data/ext/modules.h +35 -7
- data/ext/multimapper.c +43 -2
- data/ext/multimapper.h +32 -23
- data/ext/posh.c +0 -0
- data/ext/posh.h +4 -38
- data/ext/priorityqueue.c +10 -12
- data/ext/priorityqueue.h +33 -21
- data/ext/q_boolean.c +22 -9
- data/ext/q_const_score.c +3 -2
- data/ext/q_filtered_query.c +15 -12
- data/ext/q_fuzzy.c +147 -135
- data/ext/q_match_all.c +3 -2
- data/ext/q_multi_term.c +28 -32
- data/ext/q_parser.c +451 -173
- data/ext/q_phrase.c +158 -79
- data/ext/q_prefix.c +16 -18
- data/ext/q_range.c +363 -31
- data/ext/q_span.c +130 -141
- data/ext/q_term.c +21 -21
- data/ext/q_wildcard.c +19 -23
- data/ext/r_analysis.c +369 -242
- data/ext/r_index.c +421 -434
- data/ext/r_qparser.c +142 -92
- data/ext/r_search.c +790 -407
- data/ext/r_store.c +44 -44
- data/ext/r_utils.c +264 -96
- data/ext/ram_store.c +29 -23
- data/ext/scanner.c +895 -0
- data/ext/scanner.h +36 -0
- data/ext/scanner_mb.c +6701 -0
- data/ext/scanner_utf8.c +4415 -0
- data/ext/search.c +210 -87
- data/ext/search.h +556 -488
- data/ext/similarity.c +17 -16
- data/ext/similarity.h +51 -44
- data/ext/sort.c +157 -354
- data/ext/stem_ISO_8859_1_hungarian.h +16 -0
- data/ext/stem_ISO_8859_2_romanian.h +16 -0
- data/ext/stem_UTF_8_hungarian.h +16 -0
- data/ext/stem_UTF_8_romanian.h +16 -0
- data/ext/stem_UTF_8_turkish.h +16 -0
- data/ext/stopwords.c +287 -278
- data/ext/store.c +57 -51
- data/ext/store.h +308 -286
- data/ext/symbol.c +10 -0
- data/ext/symbol.h +23 -0
- data/ext/term_vectors.c +14 -293
- data/ext/threading.h +22 -22
- data/ext/win32.h +12 -4
- data/lib/ferret.rb +2 -1
- data/lib/ferret/browser.rb +1 -1
- data/lib/ferret/field_symbol.rb +94 -0
- data/lib/ferret/index.rb +221 -34
- data/lib/ferret/number_tools.rb +6 -6
- data/lib/ferret/version.rb +3 -0
- data/test/{unit → long_running}/largefile/tc_largefile.rb +1 -1
- data/test/test_helper.rb +7 -2
- data/test/test_installed.rb +1 -0
- data/test/threading/thread_safety_index_test.rb +10 -1
- data/test/threading/thread_safety_read_write_test.rb +4 -7
- data/test/threading/thread_safety_test.rb +0 -0
- data/test/unit/analysis/tc_analyzer.rb +29 -27
- data/test/unit/analysis/tc_token_stream.rb +23 -16
- data/test/unit/index/tc_index.rb +116 -11
- data/test/unit/index/tc_index_reader.rb +27 -27
- data/test/unit/index/tc_index_writer.rb +10 -0
- data/test/unit/index/th_doc.rb +38 -21
- data/test/unit/search/tc_filter.rb +31 -10
- data/test/unit/search/tc_index_searcher.rb +6 -0
- data/test/unit/search/tm_searcher.rb +53 -1
- data/test/unit/store/tc_fs_store.rb +40 -2
- data/test/unit/store/tc_ram_store.rb +0 -0
- data/test/unit/store/tm_store.rb +0 -0
- data/test/unit/store/tm_store_lock.rb +7 -6
- data/test/unit/tc_field_symbol.rb +26 -0
- data/test/unit/ts_analysis.rb +0 -0
- data/test/unit/ts_index.rb +0 -0
- data/test/unit/ts_store.rb +0 -0
- data/test/unit/ts_utils.rb +0 -0
- data/test/unit/utils/tc_number_tools.rb +0 -0
- data/test/utils/content_generator.rb +226 -0
- metadata +262 -221
- data/ext/inc/lang.h +0 -48
- data/ext/inc/threading.h +0 -31
- data/ext/stem_ISO_8859_1_english.c +0 -1156
- data/ext/stem_ISO_8859_1_french.c +0 -1276
- data/ext/stem_ISO_8859_1_italian.c +0 -1091
- data/ext/stem_ISO_8859_1_norwegian.c +0 -296
- data/ext/stem_ISO_8859_1_spanish.c +0 -1119
- data/ext/stem_ISO_8859_1_swedish.c +0 -307
- data/ext/stem_UTF_8_danish.c +0 -344
- data/ext/stem_UTF_8_english.c +0 -1176
- data/ext/stem_UTF_8_french.c +0 -1296
- data/ext/stem_UTF_8_italian.c +0 -1113
- data/ext/stem_UTF_8_norwegian.c +0 -302
- data/ext/stem_UTF_8_portuguese.c +0 -1055
- data/ext/stem_UTF_8_russian.c +0 -709
- data/ext/stem_UTF_8_spanish.c +0 -1137
- data/ext/stem_UTF_8_swedish.c +0 -313
- data/lib/ferret_version.rb +0 -3
@@ -3,24 +3,38 @@
|
|
3
3
|
|
4
4
|
#include "header.h"
|
5
5
|
|
6
|
+
#ifdef __cplusplus
|
7
|
+
extern "C" {
|
8
|
+
#endif
|
6
9
|
extern int german_ISO_8859_1_stem(struct SN_env * z);
|
10
|
+
#ifdef __cplusplus
|
11
|
+
}
|
12
|
+
#endif
|
7
13
|
static int r_standard_suffix(struct SN_env * z);
|
8
14
|
static int r_R2(struct SN_env * z);
|
9
15
|
static int r_R1(struct SN_env * z);
|
10
16
|
static int r_mark_regions(struct SN_env * z);
|
11
17
|
static int r_postlude(struct SN_env * z);
|
12
18
|
static int r_prelude(struct SN_env * z);
|
19
|
+
#ifdef __cplusplus
|
20
|
+
extern "C" {
|
21
|
+
#endif
|
22
|
+
|
13
23
|
|
14
24
|
extern struct SN_env * german_ISO_8859_1_create_env(void);
|
15
25
|
extern void german_ISO_8859_1_close_env(struct SN_env * z);
|
16
26
|
|
17
|
-
static symbol s_0_1[1] = { 'U' };
|
18
|
-
static symbol s_0_2[1] = { 'Y' };
|
19
|
-
static symbol s_0_3[1] = { 0xE4 };
|
20
|
-
static symbol s_0_4[1] = { 0xF6 };
|
21
|
-
static symbol s_0_5[1] = { 0xFC };
|
22
27
|
|
23
|
-
|
28
|
+
#ifdef __cplusplus
|
29
|
+
}
|
30
|
+
#endif
|
31
|
+
static const symbol s_0_1[1] = { 'U' };
|
32
|
+
static const symbol s_0_2[1] = { 'Y' };
|
33
|
+
static const symbol s_0_3[1] = { 0xE4 };
|
34
|
+
static const symbol s_0_4[1] = { 0xF6 };
|
35
|
+
static const symbol s_0_5[1] = { 0xFC };
|
36
|
+
|
37
|
+
static const struct among a_0[6] =
|
24
38
|
{
|
25
39
|
/* 0 */ { 0, 0, -1, 6, 0},
|
26
40
|
/* 1 */ { 1, s_0_1, 0, 2, 0},
|
@@ -30,15 +44,15 @@ static struct among a_0[6] =
|
|
30
44
|
/* 5 */ { 1, s_0_5, 0, 5, 0}
|
31
45
|
};
|
32
46
|
|
33
|
-
static symbol s_1_0[1] = { 'e' };
|
34
|
-
static symbol s_1_1[2] = { 'e', 'm' };
|
35
|
-
static symbol s_1_2[2] = { 'e', 'n' };
|
36
|
-
static symbol s_1_3[3] = { 'e', 'r', 'n' };
|
37
|
-
static symbol s_1_4[2] = { 'e', 'r' };
|
38
|
-
static symbol s_1_5[1] = { 's' };
|
39
|
-
static symbol s_1_6[2] = { 'e', 's' };
|
47
|
+
static const symbol s_1_0[1] = { 'e' };
|
48
|
+
static const symbol s_1_1[2] = { 'e', 'm' };
|
49
|
+
static const symbol s_1_2[2] = { 'e', 'n' };
|
50
|
+
static const symbol s_1_3[3] = { 'e', 'r', 'n' };
|
51
|
+
static const symbol s_1_4[2] = { 'e', 'r' };
|
52
|
+
static const symbol s_1_5[1] = { 's' };
|
53
|
+
static const symbol s_1_6[2] = { 'e', 's' };
|
40
54
|
|
41
|
-
static struct among a_1[7] =
|
55
|
+
static const struct among a_1[7] =
|
42
56
|
{
|
43
57
|
/* 0 */ { 1, s_1_0, -1, 1, 0},
|
44
58
|
/* 1 */ { 2, s_1_1, -1, 1, 0},
|
@@ -49,12 +63,12 @@ static struct among a_1[7] =
|
|
49
63
|
/* 6 */ { 2, s_1_6, 5, 1, 0}
|
50
64
|
};
|
51
65
|
|
52
|
-
static symbol s_2_0[2] = { 'e', 'n' };
|
53
|
-
static symbol s_2_1[2] = { 'e', 'r' };
|
54
|
-
static symbol s_2_2[2] = { 's', 't' };
|
55
|
-
static symbol s_2_3[3] = { 'e', 's', 't' };
|
66
|
+
static const symbol s_2_0[2] = { 'e', 'n' };
|
67
|
+
static const symbol s_2_1[2] = { 'e', 'r' };
|
68
|
+
static const symbol s_2_2[2] = { 's', 't' };
|
69
|
+
static const symbol s_2_3[3] = { 'e', 's', 't' };
|
56
70
|
|
57
|
-
static struct among a_2[4] =
|
71
|
+
static const struct among a_2[4] =
|
58
72
|
{
|
59
73
|
/* 0 */ { 2, s_2_0, -1, 1, 0},
|
60
74
|
/* 1 */ { 2, s_2_1, -1, 1, 0},
|
@@ -62,25 +76,25 @@ static struct among a_2[4] =
|
|
62
76
|
/* 3 */ { 3, s_2_3, 2, 1, 0}
|
63
77
|
};
|
64
78
|
|
65
|
-
static symbol s_3_0[2] = { 'i', 'g' };
|
66
|
-
static symbol s_3_1[4] = { 'l', 'i', 'c', 'h' };
|
79
|
+
static const symbol s_3_0[2] = { 'i', 'g' };
|
80
|
+
static const symbol s_3_1[4] = { 'l', 'i', 'c', 'h' };
|
67
81
|
|
68
|
-
static struct among a_3[2] =
|
82
|
+
static const struct among a_3[2] =
|
69
83
|
{
|
70
84
|
/* 0 */ { 2, s_3_0, -1, 1, 0},
|
71
85
|
/* 1 */ { 4, s_3_1, -1, 1, 0}
|
72
86
|
};
|
73
87
|
|
74
|
-
static symbol s_4_0[3] = { 'e', 'n', 'd' };
|
75
|
-
static symbol s_4_1[2] = { 'i', 'g' };
|
76
|
-
static symbol s_4_2[3] = { 'u', 'n', 'g' };
|
77
|
-
static symbol s_4_3[4] = { 'l', 'i', 'c', 'h' };
|
78
|
-
static symbol s_4_4[4] = { 'i', 's', 'c', 'h' };
|
79
|
-
static symbol s_4_5[2] = { 'i', 'k' };
|
80
|
-
static symbol s_4_6[4] = { 'h', 'e', 'i', 't' };
|
81
|
-
static symbol s_4_7[4] = { 'k', 'e', 'i', 't' };
|
88
|
+
static const symbol s_4_0[3] = { 'e', 'n', 'd' };
|
89
|
+
static const symbol s_4_1[2] = { 'i', 'g' };
|
90
|
+
static const symbol s_4_2[3] = { 'u', 'n', 'g' };
|
91
|
+
static const symbol s_4_3[4] = { 'l', 'i', 'c', 'h' };
|
92
|
+
static const symbol s_4_4[4] = { 'i', 's', 'c', 'h' };
|
93
|
+
static const symbol s_4_5[2] = { 'i', 'k' };
|
94
|
+
static const symbol s_4_6[4] = { 'h', 'e', 'i', 't' };
|
95
|
+
static const symbol s_4_7[4] = { 'k', 'e', 'i', 't' };
|
82
96
|
|
83
|
-
static struct among a_4[8] =
|
97
|
+
static const struct among a_4[8] =
|
84
98
|
{
|
85
99
|
/* 0 */ { 3, s_4_0, -1, 1, 0},
|
86
100
|
/* 1 */ { 2, s_4_1, -1, 2, 0},
|
@@ -92,91 +106,88 @@ static struct among a_4[8] =
|
|
92
106
|
/* 7 */ { 4, s_4_7, -1, 4, 0}
|
93
107
|
};
|
94
108
|
|
95
|
-
static unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32, 8 };
|
109
|
+
static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32, 8 };
|
96
110
|
|
97
|
-
static unsigned char g_s_ending[] = { 117, 30, 5 };
|
111
|
+
static const unsigned char g_s_ending[] = { 117, 30, 5 };
|
98
112
|
|
99
|
-
static unsigned char g_st_ending[] = { 117, 30, 4 };
|
113
|
+
static const unsigned char g_st_ending[] = { 117, 30, 4 };
|
100
114
|
|
101
|
-
static symbol s_0[] = { 0xDF };
|
102
|
-
static symbol s_1[] = { 's', 's' };
|
103
|
-
static symbol s_2[] = { 'u' };
|
104
|
-
static symbol s_3[] = { 'U' };
|
105
|
-
static symbol s_4[] = { 'y' };
|
106
|
-
static symbol s_5[] = { 'Y' };
|
107
|
-
static symbol s_6[] = { 'y' };
|
108
|
-
static symbol s_7[] = { 'u' };
|
109
|
-
static symbol s_8[] = { 'a' };
|
110
|
-
static symbol s_9[] = { 'o' };
|
111
|
-
static symbol s_10[] = { 'u' };
|
112
|
-
static symbol s_11[] = { 'i', 'g' };
|
113
|
-
static symbol s_12[] = { 'e' };
|
114
|
-
static symbol s_13[] = { 'e' };
|
115
|
-
static symbol s_14[] = { 'e', 'r' };
|
116
|
-
static symbol s_15[] = { 'e', 'n' };
|
115
|
+
static const symbol s_0[] = { 0xDF };
|
116
|
+
static const symbol s_1[] = { 's', 's' };
|
117
|
+
static const symbol s_2[] = { 'u' };
|
118
|
+
static const symbol s_3[] = { 'U' };
|
119
|
+
static const symbol s_4[] = { 'y' };
|
120
|
+
static const symbol s_5[] = { 'Y' };
|
121
|
+
static const symbol s_6[] = { 'y' };
|
122
|
+
static const symbol s_7[] = { 'u' };
|
123
|
+
static const symbol s_8[] = { 'a' };
|
124
|
+
static const symbol s_9[] = { 'o' };
|
125
|
+
static const symbol s_10[] = { 'u' };
|
126
|
+
static const symbol s_11[] = { 'i', 'g' };
|
127
|
+
static const symbol s_12[] = { 'e' };
|
128
|
+
static const symbol s_13[] = { 'e' };
|
129
|
+
static const symbol s_14[] = { 'e', 'r' };
|
130
|
+
static const symbol s_15[] = { 'e', 'n' };
|
117
131
|
|
118
132
|
static int r_prelude(struct SN_env * z) {
|
119
133
|
{ int c_test = z->c; /* test, line 30 */
|
120
134
|
while(1) { /* repeat, line 30 */
|
121
|
-
int
|
122
|
-
{ int
|
135
|
+
int c1 = z->c;
|
136
|
+
{ int c2 = z->c; /* or, line 33 */
|
123
137
|
z->bra = z->c; /* [, line 32 */
|
124
138
|
if (!(eq_s(z, 1, s_0))) goto lab2;
|
125
139
|
z->ket = z->c; /* ], line 32 */
|
126
|
-
{ int ret;
|
127
|
-
ret = slice_from_s(z, 2, s_1); /* <-, line 32 */
|
140
|
+
{ int ret = slice_from_s(z, 2, s_1); /* <-, line 32 */
|
128
141
|
if (ret < 0) return ret;
|
129
142
|
}
|
130
143
|
goto lab1;
|
131
144
|
lab2:
|
132
|
-
z->c =
|
145
|
+
z->c = c2;
|
133
146
|
if (z->c >= z->l) goto lab0;
|
134
147
|
z->c++; /* next, line 33 */
|
135
148
|
}
|
136
149
|
lab1:
|
137
150
|
continue;
|
138
151
|
lab0:
|
139
|
-
z->c =
|
152
|
+
z->c = c1;
|
140
153
|
break;
|
141
154
|
}
|
142
155
|
z->c = c_test;
|
143
156
|
}
|
144
157
|
while(1) { /* repeat, line 36 */
|
145
|
-
int
|
158
|
+
int c3 = z->c;
|
146
159
|
while(1) { /* goto, line 36 */
|
147
|
-
int
|
148
|
-
if (
|
160
|
+
int c4 = z->c;
|
161
|
+
if (in_grouping(z, g_v, 97, 252, 0)) goto lab4;
|
149
162
|
z->bra = z->c; /* [, line 37 */
|
150
|
-
{ int
|
163
|
+
{ int c5 = z->c; /* or, line 37 */
|
151
164
|
if (!(eq_s(z, 1, s_2))) goto lab6;
|
152
165
|
z->ket = z->c; /* ], line 37 */
|
153
|
-
if (
|
154
|
-
{ int ret;
|
155
|
-
ret = slice_from_s(z, 1, s_3); /* <-, line 37 */
|
166
|
+
if (in_grouping(z, g_v, 97, 252, 0)) goto lab6;
|
167
|
+
{ int ret = slice_from_s(z, 1, s_3); /* <-, line 37 */
|
156
168
|
if (ret < 0) return ret;
|
157
169
|
}
|
158
170
|
goto lab5;
|
159
171
|
lab6:
|
160
|
-
z->c =
|
172
|
+
z->c = c5;
|
161
173
|
if (!(eq_s(z, 1, s_4))) goto lab4;
|
162
174
|
z->ket = z->c; /* ], line 38 */
|
163
|
-
if (
|
164
|
-
{ int ret;
|
165
|
-
ret = slice_from_s(z, 1, s_5); /* <-, line 38 */
|
175
|
+
if (in_grouping(z, g_v, 97, 252, 0)) goto lab4;
|
176
|
+
{ int ret = slice_from_s(z, 1, s_5); /* <-, line 38 */
|
166
177
|
if (ret < 0) return ret;
|
167
178
|
}
|
168
179
|
}
|
169
180
|
lab5:
|
170
|
-
z->c =
|
181
|
+
z->c = c4;
|
171
182
|
break;
|
172
183
|
lab4:
|
173
|
-
z->c =
|
184
|
+
z->c = c4;
|
174
185
|
if (z->c >= z->l) goto lab3;
|
175
186
|
z->c++; /* goto, line 36 */
|
176
187
|
}
|
177
188
|
continue;
|
178
189
|
lab3:
|
179
|
-
z->c =
|
190
|
+
z->c = c3;
|
180
191
|
break;
|
181
192
|
}
|
182
193
|
return 1;
|
@@ -186,45 +197,37 @@ static int r_mark_regions(struct SN_env * z) {
|
|
186
197
|
z->I[0] = z->l;
|
187
198
|
z->I[1] = z->l;
|
188
199
|
{ int c_test = z->c; /* test, line 47 */
|
189
|
-
{ int
|
190
|
-
if (0 >
|
191
|
-
z->c =
|
200
|
+
{ int ret = z->c + 3;
|
201
|
+
if (0 > ret || ret > z->l) return 0;
|
202
|
+
z->c = ret; /* hop, line 47 */
|
192
203
|
}
|
193
204
|
z->I[2] = z->c; /* setmark x, line 47 */
|
194
205
|
z->c = c_test;
|
195
206
|
}
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
if (z->c >= z->l) return 0;
|
201
|
-
z->c++; /* gopast, line 49 */
|
207
|
+
{ /* gopast */ /* grouping v, line 49 */
|
208
|
+
int ret = out_grouping(z, g_v, 97, 252, 1);
|
209
|
+
if (ret < 0) return 0;
|
210
|
+
z->c += ret;
|
202
211
|
}
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
if (z->c >= z->l) return 0;
|
208
|
-
z->c++; /* gopast, line 49 */
|
212
|
+
{ /* gopast */ /* non v, line 49 */
|
213
|
+
int ret = in_grouping(z, g_v, 97, 252, 1);
|
214
|
+
if (ret < 0) return 0;
|
215
|
+
z->c += ret;
|
209
216
|
}
|
210
217
|
z->I[0] = z->c; /* setmark p1, line 49 */
|
211
218
|
/* try, line 50 */
|
212
|
-
if (!(z->I[0] < z->I[2])) goto
|
219
|
+
if (!(z->I[0] < z->I[2])) goto lab0;
|
213
220
|
z->I[0] = z->I[2];
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
if (z->c >= z->l) return 0;
|
220
|
-
z->c++; /* gopast, line 51 */
|
221
|
+
lab0:
|
222
|
+
{ /* gopast */ /* grouping v, line 51 */
|
223
|
+
int ret = out_grouping(z, g_v, 97, 252, 1);
|
224
|
+
if (ret < 0) return 0;
|
225
|
+
z->c += ret;
|
221
226
|
}
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
if (z->c >= z->l) return 0;
|
227
|
-
z->c++; /* gopast, line 51 */
|
227
|
+
{ /* gopast */ /* non v, line 51 */
|
228
|
+
int ret = in_grouping(z, g_v, 97, 252, 1);
|
229
|
+
if (ret < 0) return 0;
|
230
|
+
z->c += ret;
|
228
231
|
}
|
229
232
|
z->I[1] = z->c; /* setmark p2, line 51 */
|
230
233
|
return 1;
|
@@ -233,7 +236,7 @@ lab2:
|
|
233
236
|
static int r_postlude(struct SN_env * z) {
|
234
237
|
int among_var;
|
235
238
|
while(1) { /* repeat, line 55 */
|
236
|
-
int
|
239
|
+
int c1 = z->c;
|
237
240
|
z->bra = z->c; /* [, line 57 */
|
238
241
|
among_var = find_among(z, a_0, 6); /* substring, line 57 */
|
239
242
|
if (!(among_var)) goto lab0;
|
@@ -241,32 +244,27 @@ static int r_postlude(struct SN_env * z) {
|
|
241
244
|
switch(among_var) {
|
242
245
|
case 0: goto lab0;
|
243
246
|
case 1:
|
244
|
-
{ int ret;
|
245
|
-
ret = slice_from_s(z, 1, s_6); /* <-, line 58 */
|
247
|
+
{ int ret = slice_from_s(z, 1, s_6); /* <-, line 58 */
|
246
248
|
if (ret < 0) return ret;
|
247
249
|
}
|
248
250
|
break;
|
249
251
|
case 2:
|
250
|
-
{ int ret;
|
251
|
-
ret = slice_from_s(z, 1, s_7); /* <-, line 59 */
|
252
|
+
{ int ret = slice_from_s(z, 1, s_7); /* <-, line 59 */
|
252
253
|
if (ret < 0) return ret;
|
253
254
|
}
|
254
255
|
break;
|
255
256
|
case 3:
|
256
|
-
{ int ret;
|
257
|
-
ret = slice_from_s(z, 1, s_8); /* <-, line 60 */
|
257
|
+
{ int ret = slice_from_s(z, 1, s_8); /* <-, line 60 */
|
258
258
|
if (ret < 0) return ret;
|
259
259
|
}
|
260
260
|
break;
|
261
261
|
case 4:
|
262
|
-
{ int ret;
|
263
|
-
ret = slice_from_s(z, 1, s_9); /* <-, line 61 */
|
262
|
+
{ int ret = slice_from_s(z, 1, s_9); /* <-, line 61 */
|
264
263
|
if (ret < 0) return ret;
|
265
264
|
}
|
266
265
|
break;
|
267
266
|
case 5:
|
268
|
-
{ int ret;
|
269
|
-
ret = slice_from_s(z, 1, s_10); /* <-, line 62 */
|
267
|
+
{ int ret = slice_from_s(z, 1, s_10); /* <-, line 62 */
|
270
268
|
if (ret < 0) return ret;
|
271
269
|
}
|
272
270
|
break;
|
@@ -277,7 +275,7 @@ static int r_postlude(struct SN_env * z) {
|
|
277
275
|
}
|
278
276
|
continue;
|
279
277
|
lab0:
|
280
|
-
z->c =
|
278
|
+
z->c = c1;
|
281
279
|
break;
|
282
280
|
}
|
283
281
|
return 1;
|
@@ -295,8 +293,9 @@ static int r_R2(struct SN_env * z) {
|
|
295
293
|
|
296
294
|
static int r_standard_suffix(struct SN_env * z) {
|
297
295
|
int among_var;
|
298
|
-
{ int
|
296
|
+
{ int m1 = z->l - z->c; (void)m1; /* do, line 74 */
|
299
297
|
z->ket = z->c; /* [, line 75 */
|
298
|
+
if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((811040 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
|
300
299
|
among_var = find_among_b(z, a_1, 7); /* substring, line 75 */
|
301
300
|
if (!(among_var)) goto lab0;
|
302
301
|
z->bra = z->c; /* ], line 75 */
|
@@ -307,24 +306,23 @@ static int r_standard_suffix(struct SN_env * z) {
|
|
307
306
|
switch(among_var) {
|
308
307
|
case 0: goto lab0;
|
309
308
|
case 1:
|
310
|
-
{ int ret;
|
311
|
-
ret = slice_del(z); /* delete, line 77 */
|
309
|
+
{ int ret = slice_del(z); /* delete, line 77 */
|
312
310
|
if (ret < 0) return ret;
|
313
311
|
}
|
314
312
|
break;
|
315
313
|
case 2:
|
316
|
-
if (
|
317
|
-
{ int ret;
|
318
|
-
ret = slice_del(z); /* delete, line 80 */
|
314
|
+
if (in_grouping_b(z, g_s_ending, 98, 116, 0)) goto lab0;
|
315
|
+
{ int ret = slice_del(z); /* delete, line 80 */
|
319
316
|
if (ret < 0) return ret;
|
320
317
|
}
|
321
318
|
break;
|
322
319
|
}
|
323
320
|
lab0:
|
324
|
-
z->c = z->l -
|
321
|
+
z->c = z->l - m1;
|
325
322
|
}
|
326
|
-
{ int
|
323
|
+
{ int m2 = z->l - z->c; (void)m2; /* do, line 84 */
|
327
324
|
z->ket = z->c; /* [, line 85 */
|
325
|
+
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1327104 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab1;
|
328
326
|
among_var = find_among_b(z, a_2, 4); /* substring, line 85 */
|
329
327
|
if (!(among_var)) goto lab1;
|
330
328
|
z->bra = z->c; /* ], line 85 */
|
@@ -335,28 +333,27 @@ static int r_standard_suffix(struct SN_env * z) {
|
|
335
333
|
switch(among_var) {
|
336
334
|
case 0: goto lab1;
|
337
335
|
case 1:
|
338
|
-
{ int ret;
|
339
|
-
ret = slice_del(z); /* delete, line 87 */
|
336
|
+
{ int ret = slice_del(z); /* delete, line 87 */
|
340
337
|
if (ret < 0) return ret;
|
341
338
|
}
|
342
339
|
break;
|
343
340
|
case 2:
|
344
|
-
if (
|
345
|
-
{ int
|
346
|
-
if (z->lb >
|
347
|
-
z->c =
|
341
|
+
if (in_grouping_b(z, g_st_ending, 98, 116, 0)) goto lab1;
|
342
|
+
{ int ret = z->c - 3;
|
343
|
+
if (z->lb > ret || ret > z->l) goto lab1;
|
344
|
+
z->c = ret; /* hop, line 90 */
|
348
345
|
}
|
349
|
-
{ int ret;
|
350
|
-
ret = slice_del(z); /* delete, line 90 */
|
346
|
+
{ int ret = slice_del(z); /* delete, line 90 */
|
351
347
|
if (ret < 0) return ret;
|
352
348
|
}
|
353
349
|
break;
|
354
350
|
}
|
355
351
|
lab1:
|
356
|
-
z->c = z->l -
|
352
|
+
z->c = z->l - m2;
|
357
353
|
}
|
358
|
-
{ int
|
354
|
+
{ int m3 = z->l - z->c; (void)m3; /* do, line 94 */
|
359
355
|
z->ket = z->c; /* [, line 95 */
|
356
|
+
if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1051024 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab2;
|
360
357
|
among_var = find_among_b(z, a_4, 8); /* substring, line 95 */
|
361
358
|
if (!(among_var)) goto lab2;
|
362
359
|
z->bra = z->c; /* ], line 95 */
|
@@ -367,26 +364,24 @@ static int r_standard_suffix(struct SN_env * z) {
|
|
367
364
|
switch(among_var) {
|
368
365
|
case 0: goto lab2;
|
369
366
|
case 1:
|
370
|
-
{ int ret;
|
371
|
-
ret = slice_del(z); /* delete, line 97 */
|
367
|
+
{ int ret = slice_del(z); /* delete, line 97 */
|
372
368
|
if (ret < 0) return ret;
|
373
369
|
}
|
374
|
-
{ int
|
370
|
+
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 98 */
|
375
371
|
z->ket = z->c; /* [, line 98 */
|
376
|
-
if (!(eq_s_b(z, 2, s_11))) { z->c = z->l -
|
372
|
+
if (!(eq_s_b(z, 2, s_11))) { z->c = z->l - m_keep; goto lab3; }
|
377
373
|
z->bra = z->c; /* ], line 98 */
|
378
|
-
{ int
|
374
|
+
{ int m4 = z->l - z->c; (void)m4; /* not, line 98 */
|
379
375
|
if (!(eq_s_b(z, 1, s_12))) goto lab4;
|
380
|
-
{ z->c = z->l -
|
376
|
+
{ z->c = z->l - m_keep; goto lab3; }
|
381
377
|
lab4:
|
382
|
-
z->c = z->l -
|
378
|
+
z->c = z->l - m4;
|
383
379
|
}
|
384
380
|
{ int ret = r_R2(z);
|
385
|
-
if (ret == 0) { z->c = z->l -
|
381
|
+
if (ret == 0) { z->c = z->l - m_keep; goto lab3; } /* call R2, line 98 */
|
386
382
|
if (ret < 0) return ret;
|
387
383
|
}
|
388
|
-
{ int ret;
|
389
|
-
ret = slice_del(z); /* delete, line 98 */
|
384
|
+
{ int ret = slice_del(z); /* delete, line 98 */
|
390
385
|
if (ret < 0) return ret;
|
391
386
|
}
|
392
387
|
lab3:
|
@@ -394,39 +389,36 @@ static int r_standard_suffix(struct SN_env * z) {
|
|
394
389
|
}
|
395
390
|
break;
|
396
391
|
case 2:
|
397
|
-
{ int
|
392
|
+
{ int m5 = z->l - z->c; (void)m5; /* not, line 101 */
|
398
393
|
if (!(eq_s_b(z, 1, s_13))) goto lab5;
|
399
394
|
goto lab2;
|
400
395
|
lab5:
|
401
|
-
z->c = z->l -
|
396
|
+
z->c = z->l - m5;
|
402
397
|
}
|
403
|
-
{ int ret;
|
404
|
-
ret = slice_del(z); /* delete, line 101 */
|
398
|
+
{ int ret = slice_del(z); /* delete, line 101 */
|
405
399
|
if (ret < 0) return ret;
|
406
400
|
}
|
407
401
|
break;
|
408
402
|
case 3:
|
409
|
-
{ int ret;
|
410
|
-
ret = slice_del(z); /* delete, line 104 */
|
403
|
+
{ int ret = slice_del(z); /* delete, line 104 */
|
411
404
|
if (ret < 0) return ret;
|
412
405
|
}
|
413
|
-
{ int
|
406
|
+
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 105 */
|
414
407
|
z->ket = z->c; /* [, line 106 */
|
415
|
-
{ int
|
408
|
+
{ int m6 = z->l - z->c; (void)m6; /* or, line 106 */
|
416
409
|
if (!(eq_s_b(z, 2, s_14))) goto lab8;
|
417
410
|
goto lab7;
|
418
411
|
lab8:
|
419
|
-
z->c = z->l -
|
420
|
-
if (!(eq_s_b(z, 2, s_15))) { z->c = z->l -
|
412
|
+
z->c = z->l - m6;
|
413
|
+
if (!(eq_s_b(z, 2, s_15))) { z->c = z->l - m_keep; goto lab6; }
|
421
414
|
}
|
422
415
|
lab7:
|
423
416
|
z->bra = z->c; /* ], line 106 */
|
424
417
|
{ int ret = r_R1(z);
|
425
|
-
if (ret == 0) { z->c = z->l -
|
418
|
+
if (ret == 0) { z->c = z->l - m_keep; goto lab6; } /* call R1, line 106 */
|
426
419
|
if (ret < 0) return ret;
|
427
420
|
}
|
428
|
-
{ int ret;
|
429
|
-
ret = slice_del(z); /* delete, line 106 */
|
421
|
+
{ int ret = slice_del(z); /* delete, line 106 */
|
430
422
|
if (ret < 0) return ret;
|
431
423
|
}
|
432
424
|
lab6:
|
@@ -434,24 +426,23 @@ static int r_standard_suffix(struct SN_env * z) {
|
|
434
426
|
}
|
435
427
|
break;
|
436
428
|
case 4:
|
437
|
-
{ int ret;
|
438
|
-
ret = slice_del(z); /* delete, line 110 */
|
429
|
+
{ int ret = slice_del(z); /* delete, line 110 */
|
439
430
|
if (ret < 0) return ret;
|
440
431
|
}
|
441
|
-
{ int
|
432
|
+
{ int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 111 */
|
442
433
|
z->ket = z->c; /* [, line 112 */
|
434
|
+
if (z->c - 1 <= z->lb || (z->p[z->c - 1] != 103 && z->p[z->c - 1] != 104)) { z->c = z->l - m_keep; goto lab9; }
|
443
435
|
among_var = find_among_b(z, a_3, 2); /* substring, line 112 */
|
444
|
-
if (!(among_var)) { z->c = z->l -
|
436
|
+
if (!(among_var)) { z->c = z->l - m_keep; goto lab9; }
|
445
437
|
z->bra = z->c; /* ], line 112 */
|
446
438
|
{ int ret = r_R2(z);
|
447
|
-
if (ret == 0) { z->c = z->l -
|
439
|
+
if (ret == 0) { z->c = z->l - m_keep; goto lab9; } /* call R2, line 112 */
|
448
440
|
if (ret < 0) return ret;
|
449
441
|
}
|
450
442
|
switch(among_var) {
|
451
|
-
case 0: { z->c = z->l -
|
443
|
+
case 0: { z->c = z->l - m_keep; goto lab9; }
|
452
444
|
case 1:
|
453
|
-
{ int ret;
|
454
|
-
ret = slice_del(z); /* delete, line 114 */
|
445
|
+
{ int ret = slice_del(z); /* delete, line 114 */
|
455
446
|
if (ret < 0) return ret;
|
456
447
|
}
|
457
448
|
break;
|
@@ -462,51 +453,51 @@ static int r_standard_suffix(struct SN_env * z) {
|
|
462
453
|
break;
|
463
454
|
}
|
464
455
|
lab2:
|
465
|
-
z->c = z->l -
|
456
|
+
z->c = z->l - m3;
|
466
457
|
}
|
467
458
|
return 1;
|
468
459
|
}
|
469
460
|
|
470
461
|
extern int german_ISO_8859_1_stem(struct SN_env * z) {
|
471
|
-
{ int
|
462
|
+
{ int c1 = z->c; /* do, line 125 */
|
472
463
|
{ int ret = r_prelude(z);
|
473
464
|
if (ret == 0) goto lab0; /* call prelude, line 125 */
|
474
465
|
if (ret < 0) return ret;
|
475
466
|
}
|
476
467
|
lab0:
|
477
|
-
z->c =
|
468
|
+
z->c = c1;
|
478
469
|
}
|
479
|
-
{ int
|
470
|
+
{ int c2 = z->c; /* do, line 126 */
|
480
471
|
{ int ret = r_mark_regions(z);
|
481
472
|
if (ret == 0) goto lab1; /* call mark_regions, line 126 */
|
482
473
|
if (ret < 0) return ret;
|
483
474
|
}
|
484
475
|
lab1:
|
485
|
-
z->c =
|
476
|
+
z->c = c2;
|
486
477
|
}
|
487
478
|
z->lb = z->c; z->c = z->l; /* backwards, line 127 */
|
488
479
|
|
489
|
-
{ int
|
480
|
+
{ int m3 = z->l - z->c; (void)m3; /* do, line 128 */
|
490
481
|
{ int ret = r_standard_suffix(z);
|
491
482
|
if (ret == 0) goto lab2; /* call standard_suffix, line 128 */
|
492
483
|
if (ret < 0) return ret;
|
493
484
|
}
|
494
485
|
lab2:
|
495
|
-
z->c = z->l -
|
486
|
+
z->c = z->l - m3;
|
496
487
|
}
|
497
488
|
z->c = z->lb;
|
498
|
-
{ int
|
489
|
+
{ int c4 = z->c; /* do, line 129 */
|
499
490
|
{ int ret = r_postlude(z);
|
500
491
|
if (ret == 0) goto lab3; /* call postlude, line 129 */
|
501
492
|
if (ret < 0) return ret;
|
502
493
|
}
|
503
494
|
lab3:
|
504
|
-
z->c =
|
495
|
+
z->c = c4;
|
505
496
|
}
|
506
497
|
return 1;
|
507
498
|
}
|
508
499
|
|
509
500
|
extern struct SN_env * german_ISO_8859_1_create_env(void) { return SN_create_env(0, 3, 0); }
|
510
501
|
|
511
|
-
extern void german_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z); }
|
502
|
+
extern void german_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
|
512
503
|
|