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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/LICENSE.txt +1 -1
- data/README.md +1 -1
- data/lib/mittens/version.rb +1 -1
- data/vendor/snowball/.github/workflows/ci.yml +43 -3
- data/vendor/snowball/.github/workflows/coverage.yml +8 -5
- data/vendor/snowball/GNUmakefile +46 -16
- data/vendor/snowball/NEWS +437 -13
- data/vendor/snowball/README.rst +4 -4
- data/vendor/snowball/algorithms/earlymodernenglish.sbl +301 -0
- data/vendor/snowball/algorithms/french.sbl +1 -1
- data/vendor/snowball/algorithms/ukrainian.sbl +1251 -0
- data/vendor/snowball/compiler/analyser.c +460 -156
- data/vendor/snowball/compiler/driver.c +41 -36
- data/vendor/snowball/compiler/generator.c +24 -1
- data/vendor/snowball/compiler/generator_ada.c +46 -45
- data/vendor/snowball/compiler/generator_c.c +1094 -187
- data/vendor/snowball/compiler/generator_csharp.c +34 -11
- data/vendor/snowball/compiler/generator_dart.c +39 -11
- data/vendor/snowball/compiler/generator_go.c +6 -6
- data/vendor/snowball/compiler/generator_java.c +29 -8
- data/vendor/snowball/compiler/generator_js.c +65 -38
- data/vendor/snowball/compiler/generator_pascal.c +69 -26
- data/vendor/snowball/compiler/generator_php.c +33 -12
- data/vendor/snowball/compiler/generator_python.c +23 -4
- data/vendor/snowball/compiler/generator_rust.c +37 -13
- data/vendor/snowball/compiler/generator_zig.c +6 -6
- data/vendor/snowball/compiler/header.h +85 -14
- data/vendor/snowball/compiler/space.c +67 -38
- data/vendor/snowball/compiler/tokeniser.c +28 -16
- data/vendor/snowball/csharp/Snowball/AssemblyInfo.cs +2 -2
- data/vendor/snowball/csharp/Snowball/Stemmer.cs +1 -4
- data/vendor/snowball/cxx/generate_algorithms.pl +5 -4
- data/vendor/snowball/cxx/{utilities.cxx → snowball_runtime.cxx} +1 -1
- data/vendor/snowball/cxx/stemmer.h +4 -0
- data/vendor/snowball/cxx/stemwords.cxx +36 -6
- data/vendor/snowball/dart/lib/src/snowball.dart +2 -2
- data/vendor/snowball/dart/pubspec.yaml +1 -1
- data/vendor/snowball/doc/libstemmer_c_README +3 -0
- data/vendor/snowball/doc/libstemmer_php_README +1 -1
- data/vendor/snowball/doc/libstemmer_python_README +8 -6
- data/vendor/snowball/examples/stemwords.c +4 -14
- data/vendor/snowball/go/env.go +16 -4
- data/vendor/snowball/include/libstemmer.h +0 -3
- data/vendor/snowball/java/org/tartarus/snowball/SnowballProgram.java +4 -4
- data/vendor/snowball/javascript/base-stemmer.js +27 -40
- data/vendor/snowball/javascript/stemwords.js +34 -10
- data/vendor/snowball/libstemmer/libstemmer_c.in +5 -5
- data/vendor/snowball/libstemmer/mkmodules.pl +5 -3
- data/vendor/snowball/libstemmer/modules.txt +4 -2
- data/vendor/snowball/pascal/SnowballProgram.pas +2 -2
- data/vendor/snowball/php/base-stemmer.php +2 -2
- data/vendor/snowball/python/setup.py +5 -1
- data/vendor/snowball/python/snowballstemmer/basestemmer.py +1 -2
- data/vendor/snowball/runtime/api.c +14 -3
- data/vendor/snowball/runtime/api.h +13 -9
- data/vendor/snowball/runtime/{utilities.c → snowball_runtime.c} +115 -181
- data/vendor/snowball/runtime/snowball_runtime.h +35 -24
- data/vendor/snowball/rust/src/snowball/snowball_env.rs +1 -1
- data/vendor/snowball/tests/compilertest +3 -3
- data/vendor/snowball/tests/runtime/among.sbl +96 -2
- data/vendor/snowball/tests/runtime/attachinsert.sbl +4 -0
- data/vendor/snowball/tests/runtime/debug.out +7 -0
- data/vendor/snowball/tests/runtime/debug.sbl +9 -0
- data/vendor/snowball/tests/runtime/integertests.sbl +22 -0
- data/vendor/snowball/tests/runtime/marklimit.sbl +30 -0
- data/vendor/snowball/tests/runtime/naming.sbl +20 -0
- data/vendor/snowball/tests/runtime/reverse.sbl +11 -0
- data/vendor/snowball/tests/stemtest.c +2 -5
- data/vendor/snowball/tests/syntax/aeslicefrom.sbl +7 -0
- data/vendor/snowball/tests/syntax/canon.sbl +14 -0
- data/vendor/snowball/tests/syntax/canon.syntax +36 -0
- data/vendor/snowball/tests/syntax/inline.syntax +4 -4
- data/vendor/snowball/tests/syntax/localvar.sbl +38 -0
- data/vendor/snowball/tests/syntax/localvar.stderr +3 -0
- data/vendor/snowball/tests/syntax/localvar.syntax +76 -0
- data/vendor/snowball/tests/syntax/unused.sbl +5 -1
- data/vendor/snowball/tests/syntax/unused.stderr +3 -1
- data/vendor/snowball/zig/env.zig +24 -4
- 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
|
+
)
|