mittens 0.3.4 → 0.3.5

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 (81) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/LICENSE.txt +1 -1
  4. data/README.md +1 -1
  5. data/lib/mittens/version.rb +1 -1
  6. data/vendor/snowball/.github/workflows/ci.yml +43 -3
  7. data/vendor/snowball/.github/workflows/coverage.yml +8 -5
  8. data/vendor/snowball/GNUmakefile +46 -16
  9. data/vendor/snowball/NEWS +437 -13
  10. data/vendor/snowball/README.rst +4 -4
  11. data/vendor/snowball/algorithms/earlymodernenglish.sbl +301 -0
  12. data/vendor/snowball/algorithms/french.sbl +1 -1
  13. data/vendor/snowball/algorithms/ukrainian.sbl +1251 -0
  14. data/vendor/snowball/compiler/analyser.c +460 -156
  15. data/vendor/snowball/compiler/driver.c +41 -36
  16. data/vendor/snowball/compiler/generator.c +24 -1
  17. data/vendor/snowball/compiler/generator_ada.c +46 -45
  18. data/vendor/snowball/compiler/generator_c.c +1094 -187
  19. data/vendor/snowball/compiler/generator_csharp.c +34 -11
  20. data/vendor/snowball/compiler/generator_dart.c +39 -11
  21. data/vendor/snowball/compiler/generator_go.c +6 -6
  22. data/vendor/snowball/compiler/generator_java.c +29 -8
  23. data/vendor/snowball/compiler/generator_js.c +65 -38
  24. data/vendor/snowball/compiler/generator_pascal.c +69 -26
  25. data/vendor/snowball/compiler/generator_php.c +33 -12
  26. data/vendor/snowball/compiler/generator_python.c +23 -4
  27. data/vendor/snowball/compiler/generator_rust.c +37 -13
  28. data/vendor/snowball/compiler/generator_zig.c +6 -6
  29. data/vendor/snowball/compiler/header.h +85 -14
  30. data/vendor/snowball/compiler/space.c +67 -38
  31. data/vendor/snowball/compiler/tokeniser.c +28 -16
  32. data/vendor/snowball/csharp/Snowball/AssemblyInfo.cs +2 -2
  33. data/vendor/snowball/csharp/Snowball/Stemmer.cs +1 -4
  34. data/vendor/snowball/cxx/generate_algorithms.pl +5 -4
  35. data/vendor/snowball/cxx/{utilities.cxx → snowball_runtime.cxx} +1 -1
  36. data/vendor/snowball/cxx/stemmer.h +4 -0
  37. data/vendor/snowball/cxx/stemwords.cxx +36 -6
  38. data/vendor/snowball/dart/lib/src/snowball.dart +2 -2
  39. data/vendor/snowball/dart/pubspec.yaml +1 -1
  40. data/vendor/snowball/doc/libstemmer_c_README +3 -0
  41. data/vendor/snowball/doc/libstemmer_php_README +1 -1
  42. data/vendor/snowball/doc/libstemmer_python_README +8 -6
  43. data/vendor/snowball/examples/stemwords.c +4 -14
  44. data/vendor/snowball/go/env.go +16 -4
  45. data/vendor/snowball/include/libstemmer.h +0 -3
  46. data/vendor/snowball/java/org/tartarus/snowball/SnowballProgram.java +4 -4
  47. data/vendor/snowball/javascript/base-stemmer.js +27 -40
  48. data/vendor/snowball/javascript/stemwords.js +34 -10
  49. data/vendor/snowball/libstemmer/libstemmer_c.in +5 -5
  50. data/vendor/snowball/libstemmer/mkmodules.pl +5 -3
  51. data/vendor/snowball/libstemmer/modules.txt +4 -2
  52. data/vendor/snowball/pascal/SnowballProgram.pas +2 -2
  53. data/vendor/snowball/php/base-stemmer.php +2 -2
  54. data/vendor/snowball/python/setup.py +5 -1
  55. data/vendor/snowball/python/snowballstemmer/basestemmer.py +1 -2
  56. data/vendor/snowball/runtime/api.c +14 -3
  57. data/vendor/snowball/runtime/api.h +13 -9
  58. data/vendor/snowball/runtime/{utilities.c → snowball_runtime.c} +115 -181
  59. data/vendor/snowball/runtime/snowball_runtime.h +35 -24
  60. data/vendor/snowball/rust/src/snowball/snowball_env.rs +1 -1
  61. data/vendor/snowball/tests/compilertest +3 -3
  62. data/vendor/snowball/tests/runtime/among.sbl +96 -2
  63. data/vendor/snowball/tests/runtime/attachinsert.sbl +4 -0
  64. data/vendor/snowball/tests/runtime/debug.out +7 -0
  65. data/vendor/snowball/tests/runtime/debug.sbl +9 -0
  66. data/vendor/snowball/tests/runtime/integertests.sbl +22 -0
  67. data/vendor/snowball/tests/runtime/marklimit.sbl +30 -0
  68. data/vendor/snowball/tests/runtime/naming.sbl +20 -0
  69. data/vendor/snowball/tests/runtime/reverse.sbl +11 -0
  70. data/vendor/snowball/tests/stemtest.c +2 -5
  71. data/vendor/snowball/tests/syntax/aeslicefrom.sbl +7 -0
  72. data/vendor/snowball/tests/syntax/canon.sbl +14 -0
  73. data/vendor/snowball/tests/syntax/canon.syntax +36 -0
  74. data/vendor/snowball/tests/syntax/inline.syntax +4 -4
  75. data/vendor/snowball/tests/syntax/localvar.sbl +38 -0
  76. data/vendor/snowball/tests/syntax/localvar.stderr +3 -0
  77. data/vendor/snowball/tests/syntax/localvar.syntax +76 -0
  78. data/vendor/snowball/tests/syntax/unused.sbl +5 -1
  79. data/vendor/snowball/tests/syntax/unused.stderr +3 -1
  80. data/vendor/snowball/zig/env.zig +24 -4
  81. metadata +14 -4
@@ -0,0 +1,301 @@
1
+ integers ( p1 p2 )
2
+ booleans ( Y_found )
3
+
4
+ routines (
5
+ prelude postlude
6
+ mark_regions
7
+ shortv
8
+ R1 R2
9
+ prefixes
10
+ Step_1a Step_1b Step_1c Step_2 Step_3 Step_4 Step_5
11
+ exception1
12
+ )
13
+
14
+ externals ( stem )
15
+
16
+ groupings ( aeo v v_WXY valid_LI )
17
+
18
+ stringescapes {}
19
+
20
+ stringdef ae '{U+00E6}'
21
+ stringdef oe '{U+0153}'
22
+ stringdef long_s '{U+017F}'
23
+
24
+ define aeo 'aeo'
25
+ define v 'aeiouy'
26
+ define v_WXY v + 'wxY'
27
+
28
+ define valid_LI 'cdeghkmnrt'
29
+
30
+ define prelude as (
31
+ // Additional step for Early Modern English.
32
+ do repeat (
33
+ [substring] among(
34
+ '{ae}' (<- 'ae')
35
+ '{oe}' (<- 'oe')
36
+ '{long_s}' (<- 's')
37
+ '' (next)
38
+ )
39
+ )
40
+
41
+ unset Y_found
42
+ do ( ['{'}'] delete)
43
+ do ( ['y'] <-'Y' set Y_found)
44
+ do repeat(goto (v ['y']) <-'Y' set Y_found)
45
+ )
46
+
47
+ // Additional step for Early Modern English.
48
+ define prefixes as (
49
+ [substring] among (
50
+ 'o{'}er' // e.g. o'erwhelm -> overwhelm
51
+ (<- 'over')
52
+ 'th{'}' // e.g. th'earth -> earth
53
+ 't{'}' // e.g. t'assume -> assume
54
+ (not atlimit delete)
55
+ )
56
+ )
57
+
58
+ define mark_regions as (
59
+ $p1 = limit
60
+ $p2 = limit
61
+ do(
62
+ among (
63
+ 'gener' // generate/general/generic/generous
64
+ 'commun' // communication/communism/community
65
+ 'arsen' // arsenic/arsenal
66
+ 'past' // past/paste
67
+ 'univers' // universe/universal/university
68
+ 'later' // lateral/later
69
+ 'emerg' // emerge/emergency
70
+ 'organ' // organ/organic/organize
71
+ 'inter' // intern/internal/international/internment; interfere; interval
72
+ // ... extensions possible here ...
73
+ ) or (gopast v gopast non-v)
74
+ setmark p1
75
+ gopast v gopast non-v setmark p2
76
+ )
77
+ )
78
+
79
+ backwardmode (
80
+
81
+ define shortv as (
82
+ ( non-v_WXY v non-v )
83
+ or
84
+ ( non-v v atlimit )
85
+ or
86
+ ( 'past' ) // pasted/pasting
87
+ )
88
+
89
+ define R1 as $p1 <= cursor
90
+ define R2 as $p2 <= cursor
91
+
92
+ define Step_1a as (
93
+ try (
94
+ [substring] among (
95
+ '{'}' '{'}s' '{'}s{'}'
96
+ (delete)
97
+ )
98
+ )
99
+ [substring] among (
100
+ 'sses' (<-'ss')
101
+ 'ied' 'ies'
102
+ ((hop 2 <-'i') or <-'ie')
103
+ 's' (next gopast v delete)
104
+ 'us' 'ss'
105
+ ()
106
+ // Additions for Early Modern English.
107
+ 'e{'}er' // e.g. whoe'er -> whoever
108
+ (<- 'ever')
109
+ 'lie' // e.g. assemblie -> assembly
110
+ (R1 <- 'ly')
111
+ )
112
+ )
113
+
114
+ define Step_1b as (
115
+ [substring] among (
116
+ 'eed' 'eedly'
117
+ (
118
+ do (
119
+ R1
120
+ among (
121
+ 'proc' 'exc' 'succ'
122
+ (atlimit)
123
+ ) or (
124
+ <-'ee'
125
+ )
126
+ )
127
+ )
128
+ 'ed' 'edly' 'ingly'
129
+ (false) // Handled below.
130
+ // Additions for Early Modern English.
131
+ '{'}d' // e.g. lov'd -> lov (-> love)
132
+ '{'}dly' // e.g. favour'dly -> favour
133
+ '{'}dst' // e.g. call'dst -> call
134
+ '{'}st' // e.g. know'st -> know
135
+ '{'}t' // e.g. advanc't -> advanc
136
+ 'edst' // e.g. commandedst -> command
137
+ 'est' // e.g. knowest -> know (but e.g. forest -> for (-> fore))
138
+ 'eth' // e.g. knoweth -> know (but e.g. lambeth -> lamb)
139
+ (false) // Handled below.
140
+ 'ing'
141
+ ( // Handle exceptional cases here, rest handled below.
142
+ among (
143
+ // dying->die, lying->die, tying->tie, vying->vie
144
+ 'y'
145
+ (test(non-v atlimit) ] <-'ie')
146
+ // Leave inning, outing, etc alone.
147
+ 'inn' 'out' 'cann' 'herr' 'earr' 'even'
148
+ (atlimit)
149
+ )
150
+ )
151
+ '' ()
152
+ ) or (
153
+ // Handle 'ed' 'edly' 'ing' 'ingly'
154
+ test gopast v delete
155
+ [] test (
156
+ substring among(
157
+ 'at' 'bl' 'iz'
158
+ (fail(<- 'e'))
159
+ 'bb' 'dd' 'ff' 'gg' 'mm' 'nn' 'pp' 'rr' 'tt'
160
+ // ignoring double c, h, j, k, q, v, w, and x
161
+ (not (aeo atlimit))
162
+ '' (fail(atmark p1 test shortv <- 'e'))
163
+ )
164
+ )
165
+ [next] delete
166
+ )
167
+ )
168
+
169
+ define Step_1c as (
170
+ ['y' or 'Y']
171
+ non-v not atlimit
172
+ <-'i'
173
+ )
174
+
175
+ define Step_2 as (
176
+ [substring] R1 among (
177
+ 'tional' (<-'tion')
178
+ 'enci' (<-'ence')
179
+ 'anci' (<-'ance')
180
+ 'abli' (<-'able')
181
+ 'entli' (<-'ent')
182
+ 'izer' 'ization'
183
+ (<-'ize')
184
+ 'ational' 'ation' 'ator'
185
+ (<-'ate')
186
+ 'alism' 'aliti' 'alli'
187
+ (<-'al')
188
+ 'fulness' (<-'ful')
189
+ 'ousli' 'ousness'
190
+ (<-'ous')
191
+ 'iveness' 'iviti'
192
+ (<-'ive')
193
+ 'biliti' 'bli'
194
+ (<-'ble')
195
+ 'ogist' (<-'og')
196
+ 'ogi' ('l' <-'og')
197
+ 'fulli' (<-'ful')
198
+ 'lessli' (<-'less')
199
+ 'li' (valid_LI delete)
200
+ )
201
+ )
202
+
203
+ define Step_3 as (
204
+ [substring] R1 among (
205
+ 'tional' (<-'tion')
206
+ 'ational' (<-'ate')
207
+ 'alize' (<-'al')
208
+ 'icate' 'iciti' 'ical'
209
+ (<-'ic')
210
+ 'ful' 'ness'
211
+ (delete)
212
+ 'ative'
213
+ (R2 delete)
214
+ )
215
+ )
216
+
217
+ define Step_4 as (
218
+ [substring] R2 among (
219
+ 'al' 'ance' 'ence' 'er' 'ic' 'able' 'ible' 'ant' 'ement'
220
+ 'ment' 'ent' 'ism' 'ate' 'iti' 'ous' 'ive' 'ize'
221
+ (delete)
222
+ 'ion' ('s' or 't' delete)
223
+ )
224
+ )
225
+
226
+ define Step_5 as (
227
+ [substring] among (
228
+ 'e' (R2 or (R1 not shortv) delete)
229
+ 'l' (R2 'l' delete)
230
+ // Additions for Early Modern English.
231
+ '{'}n' // e.g. heav'n -> heaven
232
+ '{'}nd' // e.g. quick'nd -> quicken
233
+ (<- 'en')
234
+ '{'}r' // e.g. (rememb'red -> rememb'r) -> remember
235
+ '{'}rous' // e.g. murd'rous -> murder
236
+ (<- 'er')
237
+ '{'}ri' // e.g. (wat'ry -> wat'ri) -> wateri
238
+ (<- 'eri')
239
+ '{'}li' // e.g. (happ'ly -> happ'li) -> happili
240
+ (<- 'ili')
241
+ )
242
+ )
243
+ )
244
+
245
+ define exception1 as (
246
+
247
+ [substring] atlimit among(
248
+
249
+ /* special changes: */
250
+
251
+ 'skis' (<-'ski')
252
+ 'skies' (<-'sky')
253
+
254
+ /* special -LY cases */
255
+
256
+ 'idly' (<-'idl')
257
+ 'gently' (<-'gentl')
258
+ 'ugly' (<-'ugli')
259
+ 'early' (<-'earli')
260
+ 'only' (<-'onli')
261
+ 'singly' (<-'singl')
262
+
263
+ // ... extensions possible here ...
264
+
265
+ /* invariant forms: */
266
+
267
+ 'sky'
268
+ 'news'
269
+ 'howe'
270
+
271
+ 'atlas' 'cosmos' 'bias' 'andes' // not plural forms
272
+
273
+ // ... extensions possible here ...
274
+ )
275
+ )
276
+
277
+ define postlude as (Y_found repeat(goto (['Y']) <-'y'))
278
+
279
+ define stem as (
280
+
281
+ exception1 or
282
+ not hop 3 or (
283
+ do prelude
284
+ do prefixes
285
+ do mark_regions
286
+ backwards (
287
+
288
+ do Step_1a
289
+
290
+ do Step_1b
291
+ do Step_1c
292
+
293
+ do Step_2
294
+ do Step_3
295
+ do Step_4
296
+
297
+ do Step_5
298
+ )
299
+ do postlude
300
+ )
301
+ )
@@ -40,7 +40,7 @@ define v 'aeiouy{a^}{a`}{e"}{e'}{e^}{e`}{i"}{i^}{o^}{u^}{u`}'
40
40
  define oux_ending 'bhjlnp'
41
41
 
42
42
  // Single character elisions
43
- define elision_char 'cdjlmnst'
43
+ define elision_char 'cdjlmnstz'
44
44
 
45
45
  define elisions as
46
46
  (