mittens 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG.md +3 -0
- data/Gemfile +7 -0
- data/LICENSE.txt +30 -0
- data/README.md +62 -0
- data/Rakefile +21 -0
- data/ext/mittens/ext.c +96 -0
- data/ext/mittens/extconf.rb +12 -0
- data/lib/mittens/version.rb +3 -0
- data/lib/mittens.rb +7 -0
- data/mittens.gemspec +22 -0
- data/vendor/snowball/.gitignore +26 -0
- data/vendor/snowball/.travis.yml +112 -0
- data/vendor/snowball/AUTHORS +27 -0
- data/vendor/snowball/CONTRIBUTING.rst +216 -0
- data/vendor/snowball/COPYING +29 -0
- data/vendor/snowball/GNUmakefile +742 -0
- data/vendor/snowball/NEWS +754 -0
- data/vendor/snowball/README.rst +37 -0
- data/vendor/snowball/ada/README.md +74 -0
- data/vendor/snowball/ada/generate/generate.adb +83 -0
- data/vendor/snowball/ada/generate.gpr +21 -0
- data/vendor/snowball/ada/src/stemmer.adb +620 -0
- data/vendor/snowball/ada/src/stemmer.ads +219 -0
- data/vendor/snowball/ada/src/stemwords.adb +70 -0
- data/vendor/snowball/ada/stemmer_config.gpr +83 -0
- data/vendor/snowball/ada/stemwords.gpr +21 -0
- data/vendor/snowball/algorithms/arabic.sbl +558 -0
- data/vendor/snowball/algorithms/armenian.sbl +301 -0
- data/vendor/snowball/algorithms/basque.sbl +149 -0
- data/vendor/snowball/algorithms/catalan.sbl +202 -0
- data/vendor/snowball/algorithms/danish.sbl +93 -0
- data/vendor/snowball/algorithms/dutch.sbl +164 -0
- data/vendor/snowball/algorithms/english.sbl +229 -0
- data/vendor/snowball/algorithms/finnish.sbl +197 -0
- data/vendor/snowball/algorithms/french.sbl +254 -0
- data/vendor/snowball/algorithms/german.sbl +139 -0
- data/vendor/snowball/algorithms/german2.sbl +145 -0
- data/vendor/snowball/algorithms/greek.sbl +701 -0
- data/vendor/snowball/algorithms/hindi.sbl +323 -0
- data/vendor/snowball/algorithms/hungarian.sbl +241 -0
- data/vendor/snowball/algorithms/indonesian.sbl +192 -0
- data/vendor/snowball/algorithms/irish.sbl +149 -0
- data/vendor/snowball/algorithms/italian.sbl +202 -0
- data/vendor/snowball/algorithms/kraaij_pohlmann.sbl +240 -0
- data/vendor/snowball/algorithms/lithuanian.sbl +373 -0
- data/vendor/snowball/algorithms/lovins.sbl +208 -0
- data/vendor/snowball/algorithms/nepali.sbl +92 -0
- data/vendor/snowball/algorithms/norwegian.sbl +80 -0
- data/vendor/snowball/algorithms/porter.sbl +139 -0
- data/vendor/snowball/algorithms/portuguese.sbl +218 -0
- data/vendor/snowball/algorithms/romanian.sbl +236 -0
- data/vendor/snowball/algorithms/russian.sbl +221 -0
- data/vendor/snowball/algorithms/serbian.sbl +2379 -0
- data/vendor/snowball/algorithms/spanish.sbl +230 -0
- data/vendor/snowball/algorithms/swedish.sbl +72 -0
- data/vendor/snowball/algorithms/tamil.sbl +405 -0
- data/vendor/snowball/algorithms/turkish.sbl +470 -0
- data/vendor/snowball/algorithms/yiddish.sbl +460 -0
- data/vendor/snowball/charsets/ISO-8859-2.sbl +98 -0
- data/vendor/snowball/charsets/KOI8-R.sbl +74 -0
- data/vendor/snowball/charsets/cp850.sbl +130 -0
- data/vendor/snowball/compiler/analyser.c +1547 -0
- data/vendor/snowball/compiler/driver.c +615 -0
- data/vendor/snowball/compiler/generator.c +1748 -0
- data/vendor/snowball/compiler/generator_ada.c +1702 -0
- data/vendor/snowball/compiler/generator_csharp.c +1322 -0
- data/vendor/snowball/compiler/generator_go.c +1278 -0
- data/vendor/snowball/compiler/generator_java.c +1313 -0
- data/vendor/snowball/compiler/generator_js.c +1316 -0
- data/vendor/snowball/compiler/generator_pascal.c +1387 -0
- data/vendor/snowball/compiler/generator_python.c +1337 -0
- data/vendor/snowball/compiler/generator_rust.c +1295 -0
- data/vendor/snowball/compiler/header.h +418 -0
- data/vendor/snowball/compiler/space.c +286 -0
- data/vendor/snowball/compiler/syswords.h +86 -0
- data/vendor/snowball/compiler/syswords2.h +13 -0
- data/vendor/snowball/compiler/tokeniser.c +567 -0
- data/vendor/snowball/csharp/.gitignore +8 -0
- data/vendor/snowball/csharp/Snowball/Algorithms/.gitignore +1 -0
- data/vendor/snowball/csharp/Snowball/Among.cs +108 -0
- data/vendor/snowball/csharp/Snowball/AssemblyInfo.cs +36 -0
- data/vendor/snowball/csharp/Snowball/Stemmer.cs +660 -0
- data/vendor/snowball/csharp/Stemwords/App.config +6 -0
- data/vendor/snowball/csharp/Stemwords/Program.cs +114 -0
- data/vendor/snowball/doc/TODO +12 -0
- data/vendor/snowball/doc/libstemmer_c_README +148 -0
- data/vendor/snowball/doc/libstemmer_csharp_README +53 -0
- data/vendor/snowball/doc/libstemmer_java_README +67 -0
- data/vendor/snowball/doc/libstemmer_js_README +48 -0
- data/vendor/snowball/doc/libstemmer_python_README +113 -0
- data/vendor/snowball/examples/stemwords.c +204 -0
- data/vendor/snowball/go/README.md +55 -0
- data/vendor/snowball/go/among.go +16 -0
- data/vendor/snowball/go/env.go +403 -0
- data/vendor/snowball/go/stemwords/generate.go +68 -0
- data/vendor/snowball/go/stemwords/main.go +68 -0
- data/vendor/snowball/go/util.go +34 -0
- data/vendor/snowball/iconv.py +50 -0
- data/vendor/snowball/include/libstemmer.h +78 -0
- data/vendor/snowball/java/org/tartarus/snowball/Among.java +29 -0
- data/vendor/snowball/java/org/tartarus/snowball/SnowballProgram.java +381 -0
- data/vendor/snowball/java/org/tartarus/snowball/SnowballStemmer.java +8 -0
- data/vendor/snowball/java/org/tartarus/snowball/TestApp.java +75 -0
- data/vendor/snowball/javascript/base-stemmer.js +294 -0
- data/vendor/snowball/javascript/stemwords.js +106 -0
- data/vendor/snowball/libstemmer/libstemmer_c.in +96 -0
- data/vendor/snowball/libstemmer/mkalgorithms.pl +90 -0
- data/vendor/snowball/libstemmer/mkmodules.pl +267 -0
- data/vendor/snowball/libstemmer/modules.txt +63 -0
- data/vendor/snowball/libstemmer/test.c +34 -0
- data/vendor/snowball/pascal/.gitignore +4 -0
- data/vendor/snowball/pascal/SnowballProgram.pas +430 -0
- data/vendor/snowball/pascal/generate.pl +23 -0
- data/vendor/snowball/pascal/stemwords-template.dpr +78 -0
- data/vendor/snowball/python/MANIFEST.in +7 -0
- data/vendor/snowball/python/create_init.py +54 -0
- data/vendor/snowball/python/setup.cfg +6 -0
- data/vendor/snowball/python/setup.py +81 -0
- data/vendor/snowball/python/snowballstemmer/among.py +13 -0
- data/vendor/snowball/python/snowballstemmer/basestemmer.py +323 -0
- data/vendor/snowball/python/stemwords.py +101 -0
- data/vendor/snowball/python/testapp.py +28 -0
- data/vendor/snowball/runtime/api.c +58 -0
- data/vendor/snowball/runtime/api.h +32 -0
- data/vendor/snowball/runtime/header.h +61 -0
- data/vendor/snowball/runtime/utilities.c +513 -0
- data/vendor/snowball/rust/Cargo.toml +7 -0
- data/vendor/snowball/rust/build.rs +55 -0
- data/vendor/snowball/rust/rust-pre-1.27-compat.patch +30 -0
- data/vendor/snowball/rust/src/main.rs +102 -0
- data/vendor/snowball/rust/src/snowball/algorithms/mod.rs +2 -0
- data/vendor/snowball/rust/src/snowball/among.rs +6 -0
- data/vendor/snowball/rust/src/snowball/mod.rs +6 -0
- data/vendor/snowball/rust/src/snowball/snowball_env.rs +421 -0
- data/vendor/snowball/tests/stemtest.c +95 -0
- metadata +178 -0
@@ -0,0 +1,701 @@
|
|
1
|
+
// A stemmer for Modern Greek language, based on:
|
2
|
+
//
|
3
|
+
// Ntais, Georgios. Development of a Stemmer for the Greek
|
4
|
+
// Language. Diss. Royal Institute of Technology, 2006.
|
5
|
+
// https://sais.se/mthprize/2007/ntais2007.pdf
|
6
|
+
//
|
7
|
+
// Saroukos, Spyridon. Enhancing a Greek language stemmer.
|
8
|
+
// University of Tampere, 2008.
|
9
|
+
// https://tampub.uta.fi/bitstream/handle/10024/80480/gradu03463.pdf
|
10
|
+
|
11
|
+
stringescapes {}
|
12
|
+
|
13
|
+
stringdef a '{U+03B1}' // alpha
|
14
|
+
stringdef v '{U+03B2}' // beta
|
15
|
+
stringdef g '{U+03B3}' // gamma
|
16
|
+
stringdef d '{U+03B4}' // delta
|
17
|
+
stringdef e '{U+03B5}' // epsilon
|
18
|
+
stringdef z '{U+03B6}' // zeta
|
19
|
+
stringdef i '{U+03B7}' // eta
|
20
|
+
stringdef th '{U+03B8}' // theta
|
21
|
+
stringdef y '{U+03B9}' // iota
|
22
|
+
stringdef k '{U+03BA}' // kappa
|
23
|
+
stringdef l '{U+03BB}' // lamda
|
24
|
+
stringdef m '{U+03BC}' // mu
|
25
|
+
stringdef n '{U+03BD}' // nu
|
26
|
+
stringdef x '{U+03BE}' // xi
|
27
|
+
stringdef o '{U+03BF}' // omicron
|
28
|
+
stringdef p '{U+03C0}' // pi
|
29
|
+
stringdef r '{U+03C1}' // rho
|
30
|
+
stringdef ss '{U+03C2}' // sigma final
|
31
|
+
stringdef s '{U+03C3}' // sigma
|
32
|
+
stringdef t '{U+03C4}' // tau
|
33
|
+
stringdef u '{U+03C5}' // upsilon
|
34
|
+
stringdef f '{U+03C6}' // phi
|
35
|
+
stringdef ch '{U+03C7}' // chi
|
36
|
+
stringdef ps '{U+03C8}' // psi
|
37
|
+
stringdef oo '{U+03C9}' // omega
|
38
|
+
|
39
|
+
stringdef A '{U+0391}' // Alpha
|
40
|
+
stringdef V '{U+0392}' // Beta
|
41
|
+
stringdef G '{U+0393}' // Gamma
|
42
|
+
stringdef D '{U+0394}' // Delta
|
43
|
+
stringdef E '{U+0395}' // Epsilon
|
44
|
+
stringdef Z '{U+0396}' // Zeta
|
45
|
+
stringdef I '{U+0397}' // Eta
|
46
|
+
stringdef Th '{U+0398}' // Theta
|
47
|
+
stringdef Y '{U+0399}' // Iota
|
48
|
+
stringdef K '{U+039A}' // Kappa
|
49
|
+
stringdef L '{U+039B}' // Lamda
|
50
|
+
stringdef M '{U+039C}' // Mu
|
51
|
+
stringdef N '{U+039D}' // Nu
|
52
|
+
stringdef X '{U+039E}' // Xi
|
53
|
+
stringdef O '{U+039F}' // Omicron
|
54
|
+
stringdef P '{U+03A0}' // Pi
|
55
|
+
stringdef R '{U+03A1}' // Rho
|
56
|
+
stringdef S '{U+03A3}' // Sigma
|
57
|
+
stringdef T '{U+03A4}' // Tau
|
58
|
+
stringdef U '{U+03A5}' // Upsilon
|
59
|
+
stringdef F '{U+03A6}' // Phi
|
60
|
+
stringdef Ch '{U+03A7}' // Chi
|
61
|
+
stringdef Ps '{U+03A8}' // Psi
|
62
|
+
stringdef Oo '{U+03A9}' // Omega
|
63
|
+
|
64
|
+
stringdef Y: '{U+03AA}' // Iota with dialytika
|
65
|
+
stringdef U: '{U+03AB}' // Upsilon with dialytika
|
66
|
+
|
67
|
+
stringdef a' '{U+03AC}' // alpha with tonos
|
68
|
+
stringdef e' '{U+03AD}' // epsilon with tonos
|
69
|
+
stringdef i' '{U+03AE}' // eta with tonos
|
70
|
+
stringdef y' '{U+03AF}' // iota with tonos
|
71
|
+
stringdef o' '{U+03CC}' // omicron with tonos
|
72
|
+
stringdef u' '{U+03CD}' // upsilon with tonos
|
73
|
+
stringdef oo' '{U+03CE}' // omega with tonos
|
74
|
+
|
75
|
+
stringdef i:' '{U+0390}' // iota with dialytika and tonos
|
76
|
+
stringdef u:' '{U+03B0}' // upsilon with dialytika and tonos
|
77
|
+
|
78
|
+
stringdef i: '{U+03CA}' // iota with dialytika
|
79
|
+
stringdef u: '{U+03CB}' // upsilon with dialytika
|
80
|
+
|
81
|
+
stringdef A' '{U+0386}' // Alpha with tonos
|
82
|
+
stringdef E' '{U+0388}' // Epsilon with tonos
|
83
|
+
stringdef I' '{U+0389}' // Eta with tonos
|
84
|
+
stringdef Y' '{U+038A}' // Iota with tonos
|
85
|
+
stringdef O' '{U+038C}' // Omicron with tonos
|
86
|
+
stringdef U' '{U+038E}' // Upsilon with tonos
|
87
|
+
stringdef OO' '{U+038F}' // Omega with tonos
|
88
|
+
|
89
|
+
externals ( stem )
|
90
|
+
|
91
|
+
booleans ( test1 )
|
92
|
+
|
93
|
+
groupings ( v v2 )
|
94
|
+
|
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 )
|
103
|
+
|
104
|
+
define v '{a}{e}{i}{y}{o}{u}{oo}'
|
105
|
+
define v2 '{a}{e}{i}{y}{o}{oo}'
|
106
|
+
|
107
|
+
backwardmode (
|
108
|
+
define has_min_length as (
|
109
|
+
$(len >= 3)
|
110
|
+
)
|
111
|
+
|
112
|
+
define tolower as (
|
113
|
+
repeat (
|
114
|
+
[substring] among (
|
115
|
+
'{A}' (<- '{a}')
|
116
|
+
'{V}' (<- '{v}')
|
117
|
+
'{G}' (<- '{g}')
|
118
|
+
'{D}' (<- '{d}')
|
119
|
+
'{E}' (<- '{e}')
|
120
|
+
'{Z}' (<- '{z}')
|
121
|
+
'{I}' (<- '{i}')
|
122
|
+
'{Th}' (<- '{th}')
|
123
|
+
'{Y}' (<- '{y}')
|
124
|
+
'{K}' (<- '{k}')
|
125
|
+
'{L}' (<- '{l}')
|
126
|
+
'{M}' (<- '{m}')
|
127
|
+
'{N}' (<- '{n}')
|
128
|
+
'{X}' (<- '{x}')
|
129
|
+
'{O}' (<- '{o}')
|
130
|
+
'{P}' (<- '{p}')
|
131
|
+
'{R}' (<- '{r}')
|
132
|
+
'{S}' (<- '{s}')
|
133
|
+
'{T}' (<- '{t}')
|
134
|
+
'{U}' (<- '{u}')
|
135
|
+
'{F}' (<- '{f}')
|
136
|
+
'{Ch}' (<- '{ch}')
|
137
|
+
'{Ps}' (<- '{ps}')
|
138
|
+
'{Oo}' (<- '{oo}')
|
139
|
+
'{Y:}' (<- '{y}')
|
140
|
+
'{U:}' (<- '{u}')
|
141
|
+
'{a'}' (<- '{a}')
|
142
|
+
'{e'}' (<- '{e}')
|
143
|
+
'{i'}' (<- '{i}')
|
144
|
+
'{y'}' (<- '{y}')
|
145
|
+
'{o'}' (<- '{o}')
|
146
|
+
'{u'}' (<- '{u}')
|
147
|
+
'{oo'}' (<- '{oo}')
|
148
|
+
'{i:'}' (<- '{i}')
|
149
|
+
'{u:'}' (<- '{u}')
|
150
|
+
'{i:}' (<- '{i}')
|
151
|
+
'{u:}' (<- '{u}')
|
152
|
+
'{A'}' (<- '{a}')
|
153
|
+
'{E'}' (<- '{e}')
|
154
|
+
'{I'}' (<- '{i}')
|
155
|
+
'{Y'}' (<- '{y}')
|
156
|
+
'{O'}' (<- '{o}')
|
157
|
+
'{U'}' (<- '{u}')
|
158
|
+
'{OO'}' (<- '{oo}')
|
159
|
+
'{ss}' (<- '{s}')
|
160
|
+
'' (next)
|
161
|
+
)
|
162
|
+
)
|
163
|
+
)
|
164
|
+
|
165
|
+
define step1 as (
|
166
|
+
[substring] among (
|
167
|
+
'{f}{a}{g}{y}{a}' '{f}{a}{g}{y}{o}{u}' '{f}{a}{g}{y}{oo}{n}' (<- '{f}{a}')
|
168
|
+
'{s}{k}{a}{g}{y}{a}' '{s}{k}{a}{g}{y}{o}{u}' '{s}{k}{a}{g}{y}{oo}{n}' (<- '{s}{k}{a}')
|
169
|
+
'{o}{l}{o}{g}{y}{o}{u}' '{o}{l}{o}{g}{y}{a}' '{o}{l}{o}{g}{y}{oo}{n}' (<- '{o}{l}{o}')
|
170
|
+
'{s}{o}{g}{y}{o}{u}' '{s}{o}{g}{y}{a}' '{s}{o}{g}{y}{oo}{n}' (<- '{s}{o}')
|
171
|
+
'{t}{a}{t}{o}{g}{y}{a}' '{t}{a}{t}{o}{g}{y}{o}{u}' '{t}{a}{t}{o}{g}{y}{oo}{n}' (<- '{t}{a}{t}{o}')
|
172
|
+
'{k}{r}{e}{a}{s}' '{k}{r}{e}{a}{t}{o}{s}' '{k}{r}{e}{a}{t}{a}' '{k}{r}{e}{a}{t}{oo}{n}' (<- '{k}{r}{e}')
|
173
|
+
'{p}{e}{r}{a}{s}' '{p}{e}{r}{a}{t}{o}{s}' '{p}{e}{r}{a}{t}{i}' '{p}{e}{r}{a}{t}{a}' '{p}{e}{r}{a}{t}{oo}{n}' (<- '{p}{e}{r}')
|
174
|
+
'{t}{e}{r}{a}{s}' '{t}{e}{r}{a}{t}{o}{s}' '{t}{e}{r}{a}{t}{a}' '{t}{e}{r}{a}{t}{oo}{n}' (<- '{t}{e}{r}')
|
175
|
+
'{f}{oo}{s}' '{f}{oo}{t}{o}{s}' '{f}{oo}{t}{a}' '{f}{oo}{t}{oo}{n}' (<- '{f}{oo}')
|
176
|
+
'{k}{a}{th}{e}{s}{t}{oo}{s}' '{k}{a}{th}{e}{s}{t}{oo}{t}{o}{s}' '{k}{a}{th}{e}{s}{t}{oo}{t}{a}' '{k}{a}{th}{e}{s}{t}{oo}{t}{oo}{n}' (<- '{k}{a}{th}{e}{s}{t}')
|
177
|
+
'{g}{e}{g}{o}{n}{o}{s}' '{g}{e}{g}{o}{n}{o}{t}{o}{s}' '{g}{e}{g}{o}{n}{o}{t}{a}' '{g}{e}{g}{o}{n}{o}{t}{oo}{n}' (<- '{g}{e}{g}{o}{n}')
|
178
|
+
)
|
179
|
+
unset test1
|
180
|
+
)
|
181
|
+
|
182
|
+
define steps1 as (
|
183
|
+
[substring] among (
|
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
|
+
'{y}{z}{o}{u}{m}{e}' '{y}{z}{e}{t}{e}' '{y}{z}{o}{u}{n}' '{y}{z}{o}{u}{n}{e}' (
|
186
|
+
delete
|
187
|
+
unset test1
|
188
|
+
([] substring atlimit among (
|
189
|
+
'{a}{n}{a}{m}{p}{a}' '{e}{m}{p}{a}' '{e}{p}{a}' '{x}{a}{n}{a}{p}{a}' '{p}{a}' '{p}{e}{r}{y}{p}{a}' '{a}{th}{r}{o}' '{s}{u}{n}{a}{th}{r}{o}' '{d}{a}{n}{e}'
|
190
|
+
(<- '{y}')
|
191
|
+
'{m}{a}{r}{k}' '{k}{o}{r}{n}' '{a}{m}{p}{a}{r}' '{a}{r}{r}' '{v}{a}{th}{u}{r}{y}' '{v}{a}{r}{k}' '{v}' '{v}{o}{l}{v}{o}{r}' '{g}{k}{r}'
|
192
|
+
'{g}{l}{u}{k}{o}{r}' '{g}{l}{u}{k}{u}{r}' '{y}{m}{p}' '{l}' '{l}{o}{u}' '{m}{a}{r}' '{m}' '{p}{r}' '{m}{p}{r}' '{p}{o}{l}{u}{r}' '{p}'
|
193
|
+
'{r}' '{p}{y}{p}{e}{r}{o}{r}'
|
194
|
+
(<- '{y}{z}')
|
195
|
+
))
|
196
|
+
)
|
197
|
+
)
|
198
|
+
)
|
199
|
+
|
200
|
+
define steps2 as (
|
201
|
+
[substring] among (
|
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
|
+
delete
|
204
|
+
unset test1
|
205
|
+
[] substring atlimit among (
|
206
|
+
'{a}{l}' '{v}{y}' '{e}{n}' '{u}{ps}' '{l}{y}' '{z}{oo}' '{s}' '{ch}' (<- '{oo}{n}')
|
207
|
+
)
|
208
|
+
)
|
209
|
+
)
|
210
|
+
)
|
211
|
+
|
212
|
+
define steps3 as (
|
213
|
+
[substring] among (
|
214
|
+
'{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
|
+
delete
|
216
|
+
unset test1
|
217
|
+
('{y}{s}{a}' atlimit <- '{y}{s}') or
|
218
|
+
([] substring atlimit among (
|
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
|
+
'{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}'
|
221
|
+
'{a}{p}{e}{k}{l}{e}' '{e}{k}{l}{e}' '{p}{e}'
|
222
|
+
(<- '{y}')
|
223
|
+
'{a}{n}' '{a}{f}' '{g}{e}' '{g}{y}{g}{a}{n}{t}{o}{a}{f}' '{g}{k}{e}' '{d}{i}{m}{o}{k}{r}{a}{t}' '{k}{o}{m}' '{g}{k}' '{m}' '{p}'
|
224
|
+
'{p}{o}{u}{k}{a}{m}' '{o}{l}{o}' '{l}{a}{r}'
|
225
|
+
(<- '{y}{s}')
|
226
|
+
))
|
227
|
+
)
|
228
|
+
)
|
229
|
+
)
|
230
|
+
|
231
|
+
define steps4 as (
|
232
|
+
[substring] among (
|
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
|
+
delete
|
235
|
+
unset test1
|
236
|
+
[] substring atlimit among (
|
237
|
+
'{a}{n}{a}{m}{p}{a}' '{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}' '{a}{th}{r}{o}'
|
238
|
+
'{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}' '{a}{p}{e}{k}{l}{e}'
|
239
|
+
'{e}{k}{l}{e}' '{p}{e}'
|
240
|
+
(<- '{y}')
|
241
|
+
)
|
242
|
+
)
|
243
|
+
)
|
244
|
+
)
|
245
|
+
|
246
|
+
define steps5 as (
|
247
|
+
[substring] among (
|
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
|
+
'{y}{s}{t}{a}' '{y}{s}{t}{e}{s}' (
|
250
|
+
delete
|
251
|
+
unset test1
|
252
|
+
([] substring atlimit among (
|
253
|
+
'{d}{a}{n}{e}' '{s}{u}{n}{a}{th}{r}{o}' '{k}{l}{e}' '{s}{e}' '{e}{s}{oo}{k}{l}{e}' '{a}{s}{e}' '{p}{l}{e}'
|
254
|
+
(<- '{y}')
|
255
|
+
'{m}' '{p}' '{a}{p}' '{a}{r}' '{i}{d}' '{k}{t}' '{s}{k}' '{s}{ch}' '{u}{ps}' '{f}{a}' '{ch}{r}' '{ch}{t}' '{a}{k}{t}'
|
256
|
+
'{a}{o}{r}' '{a}{s}{ch}' '{a}{t}{a}' '{a}{ch}{n}' '{a}{ch}{t}' '{g}{e}{m}' '{g}{u}{r}' '{e}{m}{p}' '{e}{u}{p}' '{e}{ch}{th}' '{i}{f}{a}'
|
257
|
+
'{k}{a}{th}' '{k}{a}{k}' '{k}{u}{l}' '{l}{u}{g}' '{m}{a}{k}' '{m}{e}{g}' '{t}{a}{ch}' '{f}{y}{l}' '{ch}{oo}{r}'
|
258
|
+
(<- '{y}{s}{t}')
|
259
|
+
))
|
260
|
+
)
|
261
|
+
)
|
262
|
+
)
|
263
|
+
|
264
|
+
define steps6 as (
|
265
|
+
[substring] among (
|
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
|
+
delete
|
268
|
+
unset test1
|
269
|
+
([] substring atlimit among (
|
270
|
+
'{s}{e}' '{m}{e}{t}{a}{s}{e}' '{m}{y}{k}{r}{o}{s}{e}' '{e}{g}{k}{l}{e}' '{a}{p}{o}{k}{l}{e}'
|
271
|
+
(<- '{y}{s}{m}')
|
272
|
+
'{d}{a}{n}{e}' '{a}{n}{t}{y}{d}{a}{n}{e}'
|
273
|
+
(<- '{y}')
|
274
|
+
)) or
|
275
|
+
([substring] among (
|
276
|
+
'{a}{g}{n}{oo}{s}{t}{y}{k}' (<- '{a}{g}{n}{oo}{s}{t}')
|
277
|
+
'{a}{t}{o}{m}{y}{k}' (<- '{a}{t}{o}{m}')
|
278
|
+
'{g}{n}{oo}{s}{t}{y}{k}' (<- '{g}{n}{oo}{s}{t}')
|
279
|
+
'{e}{th}{n}{y}{k}' (<- '{e}{th}{n}')
|
280
|
+
'{e}{k}{l}{e}{k}{t}{y}{k}' (<- '{e}{k}{l}{e}{k}{t}')
|
281
|
+
'{s}{k}{e}{p}{t}{y}{k}' (<- '{s}{k}{e}{p}{t}')
|
282
|
+
'{t}{o}{p}{y}{k}' (<- '{t}{o}{p}')
|
283
|
+
'{a}{l}{e}{x}{a}{n}{d}{r}{y}{n}' (<- '{a}{l}{e}{x}{a}{n}{d}{r}')
|
284
|
+
'{v}{u}{z}{a}{n}{t}{y}{n}' (<- '{v}{u}{z}{a}{n}{t}')
|
285
|
+
'{th}{e}{a}{t}{r}{y}{n}' (<- '{th}{e}{a}{t}{r}')
|
286
|
+
))
|
287
|
+
)
|
288
|
+
)
|
289
|
+
)
|
290
|
+
|
291
|
+
define steps7 as (
|
292
|
+
[substring] among (
|
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
|
+
delete
|
295
|
+
unset test1
|
296
|
+
[] substring atlimit among (
|
297
|
+
'{s}' '{ch}'
|
298
|
+
(<- '{a}{r}{a}{k}')
|
299
|
+
)
|
300
|
+
)
|
301
|
+
)
|
302
|
+
)
|
303
|
+
|
304
|
+
define steps8 as (
|
305
|
+
[substring] among (
|
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
|
+
delete
|
308
|
+
unset test1
|
309
|
+
([] substring atlimit among (
|
310
|
+
'{v}{a}{m}{v}' '{v}{r}' '{k}{a}{y}{m}' '{k}{o}{n}' '{k}{o}{r}' '{l}{a}{v}{r}' '{l}{o}{u}{l}' '{m}{e}{r}' '{m}{o}{u}{s}{t}'
|
311
|
+
'{n}{a}{g}{k}{a}{s}' '{p}{l}' '{r}' '{r}{u}' '{s}' '{s}{k}' '{s}{o}{k}' '{s}{p}{a}{n}' '{t}{z}' '{f}{a}{r}{m}' '{ch}' '{k}{a}{p}{a}{k}'
|
312
|
+
'{a}{l}{y}{s}{f}' '{a}{m}{v}{r}' '{a}{n}{th}{r}' '{k}' '{f}{u}{l}' '{k}{a}{t}{r}{a}{p}' '{k}{l}{y}{m}' '{m}{a}{l}' '{s}{l}{o}{v}' '{f}'
|
313
|
+
'{s}{f}' '{t}{s}{e}{ch}{o}{s}{l}{o}{v}'
|
314
|
+
(<- '{a}{k}')
|
315
|
+
'{v}' '{v}{a}{l}' '{g}{y}{a}{n}' '{g}{l}' '{z}' '{i}{g}{o}{u}{m}{e}{n}' '{k}{a}{r}{d}' '{m}{a}{k}{r}{u}{n}' '{n}{u}{f}'
|
316
|
+
'{p}{a}{t}{e}{r}' '{p}' '{t}{o}{s}' '{t}{r}{y}{p}{o}{l}'
|
317
|
+
// We're implementing the revised algorithm from the Saroukos paper
|
318
|
+
// which also lists '{k}{o}{n}' and '{s}{k}' here, but these are
|
319
|
+
// also listed just above in the `Add {a}{k} in the end` exception.
|
320
|
+
// It seems they're redundant here, so we omit them (otherwise the
|
321
|
+
// Snowball compiler would report an error).
|
322
|
+
(<- '{y}{t}{s}')
|
323
|
+
)) or
|
324
|
+
([] '{k}{o}{r}' <- '{y}{t}{s}')
|
325
|
+
)
|
326
|
+
)
|
327
|
+
)
|
328
|
+
|
329
|
+
define steps9 as (
|
330
|
+
[substring] among (
|
331
|
+
'{y}{d}{y}{o}' '{y}{d}{y}{a}' '{y}{d}{y}{oo}{n}' (
|
332
|
+
delete
|
333
|
+
unset test1
|
334
|
+
([] substring atlimit among (
|
335
|
+
'{a}{y}{f}{n}' '{y}{r}' '{o}{l}{o}' '{ps}{a}{l}' (<- '{y}{d}')
|
336
|
+
)) or
|
337
|
+
([] substring among (
|
338
|
+
'{e}' '{p}{a}{y}{ch}{n}' (<- '{y}{d}')
|
339
|
+
))
|
340
|
+
)
|
341
|
+
)
|
342
|
+
)
|
343
|
+
|
344
|
+
define steps10 as (
|
345
|
+
[substring] among (
|
346
|
+
'{y}{s}{k}{o}{s}' '{y}{s}{k}{o}{u}' '{y}{s}{k}{o}' '{y}{s}{k}{e}' (
|
347
|
+
delete
|
348
|
+
unset test1
|
349
|
+
[] substring atlimit among (
|
350
|
+
'{d}' '{y}{v}' '{m}{i}{n}' '{r}' '{f}{r}{a}{g}{k}' '{l}{u}{k}' '{o}{v}{e}{l}'
|
351
|
+
(<- '{y}{s}{k}')
|
352
|
+
)
|
353
|
+
)
|
354
|
+
)
|
355
|
+
)
|
356
|
+
|
357
|
+
define step2a as (
|
358
|
+
[substring] among (
|
359
|
+
'{a}{d}{e}{s}' '{a}{d}{oo}{n}' (delete)
|
360
|
+
)
|
361
|
+
not (substring among (
|
362
|
+
'{o}{k}' '{m}{a}{m}' '{m}{a}{n}' '{m}{p}{a}{m}{p}' '{p}{a}{t}{e}{r}' '{g}{y}{a}{g}{y}' '{n}{t}{a}{n}{t}' '{k}{u}{r}' '{th}{e}{y}' '{p}{e}{th}{e}{r}'
|
363
|
+
))
|
364
|
+
insert '{a}{d}'
|
365
|
+
)
|
366
|
+
|
367
|
+
define step2b as (
|
368
|
+
[substring] among (
|
369
|
+
'{e}{d}{e}{s}' '{e}{d}{oo}{n}' (delete)
|
370
|
+
)
|
371
|
+
[] substring among (
|
372
|
+
'{o}{p}' '{y}{p}' '{e}{m}{p}' '{u}{p}' '{g}{i}{p}' '{d}{a}{p}' '{k}{r}{a}{s}{p}' '{m}{y}{l}' (<- '{e}{d}')
|
373
|
+
)
|
374
|
+
)
|
375
|
+
|
376
|
+
define step2c as (
|
377
|
+
[substring] among (
|
378
|
+
'{o}{u}{d}{e}{s}' '{o}{u}{d}{oo}{n}' (delete)
|
379
|
+
)
|
380
|
+
[] substring among (
|
381
|
+
'{a}{r}{k}' '{k}{a}{l}{y}{a}{k}' '{p}{e}{t}{a}{l}' '{l}{y}{ch}' '{p}{l}{e}{x}' '{s}{k}' '{s}' '{f}{l}' '{f}{r}' '{v}{e}{l}' '{l}{o}{u}{l}' '{ch}{n}'
|
382
|
+
'{s}{p}' '{t}{r}{a}{g}' '{f}{e}' (<- '{o}{u}{d}')
|
383
|
+
)
|
384
|
+
)
|
385
|
+
|
386
|
+
define step2d as (
|
387
|
+
[substring] among (
|
388
|
+
'{e}{oo}{s}' '{e}{oo}{n}' (delete unset test1)
|
389
|
+
)
|
390
|
+
[] substring atlimit among (
|
391
|
+
'{th}' '{d}' '{e}{l}' '{g}{a}{l}' '{n}' '{p}' '{y}{d}' '{p}{a}{r}' (<- '{e}')
|
392
|
+
)
|
393
|
+
)
|
394
|
+
|
395
|
+
define step3 as (
|
396
|
+
[substring] among (
|
397
|
+
'{y}{a}' '{y}{o}{u}' '{y}{oo}{n}' (delete unset test1)
|
398
|
+
)
|
399
|
+
([] v <- '{y}')
|
400
|
+
)
|
401
|
+
|
402
|
+
define step4 as (
|
403
|
+
[substring] among (
|
404
|
+
'{y}{k}{a}' '{y}{k}{o}' '{y}{k}{o}{u}' '{y}{k}{oo}{n}' (delete unset test1)
|
405
|
+
)
|
406
|
+
([] v <- '{y}{k}') or
|
407
|
+
[] substring atlimit among (
|
408
|
+
'{a}{l}' '{a}{d}' '{e}{n}{d}' '{a}{m}{a}{n}' '{a}{m}{m}{o}{ch}{a}{l}' '{i}{th}' '{a}{n}{i}{th}' '{a}{n}{t}{y}{d}' '{f}{u}{s}' '{v}{r}{oo}{m}' '{g}{e}{r}'
|
409
|
+
'{e}{x}{oo}{d}' '{k}{a}{l}{p}' '{k}{a}{l}{l}{y}{n}' '{k}{a}{t}{a}{d}' '{m}{o}{u}{l}' '{m}{p}{a}{n}' '{m}{p}{a}{g}{y}{a}{t}' '{m}{p}{o}{l}' '{m}{p}{o}{s}'
|
410
|
+
'{n}{y}{t}' '{x}{y}{k}' '{s}{u}{n}{o}{m}{i}{l}' '{p}{e}{t}{s}' '{p}{y}{t}{s}' '{p}{y}{k}{a}{n}{t}' '{p}{l}{y}{a}{t}{s}' '{p}{o}{s}{t}{e}{l}{n}' '{p}{r}{oo}{t}{o}{d}'
|
411
|
+
'{s}{e}{r}{t}' '{s}{u}{n}{a}{d}' '{t}{s}{a}{m}' '{u}{p}{o}{d}' '{f}{y}{l}{o}{n}' '{f}{u}{l}{o}{d}' '{ch}{a}{s}'
|
412
|
+
(<- '{y}{k}')
|
413
|
+
)
|
414
|
+
)
|
415
|
+
|
416
|
+
define step5a as (
|
417
|
+
do ('{a}{g}{a}{m}{e}' atlimit <- '{a}{g}{a}{m}')
|
418
|
+
do (
|
419
|
+
[substring] among (
|
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)
|
421
|
+
)
|
422
|
+
)
|
423
|
+
['{a}{m}{e}']
|
424
|
+
delete
|
425
|
+
unset test1
|
426
|
+
[] substring atlimit among (
|
427
|
+
'{a}{n}{a}{p}' '{a}{p}{o}{th}' '{a}{p}{o}{k}' '{a}{p}{o}{s}{t}' '{v}{o}{u}{v}' '{x}{e}{th}' '{o}{u}{l}' '{p}{e}{th}' '{p}{y}{k}{r}' '{p}{o}{t}' '{s}{y}{ch}' '{ch}'
|
428
|
+
(<- '{a}{m}')
|
429
|
+
)
|
430
|
+
)
|
431
|
+
|
432
|
+
define step5b as (
|
433
|
+
do (
|
434
|
+
[substring] among (
|
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}'
|
436
|
+
'{o}{u}{n}{t}{a}{n}{e}' '{i}{k}{a}{n}{e}' '{i}{th}{i}{k}{a}{n}{e}' (
|
437
|
+
delete
|
438
|
+
unset test1
|
439
|
+
[] substring atlimit among (
|
440
|
+
'{t}{r}' '{t}{s}' (<- '{a}{g}{a}{n}')
|
441
|
+
)
|
442
|
+
)
|
443
|
+
)
|
444
|
+
)
|
445
|
+
['{a}{n}{e}']
|
446
|
+
delete
|
447
|
+
unset test1
|
448
|
+
([] v2 <- '{a}{n}') or
|
449
|
+
[] substring atlimit among (
|
450
|
+
'{v}{e}{t}{e}{r}' '{v}{o}{u}{l}{k}' '{v}{r}{a}{ch}{m}' '{g}' '{d}{r}{a}{d}{o}{u}{m}'
|
451
|
+
'{th}' '{k}{a}{l}{p}{o}{u}{z}' '{k}{a}{s}{t}{e}{l}' '{k}{o}{r}{m}{o}{r}' '{l}{a}{o}{p}{l}' '{m}{oo}{a}{m}{e}{th}'
|
452
|
+
'{m}' '{m}{o}{u}{s}{o}{u}{l}{m}' '{n}' '{o}{u}{l}' '{p}' '{p}{e}{l}{e}{k}' '{p}{l}' '{p}{o}{l}{y}{s}'
|
453
|
+
'{p}{o}{r}{t}{o}{l}' '{s}{a}{r}{a}{k}{a}{t}{s}' '{s}{o}{u}{l}{t}' '{t}{s}{a}{r}{l}{a}{t}' '{o}{r}{f}'
|
454
|
+
'{t}{s}{y}{g}{g}' '{t}{s}{o}{p}' '{f}{oo}{t}{o}{s}{t}{e}{f}' '{ch}' '{ps}{u}{ch}{o}{p}{l}' '{a}{g}'
|
455
|
+
'{g}{a}{l}' '{g}{e}{r}' '{d}{e}{k}' '{d}{y}{p}{l}' '{a}{m}{e}{r}{y}{k}{a}{n}' '{o}{u}{r}' '{p}{y}{th}'
|
456
|
+
'{p}{o}{u}{r}{y}{t}' '{s}' '{z}{oo}{n}{t}' '{y}{k}' '{k}{a}{s}{t}' '{k}{o}{p}' '{l}{y}{ch}'
|
457
|
+
'{l}{o}{u}{th}{i}{r}' '{m}{a}{y}{n}{t}' '{m}{e}{l}' '{s}{y}{g}' '{s}{p}' '{s}{t}{e}{g}' '{t}{r}{a}{g}'
|
458
|
+
'{t}{s}{a}{g}' '{f}' '{e}{r}' '{a}{d}{a}{p}' '{a}{th}{y}{g}{g}' '{a}{m}{i}{ch}' '{a}{n}{y}{k}'
|
459
|
+
'{a}{n}{o}{r}{g}' '{a}{p}{i}{g}' '{a}{p}{y}{th}' '{a}{t}{s}{y}{g}{g}' '{v}{a}{s}' '{v}{a}{s}{k}'
|
460
|
+
'{v}{a}{th}{u}{g}{a}{l}' '{v}{y}{o}{m}{i}{ch}' '{v}{r}{a}{ch}{u}{k}' '{d}{y}{a}{t}' '{d}{y}{a}{f}' '{e}{n}{o}{r}{g}'
|
461
|
+
'{th}{u}{s}' '{k}{a}{p}{n}{o}{v}{y}{o}{m}{i}{ch}' '{k}{a}{t}{a}{g}{a}{l}' '{k}{l}{y}{v}' '{k}{o}{y}{l}{a}{r}{f}'
|
462
|
+
'{l}{y}{v}' '{m}{e}{g}{l}{o}{v}{y}{o}{m}{i}{ch}' '{m}{y}{k}{r}{o}{v}{y}{o}{m}{i}{ch}' '{n}{t}{a}{v}'
|
463
|
+
'{x}{i}{r}{o}{k}{l}{y}{v}' '{o}{l}{y}{g}{o}{d}{a}{m}' '{o}{l}{o}{g}{a}{l}' '{p}{e}{n}{t}{a}{r}{f}' '{p}{e}{r}{i}{f}'
|
464
|
+
'{p}{e}{r}{y}{t}{r}' '{p}{l}{a}{t}' '{p}{o}{l}{u}{d}{a}{p}' '{p}{o}{l}{u}{m}{i}{ch}' '{s}{t}{e}{f}' '{t}{a}{v}'
|
465
|
+
'{t}{e}{t}' '{u}{p}{e}{r}{i}{f}' '{u}{p}{o}{k}{o}{p}' '{ch}{a}{m}{i}{l}{o}{d}{a}{p}' '{ps}{i}{l}{o}{t}{a}{v}'
|
466
|
+
(<- '{a}{n}')
|
467
|
+
)
|
468
|
+
)
|
469
|
+
|
470
|
+
define step5c as (
|
471
|
+
do (
|
472
|
+
[substring] among (
|
473
|
+
'{i}{s}{e}{t}{e}' (delete unset test1)
|
474
|
+
)
|
475
|
+
)
|
476
|
+
['{e}{t}{e}']
|
477
|
+
delete
|
478
|
+
unset test1
|
479
|
+
([] v2 <- '{e}{t}') or
|
480
|
+
([] substring among (
|
481
|
+
'{o}{d}' '{a}{y}{r}' '{f}{o}{r}' '{t}{a}{th}' '{d}{y}{a}{th}' '{s}{ch}' '{e}{n}{d}' '{e}{u}{r}' '{t}{y}{th}' '{u}{p}{e}{r}{th}'
|
482
|
+
'{r}{a}{th}' '{e}{n}{th}' '{r}{o}{th}' '{s}{th}' '{p}{u}{r}' '{a}{y}{n}' '{s}{u}{n}{d}' '{s}{u}{n}' '{s}{u}{n}{th}' '{ch}{oo}{r}'
|
483
|
+
'{p}{o}{n}' '{v}{r}' '{k}{a}{th}' '{e}{u}{th}' '{e}{k}{th}' '{n}{e}{t}' '{r}{o}{n}' '{a}{r}{k}' '{v}{a}{r}' '{v}{o}{l}' '{oo}{f}{e}{l}'
|
484
|
+
(<- '{e}{t}')
|
485
|
+
)) or
|
486
|
+
[] substring atlimit among (
|
487
|
+
'{a}{v}{a}{r}' '{v}{e}{n}' '{e}{n}{a}{r}' '{a}{v}{r}' '{a}{d}' '{a}{th}' '{a}{n}' '{a}{p}{l}' '{v}{a}{r}{o}{n}' '{n}{t}{r}' '{s}{k}' '{k}{o}{p}'
|
488
|
+
'{m}{p}{o}{r}' '{n}{y}{f}' '{p}{a}{g}' '{p}{a}{r}{a}{k}{a}{l}' '{s}{e}{r}{p}' '{s}{k}{e}{l}' '{s}{u}{r}{f}' '{t}{o}{k}' '{u}' '{d}' '{e}{m}'
|
489
|
+
'{th}{a}{r}{r}' '{th}'
|
490
|
+
(<- '{e}{t}')
|
491
|
+
)
|
492
|
+
)
|
493
|
+
|
494
|
+
define step5d as (
|
495
|
+
[substring] among (
|
496
|
+
'{o}{n}{t}{a}{s}' '{oo}{n}{t}{a}{s}' (
|
497
|
+
delete
|
498
|
+
unset test1
|
499
|
+
([] '{a}{r}{ch}' atlimit <- '{o}{n}{t}') or
|
500
|
+
([] '{k}{r}{e}' <- '{oo}{n}{t}')
|
501
|
+
)
|
502
|
+
)
|
503
|
+
)
|
504
|
+
|
505
|
+
define step5e as (
|
506
|
+
[substring] among (
|
507
|
+
'{o}{m}{a}{s}{t}{e}' '{y}{o}{m}{a}{s}{t}{e}' (
|
508
|
+
delete
|
509
|
+
unset test1
|
510
|
+
([] '{o}{n}' atlimit <- '{o}{m}{a}{s}{t}')
|
511
|
+
)
|
512
|
+
)
|
513
|
+
)
|
514
|
+
|
515
|
+
define step5f as (
|
516
|
+
do (
|
517
|
+
['{y}{e}{s}{t}{e}']
|
518
|
+
delete
|
519
|
+
unset test1
|
520
|
+
[] substring atlimit among (
|
521
|
+
'{p}' '{a}{p}' '{s}{u}{m}{p}' '{a}{s}{u}{m}{p}' '{a}{k}{a}{t}{a}{p}' '{a}{m}{e}{t}{a}{m}{f}' (<- '{y}{e}{s}{t}')
|
522
|
+
)
|
523
|
+
)
|
524
|
+
['{e}{s}{t}{e}']
|
525
|
+
delete
|
526
|
+
unset test1
|
527
|
+
[] substring atlimit among (
|
528
|
+
'{a}{l}' '{a}{r}' '{e}{k}{t}{e}{l}' '{z}' '{m}' '{x}' '{p}{a}{r}{a}{k}{a}{l}' '{p}{r}{o}' '{n}{y}{s}'
|
529
|
+
(<- '{y}{e}{s}{t}')
|
530
|
+
)
|
531
|
+
)
|
532
|
+
|
533
|
+
define step5g as (
|
534
|
+
do (
|
535
|
+
[substring] among (
|
536
|
+
'{i}{th}{i}{k}{a}' '{i}{th}{i}{k}{e}{s}' '{i}{th}{i}{k}{e}' (delete unset test1)
|
537
|
+
)
|
538
|
+
)
|
539
|
+
[substring] among (
|
540
|
+
'{i}{k}{a}' '{i}{k}{e}{s}' '{i}{k}{e}' (
|
541
|
+
delete
|
542
|
+
unset test1
|
543
|
+
([] substring among (
|
544
|
+
'{s}{k}{oo}{l}' '{s}{k}{o}{u}{l}' '{n}{a}{r}{th}' '{s}{f}' '{o}{th}' '{p}{y}{th}' (<- '{i}{k}')
|
545
|
+
)) or
|
546
|
+
([] substring atlimit among (
|
547
|
+
'{d}{y}{a}{th}' '{th}' '{p}{a}{r}{a}{k}{a}{t}{a}{th}' '{p}{r}{o}{s}{th}' '{s}{u}{n}{th}' (<- '{i}{k}')
|
548
|
+
))
|
549
|
+
)
|
550
|
+
)
|
551
|
+
)
|
552
|
+
|
553
|
+
define step5h as (
|
554
|
+
[substring] among (
|
555
|
+
'{o}{u}{s}{a}' '{o}{u}{s}{e}{s}' '{o}{u}{s}{e}' (
|
556
|
+
delete
|
557
|
+
unset test1
|
558
|
+
([] substring among (
|
559
|
+
'{p}{o}{d}{a}{r}' '{v}{l}{e}{p}' '{p}{a}{n}{t}{a}{ch}' '{f}{r}{u}{d}' '{m}{a}{n}{t}{y}{l}' '{m}{a}{l}{l}' '{k}{u}{m}{a}{t}' '{l}{a}{ch}' '{l}{i}{g}'
|
560
|
+
'{f}{a}{g}' '{o}{m}' '{p}{r}{oo}{t}' (<- '{o}{u}{s}')
|
561
|
+
|
562
|
+
)) or
|
563
|
+
([] substring atlimit among (
|
564
|
+
'{f}{a}{r}{m}{a}{k}' '{ch}{a}{d}' '{a}{g}{k}' '{a}{n}{a}{r}{r}' '{v}{r}{o}{m}' '{e}{k}{l}{y}{p}' '{l}{a}{m}{p}{y}{d}' '{l}{e}{ch}' '{m}' '{p}{a}{t}'
|
565
|
+
'{r}' '{l}' '{m}{e}{d}' '{m}{e}{s}{a}{z}' '{u}{p}{o}{t}{e}{y}{n}' '{a}{m}' '{a}{y}{th}' '{a}{n}{i}{k}' '{d}{e}{s}{p}{o}{z}'
|
566
|
+
'{e}{n}{d}{y}{a}{f}{e}{r}' '{d}{e}' '{d}{e}{u}{t}{e}{r}{e}{u}' '{k}{a}{th}{a}{r}{e}{u}' '{p}{l}{e}' '{t}{s}{a}'
|
567
|
+
(<- '{o}{u}{s}')
|
568
|
+
))
|
569
|
+
)
|
570
|
+
)
|
571
|
+
)
|
572
|
+
|
573
|
+
define step5i as (
|
574
|
+
[substring] among (
|
575
|
+
'{a}{g}{a}' '{a}{g}{e}{s}' '{a}{g}{e}' (
|
576
|
+
delete
|
577
|
+
unset test1
|
578
|
+
([] '{k}{o}{l}{l}' <- '{a}{g}') or (
|
579
|
+
([] substring among (
|
580
|
+
'{ps}{o}{f}' '{n}{a}{u}{l}{o}{ch}' ()
|
581
|
+
'{o}{f}' '{p}{e}{l}' '{ch}{o}{r}{t}' '{l}{l}' '{s}{f}' '{r}{p}' '{f}{r}' '{p}{r}' '{l}{o}{ch}' '{s}{m}{i}{n}'
|
582
|
+
(<- '{a}{g}')
|
583
|
+
)) or
|
584
|
+
([] substring atlimit among (
|
585
|
+
'{a}{v}{a}{s}{t}' '{p}{o}{l}{u}{f}' '{a}{d}{i}{f}' '{p}{a}{m}{f}' '{r}' '{a}{s}{p}' '{a}{f}' '{a}{m}{a}{l}' '{a}{m}{a}{l}{l}{y}'
|
586
|
+
'{a}{n}{u}{s}{t}' '{a}{p}{e}{r}' '{a}{s}{p}{a}{r}' '{a}{ch}{a}{r}' '{d}{e}{r}{v}{e}{n}' '{d}{r}{o}{s}{o}{p}' '{x}{e}{f}' '{n}{e}{o}{p}'
|
587
|
+
'{n}{o}{m}{o}{t}' '{o}{l}{o}{p}' '{o}{m}{o}{t}' '{p}{r}{o}{s}{t}' '{p}{r}{o}{s}{oo}{p}{o}{p}' '{s}{u}{m}{p}' '{s}{u}{n}{t}' '{t}' '{u}{p}{o}{t}'
|
588
|
+
'{ch}{a}{r}' '{a}{e}{y}{p}' '{a}{y}{m}{o}{s}{t}' '{a}{n}{u}{p}' '{a}{p}{o}{t}' '{a}{r}{t}{y}{p}' '{d}{y}{a}{t}' '{e}{n}' '{e}{p}{y}{t}'
|
589
|
+
'{k}{r}{o}{k}{a}{l}{o}{p}' '{s}{y}{d}{i}{r}{o}{p}' '{l}' '{n}{a}{u}' '{o}{u}{l}{a}{m}' '{o}{u}{r}' '{p}' '{t}{r}' '{m}'
|
590
|
+
(<- '{a}{g}')
|
591
|
+
))
|
592
|
+
)
|
593
|
+
)
|
594
|
+
)
|
595
|
+
)
|
596
|
+
|
597
|
+
define step5j as (
|
598
|
+
[substring] among (
|
599
|
+
'{i}{s}{e}' '{i}{s}{o}{u}' '{i}{s}{a}' (delete unset test1)
|
600
|
+
)
|
601
|
+
[] substring atlimit among (
|
602
|
+
'{n}' '{ch}{e}{r}{s}{o}{n}' '{d}{oo}{d}{e}{k}{a}{n}' '{e}{r}{i}{m}{o}{n}' '{m}{e}{g}{a}{l}{o}{n}' '{e}{p}{t}{a}{n}' (<- '{i}{s}')
|
603
|
+
)
|
604
|
+
)
|
605
|
+
|
606
|
+
define step5k as (
|
607
|
+
[substring] among (
|
608
|
+
'{i}{s}{t}{e}' (delete unset test1)
|
609
|
+
)
|
610
|
+
[] substring atlimit among (
|
611
|
+
'{a}{s}{v}' '{s}{v}' '{a}{ch}{r}' '{ch}{r}' '{a}{p}{l}' '{a}{e}{y}{m}{n}' '{d}{u}{s}{ch}{r}' '{e}{u}{ch}{r}' '{k}{o}{y}{n}{o}{ch}{r}' '{p}{a}{l}{y}{m}{ps}'
|
612
|
+
(<- '{i}{s}{t}')
|
613
|
+
)
|
614
|
+
)
|
615
|
+
|
616
|
+
define step5l as (
|
617
|
+
[substring] among (
|
618
|
+
'{o}{u}{n}{e}' '{i}{s}{o}{u}{n}{e}' '{i}{th}{o}{u}{n}{e}' (delete unset test1)
|
619
|
+
)
|
620
|
+
[] substring atlimit among (
|
621
|
+
'{n}' '{r}' '{s}{p}{y}' '{s}{t}{r}{a}{v}{o}{m}{o}{u}{t}{s}' '{k}{a}{k}{o}{m}{o}{u}{t}{s}' '{e}{x}{oo}{n}' (<- '{o}{u}{n}')
|
622
|
+
)
|
623
|
+
)
|
624
|
+
|
625
|
+
define step5m as (
|
626
|
+
[substring] among (
|
627
|
+
'{o}{u}{m}{e}' '{i}{s}{o}{u}{m}{e}' '{i}{th}{o}{u}{m}{e}' (delete unset test1)
|
628
|
+
)
|
629
|
+
[] substring atlimit among (
|
630
|
+
'{p}{a}{r}{a}{s}{o}{u}{s}' '{f}' '{ch}' '{oo}{r}{y}{o}{p}{l}' '{a}{z}' '{a}{l}{l}{o}{s}{o}{u}{s}' '{a}{s}{o}{u}{s}'
|
631
|
+
(<- '{o}{u}{m}')
|
632
|
+
)
|
633
|
+
)
|
634
|
+
|
635
|
+
define step6 as (
|
636
|
+
do (
|
637
|
+
[substring] among (
|
638
|
+
'{m}{a}{t}{a}' '{m}{a}{t}{oo}{n}' '{m}{a}{t}{o}{s}' (<- '{m}{a}')
|
639
|
+
)
|
640
|
+
)
|
641
|
+
test1
|
642
|
+
[substring] among (
|
643
|
+
'{a}' '{a}{g}{a}{t}{e}' '{a}{g}{a}{n}' '{a}{e}{y}' '{a}{m}{a}{y}' '{a}{n}' '{a}{s}' '{a}{s}{a}{y}' '{a}{t}{a}{y}' '{a}{oo}' '{e}' '{e}{y}'
|
644
|
+
'{e}{y}{s}' '{e}{y}{t}{e}' '{e}{s}{a}{y}' '{e}{s}' '{e}{t}{a}{y}' '{y}' '{y}{e}{m}{a}{y}' '{y}{e}{m}{a}{s}{t}{e}' '{y}{e}{t}{a}{y}' '{y}{e}{s}{a}{y}'
|
645
|
+
'{y}{e}{s}{a}{s}{t}{e}' '{y}{o}{m}{a}{s}{t}{a}{n}' '{y}{o}{m}{o}{u}{n}' '{y}{o}{m}{o}{u}{n}{a}' '{y}{o}{n}{t}{a}{n}' '{y}{o}{n}{t}{o}{u}{s}{a}{n}' '{y}{o}{s}{a}{s}{t}{a}{n}'
|
646
|
+
'{y}{o}{s}{a}{s}{t}{e}' '{y}{o}{s}{o}{u}{n}' '{y}{o}{s}{o}{u}{n}{a}' '{y}{o}{t}{a}{n}' '{y}{o}{u}{m}{a}' '{y}{o}{u}{m}{a}{s}{t}{e}' '{y}{o}{u}{n}{t}{a}{y}'
|
647
|
+
'{y}{o}{u}{n}{t}{a}{n}' '{i}' '{i}{d}{e}{s}' '{i}{d}{oo}{n}' '{i}{th}{e}{y}' '{i}{th}{e}{y}{s}' '{i}{th}{e}{y}{t}{e}' '{i}{th}{i}{k}{a}{t}{e}' '{i}{th}{i}{k}{a}{n}'
|
648
|
+
'{i}{th}{o}{u}{n}' '{i}{th}{oo}' '{i}{k}{a}{t}{e}' '{i}{k}{a}{n}' '{i}{s}' '{i}{s}{a}{n}' '{i}{s}{a}{t}{e}' '{i}{s}{e}{y}' '{i}{s}{e}{s}' '{i}{s}{o}{u}{n}'
|
649
|
+
'{i}{s}{oo}' '{o}' '{o}{y}' '{o}{m}{a}{y}' '{o}{m}{a}{s}{t}{a}{n}' '{o}{m}{o}{u}{n}' '{o}{m}{o}{u}{n}{a}' '{o}{n}{t}{a}{y}' '{o}{n}{t}{a}{n}'
|
650
|
+
'{o}{n}{t}{o}{u}{s}{a}{n}' '{o}{s}' '{o}{s}{a}{s}{t}{a}{n}' '{o}{s}{a}{s}{t}{e}' '{o}{s}{o}{u}{n}' '{o}{s}{o}{u}{n}{a}' '{o}{t}{a}{n}' '{o}{u}' '{o}{u}{m}{a}{y}'
|
651
|
+
'{o}{u}{m}{a}{s}{t}{e}' '{o}{u}{n}' '{o}{u}{n}{t}{a}{y}' '{o}{u}{n}{t}{a}{n}' '{o}{u}{s}' '{o}{u}{s}{a}{n}' '{o}{u}{s}{a}{t}{e}' '{u}' '{u}{s}' '{oo}'
|
652
|
+
'{oo}{n}' (delete)
|
653
|
+
)
|
654
|
+
)
|
655
|
+
|
656
|
+
define step7 as (
|
657
|
+
[substring] among (
|
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
|
+
)
|
660
|
+
)
|
661
|
+
)
|
662
|
+
|
663
|
+
define stem as (
|
664
|
+
backwards (
|
665
|
+
do tolower
|
666
|
+
has_min_length
|
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
|
700
|
+
)
|
701
|
+
)
|