mittens 0.1.1 → 0.3.0

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 (100) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/LICENSE.txt +1 -1
  4. data/README.md +4 -4
  5. data/lib/mittens/version.rb +1 -1
  6. data/mittens.gemspec +1 -1
  7. data/vendor/snowball/.github/workflows/ci.yml +216 -0
  8. data/vendor/snowball/CONTRIBUTING.rst +111 -62
  9. data/vendor/snowball/GNUmakefile +194 -136
  10. data/vendor/snowball/NEWS +798 -3
  11. data/vendor/snowball/README.rst +50 -1
  12. data/vendor/snowball/ada/src/stemmer.adb +25 -13
  13. data/vendor/snowball/ada/src/stemmer.ads +9 -9
  14. data/vendor/snowball/ada/stemmer_config.gpr +7 -7
  15. data/vendor/snowball/algorithms/basque.sbl +4 -19
  16. data/vendor/snowball/algorithms/catalan.sbl +2 -9
  17. data/vendor/snowball/algorithms/danish.sbl +1 -1
  18. data/vendor/snowball/algorithms/dutch.sbl +284 -122
  19. data/vendor/snowball/algorithms/dutch_porter.sbl +178 -0
  20. data/vendor/snowball/algorithms/english.sbl +52 -37
  21. data/vendor/snowball/algorithms/esperanto.sbl +157 -0
  22. data/vendor/snowball/algorithms/estonian.sbl +269 -0
  23. data/vendor/snowball/algorithms/finnish.sbl +2 -3
  24. data/vendor/snowball/algorithms/french.sbl +42 -16
  25. data/vendor/snowball/algorithms/german.sbl +35 -14
  26. data/vendor/snowball/algorithms/greek.sbl +76 -76
  27. data/vendor/snowball/algorithms/hungarian.sbl +8 -6
  28. data/vendor/snowball/algorithms/indonesian.sbl +14 -8
  29. data/vendor/snowball/algorithms/italian.sbl +11 -21
  30. data/vendor/snowball/algorithms/lithuanian.sbl +36 -37
  31. data/vendor/snowball/algorithms/lovins.sbl +0 -1
  32. data/vendor/snowball/algorithms/nepali.sbl +138 -37
  33. data/vendor/snowball/algorithms/norwegian.sbl +19 -5
  34. data/vendor/snowball/algorithms/porter.sbl +2 -2
  35. data/vendor/snowball/algorithms/portuguese.sbl +9 -13
  36. data/vendor/snowball/algorithms/romanian.sbl +17 -4
  37. data/vendor/snowball/algorithms/serbian.sbl +467 -468
  38. data/vendor/snowball/algorithms/spanish.sbl +5 -7
  39. data/vendor/snowball/algorithms/swedish.sbl +60 -6
  40. data/vendor/snowball/algorithms/tamil.sbl +207 -176
  41. data/vendor/snowball/algorithms/turkish.sbl +461 -445
  42. data/vendor/snowball/algorithms/yiddish.sbl +36 -38
  43. data/vendor/snowball/compiler/analyser.c +445 -192
  44. data/vendor/snowball/compiler/driver.c +109 -101
  45. data/vendor/snowball/compiler/generator.c +853 -464
  46. data/vendor/snowball/compiler/generator_ada.c +404 -366
  47. data/vendor/snowball/compiler/generator_csharp.c +297 -260
  48. data/vendor/snowball/compiler/generator_go.c +323 -254
  49. data/vendor/snowball/compiler/generator_java.c +326 -252
  50. data/vendor/snowball/compiler/generator_js.c +362 -252
  51. data/vendor/snowball/compiler/generator_pascal.c +349 -197
  52. data/vendor/snowball/compiler/generator_python.c +257 -240
  53. data/vendor/snowball/compiler/generator_rust.c +423 -251
  54. data/vendor/snowball/compiler/header.h +117 -71
  55. data/vendor/snowball/compiler/space.c +137 -68
  56. data/vendor/snowball/compiler/syswords.h +2 -2
  57. data/vendor/snowball/compiler/tokeniser.c +125 -107
  58. data/vendor/snowball/csharp/Snowball/Among.cs +14 -14
  59. data/vendor/snowball/csharp/Snowball/AssemblyInfo.cs +7 -7
  60. data/vendor/snowball/csharp/Snowball/Stemmer.cs +57 -37
  61. data/vendor/snowball/csharp/Stemwords/App.config +2 -2
  62. data/vendor/snowball/csharp/Stemwords/Program.cs +16 -12
  63. data/vendor/snowball/doc/libstemmer_c_README +7 -4
  64. data/vendor/snowball/doc/libstemmer_csharp_README +4 -1
  65. data/vendor/snowball/doc/libstemmer_java_README +12 -1
  66. data/vendor/snowball/doc/libstemmer_js_README +6 -4
  67. data/vendor/snowball/doc/libstemmer_python_README +9 -4
  68. data/vendor/snowball/examples/stemwords.c +12 -12
  69. data/vendor/snowball/go/env.go +107 -31
  70. data/vendor/snowball/go/util.go +0 -4
  71. data/vendor/snowball/include/libstemmer.h +4 -0
  72. data/vendor/snowball/java/org/tartarus/snowball/Among.java +32 -15
  73. data/vendor/snowball/java/org/tartarus/snowball/SnowballProgram.java +347 -261
  74. data/vendor/snowball/java/org/tartarus/snowball/SnowballStemmer.java +3 -0
  75. data/vendor/snowball/java/org/tartarus/snowball/TestApp.java +52 -37
  76. data/vendor/snowball/javascript/base-stemmer.js +186 -2
  77. data/vendor/snowball/javascript/stemwords.js +3 -6
  78. data/vendor/snowball/libstemmer/libstemmer_c.in +1 -1
  79. data/vendor/snowball/libstemmer/mkalgorithms.pl +6 -6
  80. data/vendor/snowball/libstemmer/mkmodules.pl +2 -2
  81. data/vendor/snowball/libstemmer/modules.txt +13 -10
  82. data/vendor/snowball/libstemmer/test.c +1 -1
  83. data/vendor/snowball/pascal/SnowballProgram.pas +84 -2
  84. data/vendor/snowball/pascal/generate.pl +13 -13
  85. data/vendor/snowball/python/create_init.py +4 -1
  86. data/vendor/snowball/python/setup.cfg +0 -3
  87. data/vendor/snowball/python/setup.py +8 -3
  88. data/vendor/snowball/python/snowballstemmer/basestemmer.py +20 -54
  89. data/vendor/snowball/python/stemwords.py +8 -12
  90. data/vendor/snowball/runtime/api.c +10 -5
  91. data/vendor/snowball/runtime/header.h +10 -9
  92. data/vendor/snowball/runtime/utilities.c +9 -9
  93. data/vendor/snowball/rust/build.rs +1 -1
  94. data/vendor/snowball/rust/src/snowball/snowball_env.rs +83 -5
  95. data/vendor/snowball/tests/stemtest.c +7 -4
  96. metadata +8 -12
  97. data/vendor/snowball/.travis.yml +0 -112
  98. data/vendor/snowball/algorithms/german2.sbl +0 -145
  99. data/vendor/snowball/algorithms/kraaij_pohlmann.sbl +0 -240
  100. data/vendor/snowball/compiler/syswords2.h +0 -13
@@ -1,4 +1,5 @@
1
1
  routines (
2
+ elisions
2
3
  prelude postlude mark_regions
3
4
  RV R1 R2
4
5
  standard_suffix
@@ -13,7 +14,7 @@ externals ( stem )
13
14
 
14
15
  integers ( pV p1 p2 )
15
16
 
16
- groupings ( v keep_with_s )
17
+ groupings ( elision_char v keep_with_s oux_ending )
17
18
 
18
19
  stringescapes {}
19
20
 
@@ -21,7 +22,7 @@ stringescapes {}
21
22
 
22
23
  stringdef a^ '{U+00E2}' // a-circumflex
23
24
  stringdef a` '{U+00E0}' // a-grave
24
- stringdef c, '{U+00E7}' // c-cedilla
25
+ stringdef cc '{U+00E7}' // c-cedilla
25
26
 
26
27
  stringdef e" '{U+00EB}' // e-diaeresis (rare)
27
28
  stringdef e' '{U+00E9}' // e-acute
@@ -35,6 +36,17 @@ stringdef u` '{U+00F9}' // u-grave
35
36
 
36
37
  define v 'aeiouy{a^}{a`}{e"}{e'}{e^}{e`}{i"}{i^}{o^}{u^}{u`}'
37
38
 
39
+ // Replace -oux with -ou if preceded by one of these letters.
40
+ define oux_ending 'bhjlnp'
41
+
42
+ // Single character elisions
43
+ define elision_char 'cdjlmnst'
44
+
45
+ define elisions as
46
+ (
47
+ [ (elision_char or 'qu') '{'}' ] not atlimit delete
48
+ )
49
+
38
50
  define prelude as repeat goto (
39
51
 
40
52
  ( v [ ('u' ] v <- 'U') or
@@ -60,10 +72,12 @@ define mark_regions as (
60
72
  do (
61
73
  ( v v next )
62
74
  or
63
- among ( // this exception list begun Nov 2006
64
- 'par' // paris, parie, pari
65
- 'col' // colis
66
- 'tap' // tapis
75
+ among ( // Exception list:
76
+ 'par' // paris, parie, pari
77
+ 'col' // colis
78
+ 'tap' // tapis
79
+ ()
80
+ 'ni' (v) // niais/nierais/nié/niâmes/nièrent
67
81
  // extensions possible here
68
82
  )
69
83
  or
@@ -125,8 +139,8 @@ backwardmode (
125
139
  'eus' ((R2 delete) or (R1<-'eux'))
126
140
  'abl' 'iqU'
127
141
  (R2 delete)
128
- 'i{e`}r' 'I{e`}r' //)
129
- (RV <-'i') //)--new 2 Sept 02
142
+ 'i{e`}r' 'I{e`}r'
143
+ (RV <-'i')
130
144
  )
131
145
  )
132
146
  )
@@ -150,6 +164,7 @@ backwardmode (
150
164
  )
151
165
  'eaux' (<- 'eau')
152
166
  'aux' (R1 <- 'al')
167
+ 'oux' (oux_ending <- 'ou')
153
168
  'euse'
154
169
  'euses'((R2 delete) or (R1<-'eux'))
155
170
 
@@ -178,8 +193,9 @@ backwardmode (
178
193
  )
179
194
  )
180
195
 
181
- define verb_suffix as setlimit tomark pV for (
182
- [substring] among (
196
+ define verb_suffix as (
197
+ setlimit tomark pV for ([substring])
198
+ among (
183
199
  'ions'
184
200
  (R2 delete)
185
201
 
@@ -191,12 +207,22 @@ backwardmode (
191
207
 
192
208
  (delete)
193
209
 
194
- '{a^}mes' '{a^}t' '{a^}tes' 'a' 'ai' 'aIent' 'ais' 'ait' 'ant'
210
+ '{a^}mes' '{a^}t' '{a^}tes' 'a' 'ai' 'aIent' 'ait' 'ant'
195
211
  'ante' 'antes' 'ants' 'as' 'asse' 'assent' 'asses' 'assiez'
196
212
  'assions'
197
- (delete
198
- try(['e'] delete)
199
- )
213
+ ( try('e' RV]) delete )
214
+
215
+ 'ais' 'aise' 'aises'
216
+ ( not among (
217
+ 'al' // balais, calais, galais, malais, palais, valais
218
+ (next atlimit)
219
+ 'auv' // mauvais
220
+ '{e'}pl' // déplais
221
+ ()
222
+ )
223
+ delete )
224
+ 'eais'
225
+ (delete)
200
226
  )
201
227
  )
202
228
 
@@ -226,6 +252,7 @@ backwardmode (
226
252
 
227
253
  define stem as (
228
254
 
255
+ do elisions
229
256
  do prelude
230
257
  do mark_regions
231
258
  backwards (
@@ -238,7 +265,7 @@ define stem as (
238
265
  )
239
266
  and
240
267
  try( [ ('Y' ] <- 'i' ) or
241
- ('{c,}'] <- 'c' )
268
+ ('{cc}'] <- 'c' )
242
269
  )
243
270
  ) or
244
271
  residual_suffix
@@ -251,4 +278,3 @@ define stem as (
251
278
  )
252
279
  do postlude
253
280
  )
254
-
@@ -1,8 +1,3 @@
1
-
2
- /*
3
- Extra rule for -nisse ending added 11 Dec 2009
4
- */
5
-
6
1
  routines (
7
2
  prelude postlude
8
3
  mark_regions
@@ -14,7 +9,7 @@ externals ( stem )
14
9
 
15
10
  integers ( p1 p2 x )
16
11
 
17
- groupings ( v s_ending st_ending )
12
+ groupings ( v et_ending s_ending st_ending )
18
13
 
19
14
  stringescapes {}
20
15
 
@@ -27,21 +22,28 @@ stringdef ss '{U+00DF}'
27
22
 
28
23
  define v 'aeiouy{a"}{o"}{u"}'
29
24
 
25
+ define et_ending 'dfgklmnrstUz{a"}'
30
26
  define s_ending 'bdfghklmnrt'
31
27
  define st_ending s_ending - 'r'
32
28
 
33
29
  define prelude as (
34
30
 
35
- test repeat (
36
- (
37
- ['{ss}'] <- 'ss'
38
- ) or next
39
- )
40
-
41
- repeat goto (
31
+ test repeat goto (
42
32
  v [('u'] v <- 'U') or
43
33
  ('y'] v <- 'Y')
44
34
  )
35
+
36
+ repeat (
37
+ [substring] among(
38
+ '{ss}' (<- 'ss')
39
+ 'ae' (<- '{a"}')
40
+ 'oe' (<- '{o"}')
41
+ 'ue' (<- '{u"}')
42
+ 'qu' ()
43
+ '' (next)
44
+ )
45
+ )
46
+
45
47
  )
46
48
 
47
49
  define mark_regions as (
@@ -78,7 +80,12 @@ backwardmode (
78
80
  define standard_suffix as (
79
81
  do (
80
82
  [substring] R1 among(
81
- 'em' 'ern' 'er'
83
+ 'em'
84
+ ( not 'syst' // don't remove -em from words ending -system
85
+ delete
86
+ )
87
+ 'ern' 'er'
88
+ 'erin' 'erinnen' // conflate female versions of nouns
82
89
  ( delete
83
90
  )
84
91
  'e' 'en' 'es'
@@ -88,6 +95,9 @@ backwardmode (
88
95
  's'
89
96
  ( s_ending delete
90
97
  )
98
+ 'ln' 'lns'
99
+ ( <- 'l'
100
+ )
91
101
  )
92
102
  )
93
103
  do (
@@ -98,6 +108,17 @@ backwardmode (
98
108
  'st'
99
109
  ( st_ending hop 3 delete
100
110
  )
111
+ 'et'
112
+ ( test et_ending
113
+ not among (
114
+ 'geordn' // Still conflate untergeordnet/untergeordnetere, etc.
115
+ 'intern' // Don't conflate Internet and internes.
116
+ 'plan' // Don't conflate Plan and Planet.
117
+ 'tick' // Don't conflate Tick and Ticket.
118
+ 'tr' // Still conflate Vertreter/Vertretung, etc.
119
+ )
120
+ delete
121
+ )
101
122
  )
102
123
  )
103
124
  do (
@@ -6,7 +6,7 @@
6
6
  //
7
7
  // Saroukos, Spyridon. Enhancing a Greek language stemmer.
8
8
  // University of Tampere, 2008.
9
- // https://tampub.uta.fi/bitstream/handle/10024/80480/gradu03463.pdf
9
+ // https://trepo.tuni.fi/bitstream/handle/10024/80480/gradu03463.pdf
10
10
 
11
11
  stringescapes {}
12
12
 
@@ -20,7 +20,7 @@ stringdef i '{U+03B7}' // eta
20
20
  stringdef th '{U+03B8}' // theta
21
21
  stringdef y '{U+03B9}' // iota
22
22
  stringdef k '{U+03BA}' // kappa
23
- stringdef l '{U+03BB}' // lamda
23
+ stringdef l '{U+03BB}' // lambda
24
24
  stringdef m '{U+03BC}' // mu
25
25
  stringdef n '{U+03BD}' // nu
26
26
  stringdef x '{U+03BE}' // xi
@@ -46,7 +46,7 @@ stringdef I '{U+0397}' // Eta
46
46
  stringdef Th '{U+0398}' // Theta
47
47
  stringdef Y '{U+0399}' // Iota
48
48
  stringdef K '{U+039A}' // Kappa
49
- stringdef L '{U+039B}' // Lamda
49
+ stringdef L '{U+039B}' // Lambda
50
50
  stringdef M '{U+039C}' // Mu
51
51
  stringdef N '{U+039D}' // Nu
52
52
  stringdef X '{U+039E}' // Xi
@@ -93,13 +93,13 @@ booleans ( test1 )
93
93
  groupings ( v v2 )
94
94
 
95
95
  routines ( tolower has_min_length
96
- steps1 steps2 steps3 steps4 steps5 steps6 steps7
97
- steps8 steps9 steps10
98
- step1 step2a step2b step2c step2d step3 step4
99
- step5a step5b step5c step5d step5e step5f
100
- step5g step5h step5i
101
- step5j step5k step5l step5m
102
- step6 step7 )
96
+ step_s1 step_s2 step_s3 step_s4 step_s5 step_s6 step_s7
97
+ step_s8 step_s9 step_s10
98
+ step_1 step_2a step_2b step_2c step_2d step_3 step_4
99
+ step_5a step_5b step_5c step_5d step_5e step_5f
100
+ step_5g step_5h step_5i
101
+ step_5j step_5k step_5l step_5m
102
+ step_6 step_7 )
103
103
 
104
104
  define v '{a}{e}{i}{y}{o}{u}{oo}'
105
105
  define v2 '{a}{e}{i}{y}{o}{oo}'
@@ -162,7 +162,7 @@ backwardmode (
162
162
  )
163
163
  )
164
164
 
165
- define step1 as (
165
+ define step_1 as (
166
166
  [substring] among (
167
167
  '{f}{a}{g}{y}{a}' '{f}{a}{g}{y}{o}{u}' '{f}{a}{g}{y}{oo}{n}' (<- '{f}{a}')
168
168
  '{s}{k}{a}{g}{y}{a}' '{s}{k}{a}{g}{y}{o}{u}' '{s}{k}{a}{g}{y}{oo}{n}' (<- '{s}{k}{a}')
@@ -179,7 +179,7 @@ backwardmode (
179
179
  unset test1
180
180
  )
181
181
 
182
- define steps1 as (
182
+ define step_s1 as (
183
183
  [substring] among (
184
184
  '{y}{z}{a}' '{y}{z}{e}{s}' '{y}{z}{e}' '{y}{z}{a}{m}{e}' '{y}{z}{a}{t}{e}' '{y}{z}{a}{n}' '{y}{z}{a}{n}{e}' '{y}{z}{oo}' '{y}{z}{e}{y}{s}' '{y}{z}{e}{y}'
185
185
  '{y}{z}{o}{u}{m}{e}' '{y}{z}{e}{t}{e}' '{y}{z}{o}{u}{n}' '{y}{z}{o}{u}{n}{e}' (
@@ -197,7 +197,7 @@ backwardmode (
197
197
  )
198
198
  )
199
199
 
200
- define steps2 as (
200
+ define step_s2 as (
201
201
  [substring] among (
202
202
  '{oo}{th}{i}{k}{a}' '{oo}{th}{i}{k}{e}{s}' '{oo}{th}{i}{k}{e}' '{oo}{th}{i}{k}{a}{m}{e}' '{oo}{th}{i}{k}{a}{t}{e}' '{oo}{th}{i}{k}{a}{n}' '{oo}{th}{i}{k}{a}{n}{e}' (
203
203
  delete
@@ -209,12 +209,12 @@ backwardmode (
209
209
  )
210
210
  )
211
211
 
212
- define steps3 as (
212
+ define step_s3 as (
213
+ (['{y}{s}{a}'] atlimit <- '{y}{s}') or
213
214
  [substring] among (
214
215
  '{y}{s}{a}' '{y}{s}{e}{s}' '{y}{s}{e}' '{y}{s}{a}{m}{e}' '{y}{s}{a}{t}{e}' '{y}{s}{a}{n}' '{y}{s}{a}{n}{e}' (
215
216
  delete
216
217
  unset test1
217
- ('{y}{s}{a}' atlimit <- '{y}{s}') or
218
218
  ([] substring atlimit among (
219
219
  '{a}{n}{a}{m}{p}{a}' '{a}{th}{r}{o}' '{e}{m}{p}{a}' '{e}{s}{e}' '{e}{s}{oo}{k}{l}{e}' '{e}{p}{a}' '{x}{a}{n}{a}{p}{a}' '{e}{p}{e}' '{p}{e}{r}{y}{p}{a}'
220
220
  '{s}{u}{n}{a}{th}{r}{o}' '{d}{a}{n}{e}' '{k}{l}{e}' '{ch}{a}{r}{t}{o}{p}{a}' '{e}{x}{a}{r}{ch}{a}' '{m}{e}{t}{e}{p}{e}' '{a}{p}{o}{k}{l}{e}'
@@ -228,7 +228,7 @@ backwardmode (
228
228
  )
229
229
  )
230
230
 
231
- define steps4 as (
231
+ define step_s4 as (
232
232
  [substring] among (
233
233
  '{y}{s}{oo}' '{y}{s}{e}{y}{s}' '{y}{s}{e}{y}' '{y}{s}{o}{u}{m}{e}' '{y}{s}{e}{t}{e}' '{y}{s}{o}{u}{n}' '{y}{s}{o}{u}{n}{e}' (
234
234
  delete
@@ -243,7 +243,7 @@ backwardmode (
243
243
  )
244
244
  )
245
245
 
246
- define steps5 as (
246
+ define step_s5 as (
247
247
  [substring] among (
248
248
  '{y}{s}{t}{o}{s}' '{y}{s}{t}{o}{u}' '{y}{s}{t}{o}' '{y}{s}{t}{e}' '{y}{s}{t}{o}{y}' '{y}{s}{t}{oo}{n}' '{y}{s}{t}{o}{u}{s}' '{y}{s}{t}{i}' '{y}{s}{t}{i}{s}'
249
249
  '{y}{s}{t}{a}' '{y}{s}{t}{e}{s}' (
@@ -261,7 +261,7 @@ backwardmode (
261
261
  )
262
262
  )
263
263
 
264
- define steps6 as (
264
+ define step_s6 as (
265
265
  [substring] among (
266
266
  '{y}{s}{m}{o}' '{y}{s}{m}{o}{y}' '{y}{s}{m}{o}{s}' '{y}{s}{m}{o}{u}' '{y}{s}{m}{o}{u}{s}' '{y}{s}{m}{oo}{n}' (
267
267
  delete
@@ -288,7 +288,7 @@ backwardmode (
288
288
  )
289
289
  )
290
290
 
291
- define steps7 as (
291
+ define step_s7 as (
292
292
  [substring] among (
293
293
  '{a}{r}{a}{k}{y}' '{a}{r}{a}{k}{y}{a}' '{o}{u}{d}{a}{k}{y}' '{o}{u}{d}{a}{k}{y}{a}' (
294
294
  delete
@@ -301,7 +301,7 @@ backwardmode (
301
301
  )
302
302
  )
303
303
 
304
- define steps8 as (
304
+ define step_s8 as (
305
305
  [substring] among (
306
306
  '{a}{k}{y}' '{a}{k}{y}{a}' '{y}{t}{s}{a}' '{y}{t}{s}{a}{s}' '{y}{t}{s}{e}{s}' '{y}{t}{s}{oo}{n}' '{a}{r}{a}{k}{y}' '{a}{r}{a}{k}{y}{a}' (
307
307
  delete
@@ -326,7 +326,7 @@ backwardmode (
326
326
  )
327
327
  )
328
328
 
329
- define steps9 as (
329
+ define step_s9 as (
330
330
  [substring] among (
331
331
  '{y}{d}{y}{o}' '{y}{d}{y}{a}' '{y}{d}{y}{oo}{n}' (
332
332
  delete
@@ -341,7 +341,7 @@ backwardmode (
341
341
  )
342
342
  )
343
343
 
344
- define steps10 as (
344
+ define step_s10 as (
345
345
  [substring] among (
346
346
  '{y}{s}{k}{o}{s}' '{y}{s}{k}{o}{u}' '{y}{s}{k}{o}' '{y}{s}{k}{e}' (
347
347
  delete
@@ -354,7 +354,7 @@ backwardmode (
354
354
  )
355
355
  )
356
356
 
357
- define step2a as (
357
+ define step_2a as (
358
358
  [substring] among (
359
359
  '{a}{d}{e}{s}' '{a}{d}{oo}{n}' (delete)
360
360
  )
@@ -364,7 +364,7 @@ backwardmode (
364
364
  insert '{a}{d}'
365
365
  )
366
366
 
367
- define step2b as (
367
+ define step_2b as (
368
368
  [substring] among (
369
369
  '{e}{d}{e}{s}' '{e}{d}{oo}{n}' (delete)
370
370
  )
@@ -373,7 +373,7 @@ backwardmode (
373
373
  )
374
374
  )
375
375
 
376
- define step2c as (
376
+ define step_2c as (
377
377
  [substring] among (
378
378
  '{o}{u}{d}{e}{s}' '{o}{u}{d}{oo}{n}' (delete)
379
379
  )
@@ -383,7 +383,7 @@ backwardmode (
383
383
  )
384
384
  )
385
385
 
386
- define step2d as (
386
+ define step_2d as (
387
387
  [substring] among (
388
388
  '{e}{oo}{s}' '{e}{oo}{n}' (delete unset test1)
389
389
  )
@@ -392,14 +392,14 @@ backwardmode (
392
392
  )
393
393
  )
394
394
 
395
- define step3 as (
395
+ define step_3 as (
396
396
  [substring] among (
397
397
  '{y}{a}' '{y}{o}{u}' '{y}{oo}{n}' (delete unset test1)
398
398
  )
399
399
  ([] v <- '{y}')
400
400
  )
401
401
 
402
- define step4 as (
402
+ define step_4 as (
403
403
  [substring] among (
404
404
  '{y}{k}{a}' '{y}{k}{o}' '{y}{k}{o}{u}' '{y}{k}{oo}{n}' (delete unset test1)
405
405
  )
@@ -413,8 +413,8 @@ backwardmode (
413
413
  )
414
414
  )
415
415
 
416
- define step5a as (
417
- do ('{a}{g}{a}{m}{e}' atlimit <- '{a}{g}{a}{m}')
416
+ define step_5a as (
417
+ do (['{a}{g}{a}{m}{e}'] atlimit <- '{a}{g}{a}{m}')
418
418
  do (
419
419
  [substring] among (
420
420
  '{a}{g}{a}{m}{e}' '{i}{s}{a}{m}{e}' '{o}{u}{s}{a}{m}{e}' '{i}{k}{a}{m}{e}' '{i}{th}{i}{k}{a}{m}{e}' (delete unset test1)
@@ -429,7 +429,7 @@ backwardmode (
429
429
  )
430
430
  )
431
431
 
432
- define step5b as (
432
+ define step_5b as (
433
433
  do (
434
434
  [substring] among (
435
435
  '{a}{g}{a}{n}{e}' '{i}{s}{a}{n}{e}' '{o}{u}{s}{a}{n}{e}' '{y}{o}{n}{t}{a}{n}{e}' '{y}{o}{t}{a}{n}{e}' '{y}{o}{u}{n}{t}{a}{n}{e}' '{o}{n}{t}{a}{n}{e}' '{o}{t}{a}{n}{e}'
@@ -467,7 +467,7 @@ backwardmode (
467
467
  )
468
468
  )
469
469
 
470
- define step5c as (
470
+ define step_5c as (
471
471
  do (
472
472
  [substring] among (
473
473
  '{i}{s}{e}{t}{e}' (delete unset test1)
@@ -491,7 +491,7 @@ backwardmode (
491
491
  )
492
492
  )
493
493
 
494
- define step5d as (
494
+ define step_5d as (
495
495
  [substring] among (
496
496
  '{o}{n}{t}{a}{s}' '{oo}{n}{t}{a}{s}' (
497
497
  delete
@@ -502,7 +502,7 @@ backwardmode (
502
502
  )
503
503
  )
504
504
 
505
- define step5e as (
505
+ define step_5e as (
506
506
  [substring] among (
507
507
  '{o}{m}{a}{s}{t}{e}' '{y}{o}{m}{a}{s}{t}{e}' (
508
508
  delete
@@ -512,7 +512,7 @@ backwardmode (
512
512
  )
513
513
  )
514
514
 
515
- define step5f as (
515
+ define step_5f as (
516
516
  do (
517
517
  ['{y}{e}{s}{t}{e}']
518
518
  delete
@@ -530,7 +530,7 @@ backwardmode (
530
530
  )
531
531
  )
532
532
 
533
- define step5g as (
533
+ define step_5g as (
534
534
  do (
535
535
  [substring] among (
536
536
  '{i}{th}{i}{k}{a}' '{i}{th}{i}{k}{e}{s}' '{i}{th}{i}{k}{e}' (delete unset test1)
@@ -550,7 +550,7 @@ backwardmode (
550
550
  )
551
551
  )
552
552
 
553
- define step5h as (
553
+ define step_5h as (
554
554
  [substring] among (
555
555
  '{o}{u}{s}{a}' '{o}{u}{s}{e}{s}' '{o}{u}{s}{e}' (
556
556
  delete
@@ -570,7 +570,7 @@ backwardmode (
570
570
  )
571
571
  )
572
572
 
573
- define step5i as (
573
+ define step_5i as (
574
574
  [substring] among (
575
575
  '{a}{g}{a}' '{a}{g}{e}{s}' '{a}{g}{e}' (
576
576
  delete
@@ -594,7 +594,7 @@ backwardmode (
594
594
  )
595
595
  )
596
596
 
597
- define step5j as (
597
+ define step_5j as (
598
598
  [substring] among (
599
599
  '{i}{s}{e}' '{i}{s}{o}{u}' '{i}{s}{a}' (delete unset test1)
600
600
  )
@@ -603,7 +603,7 @@ backwardmode (
603
603
  )
604
604
  )
605
605
 
606
- define step5k as (
606
+ define step_5k as (
607
607
  [substring] among (
608
608
  '{i}{s}{t}{e}' (delete unset test1)
609
609
  )
@@ -613,7 +613,7 @@ backwardmode (
613
613
  )
614
614
  )
615
615
 
616
- define step5l as (
616
+ define step_5l as (
617
617
  [substring] among (
618
618
  '{o}{u}{n}{e}' '{i}{s}{o}{u}{n}{e}' '{i}{th}{o}{u}{n}{e}' (delete unset test1)
619
619
  )
@@ -622,7 +622,7 @@ backwardmode (
622
622
  )
623
623
  )
624
624
 
625
- define step5m as (
625
+ define step_5m as (
626
626
  [substring] among (
627
627
  '{o}{u}{m}{e}' '{i}{s}{o}{u}{m}{e}' '{i}{th}{o}{u}{m}{e}' (delete unset test1)
628
628
  )
@@ -632,7 +632,7 @@ backwardmode (
632
632
  )
633
633
  )
634
634
 
635
- define step6 as (
635
+ define step_6 as (
636
636
  do (
637
637
  [substring] among (
638
638
  '{m}{a}{t}{a}' '{m}{a}{t}{oo}{n}' '{m}{a}{t}{o}{s}' (<- '{m}{a}')
@@ -653,7 +653,7 @@ backwardmode (
653
653
  )
654
654
  )
655
655
 
656
- define step7 as (
656
+ define step_7 as (
657
657
  [substring] among (
658
658
  '{e}{s}{t}{e}{r}' '{e}{s}{t}{a}{t}' '{o}{t}{e}{r}' '{o}{t}{a}{t}' '{u}{t}{e}{r}' '{u}{t}{a}{t}' '{oo}{t}{e}{r}' '{oo}{t}{a}{t}' (delete)
659
659
  )
@@ -665,37 +665,37 @@ define stem as (
665
665
  do tolower
666
666
  has_min_length
667
667
  set test1
668
- do step1
669
- do steps1
670
- do steps2
671
- do steps3
672
- do steps4
673
- do steps5
674
- do steps6
675
- do steps7
676
- do steps8
677
- do steps9
678
- do steps10
679
- do step2a
680
- do step2b
681
- do step2c
682
- do step2d
683
- do step3
684
- do step4
685
- do step5a
686
- do step5b
687
- do step5c
688
- do step5d
689
- do step5e
690
- do step5f
691
- do step5g
692
- do step5h
693
- do step5j
694
- do step5i
695
- do step5k
696
- do step5l
697
- do step5m
698
- do step6
699
- do step7
668
+ do step_1
669
+ do step_s1
670
+ do step_s2
671
+ do step_s3
672
+ do step_s4
673
+ do step_s5
674
+ do step_s6
675
+ do step_s7
676
+ do step_s8
677
+ do step_s9
678
+ do step_s10
679
+ do step_2a
680
+ do step_2b
681
+ do step_2c
682
+ do step_2d
683
+ do step_3
684
+ do step_4
685
+ do step_5a
686
+ do step_5b
687
+ do step_5c
688
+ do step_5d
689
+ do step_5e
690
+ do step_5f
691
+ do step_5g
692
+ do step_5h
693
+ do step_5j
694
+ do step_5i
695
+ do step_5k
696
+ do step_5l
697
+ do step_5m
698
+ do step_6
699
+ do step_7
700
700
  )
701
701
  )
@@ -45,12 +45,14 @@ define mark_regions as (
45
45
 
46
46
  $p1 = limit
47
47
 
48
- (v goto non-v
49
- among('cs' 'gy' 'ly' 'ny' 'sz' 'ty' 'zs' 'dzs') or next
50
- setmark p1)
51
- or
52
-
53
- (non-v gopast v setmark p1)
48
+ (
49
+ // Word start with a vowel, start R1 after: V...C
50
+ v
51
+ do (gopast non-v setmark p1)
52
+ ) or (
53
+ // Word start with a non-vowel, start R1 after: C...V
54
+ gopast v setmark p1
55
+ )
54
56
  )
55
57
 
56
58
  backwardmode (