5 // escape symbols for substituting lithuanian characters
8 /* Special characters in Unicode Latin Extended-A */
10 stringdef a' '{U+0105}' // ą a + ogonek
11 stringdef e' '{U+0119}' // ę e + ogonek
12 stringdef i' '{U+012F}' // į i + ogonek
13 stringdef u' '{U+0173}' // ų u + ogonek
16 stringdef e. '{U+0117}' // ė e + dot
19 stringdef u- '{U+016B}' // ū u + macron
22 stringdef c* '{U+010D}' // č c + caron (haček)
23 stringdef s* '{U+0161}' // š s + caron (haček)
24 stringdef z* '{U+017E}' // ž z + caron (haček)
27 // definitions of variables for
28 // p1 - position of m = 0
32 // v - lithuanian vowels
35 // v - all lithuanian vowels
36 define v 'aeiyou{a'}{e'}{i'}{u'}{e.}{u-}'
38 // all lithuanian stemmer routines: 4 steps
40 step2 R1 step1 fix_chdz fix_gd fix_conflicts
45 define R1 as $p1 <= cursor
47 setlimit tomark p1 for ([substring]) R1 among (
48 // Daiktavardžiai (Nouns)
49 // I linksniuotė (declension I)
50 'as' 'ias' 'is' 'ys' // vyras, kelias, brolis, gaidys
51 'o' 'io' // vyro, kelio
52 'ui' 'iui' // vyrui, keliui
53 '{a'}' 'i{a'}' '{i'}' // vyrą, kelią, brolį
54 'u' 'iu' // vyru, keliu
55 'e' 'yje' // vyre, kelyje
56 'y' 'au' 'i' // kely, brolau, broli,
59 'ai' 'iai' // vyrai, keliai
60 '{u'}' 'i{u'}' // vyrų, kelių
61 'ams' 'am' // vyrams, vyram
62 'iams' 'iam' // broliams, broliam
63 'us' 'ius' // vyrus, brolius
64 'ais' 'iais' // vyrais, keliais
65 'uose' 'iuose' 'uos' 'iuos' // vyruose, keliuose, vyruos, keliuos
66 'uosna' 'iuosna' // vyruosna, keliuosna
69 'asis' 'aisi' // sukimasis, sukimaisi
70 'osi' '{u'}si' // sukimosi, sukimųsi
79 // II linksniuote (declension II)
80 'a' 'ia' // galva, vysnios
81 'os' 'ios' // galvos, vysnios
82 'oj' 'oje' 'ioje' // galvoje, vysnioje
83 'osna' 'iosna' // galvosna, vyšniosna
84 'om' 'oms' 'ioms' // galvoms, vysnioms
85 'omis' 'iomis' // galvomis, vysniomis
86 'ose' 'iose' // galvose, vysniose
87 'on' 'ion' // galvon, vyšnion
90 // III linksniuote (declension III)
95 '{e.}j' '{e.}je' // gervėj, gervėje
100 '{e.}sna' // gervėsna
104 // IV linksniuote (declension IV)
105 'aus' 'iaus' // sūnaus, skaičiaus
106 'umi' 'iumi' // sūnumi, skaičiumi
107 'uje' 'iuje' // sūnuje, skaičiuje
113 'un' 'iun' // sūnun, administratoriun
116 // V linksniuote (declension V)
117 'ies' 'ens' 'enio' 'ers' // avies, vandens, sesers
118 'eniui' 'eriai' // vandeniui, eriai
119 'en{i'}' 'er{i'}' // vandenį, seserį
120 'imi' 'eniu' 'erimi' 'eria' // avimi, vandeniu, seserimi, seseria
121 'enyje' 'eryje' // vandenyje, seseryje
122 'ie' 'enie' 'erie' // avie, vandenie, seserie
124 'enys' 'erys' // vandenys, seserys
125 // 'en{u'}' konfliktas su 'žandenų' 'antenų'
127 'ims' 'enims' 'erims' // avims, vandemins, seserims
129 'imis' // žebenkštimis
130 'enimis' // vandenimis
131 'yse' 'enyse' 'eryse' // avyse, vandenyse, seseryse
134 // Būdvardžiai (Adjectives)
136 'iem' 'iems' // geriem, geriems
137 'ame' 'iame' // naujame, mediniame
140 // Veiksmažodžiai (Verbs)
141 // Tiesioginė nuosaka (indicative mood)
142 // esamasis laikas (present tense)
143 // (i)a asmenuotė (declension (i)a)
144 'uosi' 'iuosi' // dirbuosi, traukiuosi
146 'asi' 'iasi' // dirbasi, traukiasi
147 'am{e.}s' 'iam{e.}s' // dirbamės, traukiamės
148 'at' 'ate' 'iat' 'iate' // dirbat, dirbate, ariat, traukiate
149 'at{e.}s' 'iat{e.}s' // dirbatės, traukiatės
151 // i asmenuotė (declension i)
154 // 'ime' konfliktassu daiktavardžiu vietininku, pvz. 'gėrime'
156 'it' 'ite' // mylit, mylite, tikitės
157 // 'it{e.}s' konfliktas su priesaga ir dgs. vardininko galūne -ait-ės pvz. žydaitės
159 // o asmenuotė (declension o)
161 'ot' 'ote' // mokot, mokote
164 // o asmenuotė (declension o)
165 '{e.}jo' '{e.}josi' // tikėjo, tikėjosi
166 'ot{e.}s' // tikėjotės/bijotės
168 // ė asmenuotė (declension ė)
171 '{e.}m' '{e.}me' // mokėm, mokėme
172 '{e.}m{e.}s' // mokėmės
173 '{e.}t' '{e.}te' // mokėt, mokėte
174 '{e.}t{e.}s' // mokėtės
176 // būtasis dažninis laikas (frequentative past tense)
177 'ausi' // mokydavausi
178 'om{e.}s' // mokydavomės/bijomės
181 // būsimasis laikas (future tense)
182 'siu' 'siuosi' // dirbsiu, mokysiuosi
183 'si' 'siesi' // dirbsi, dirbsiesi
184 's' 'ysis' // dirbs, mokysis
185 'sim' 'sime' // dirbsim, dirbsime
186 'sit' 'site' // gersit, gersite
188 // tariamoji nuosaka (subjunctive mood)
189 '{c*}iau' '{c*}iausi' // dirbčiau
190 'tum' 'tumei' // dirbtum, dirbtumei
191 'tumeis' 'tumeisi' // mokytumeis, mokytumeisi
192 // 't{u'}' nes blogai batutų -> batų
193 't{u'}si' // mokytųsi
194 // 'tume' konfliktas su 'šventume'
195 'tum{e.}m' // dirbtumėm
196 'tum{e.}me' // dirbtumėme
197 'tum{e.}m{e.}s' // mokytumėmės
198 'tute' 'tum{e.}t' // dirbtute, dirbtumėt
199 'tum{e.}te' // dirbtumėte
200 'tum{e.}t{e.}s' // mokytumėtės
202 // liepiamoji nuosaka (imperative mood)
203 'k' 'ki' // dirbk, dirbki, mokykis
204 // 'kis' konfliktas viln-išk-is
205 // 'kime' konfliktas, nes pirkime
206 'kim{e.}s' // mokykimės
208 // bendratis (infinitive)
209 'uoti' 'iuoti' // meluoti, dygsniuoti
210 'auti' 'iauti' // draugauti, girtuokliauti
211 'oti' 'ioti' // dovanoti, meškerioti
215 'in{e.}ti' // blusinėti
217 'tel{e.}ti' // bumbtelėti
218 'ter{e.}ti' // bumbterėti
221 // 'tis' konfliktas, nes rytme-tis -> rytme
223 // dalyviai (participles)
224 '{a'}s' 'i{a'}s' '{i'}s' // dirbąs, žaidžiąs, gulįs
225 't{u'}s' // suktųs -> suk
226 'sim{e.}s' // suksimės
227 'sit{e.}s' // suksitės
234 define step2 as repeat (
235 setlimit tomark p1 for ([substring]) among (
236 // daiktavardziu priesagos (Noun suffixes)
238 // budvardziu priesagos (Adjective suffixes)
239 // 'in' // konfliktas su 'augintinis' ir 'akiniais' // lauk-in-is
240 'ing' // tvark-ing-as
241 'i{s*}k' // lenk-išk-as
244 'uot' 'iuot' // lang-uot-as, akin-iuot-as
245 // 'tin', nes augintinis // dirb-tin-is
246 // 'ut', nes batutas, degutas etc. // maž-ut-is
252 'u{c*}iuk' // maž-učiuk-as
253 'uliuk' // maž-uliuk-as
254 'ut{e.}ait' // maž-utėlait-is
257 'sv' '{s*}v' 'zgan' // sal-sv-as, pilk-šv-as, bal-zgan-as
258 'op' 'iop' // dvej-op-as, viener-iop-as
259 'ain' // apval-ain-as
260 'yk{s*}t' 'yk{s*}{c*}' // ten-ykšt-is, vakar-ykšč-ias
264 'aus' 'iaus' // nauj-aus-ias, ger-iaus-ias
266 // ivardziuotiniai budvardziai (Pronominal adjectives)
267 // vyriska gimine (Male gender)
269 'oj' 'ioj' // gerojo, žaliojo
270 'aj' 'iaj' // gerajam, žaliajam
271 '{a'}j' 'i{a'}j' // garąjį, žaliąjį
272 'uoj' 'iuoj' // geruoju, žaliuoju
274 '{u'}j' 'i{u'}j' // gerųjų, žaliųjų
276 'uos' 'iuos' // geruosius, žaliuosius
277 'ais' 'iais' // geraisiais, žaliaisiais
279 // moteriska gimine (Female gender)
280 'os' 'ios' // gerosios, žaliosios
281 '{a'}s' 'i{a'}s' // gerąsios, žaliąsias
283 // būtasis dažninis laikas (frequentative past tense)
286 // dalyvių priesagos (particple suffix)
292 '{e'}s' // dirb-ęs-is
294 'siant' // dirb-siant
296 // pusdalyviai (participle)
299 'auj' // ūkinink-auj-a
302 'am' // baiminim-ams-i
308 define fix_conflicts as (
310 // 'lietuvaite' -> 'lietuvaitė', konfliktas su 'myl-ite'
312 // 'lietuvaitės' -> 'lietuvaitė', konfliktas su 'myl-itės'
313 'ait{e.}s' (<-'ait{e.}')
315 // ''ūs-uotės' -> 'ūs-uotė', konfliktas 'mokotės'
316 'uot{e.}s' (<-'uot{e.}')
317 // ''ūs-uote' -> 'ūs-uotė', konfliktas 'mokote'
320 // 'žerėjime' -> 'žėrėjimas', konfliktas su 'žais-ime'
321 '{e.}jime' (<-'{e.}jimas')
323 // 'žvilgesiu' -> 'žvilgesys', konfliktas su 'dirb-siu'
325 // 'duobkasiu' -> 'duobkasys', konfliktas su 'pakasiu'
328 // 'žioravime' -> 'žioravimas', konfliktas su 'myl-ime'
332 // 'advokatės' -> 'advokatė', konfliktas su 'dirb-atės'
333 'okat{e.}s' (<-'okat{e.}')
334 // 'advokate' -> 'advokatė', konfliktas su 'dirb-ate'
335 'okate' (<-'okat{e.}')
349 // '{e.}k' (<-'{e.}g')
360 // priešdėlis 'a' ilgeniuose nei 6 raidės žodžiuose, pvz. 'a-liejus'.
361 try (test 'a' $(len > 6) hop 1)
363 gopast v gopast non-v setmark p1