isomorfeus-ferret 0.12.2 → 0.12.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,4 +1,4 @@
1
- /* This file was generated automatically by the Snowball to ANSI C compiler */
1
+ /* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
2
2
 
3
3
  extern struct SN_env * spanish_ISO_8859_1_create_env(void);
4
4
  extern void spanish_ISO_8859_1_close_env(struct SN_env * z);
@@ -1,4 +1,4 @@
1
- /* This file was generated automatically by the Snowball to ANSI C compiler */
1
+ /* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
2
2
 
3
3
  #include "stem_header.h"
4
4
 
@@ -52,43 +52,43 @@ static const symbol s_0_36[3] = { 'a', 's', 't' };
52
52
 
53
53
  static const struct among a_0[37] =
54
54
  {
55
- /* 0 */ { 1, s_0_0, -1, 1, 0},
56
- /* 1 */ { 4, s_0_1, 0, 1, 0},
57
- /* 2 */ { 4, s_0_2, 0, 1, 0},
58
- /* 3 */ { 7, s_0_3, 2, 1, 0},
59
- /* 4 */ { 4, s_0_4, 0, 1, 0},
60
- /* 5 */ { 2, s_0_5, -1, 1, 0},
61
- /* 6 */ { 1, s_0_6, -1, 1, 0},
62
- /* 7 */ { 3, s_0_7, 6, 1, 0},
63
- /* 8 */ { 4, s_0_8, 6, 1, 0},
64
- /* 9 */ { 4, s_0_9, 6, 1, 0},
65
- /* 10 */ { 3, s_0_10, 6, 1, 0},
66
- /* 11 */ { 4, s_0_11, 6, 1, 0},
67
- /* 12 */ { 2, s_0_12, -1, 1, 0},
68
- /* 13 */ { 5, s_0_13, 12, 1, 0},
69
- /* 14 */ { 4, s_0_14, 12, 1, 0},
70
- /* 15 */ { 5, s_0_15, 12, 1, 0},
71
- /* 16 */ { 3, s_0_16, -1, 1, 0},
72
- /* 17 */ { 2, s_0_17, -1, 1, 0},
73
- /* 18 */ { 2, s_0_18, -1, 1, 0},
74
- /* 19 */ { 5, s_0_19, 18, 1, 0},
75
- /* 20 */ { 2, s_0_20, -1, 1, 0},
76
- /* 21 */ { 1, s_0_21, -1, 2, 0},
77
- /* 22 */ { 2, s_0_22, 21, 1, 0},
78
- /* 23 */ { 5, s_0_23, 22, 1, 0},
79
- /* 24 */ { 5, s_0_24, 22, 1, 0},
80
- /* 25 */ { 5, s_0_25, 22, 1, 0},
81
- /* 26 */ { 2, s_0_26, 21, 1, 0},
82
- /* 27 */ { 4, s_0_27, 26, 1, 0},
83
- /* 28 */ { 5, s_0_28, 26, 1, 0},
84
- /* 29 */ { 3, s_0_29, 21, 1, 0},
85
- /* 30 */ { 5, s_0_30, 29, 1, 0},
86
- /* 31 */ { 6, s_0_31, 29, 1, 0},
87
- /* 32 */ { 4, s_0_32, 21, 1, 0},
88
- /* 33 */ { 2, s_0_33, -1, 1, 0},
89
- /* 34 */ { 5, s_0_34, -1, 1, 0},
90
- /* 35 */ { 3, s_0_35, -1, 1, 0},
91
- /* 36 */ { 3, s_0_36, -1, 1, 0}
55
+ { 1, s_0_0, -1, 1, 0},
56
+ { 4, s_0_1, 0, 1, 0},
57
+ { 4, s_0_2, 0, 1, 0},
58
+ { 7, s_0_3, 2, 1, 0},
59
+ { 4, s_0_4, 0, 1, 0},
60
+ { 2, s_0_5, -1, 1, 0},
61
+ { 1, s_0_6, -1, 1, 0},
62
+ { 3, s_0_7, 6, 1, 0},
63
+ { 4, s_0_8, 6, 1, 0},
64
+ { 4, s_0_9, 6, 1, 0},
65
+ { 3, s_0_10, 6, 1, 0},
66
+ { 4, s_0_11, 6, 1, 0},
67
+ { 2, s_0_12, -1, 1, 0},
68
+ { 5, s_0_13, 12, 1, 0},
69
+ { 4, s_0_14, 12, 1, 0},
70
+ { 5, s_0_15, 12, 1, 0},
71
+ { 3, s_0_16, -1, 1, 0},
72
+ { 2, s_0_17, -1, 1, 0},
73
+ { 2, s_0_18, -1, 1, 0},
74
+ { 5, s_0_19, 18, 1, 0},
75
+ { 2, s_0_20, -1, 1, 0},
76
+ { 1, s_0_21, -1, 2, 0},
77
+ { 2, s_0_22, 21, 1, 0},
78
+ { 5, s_0_23, 22, 1, 0},
79
+ { 5, s_0_24, 22, 1, 0},
80
+ { 5, s_0_25, 22, 1, 0},
81
+ { 2, s_0_26, 21, 1, 0},
82
+ { 4, s_0_27, 26, 1, 0},
83
+ { 5, s_0_28, 26, 1, 0},
84
+ { 3, s_0_29, 21, 1, 0},
85
+ { 5, s_0_30, 29, 1, 0},
86
+ { 6, s_0_31, 29, 1, 0},
87
+ { 4, s_0_32, 21, 1, 0},
88
+ { 2, s_0_33, -1, 1, 0},
89
+ { 5, s_0_34, -1, 1, 0},
90
+ { 3, s_0_35, -1, 1, 0},
91
+ { 3, s_0_36, -1, 1, 0}
92
92
  };
93
93
 
94
94
  static const symbol s_1_0[2] = { 'd', 'd' };
@@ -101,13 +101,13 @@ static const symbol s_1_6[2] = { 't', 't' };
101
101
 
102
102
  static const struct among a_1[7] =
103
103
  {
104
- /* 0 */ { 2, s_1_0, -1, -1, 0},
105
- /* 1 */ { 2, s_1_1, -1, -1, 0},
106
- /* 2 */ { 2, s_1_2, -1, -1, 0},
107
- /* 3 */ { 2, s_1_3, -1, -1, 0},
108
- /* 4 */ { 2, s_1_4, -1, -1, 0},
109
- /* 5 */ { 2, s_1_5, -1, -1, 0},
110
- /* 6 */ { 2, s_1_6, -1, -1, 0}
104
+ { 2, s_1_0, -1, -1, 0},
105
+ { 2, s_1_1, -1, -1, 0},
106
+ { 2, s_1_2, -1, -1, 0},
107
+ { 2, s_1_3, -1, -1, 0},
108
+ { 2, s_1_4, -1, -1, 0},
109
+ { 2, s_1_5, -1, -1, 0},
110
+ { 2, s_1_6, -1, -1, 0}
111
111
  };
112
112
 
113
113
  static const symbol s_2_0[2] = { 'i', 'g' };
@@ -118,11 +118,11 @@ static const symbol s_2_4[4] = { 'l', 0xF6, 's', 't' };
118
118
 
119
119
  static const struct among a_2[5] =
120
120
  {
121
- /* 0 */ { 2, s_2_0, -1, 1, 0},
122
- /* 1 */ { 3, s_2_1, 0, 1, 0},
123
- /* 2 */ { 3, s_2_2, -1, 1, 0},
124
- /* 3 */ { 5, s_2_3, -1, 3, 0},
125
- /* 4 */ { 4, s_2_4, -1, 2, 0}
121
+ { 2, s_2_0, -1, 1, 0},
122
+ { 3, s_2_1, 0, 1, 0},
123
+ { 3, s_2_2, -1, 1, 0},
124
+ { 5, s_2_3, -1, 3, 0},
125
+ { 4, s_2_4, -1, 2, 0}
126
126
  };
127
127
 
128
128
  static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 32 };
@@ -133,54 +133,49 @@ static const symbol s_0[] = { 'l', 0xF6, 's' };
133
133
  static const symbol s_1[] = { 'f', 'u', 'l', 'l' };
134
134
 
135
135
  static int r_mark_regions(struct SN_env * z) {
136
- z->I[0] = z->l;
137
- { int c_test = z->c; /* test, line 29 */
138
- { int ret = z->c + 3;
139
- if (0 > ret || ret > z->l) return 0;
140
- z->c = ret; /* hop, line 29 */
141
- }
142
- z->I[1] = z->c; /* setmark x, line 29 */
143
- z->c = c_test;
136
+ z->I[1] = z->l;
137
+ { int c_test1 = z->c;
138
+ z->c = z->c + 3;
139
+ if (z->c > z->l) return 0;
140
+ z->I[0] = z->c;
141
+ z->c = c_test1;
144
142
  }
145
- if (out_grouping(z, g_v, 97, 246, 1) < 0) return 0; /* goto */ /* grouping v, line 30 */
146
- { /* gopast */ /* non v, line 30 */
143
+ if (out_grouping(z, g_v, 97, 246, 1) < 0) return 0;
144
+ {
147
145
  int ret = in_grouping(z, g_v, 97, 246, 1);
148
146
  if (ret < 0) return 0;
149
147
  z->c += ret;
150
148
  }
151
- z->I[0] = z->c; /* setmark p1, line 30 */
152
- /* try, line 31 */
153
- if (!(z->I[0] < z->I[1])) goto lab0;
154
- z->I[0] = z->I[1];
149
+ z->I[1] = z->c;
150
+
151
+ if (!(z->I[1] < z->I[0])) goto lab0;
152
+ z->I[1] = z->I[0];
155
153
  lab0:
156
154
  return 1;
157
155
  }
158
156
 
159
157
  static int r_main_suffix(struct SN_env * z) {
160
158
  int among_var;
161
- { int mlimit; /* setlimit, line 37 */
162
- int m1 = z->l - z->c; (void)m1;
163
- if (z->c < z->I[0]) return 0;
164
- z->c = z->I[0]; /* tomark, line 37 */
165
- mlimit = z->lb; z->lb = z->c;
166
- z->c = z->l - m1;
167
- z->ket = z->c; /* [, line 37 */
168
- if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851442 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
169
- among_var = find_among_b(z, a_0, 37); /* substring, line 37 */
170
- if (!(among_var)) { z->lb = mlimit; return 0; }
171
- z->bra = z->c; /* ], line 37 */
172
- z->lb = mlimit;
159
+
160
+ { int mlimit1;
161
+ if (z->c < z->I[1]) return 0;
162
+ mlimit1 = z->lb; z->lb = z->I[1];
163
+ z->ket = z->c;
164
+ if (z->c <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1851442 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
165
+ among_var = find_among_b(z, a_0, 37);
166
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
167
+ z->bra = z->c;
168
+ z->lb = mlimit1;
173
169
  }
174
- switch(among_var) {
175
- case 0: return 0;
170
+ switch (among_var) {
176
171
  case 1:
177
- { int ret = slice_del(z); /* delete, line 44 */
172
+ { int ret = slice_del(z);
178
173
  if (ret < 0) return ret;
179
174
  }
180
175
  break;
181
176
  case 2:
182
177
  if (in_grouping_b(z, g_s_ending, 98, 121, 0)) return 0;
183
- { int ret = slice_del(z); /* delete, line 46 */
178
+ { int ret = slice_del(z);
184
179
  if (ret < 0) return ret;
185
180
  }
186
181
  break;
@@ -189,105 +184,92 @@ static int r_main_suffix(struct SN_env * z) {
189
184
  }
190
185
 
191
186
  static int r_consonant_pair(struct SN_env * z) {
192
- { int mlimit; /* setlimit, line 50 */
193
- int m1 = z->l - z->c; (void)m1;
194
- if (z->c < z->I[0]) return 0;
195
- z->c = z->I[0]; /* tomark, line 50 */
196
- mlimit = z->lb; z->lb = z->c;
197
- z->c = z->l - m1;
198
- { int m2 = z->l - z->c; (void)m2; /* and, line 52 */
199
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1064976 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
200
- if (!(find_among_b(z, a_1, 7))) { z->lb = mlimit; return 0; } /* among, line 51 */
187
+
188
+ { int mlimit1;
189
+ if (z->c < z->I[1]) return 0;
190
+ mlimit1 = z->lb; z->lb = z->I[1];
191
+ { int m2 = z->l - z->c; (void)m2;
192
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1064976 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
193
+ if (!(find_among_b(z, a_1, 7))) { z->lb = mlimit1; return 0; }
201
194
  z->c = z->l - m2;
202
- z->ket = z->c; /* [, line 52 */
203
- if (z->c <= z->lb) { z->lb = mlimit; return 0; }
204
- z->c--; /* next, line 52 */
205
- z->bra = z->c; /* ], line 52 */
206
- { int ret = slice_del(z); /* delete, line 52 */
195
+ z->ket = z->c;
196
+ if (z->c <= z->lb) { z->lb = mlimit1; return 0; }
197
+ z->c--;
198
+ z->bra = z->c;
199
+ { int ret = slice_del(z);
207
200
  if (ret < 0) return ret;
208
201
  }
209
202
  }
210
- z->lb = mlimit;
203
+ z->lb = mlimit1;
211
204
  }
212
205
  return 1;
213
206
  }
214
207
 
215
208
  static int r_other_suffix(struct SN_env * z) {
216
209
  int among_var;
217
- { int mlimit; /* setlimit, line 55 */
218
- int m1 = z->l - z->c; (void)m1;
219
- if (z->c < z->I[0]) return 0;
220
- z->c = z->I[0]; /* tomark, line 55 */
221
- mlimit = z->lb; z->lb = z->c;
222
- z->c = z->l - m1;
223
- z->ket = z->c; /* [, line 56 */
224
- if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit; return 0; }
225
- among_var = find_among_b(z, a_2, 5); /* substring, line 56 */
226
- if (!(among_var)) { z->lb = mlimit; return 0; }
227
- z->bra = z->c; /* ], line 56 */
228
- switch(among_var) {
229
- case 0: { z->lb = mlimit; return 0; }
210
+
211
+ { int mlimit1;
212
+ if (z->c < z->I[1]) return 0;
213
+ mlimit1 = z->lb; z->lb = z->I[1];
214
+ z->ket = z->c;
215
+ if (z->c - 1 <= z->lb || z->p[z->c - 1] >> 5 != 3 || !((1572992 >> (z->p[z->c - 1] & 0x1f)) & 1)) { z->lb = mlimit1; return 0; }
216
+ among_var = find_among_b(z, a_2, 5);
217
+ if (!(among_var)) { z->lb = mlimit1; return 0; }
218
+ z->bra = z->c;
219
+ switch (among_var) {
230
220
  case 1:
231
- { int ret = slice_del(z); /* delete, line 57 */
221
+ { int ret = slice_del(z);
232
222
  if (ret < 0) return ret;
233
223
  }
234
224
  break;
235
225
  case 2:
236
- { int ret = slice_from_s(z, 3, s_0); /* <-, line 58 */
226
+ { int ret = slice_from_s(z, 3, s_0);
237
227
  if (ret < 0) return ret;
238
228
  }
239
229
  break;
240
230
  case 3:
241
- { int ret = slice_from_s(z, 4, s_1); /* <-, line 59 */
231
+ { int ret = slice_from_s(z, 4, s_1);
242
232
  if (ret < 0) return ret;
243
233
  }
244
234
  break;
245
235
  }
246
- z->lb = mlimit;
236
+ z->lb = mlimit1;
247
237
  }
248
238
  return 1;
249
239
  }
250
240
 
251
241
  extern int swedish_ISO_8859_1_stem(struct SN_env * z) {
252
- { int c1 = z->c; /* do, line 66 */
242
+ { int c1 = z->c;
253
243
  { int ret = r_mark_regions(z);
254
- if (ret == 0) goto lab0; /* call mark_regions, line 66 */
255
244
  if (ret < 0) return ret;
256
245
  }
257
- lab0:
258
246
  z->c = c1;
259
247
  }
260
- z->lb = z->c; z->c = z->l; /* backwards, line 67 */
248
+ z->lb = z->c; z->c = z->l;
261
249
 
262
- { int m2 = z->l - z->c; (void)m2; /* do, line 68 */
250
+ { int m2 = z->l - z->c; (void)m2;
263
251
  { int ret = r_main_suffix(z);
264
- if (ret == 0) goto lab1; /* call main_suffix, line 68 */
265
252
  if (ret < 0) return ret;
266
253
  }
267
- lab1:
268
254
  z->c = z->l - m2;
269
255
  }
270
- { int m3 = z->l - z->c; (void)m3; /* do, line 69 */
256
+ { int m3 = z->l - z->c; (void)m3;
271
257
  { int ret = r_consonant_pair(z);
272
- if (ret == 0) goto lab2; /* call consonant_pair, line 69 */
273
258
  if (ret < 0) return ret;
274
259
  }
275
- lab2:
276
260
  z->c = z->l - m3;
277
261
  }
278
- { int m4 = z->l - z->c; (void)m4; /* do, line 70 */
262
+ { int m4 = z->l - z->c; (void)m4;
279
263
  { int ret = r_other_suffix(z);
280
- if (ret == 0) goto lab3; /* call other_suffix, line 70 */
281
264
  if (ret < 0) return ret;
282
265
  }
283
- lab3:
284
266
  z->c = z->l - m4;
285
267
  }
286
268
  z->c = z->lb;
287
269
  return 1;
288
270
  }
289
271
 
290
- extern struct SN_env * swedish_ISO_8859_1_create_env(void) { return SN_create_env(0, 2, 0); }
272
+ extern struct SN_env * swedish_ISO_8859_1_create_env(void) { return SN_create_env(0, 2); }
291
273
 
292
274
  extern void swedish_ISO_8859_1_close_env(struct SN_env * z) { SN_close_env(z, 0); }
293
275
 
@@ -1,4 +1,4 @@
1
- /* This file was generated automatically by the Snowball to ANSI C compiler */
1
+ /* Generated by Snowball 2.2.0 - https://snowballstem.org/ */
2
2
 
3
3
  extern struct SN_env * swedish_ISO_8859_1_create_env(void);
4
4
  extern void swedish_ISO_8859_1_close_env(struct SN_env * z);