isomorfeus-ferret 0.12.2 → 0.12.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (125) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +612 -612
  3. data/README.md +80 -44
  4. data/ext/isomorfeus_ferret_ext/bm_hash.c +9 -6
  5. data/ext/isomorfeus_ferret_ext/bm_micro_string.c +4 -2
  6. data/ext/isomorfeus_ferret_ext/frb_search.c +14 -2
  7. data/ext/isomorfeus_ferret_ext/frb_store.c +34 -5
  8. data/ext/isomorfeus_ferret_ext/frt_posh.h +11 -19
  9. data/ext/isomorfeus_ferret_ext/frt_q_parser.c +1844 -1911
  10. data/ext/isomorfeus_ferret_ext/frt_q_phrase.c +12 -15
  11. data/ext/isomorfeus_ferret_ext/frt_scanner.c +1 -0
  12. data/ext/isomorfeus_ferret_ext/frt_scanner_mb.c +1 -0
  13. data/ext/isomorfeus_ferret_ext/frt_scanner_utf8.c +1 -0
  14. data/ext/isomorfeus_ferret_ext/frt_search.h +1 -1
  15. data/ext/isomorfeus_ferret_ext/libstemmer.c +14 -11
  16. data/ext/isomorfeus_ferret_ext/libstemmer.h +4 -9
  17. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_basque.c +1167 -0
  18. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_basque.h +6 -0
  19. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_catalan.c +1433 -0
  20. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_catalan.h +6 -0
  21. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_danish.c +120 -143
  22. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_danish.h +1 -2
  23. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_dutch.c +217 -237
  24. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_dutch.h +1 -1
  25. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_english.c +377 -432
  26. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_english.h +1 -1
  27. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_finnish.c +298 -342
  28. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_finnish.h +1 -2
  29. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_french.c +530 -524
  30. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_french.h +1 -1
  31. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_german.c +201 -214
  32. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_german.h +1 -1
  33. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_hungarian.c +1 -1
  34. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_indonesian.c +394 -0
  35. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_indonesian.h +6 -0
  36. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_irish.c +457 -0
  37. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_irish.h +6 -0
  38. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_italian.c +396 -439
  39. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_italian.h +1 -1
  40. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_norwegian.c +104 -128
  41. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_norwegian.h +1 -1
  42. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_porter.c +242 -273
  43. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_porter.h +1 -1
  44. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_portuguese.c +406 -461
  45. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_portuguese.h +1 -2
  46. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_spanish.c +405 -456
  47. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_spanish.h +1 -1
  48. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_swedish.c +108 -126
  49. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_1_swedish.h +1 -1
  50. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_2_hungarian.c +849 -0
  51. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_2_hungarian.h +6 -0
  52. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_2_romanian.c +373 -405
  53. data/ext/isomorfeus_ferret_ext/stem_ISO_8859_2_romanian.h +1 -1
  54. data/ext/isomorfeus_ferret_ext/stem_KOI8_R_russian.c +288 -305
  55. data/ext/isomorfeus_ferret_ext/stem_KOI8_R_russian.h +1 -1
  56. data/ext/isomorfeus_ferret_ext/stem_UTF_8_arabic.c +1651 -0
  57. data/ext/isomorfeus_ferret_ext/stem_UTF_8_arabic.h +6 -0
  58. data/ext/isomorfeus_ferret_ext/stem_UTF_8_armenian.c +546 -0
  59. data/ext/isomorfeus_ferret_ext/stem_UTF_8_armenian.h +6 -0
  60. data/ext/isomorfeus_ferret_ext/stem_UTF_8_basque.c +1171 -0
  61. data/ext/isomorfeus_ferret_ext/stem_UTF_8_basque.h +6 -0
  62. data/ext/isomorfeus_ferret_ext/stem_UTF_8_catalan.c +1436 -0
  63. data/ext/isomorfeus_ferret_ext/stem_UTF_8_catalan.h +6 -0
  64. data/ext/isomorfeus_ferret_ext/stem_UTF_8_danish.c +121 -141
  65. data/ext/isomorfeus_ferret_ext/stem_UTF_8_danish.h +1 -1
  66. data/ext/isomorfeus_ferret_ext/stem_UTF_8_dutch.c +221 -241
  67. data/ext/isomorfeus_ferret_ext/stem_UTF_8_dutch.h +1 -1
  68. data/ext/isomorfeus_ferret_ext/stem_UTF_8_english.c +381 -431
  69. data/ext/isomorfeus_ferret_ext/stem_UTF_8_english.h +1 -1
  70. data/ext/isomorfeus_ferret_ext/stem_UTF_8_finnish.c +300 -345
  71. data/ext/isomorfeus_ferret_ext/stem_UTF_8_finnish.h +1 -1
  72. data/ext/isomorfeus_ferret_ext/stem_UTF_8_french.c +518 -511
  73. data/ext/isomorfeus_ferret_ext/stem_UTF_8_french.h +1 -1
  74. data/ext/isomorfeus_ferret_ext/stem_UTF_8_german.c +201 -209
  75. data/ext/isomorfeus_ferret_ext/stem_UTF_8_german.h +1 -1
  76. data/ext/isomorfeus_ferret_ext/stem_UTF_8_greek.c +3660 -0
  77. data/ext/isomorfeus_ferret_ext/stem_UTF_8_greek.h +6 -0
  78. data/ext/isomorfeus_ferret_ext/stem_UTF_8_hindi.c +309 -0
  79. data/ext/isomorfeus_ferret_ext/stem_UTF_8_hindi.h +6 -0
  80. data/ext/isomorfeus_ferret_ext/stem_UTF_8_hungarian.c +306 -671
  81. data/ext/isomorfeus_ferret_ext/stem_UTF_8_hungarian.h +1 -1
  82. data/ext/isomorfeus_ferret_ext/stem_UTF_8_indonesian.c +394 -0
  83. data/ext/isomorfeus_ferret_ext/stem_UTF_8_indonesian.h +6 -0
  84. data/ext/isomorfeus_ferret_ext/stem_UTF_8_irish.c +457 -0
  85. data/ext/isomorfeus_ferret_ext/stem_UTF_8_irish.h +6 -0
  86. data/ext/isomorfeus_ferret_ext/stem_UTF_8_italian.c +400 -442
  87. data/ext/isomorfeus_ferret_ext/stem_UTF_8_italian.h +1 -1
  88. data/ext/isomorfeus_ferret_ext/stem_UTF_8_lithuanian.c +824 -0
  89. data/ext/isomorfeus_ferret_ext/stem_UTF_8_lithuanian.h +6 -0
  90. data/ext/isomorfeus_ferret_ext/stem_UTF_8_nepali.c +408 -0
  91. data/ext/isomorfeus_ferret_ext/stem_UTF_8_nepali.h +6 -0
  92. data/ext/isomorfeus_ferret_ext/stem_UTF_8_norwegian.c +105 -127
  93. data/ext/isomorfeus_ferret_ext/stem_UTF_8_norwegian.h +1 -1
  94. data/ext/isomorfeus_ferret_ext/stem_UTF_8_porter.c +245 -276
  95. data/ext/isomorfeus_ferret_ext/stem_UTF_8_porter.h +1 -1
  96. data/ext/isomorfeus_ferret_ext/stem_UTF_8_portuguese.c +409 -464
  97. data/ext/isomorfeus_ferret_ext/stem_UTF_8_portuguese.h +1 -1
  98. data/ext/isomorfeus_ferret_ext/stem_UTF_8_romanian.c +376 -408
  99. data/ext/isomorfeus_ferret_ext/stem_UTF_8_romanian.h +1 -1
  100. data/ext/isomorfeus_ferret_ext/stem_UTF_8_russian.c +272 -287
  101. data/ext/isomorfeus_ferret_ext/stem_UTF_8_russian.h +1 -1
  102. data/ext/isomorfeus_ferret_ext/stem_UTF_8_serbian.c +6530 -0
  103. data/ext/isomorfeus_ferret_ext/stem_UTF_8_serbian.h +6 -0
  104. data/ext/isomorfeus_ferret_ext/stem_UTF_8_spanish.c +407 -458
  105. data/ext/isomorfeus_ferret_ext/stem_UTF_8_spanish.h +1 -1
  106. data/ext/isomorfeus_ferret_ext/stem_UTF_8_swedish.c +110 -125
  107. data/ext/isomorfeus_ferret_ext/stem_UTF_8_swedish.h +1 -1
  108. data/ext/isomorfeus_ferret_ext/stem_UTF_8_tamil.c +1865 -0
  109. data/ext/isomorfeus_ferret_ext/stem_UTF_8_tamil.h +6 -0
  110. data/ext/isomorfeus_ferret_ext/stem_UTF_8_turkish.c +698 -806
  111. data/ext/isomorfeus_ferret_ext/stem_UTF_8_turkish.h +1 -1
  112. data/ext/isomorfeus_ferret_ext/stem_UTF_8_yiddish.c +1220 -0
  113. data/ext/isomorfeus_ferret_ext/stem_UTF_8_yiddish.h +6 -0
  114. data/ext/isomorfeus_ferret_ext/stem_api.c +1 -9
  115. data/ext/isomorfeus_ferret_ext/stem_api.h +1 -3
  116. data/ext/isomorfeus_ferret_ext/stem_header.h +30 -26
  117. data/ext/isomorfeus_ferret_ext/stem_modules.h +113 -26
  118. data/ext/isomorfeus_ferret_ext/stem_modules.txt +18 -5
  119. data/ext/isomorfeus_ferret_ext/stem_utilities.c +167 -132
  120. data/ext/isomorfeus_ferret_ext/test.c +7 -1
  121. data/ext/isomorfeus_ferret_ext/test_search.c +0 -1
  122. data/lib/isomorfeus/ferret/index/index.rb +1 -1
  123. data/lib/isomorfeus/ferret/version.rb +1 -1
  124. metadata +43 -7
  125. data/ext/isomorfeus_ferret_ext/q_parser.y +0 -1366
@@ -1,9 +1,9 @@
1
-
2
- /* This file was generated automatically by the Snowball to ANSI C compiler */
1
+ /* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
3
2
 
4
3
  #include "stem_header.h"
5
4
 
6
5
  extern int dutch_ISO_8859_1_stem(struct SN_env * z);
6
+
7
7
  static int r_standard_suffix(struct SN_env * z);
8
8
  static int r_undouble(struct SN_env * z);
9
9
  static int r_R2(struct SN_env * z);
@@ -30,17 +30,17 @@ static const symbol s_0_10[1] = { 0xFC };
30
30
 
31
31
  static const struct among a_0[11] =
32
32
  {
33
- /* 0 */ { 0, 0, -1, 6, 0},
34
- /* 1 */ { 1, s_0_1, 0, 1, 0},
35
- /* 2 */ { 1, s_0_2, 0, 1, 0},
36
- /* 3 */ { 1, s_0_3, 0, 2, 0},
37
- /* 4 */ { 1, s_0_4, 0, 2, 0},
38
- /* 5 */ { 1, s_0_5, 0, 3, 0},
39
- /* 6 */ { 1, s_0_6, 0, 3, 0},
40
- /* 7 */ { 1, s_0_7, 0, 4, 0},
41
- /* 8 */ { 1, s_0_8, 0, 4, 0},
42
- /* 9 */ { 1, s_0_9, 0, 5, 0},
43
- /* 10 */ { 1, s_0_10, 0, 5, 0}
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
44
  };
45
45
 
46
46
  static const symbol s_1_1[1] = { 'I' };
@@ -48,9 +48,9 @@ static const symbol s_1_2[1] = { 'Y' };
48
48
 
49
49
  static const struct among a_1[3] =
50
50
  {
51
- /* 0 */ { 0, 0, -1, 3, 0},
52
- /* 1 */ { 1, s_1_1, 0, 2, 0},
53
- /* 2 */ { 1, s_1_2, 0, 1, 0}
51
+ { 0, 0, -1, 3, 0},
52
+ { 1, s_1_1, 0, 2, 0},
53
+ { 1, s_1_2, 0, 1, 0}
54
54
  };
55
55
 
56
56
  static const symbol s_2_0[2] = { 'd', 'd' };
@@ -59,9 +59,9 @@ static const symbol s_2_2[2] = { 't', 't' };
59
59
 
60
60
  static const struct among a_2[3] =
61
61
  {
62
- /* 0 */ { 2, s_2_0, -1, -1, 0},
63
- /* 1 */ { 2, s_2_1, -1, -1, 0},
64
- /* 2 */ { 2, s_2_2, -1, -1, 0}
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
65
  };
66
66
 
67
67
  static const symbol s_3_0[3] = { 'e', 'n', 'e' };
@@ -72,11 +72,11 @@ static const symbol s_3_4[1] = { 's' };
72
72
 
73
73
  static const struct among a_3[5] =
74
74
  {
75
- /* 0 */ { 3, s_3_0, -1, 2, 0},
76
- /* 1 */ { 2, s_3_1, -1, 3, 0},
77
- /* 2 */ { 2, s_3_2, -1, 2, 0},
78
- /* 3 */ { 5, s_3_3, 2, 1, 0},
79
- /* 4 */ { 1, s_3_4, -1, 3, 0}
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
80
  };
81
81
 
82
82
  static const symbol s_4_0[3] = { 'e', 'n', 'd' };
@@ -88,12 +88,12 @@ static const symbol s_4_5[3] = { 'b', 'a', 'r' };
88
88
 
89
89
  static const struct among a_4[6] =
90
90
  {
91
- /* 0 */ { 3, s_4_0, -1, 1, 0},
92
- /* 1 */ { 2, s_4_1, -1, 2, 0},
93
- /* 2 */ { 3, s_4_2, -1, 1, 0},
94
- /* 3 */ { 4, s_4_3, -1, 3, 0},
95
- /* 4 */ { 4, s_4_4, -1, 4, 0},
96
- /* 5 */ { 3, s_4_5, -1, 5, 0}
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
97
  };
98
98
 
99
99
  static const symbol s_5_0[2] = { 'a', 'a' };
@@ -103,10 +103,10 @@ static const symbol s_5_3[2] = { 'u', 'u' };
103
103
 
104
104
  static const struct among a_5[4] =
105
105
  {
106
- /* 0 */ { 2, s_5_0, -1, -1, 0},
107
- /* 1 */ { 2, s_5_1, -1, -1, 0},
108
- /* 2 */ { 2, s_5_2, -1, -1, 0},
109
- /* 3 */ { 2, s_5_3, -1, -1, 0}
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
110
  };
111
111
 
112
112
  static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 };
@@ -120,177 +120,171 @@ static const symbol s_1[] = { 'e' };
120
120
  static const symbol s_2[] = { 'i' };
121
121
  static const symbol s_3[] = { 'o' };
122
122
  static const symbol s_4[] = { 'u' };
123
- static const symbol s_5[] = { 'y' };
124
- static const symbol s_6[] = { 'Y' };
125
- static const symbol s_7[] = { 'i' };
126
- static const symbol s_8[] = { 'I' };
127
- static const symbol s_9[] = { 'y' };
128
- static const symbol s_10[] = { 'Y' };
129
- static const symbol s_11[] = { 'y' };
130
- static const symbol s_12[] = { 'i' };
131
- static const symbol s_13[] = { 'e' };
132
- static const symbol s_14[] = { 'g', 'e', 'm' };
133
- static const symbol s_15[] = { 'h', 'e', 'i', 'd' };
134
- static const symbol s_16[] = { 'h', 'e', 'i', 'd' };
135
- static const symbol s_17[] = { 'c' };
136
- static const symbol s_18[] = { 'e', 'n' };
137
- static const symbol s_19[] = { 'i', 'g' };
138
- static const symbol s_20[] = { 'e' };
139
- static const symbol s_21[] = { 'e' };
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' };
140
133
 
141
134
  static int r_prelude(struct SN_env * z) {
142
135
  int among_var;
143
- { int c_test = z->c; /* test, line 42 */
144
- while(1) { /* repeat, line 42 */
145
- int c1 = z->c;
146
- z->bra = z->c; /* [, line 43 */
136
+ { int c_test1 = z->c;
137
+ while(1) {
138
+ int c2 = z->c;
139
+ z->bra = z->c;
147
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
148
- among_var = find_among(z, a_0, 11); /* substring, line 43 */
141
+ among_var = find_among(z, a_0, 11);
149
142
  if (!(among_var)) goto lab0;
150
- z->ket = z->c; /* ], line 43 */
151
- switch(among_var) {
152
- case 0: goto lab0;
143
+ z->ket = z->c;
144
+ switch (among_var) {
153
145
  case 1:
154
- { int ret = slice_from_s(z, 1, s_0); /* <-, line 45 */
146
+ { int ret = slice_from_s(z, 1, s_0);
155
147
  if (ret < 0) return ret;
156
148
  }
157
149
  break;
158
150
  case 2:
159
- { int ret = slice_from_s(z, 1, s_1); /* <-, line 47 */
151
+ { int ret = slice_from_s(z, 1, s_1);
160
152
  if (ret < 0) return ret;
161
153
  }
162
154
  break;
163
155
  case 3:
164
- { int ret = slice_from_s(z, 1, s_2); /* <-, line 49 */
156
+ { int ret = slice_from_s(z, 1, s_2);
165
157
  if (ret < 0) return ret;
166
158
  }
167
159
  break;
168
160
  case 4:
169
- { int ret = slice_from_s(z, 1, s_3); /* <-, line 51 */
161
+ { int ret = slice_from_s(z, 1, s_3);
170
162
  if (ret < 0) return ret;
171
163
  }
172
164
  break;
173
165
  case 5:
174
- { int ret = slice_from_s(z, 1, s_4); /* <-, line 53 */
166
+ { int ret = slice_from_s(z, 1, s_4);
175
167
  if (ret < 0) return ret;
176
168
  }
177
169
  break;
178
170
  case 6:
179
171
  if (z->c >= z->l) goto lab0;
180
- z->c++; /* next, line 54 */
172
+ z->c++;
181
173
  break;
182
174
  }
183
175
  continue;
184
176
  lab0:
185
- z->c = c1;
177
+ z->c = c2;
186
178
  break;
187
179
  }
188
- z->c = c_test;
180
+ z->c = c_test1;
189
181
  }
190
- { int c_keep = z->c; /* try, line 57 */
191
- z->bra = z->c; /* [, line 57 */
192
- if (!(eq_s(z, 1, s_5))) { z->c = c_keep; goto lab1; }
193
- z->ket = z->c; /* ], line 57 */
194
- { int ret = slice_from_s(z, 1, s_6); /* <-, line 57 */
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);
195
188
  if (ret < 0) return ret;
196
189
  }
197
190
  lab1:
198
191
  ;
199
192
  }
200
- while(1) { /* repeat, line 58 */
201
- int c2 = z->c;
202
- while(1) { /* goto, line 58 */
203
- int c3 = z->c;
193
+ while(1) {
194
+ int c4 = z->c;
195
+ while(1) {
196
+ int c5 = z->c;
204
197
  if (in_grouping(z, g_v, 97, 232, 0)) goto lab3;
205
- z->bra = z->c; /* [, line 59 */
206
- { int c4 = z->c; /* or, line 59 */
207
- if (!(eq_s(z, 1, s_7))) goto lab5;
208
- z->ket = z->c; /* ], line 59 */
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;
209
203
  if (in_grouping(z, g_v, 97, 232, 0)) goto lab5;
210
- { int ret = slice_from_s(z, 1, s_8); /* <-, line 59 */
204
+ { int ret = slice_from_s(z, 1, s_6);
211
205
  if (ret < 0) return ret;
212
206
  }
213
207
  goto lab4;
214
208
  lab5:
215
- z->c = c4;
216
- if (!(eq_s(z, 1, s_9))) goto lab3;
217
- z->ket = z->c; /* ], line 60 */
218
- { int ret = slice_from_s(z, 1, s_10); /* <-, line 60 */
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);
219
214
  if (ret < 0) return ret;
220
215
  }
221
216
  }
222
217
  lab4:
223
- z->c = c3;
218
+ z->c = c5;
224
219
  break;
225
220
  lab3:
226
- z->c = c3;
221
+ z->c = c5;
227
222
  if (z->c >= z->l) goto lab2;
228
- z->c++; /* goto, line 58 */
223
+ z->c++;
229
224
  }
230
225
  continue;
231
226
  lab2:
232
- z->c = c2;
227
+ z->c = c4;
233
228
  break;
234
229
  }
235
230
  return 1;
236
231
  }
237
232
 
238
233
  static int r_mark_regions(struct SN_env * z) {
239
- z->I[0] = z->l;
240
234
  z->I[1] = z->l;
241
- { /* gopast */ /* grouping v, line 69 */
235
+ z->I[0] = z->l;
236
+ {
242
237
  int ret = out_grouping(z, g_v, 97, 232, 1);
243
238
  if (ret < 0) return 0;
244
239
  z->c += ret;
245
240
  }
246
- { /* gopast */ /* non v, line 69 */
241
+ {
247
242
  int ret = in_grouping(z, g_v, 97, 232, 1);
248
243
  if (ret < 0) return 0;
249
244
  z->c += ret;
250
245
  }
251
- z->I[0] = z->c; /* setmark p1, line 69 */
252
- /* try, line 70 */
253
- if (!(z->I[0] < 3)) goto lab0;
254
- z->I[0] = 3;
246
+ z->I[1] = z->c;
247
+
248
+ if (!(z->I[1] < 3)) goto lab0;
249
+ z->I[1] = 3;
255
250
  lab0:
256
- { /* gopast */ /* grouping v, line 71 */
251
+ {
257
252
  int ret = out_grouping(z, g_v, 97, 232, 1);
258
253
  if (ret < 0) return 0;
259
254
  z->c += ret;
260
255
  }
261
- { /* gopast */ /* non v, line 71 */
256
+ {
262
257
  int ret = in_grouping(z, g_v, 97, 232, 1);
263
258
  if (ret < 0) return 0;
264
259
  z->c += ret;
265
260
  }
266
- z->I[1] = z->c; /* setmark p2, line 71 */
261
+ z->I[0] = z->c;
267
262
  return 1;
268
263
  }
269
264
 
270
265
  static int r_postlude(struct SN_env * z) {
271
266
  int among_var;
272
- while(1) { /* repeat, line 75 */
267
+ while(1) {
273
268
  int c1 = z->c;
274
- z->bra = z->c; /* [, line 77 */
269
+ z->bra = z->c;
275
270
  if (z->c >= z->l || (z->p[z->c + 0] != 73 && z->p[z->c + 0] != 89)) among_var = 3; else
276
- among_var = find_among(z, a_1, 3); /* substring, line 77 */
271
+ among_var = find_among(z, a_1, 3);
277
272
  if (!(among_var)) goto lab0;
278
- z->ket = z->c; /* ], line 77 */
279
- switch(among_var) {
280
- case 0: goto lab0;
273
+ z->ket = z->c;
274
+ switch (among_var) {
281
275
  case 1:
282
- { int ret = slice_from_s(z, 1, s_11); /* <-, line 78 */
276
+ { int ret = slice_from_s(z, 1, s_8);
283
277
  if (ret < 0) return ret;
284
278
  }
285
279
  break;
286
280
  case 2:
287
- { int ret = slice_from_s(z, 1, s_12); /* <-, line 79 */
281
+ { int ret = slice_from_s(z, 1, s_9);
288
282
  if (ret < 0) return ret;
289
283
  }
290
284
  break;
291
285
  case 3:
292
286
  if (z->c >= z->l) goto lab0;
293
- z->c++; /* next, line 80 */
287
+ z->c++;
294
288
  break;
295
289
  }
296
290
  continue;
@@ -302,112 +296,108 @@ static int r_postlude(struct SN_env * z) {
302
296
  }
303
297
 
304
298
  static int r_R1(struct SN_env * z) {
305
- if (!(z->I[0] <= z->c)) return 0;
299
+ if (!(z->I[1] <= z->c)) return 0;
306
300
  return 1;
307
301
  }
308
302
 
309
303
  static int r_R2(struct SN_env * z) {
310
- if (!(z->I[1] <= z->c)) return 0;
304
+ if (!(z->I[0] <= z->c)) return 0;
311
305
  return 1;
312
306
  }
313
307
 
314
308
  static int r_undouble(struct SN_env * z) {
315
- { int m_test = z->l - z->c; /* test, line 91 */
309
+ { int m_test1 = z->l - z->c;
316
310
  if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1050640 >> (z->p[z->c - 1] & 0x1f)) & 1)) return 0;
317
- if (!(find_among_b(z, a_2, 3))) return 0; /* among, line 91 */
318
- z->c = z->l - m_test;
311
+ if (!(find_among_b(z, a_2, 3))) return 0;
312
+ z->c = z->l - m_test1;
319
313
  }
320
- z->ket = z->c; /* [, line 91 */
314
+ z->ket = z->c;
321
315
  if (z->c <= z->lb) return 0;
322
- z->c--; /* next, line 91 */
323
- z->bra = z->c; /* ], line 91 */
324
- { int ret = slice_del(z); /* delete, line 91 */
316
+ z->c--;
317
+ z->bra = z->c;
318
+ { int ret = slice_del(z);
325
319
  if (ret < 0) return ret;
326
320
  }
327
321
  return 1;
328
322
  }
329
323
 
330
324
  static int r_e_ending(struct SN_env * z) {
331
- z->B[0] = 0; /* unset e_found, line 95 */
332
- z->ket = z->c; /* [, line 96 */
333
- if (!(eq_s_b(z, 1, s_13))) return 0;
334
- z->bra = z->c; /* ], line 96 */
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;
335
330
  { int ret = r_R1(z);
336
- if (ret == 0) return 0; /* call R1, line 96 */
337
- if (ret < 0) return ret;
331
+ if (ret <= 0) return ret;
338
332
  }
339
- { int m_test = z->l - z->c; /* test, line 96 */
333
+ { int m_test1 = z->l - z->c;
340
334
  if (out_grouping_b(z, g_v, 97, 232, 0)) return 0;
341
- z->c = z->l - m_test;
335
+ z->c = z->l - m_test1;
342
336
  }
343
- { int ret = slice_del(z); /* delete, line 96 */
337
+ { int ret = slice_del(z);
344
338
  if (ret < 0) return ret;
345
339
  }
346
- z->B[0] = 1; /* set e_found, line 97 */
340
+ z->I[2] = 1;
347
341
  { int ret = r_undouble(z);
348
- if (ret == 0) return 0; /* call undouble, line 98 */
349
- if (ret < 0) return ret;
342
+ if (ret <= 0) return ret;
350
343
  }
351
344
  return 1;
352
345
  }
353
346
 
354
347
  static int r_en_ending(struct SN_env * z) {
355
348
  { int ret = r_R1(z);
356
- if (ret == 0) return 0; /* call R1, line 102 */
357
- if (ret < 0) return ret;
349
+ if (ret <= 0) return ret;
358
350
  }
359
- { int m1 = z->l - z->c; (void)m1; /* and, line 102 */
351
+ { int m1 = z->l - z->c; (void)m1;
360
352
  if (out_grouping_b(z, g_v, 97, 232, 0)) return 0;
361
353
  z->c = z->l - m1;
362
- { int m2 = z->l - z->c; (void)m2; /* not, line 102 */
363
- if (!(eq_s_b(z, 3, s_14))) goto lab0;
354
+ { int m2 = z->l - z->c; (void)m2;
355
+ if (!(eq_s_b(z, 3, s_10))) goto lab0;
364
356
  return 0;
365
357
  lab0:
366
358
  z->c = z->l - m2;
367
359
  }
368
360
  }
369
- { int ret = slice_del(z); /* delete, line 102 */
361
+ { int ret = slice_del(z);
370
362
  if (ret < 0) return ret;
371
363
  }
372
364
  { int ret = r_undouble(z);
373
- if (ret == 0) return 0; /* call undouble, line 103 */
374
- if (ret < 0) return ret;
365
+ if (ret <= 0) return ret;
375
366
  }
376
367
  return 1;
377
368
  }
378
369
 
379
370
  static int r_standard_suffix(struct SN_env * z) {
380
371
  int among_var;
381
- { int m1 = z->l - z->c; (void)m1; /* do, line 107 */
382
- z->ket = z->c; /* [, line 108 */
372
+ { int m1 = z->l - z->c; (void)m1;
373
+ z->ket = z->c;
383
374
  if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((540704 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab0;
384
- among_var = find_among_b(z, a_3, 5); /* substring, line 108 */
375
+ among_var = find_among_b(z, a_3, 5);
385
376
  if (!(among_var)) goto lab0;
386
- z->bra = z->c; /* ], line 108 */
387
- switch(among_var) {
388
- case 0: goto lab0;
377
+ z->bra = z->c;
378
+ switch (among_var) {
389
379
  case 1:
390
380
  { int ret = r_R1(z);
391
- if (ret == 0) goto lab0; /* call R1, line 110 */
381
+ if (ret == 0) goto lab0;
392
382
  if (ret < 0) return ret;
393
383
  }
394
- { int ret = slice_from_s(z, 4, s_15); /* <-, line 110 */
384
+ { int ret = slice_from_s(z, 4, s_11);
395
385
  if (ret < 0) return ret;
396
386
  }
397
387
  break;
398
388
  case 2:
399
389
  { int ret = r_en_ending(z);
400
- if (ret == 0) goto lab0; /* call en_ending, line 113 */
390
+ if (ret == 0) goto lab0;
401
391
  if (ret < 0) return ret;
402
392
  }
403
393
  break;
404
394
  case 3:
405
395
  { int ret = r_R1(z);
406
- if (ret == 0) goto lab0; /* call R1, line 116 */
396
+ if (ret == 0) goto lab0;
407
397
  if (ret < 0) return ret;
408
398
  }
409
399
  if (out_grouping_b(z, g_v_j, 97, 232, 0)) goto lab0;
410
- { int ret = slice_del(z); /* delete, line 116 */
400
+ { int ret = slice_del(z);
411
401
  if (ret < 0) return ret;
412
402
  }
413
403
  break;
@@ -415,196 +405,186 @@ static int r_standard_suffix(struct SN_env * z) {
415
405
  lab0:
416
406
  z->c = z->l - m1;
417
407
  }
418
- { int m2 = z->l - z->c; (void)m2; /* do, line 120 */
408
+ { int m2 = z->l - z->c; (void)m2;
419
409
  { int ret = r_e_ending(z);
420
- if (ret == 0) goto lab1; /* call e_ending, line 120 */
421
410
  if (ret < 0) return ret;
422
411
  }
423
- lab1:
424
412
  z->c = z->l - m2;
425
413
  }
426
- { int m3 = z->l - z->c; (void)m3; /* do, line 122 */
427
- z->ket = z->c; /* [, line 122 */
428
- if (!(eq_s_b(z, 4, s_16))) goto lab2;
429
- z->bra = z->c; /* ], line 122 */
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;
430
418
  { int ret = r_R2(z);
431
- if (ret == 0) goto lab2; /* call R2, line 122 */
419
+ if (ret == 0) goto lab1;
432
420
  if (ret < 0) return ret;
433
421
  }
434
- { int m4 = z->l - z->c; (void)m4; /* not, line 122 */
435
- if (!(eq_s_b(z, 1, s_17))) goto lab3;
436
- goto lab2;
437
- lab3:
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:
438
427
  z->c = z->l - m4;
439
428
  }
440
- { int ret = slice_del(z); /* delete, line 122 */
429
+ { int ret = slice_del(z);
441
430
  if (ret < 0) return ret;
442
431
  }
443
- z->ket = z->c; /* [, line 123 */
444
- if (!(eq_s_b(z, 2, s_18))) goto lab2;
445
- z->bra = z->c; /* ], line 123 */
432
+ z->ket = z->c;
433
+ if (!(eq_s_b(z, 2, s_13))) goto lab1;
434
+ z->bra = z->c;
446
435
  { int ret = r_en_ending(z);
447
- if (ret == 0) goto lab2; /* call en_ending, line 123 */
436
+ if (ret == 0) goto lab1;
448
437
  if (ret < 0) return ret;
449
438
  }
450
- lab2:
439
+ lab1:
451
440
  z->c = z->l - m3;
452
441
  }
453
- { int m5 = z->l - z->c; (void)m5; /* do, line 126 */
454
- z->ket = z->c; /* [, line 127 */
455
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((264336 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab4;
456
- among_var = find_among_b(z, a_4, 6); /* substring, line 127 */
457
- if (!(among_var)) goto lab4;
458
- z->bra = z->c; /* ], line 127 */
459
- switch(among_var) {
460
- case 0: goto lab4;
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) {
461
449
  case 1:
462
450
  { int ret = r_R2(z);
463
- if (ret == 0) goto lab4; /* call R2, line 129 */
451
+ if (ret == 0) goto lab3;
464
452
  if (ret < 0) return ret;
465
453
  }
466
- { int ret = slice_del(z); /* delete, line 129 */
454
+ { int ret = slice_del(z);
467
455
  if (ret < 0) return ret;
468
456
  }
469
- { int m6 = z->l - z->c; (void)m6; /* or, line 130 */
470
- z->ket = z->c; /* [, line 130 */
471
- if (!(eq_s_b(z, 2, s_19))) goto lab6;
472
- z->bra = z->c; /* ], line 130 */
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;
473
461
  { int ret = r_R2(z);
474
- if (ret == 0) goto lab6; /* call R2, line 130 */
462
+ if (ret == 0) goto lab5;
475
463
  if (ret < 0) return ret;
476
464
  }
477
- { int m7 = z->l - z->c; (void)m7; /* not, line 130 */
478
- if (!(eq_s_b(z, 1, s_20))) goto lab7;
479
- goto lab6;
480
- lab7:
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:
481
470
  z->c = z->l - m7;
482
471
  }
483
- { int ret = slice_del(z); /* delete, line 130 */
472
+ { int ret = slice_del(z);
484
473
  if (ret < 0) return ret;
485
474
  }
486
- goto lab5;
487
- lab6:
475
+ goto lab4;
476
+ lab5:
488
477
  z->c = z->l - m6;
489
478
  { int ret = r_undouble(z);
490
- if (ret == 0) goto lab4; /* call undouble, line 130 */
479
+ if (ret == 0) goto lab3;
491
480
  if (ret < 0) return ret;
492
481
  }
493
482
  }
494
- lab5:
483
+ lab4:
495
484
  break;
496
485
  case 2:
497
486
  { int ret = r_R2(z);
498
- if (ret == 0) goto lab4; /* call R2, line 133 */
487
+ if (ret == 0) goto lab3;
499
488
  if (ret < 0) return ret;
500
489
  }
501
- { int m8 = z->l - z->c; (void)m8; /* not, line 133 */
502
- if (!(eq_s_b(z, 1, s_21))) goto lab8;
503
- goto lab4;
504
- lab8:
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:
505
495
  z->c = z->l - m8;
506
496
  }
507
- { int ret = slice_del(z); /* delete, line 133 */
497
+ { int ret = slice_del(z);
508
498
  if (ret < 0) return ret;
509
499
  }
510
500
  break;
511
501
  case 3:
512
502
  { int ret = r_R2(z);
513
- if (ret == 0) goto lab4; /* call R2, line 136 */
503
+ if (ret == 0) goto lab3;
514
504
  if (ret < 0) return ret;
515
505
  }
516
- { int ret = slice_del(z); /* delete, line 136 */
506
+ { int ret = slice_del(z);
517
507
  if (ret < 0) return ret;
518
508
  }
519
509
  { int ret = r_e_ending(z);
520
- if (ret == 0) goto lab4; /* call e_ending, line 136 */
510
+ if (ret == 0) goto lab3;
521
511
  if (ret < 0) return ret;
522
512
  }
523
513
  break;
524
514
  case 4:
525
515
  { int ret = r_R2(z);
526
- if (ret == 0) goto lab4; /* call R2, line 139 */
516
+ if (ret == 0) goto lab3;
527
517
  if (ret < 0) return ret;
528
518
  }
529
- { int ret = slice_del(z); /* delete, line 139 */
519
+ { int ret = slice_del(z);
530
520
  if (ret < 0) return ret;
531
521
  }
532
522
  break;
533
523
  case 5:
534
524
  { int ret = r_R2(z);
535
- if (ret == 0) goto lab4; /* call R2, line 142 */
525
+ if (ret == 0) goto lab3;
536
526
  if (ret < 0) return ret;
537
527
  }
538
- if (!(z->B[0])) goto lab4; /* Boolean test e_found, line 142 */
539
- { int ret = slice_del(z); /* delete, line 142 */
528
+ if (!(z->I[2])) goto lab3;
529
+ { int ret = slice_del(z);
540
530
  if (ret < 0) return ret;
541
531
  }
542
532
  break;
543
533
  }
544
- lab4:
534
+ lab3:
545
535
  z->c = z->l - m5;
546
536
  }
547
- { int m9 = z->l - z->c; (void)m9; /* do, line 146 */
548
- if (out_grouping_b(z, g_v_I, 73, 232, 0)) goto lab9;
549
- { int m_test = z->l - z->c; /* test, line 148 */
550
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((2129954 >> (z->p[z->c - 1] & 0x1f)) & 1)) goto lab9;
551
- if (!(find_among_b(z, a_5, 4))) goto lab9; /* among, line 149 */
552
- if (out_grouping_b(z, g_v, 97, 232, 0)) goto lab9;
553
- z->c = z->l - m_test;
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;
554
544
  }
555
- z->ket = z->c; /* [, line 152 */
556
- if (z->c <= z->lb) goto lab9;
557
- z->c--; /* next, line 152 */
558
- z->bra = z->c; /* ], line 152 */
559
- { int ret = slice_del(z); /* delete, line 152 */
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);
560
550
  if (ret < 0) return ret;
561
551
  }
562
- lab9:
552
+ lab8:
563
553
  z->c = z->l - m9;
564
554
  }
565
555
  return 1;
566
556
  }
567
557
 
568
558
  extern int dutch_ISO_8859_1_stem(struct SN_env * z) {
569
- { int c1 = z->c; /* do, line 159 */
559
+ { int c1 = z->c;
570
560
  { int ret = r_prelude(z);
571
- if (ret == 0) goto lab0; /* call prelude, line 159 */
572
561
  if (ret < 0) return ret;
573
562
  }
574
- lab0:
575
563
  z->c = c1;
576
564
  }
577
- { int c2 = z->c; /* do, line 160 */
565
+ { int c2 = z->c;
578
566
  { int ret = r_mark_regions(z);
579
- if (ret == 0) goto lab1; /* call mark_regions, line 160 */
580
567
  if (ret < 0) return ret;
581
568
  }
582
- lab1:
583
569
  z->c = c2;
584
570
  }
585
- z->lb = z->c; z->c = z->l; /* backwards, line 161 */
571
+ z->lb = z->c; z->c = z->l;
586
572
 
587
- { int m3 = z->l - z->c; (void)m3; /* do, line 162 */
588
- { int ret = r_standard_suffix(z);
589
- if (ret == 0) goto lab2; /* call standard_suffix, line 162 */
590
- if (ret < 0) return ret;
591
- }
592
- lab2:
593
- z->c = z->l - m3;
573
+
574
+ { int ret = r_standard_suffix(z);
575
+ if (ret < 0) return ret;
594
576
  }
595
577
  z->c = z->lb;
596
- { int c4 = z->c; /* do, line 163 */
578
+ { int c3 = z->c;
597
579
  { int ret = r_postlude(z);
598
- if (ret == 0) goto lab3; /* call postlude, line 163 */
599
580
  if (ret < 0) return ret;
600
581
  }
601
- lab3:
602
- z->c = c4;
582
+ z->c = c3;
603
583
  }
604
584
  return 1;
605
585
  }
606
586
 
607
- extern struct SN_env * dutch_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 1); }
587
+ extern struct SN_env * dutch_ISO_8859_1_create_env(void) { return SN_create_env(0, 3); }
608
588
 
609
589
  extern void dutch_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
610
590