Module:User:Atitarev/ru-verb

--[=[   This module contains functions for creating inflection tables for Russian verbs. ]=]-- local m_utilities = require("Module:utilities") local com = require("Module:ru-common") local translit = require("Module:ru-translit") local export = {}

local lang = require("Module:languages").getLanguageByCode("ru") -- Within this module, conjugations are the functions that do the actual -- conjugating by creating the forms of a basic verb. -- They are defined further down. local conjugations = {} -- The main entry point. -- This is the only function that can be invoked from a template. function export.show(frame) local conj_type = frame.args[1] or error("Conjugation type has not been specified. Please pass parameter 1 to the module invocation") local args = frame:getParent.args PAGENAME = mw.title.getCurrentTitle.text NAMESPACE = mw.title.getCurrentTitle.nsText -- Verb type, one of impf, pf, impf-intr, pf-intr, impf-refl, pf-refl. -- Default to impf on the template page so that there is no script error. local verb_type = args[1] or (NAMESPACE == "Template" and "impf") or error("Verb type (first parameter) has not been provided") -- verbs may have reflexive ending stressed in the masculine singular: занялся́, начался́, etc.   local reflex_stress = args["reflex_stress"] -- "ся́" local forms, title, categories if conjugations[conj_type] then forms, title, categories = conjugations[conj_type](args) else error("Unknown conjugation type '" .. conj_type .. "'") end -- This form is not always present on verbs, so it needs to be specified explicitly. forms["past_pasv_part"] = args["past_pasv_part"] or "" --alternative forms forms["impr_sg2"] = forms["impr_sg2"] or args["impr_sg2"] forms["impr_pl2"] = forms["impr_pl2"] or args["impr_pl2"] forms["pres_actv_part2"] = forms["pres_actv_part2"] or args["pres_actv_part2"] forms["past_actv_part2"] = forms["past_actv_part2"] or args["past_actv_part2"] forms["pres_pasv_part2"] = forms["pres_pasv_part2"] or args["pres_pasv_part2"] forms["past_pasv_part2"] = forms["past_pasv_part2"] or args["past_pasv_part2"] forms["pres_adv_part2"] = forms["pres_adv_part2"] or args["pres_adv_part2"] forms["past_adv_part2"] = forms["past_adv_part2"] or args["past_adv_part2"] forms["past_adv_part_short2"] = forms["past_adv_part_short2"] or args["past_adv_part_short2"] forms["past_m2"] = forms["past_m2"] or args["past_m2"] forms["past_m3"] = forms["past_m3"] or args["past_m3"] forms["past_f2"] = forms["past_f2"] or args["past_f2"] forms["past_n2"] = forms["past_n2"] or args["past_n2"] forms["past_pl2"] = forms["past_pl2"] or args["past_pl2"] forms["pres_futr_1sg2"] = forms["pres_futr_1sg2"] or args["pres_futr_1sg2"] forms["pres_futr_2sg2"] = forms["pres_futr_2sg2"] or args["pres_futr_2sg2"] forms["pres_futr_3sg2"] = forms["pres_futr_3sg2"] or args["pres_futr_3sg2"] forms["pres_futr_1pl2"] = forms["pres_futr_1pl2"] or args["pres_futr_1pl2"] forms["pres_futr_2pl2"] = forms["pres_futr_2pl2"] or args["pres_futr_2pl2"] forms["pres_futr_3pl2"] = forms["pres_futr_3pl2"] or args["pres_futr_3pl2"] local intr = (verb_type == "impf-intr" or verb_type == "pf-intr" or verb_type == "pf-impers" or verb_type == "impf-impers" or verb_type == "pf-impers-refl" or verb_type == "impf-impers-refl") local refl = (verb_type == "impf-refl" or verb_type == "pf-refl" or verb_type == "pf-impers-refl" or verb_type == "impf-impers-refl") local perf = (verb_type == "pf" or verb_type == "pf-intr" or verb_type == "pf-refl" or verb_type == "pf-impers" or verb_type == "pf-impers-refl") --impersonal local impers = (verb_type == "pf-impers" or verb_type == "impf-impers" or verb_type == "pf-impers-refl" or verb_type == "impf-impers-refl") -- Perfective/imperfective if perf then table.insert(categories, "Russian perfective verbs") else table.insert(categories, "Russian imperfective verbs") end -- call alternative reflexive form to add a stressed "ся́" particle if reflex_stress then make_reflexive_alt(forms) end -- Reflexive/intransitive/transitive if refl then make_reflexive(forms) table.insert(categories, "Russian reflexive verbs") elseif intr then table.insert(categories, "Russian intransitive verbs") else table.insert(categories, "Russian transitive verbs") end -- Impersonal if impers then table.insert(categories, "Russian impersonal verbs") end return make_table(forms, title, perf, intr or refl, impers) .. m_utilities.format_categories(categories, lang) end --[=[   Conjugation functions ]=]-- conjugations["irreg-сыпать"] = function(args) -- irregular, only for verbs derived from сыпать local forms = {} local categories = {"Russian irregular verbs"} local title = "irregular" local prefix = args[2]; if not prefix then prefix = "" end forms["infinitive"] = prefix .. "сы́пать" forms["past_actv_part"] = prefix .. "сы́павший" forms["pres_pasv_part"] = "" forms["past_adv_part"] = prefix .. "сы́павши"; forms["past_adv_part_short"] = prefix .. "сы́пав" forms["pres_actv_part"] = prefix .. "сы́плющий" forms["pres_adv_part"] = prefix .. "сы́пля" forms["pres_adv_part2"] = prefix .. "сы́пя" forms["impr_sg"] = prefix .. "сы́пь" forms["impr_pl"] = prefix .. "сы́пьте" forms["pres_futr_1sg"] = prefix .. "сы́плю" forms["pres_futr_2sg"] = prefix .. "сы́плешь" forms["pres_futr_2sg2"] = prefix .. "сы́пешь" forms["pres_futr_3sg"] = prefix .. "сы́плет" forms["pres_futr_3sg2"] = prefix .. "сы́пет" forms["pres_futr_1pl"] = prefix .. "сы́плем" forms["pres_futr_1pl2"] = prefix .. "сы́пем" forms["pres_futr_2pl"] = prefix .. "сы́плете" forms["pres_futr_2pl2"] = prefix .. "сы́пете" forms["pres_futr_3pl"] = prefix .. "сы́плют" forms["pres_futr_3pl2"] = prefix .. "сы́пют" forms["past_m"] = prefix .. "сы́пал" forms["past_f"] = prefix .. "сы́пала" forms["past_n"] = prefix .. "сы́пало" forms["past_pl"] = prefix .. "сы́пали" -- вы́сыпать (perfective), not to confuse with высыпа́ть (1a, imperfective) if prefix == "вы́" then forms["infinitive"] = prefix .. "сыпать" forms["past_actv_part"] = prefix .. "сыпавший" forms["past_adv_part"] = prefix .. "сыпавши"; forms["past_adv_part_short"] = prefix .. "сыпав" forms["impr_sg"] = prefix .. "сыпь" forms["impr_pl"] = prefix .. "сыпьте" forms["pres_futr_1sg"] = prefix .. "сыплю" forms["pres_futr_2sg"] = prefix .. "сыплешь" forms["pres_futr_2sg2"] = prefix .. "сыпешь" forms["pres_futr_3sg"] = prefix .. "сыплет" forms["pres_futr_3sg2"] = prefix .. "сыпет" forms["pres_futr_1pl"] = prefix .. "сыплем" forms["pres_futr_1pl2"] = prefix .. "сыпем" forms["pres_futr_2pl"] = prefix .. "сыплете" forms["pres_futr_2pl2"] = prefix .. "сыпете" forms["pres_futr_3pl"] = prefix .. "сыплют" forms["pres_futr_3pl2"] = prefix .. "сыпют" forms["past_m"] = prefix .. "сыпал" forms["past_f"] = prefix .. "сыпала" forms["past_n"] = prefix .. "сыпало" forms["past_pl"] = prefix .. "сыпали" end return forms, title, categories end --[=[   Partial conjugation functions ]=]--

-- Present forms with -e-, no j-vowels. function present_e_a(forms, stem) forms["pres_futr_1sg"] = stem .. "у" forms["pres_futr_2sg"] = stem .. "ешь" forms["pres_futr_3sg"] = stem .. "ет" forms["pres_futr_1pl"] = stem .. "ем" forms["pres_futr_2pl"] = stem .. "ете" forms["pres_futr_3pl"] = stem .. "ут" end function present_e_b(forms, stem) if mw.ustring.find(stem, "[аэыоуяеиёю́]$") then forms["pres_futr_1sg"] = stem .. "ю́" forms["pres_futr_3pl"] = stem .. "ю́т" else forms["pres_futr_1sg"] = stem .. "у́" forms["pres_futr_3pl"] = stem .. "у́т" end forms["pres_futr_2sg"] = stem .. "ёшь" forms["pres_futr_3sg"] = stem .. "ёт" forms["pres_futr_1pl"] = stem .. "ём" forms["pres_futr_2pl"] = stem .. "ёте" end function present_e_c(forms, stem) local stem_noa = com.make_unstressed(stem) forms["pres_futr_1sg"] = stem_noa .. "у́" forms["pres_futr_2sg"] = stem .. "ешь" forms["pres_futr_3sg"] = stem .. "ет" forms["pres_futr_1pl"] = stem .. "ем" forms["pres_futr_2pl"] = stem .. "ете" forms["pres_futr_3pl"] = stem .. "ут" end -- Present forms with -e-, with j-vowels. function present_je_a(forms, stem, no_iotation) local iotated_stem = com.iotation(stem, shch) -- Verbs ending in a hushing consonant do not get j-vowels in the endings. if mw.ustring.find(iotated_stem, "[шщжч]$") then forms["pres_futr_1sg"] = iotated_stem .. "у" else forms["pres_futr_1sg"] = iotated_stem .. "ю" end if mw.ustring.find(iotated_stem, "[шщжч]$") then forms["pres_futr_3pl"] = iotated_stem .. "ут" else forms["pres_futr_3pl"] = iotated_stem .. "ют" end forms["pres_futr_2sg"] = iotated_stem .. "ешь" forms["pres_futr_3sg"] = iotated_stem .. "ет" forms["pres_futr_1pl"] = iotated_stem .. "ем" forms["pres_futr_2pl"] = iotated_stem .. "ете" if no_iotation then forms["pres_futr_1sg"] = stem .. "у" forms["pres_futr_3pl"] = stem .. "ут" forms["pres_futr_2sg"] = stem .. "ешь" forms["pres_futr_3sg"] = stem .. "ет" forms["pres_futr_1pl"] = stem .. "ем" forms["pres_futr_2pl"] = stem .. "ете" end end function present_je_b(forms, stem) forms["pres_futr_1sg"] = stem .. "ю́" forms["pres_futr_2sg"] = stem .. "ёшь" forms["pres_futr_3sg"] = stem .. "ёт" forms["pres_futr_1pl"] = stem .. "ём" forms["pres_futr_2pl"] = stem .. "ёте" forms["pres_futr_3pl"] = stem .. "ю́т" end function present_je_c(forms, stem) local stem_noa = com.make_unstressed(stem) -- iotate the stem local iotated_stem = com.iotation(stem) -- iotate the 2nd stem local iotated_stem_noa = com.iotation(stem_noa) -- Verbs ending in a hushing consonant do not get j-vowels in the endings. if mw.ustring.find(iotated_stem_noa, "[шщжч]$") then forms["pres_futr_1sg"] = iotated_stem_noa .. "у́" else forms["pres_futr_1sg"] = iotated_stem_noa .. "ю́" end -- Verbs ending in a hushing consonant do not get j-vowels in the endings. if mw.ustring.find(iotated_stem, "[шщжч]$") then forms["pres_futr_3pl"] = iotated_stem .. "ут" else forms["pres_futr_3pl"] = iotated_stem .. "ют" end forms["pres_futr_2sg"] = iotated_stem .. "ешь" forms["pres_futr_3sg"] = iotated_stem .. "ет" forms["pres_futr_1pl"] = iotated_stem .. "ем" forms["pres_futr_2pl"] = iotated_stem .. "ете" end -- Present forms with -i-. function present_i_a(forms, stem, shch) -- shch - iotatate final т as щ, not ч -- iotate the stem local iotated_stem = com.iotation(stem, shch) -- Verbs ending in a hushing consonant do not get j-vowels in the endings. if mw.ustring.find(iotated_stem, "[шщжч]$") then forms["pres_futr_1sg"] = iotated_stem .. "у" else forms["pres_futr_1sg"] = iotated_stem .. "ю" end if mw.ustring.find(stem, "[шщжч]$") then forms["pres_futr_3pl"] = stem .. "ат" else forms["pres_futr_3pl"] = stem .. "ят" end forms["pres_futr_2sg"] = stem .. "ишь" forms["pres_futr_3sg"] = stem .. "ит" forms["pres_futr_1pl"] = stem .. "им" forms["pres_futr_2pl"] = stem .. "ите" end function present_i_b(forms, stem, no_1sg_futr, shch) -- parameter no_1sg_futr - no 1st person singular future if no_1sg_futr = 1 if not no_1sg_futr then no_1sg_futr = 0 end -- parameter shch - iotatate final т as щ, not ч if not shch then shch = "" end -- iotate the stem local iotated_stem = com.iotation(stem, shch) -- Make 1st person future singular blank if no_1sg_futr = 1 if no_1sg_futr == 1 then forms["pres_futr_1sg"] = "" -- Verbs ending in a hushing consonant do not get j-vowels in the endings. elseif mw.ustring.find(iotated_stem, "[шщжч]$") then forms["pres_futr_1sg"] = iotated_stem .. "у́" else forms["pres_futr_1sg"] = iotated_stem .. "ю́" end if mw.ustring.find(stem, "[шщжч]$") then forms["pres_futr_3pl"] = stem .. "а́т" else forms["pres_futr_3pl"] = stem .. "я́т" end forms["pres_futr_2sg"] = stem .. "и́шь" forms["pres_futr_3sg"] = stem .. "и́т" forms["pres_futr_1pl"] = stem .. "и́м" forms["pres_futr_2pl"] = stem .. "и́те" end function present_i_c(forms, stem, shch) -- shch - iotatate final т as щ, not ч local stem_noa = com.make_unstressed(stem) -- iotate the stem local iotated_stem = com.iotation(stem_noa, shch) -- Verbs ending in a hushing consonant do not get j-vowels in the endings. if mw.ustring.find(iotated_stem, "[шщжч]$") then forms["pres_futr_1sg"] = iotated_stem .. "у́" else forms["pres_futr_1sg"] = iotated_stem .. "ю́" end if mw.ustring.find(stem, "[шщжч]$") then forms["pres_futr_3pl"] = stem .. "ат" else forms["pres_futr_3pl"] = stem .. "ят" end if mw.ustring.find(stem, "[шщжч]$") then forms["pres_futr_3pl"] = stem .. "ат" else forms["pres_futr_3pl"] = stem .. "ят" end forms["pres_futr_2sg"] = stem .. "ишь" forms["pres_futr_3sg"] = stem .. "ит" forms["pres_futr_1pl"] = stem .. "им" forms["pres_futr_2pl"] = stem .. "ите" end -- add alternative form stressed on the reflexive particle function make_reflexive_alt(forms) for key, form in pairs(forms) do               if form ~= "" then -- if a form doesn't contain a stress, add a stressed particle "ся́" if not mw.ustring.find(form, "[́]") then -- only applies to past masculine forms if key == "past_m" or key == "past_m2" or key == "past_m3" then forms[key] = form .. "ся́" end end end end end -- Add the reflexive particle to all verb forms function make_reflexive(forms) for key, form in pairs(forms) do       -- The particle is "сь" after a vowel, "ся" after a consonant -- append "ся" if "ся́" was not attached already if form ~= "" and not mw.ustring.find(form, "ся́$") then if mw.ustring.find(form, "[аэыоуяеиёю́]$") then forms[key] = form .. "сь" else forms[key] = form .. "ся" end end end -- This form does not exist for reflexive verbs. forms["past_adv_part_short"] = "" end -- Make the table function make_table(forms, title, perf, intr, impers) local title = "Conjugation of ''" .. forms["infinitive"] .. "'' " .. (title and " (" .. title .. ")" or "") -- Intransitive verbs have no passive participles. if intr then forms["pres_pasv_part"] = "" forms["pres_pasv_part2"] = nil forms["past_pasv_part"] = "" forms["past_pasv_part2"] = nil end if impers then forms["pres_futr_1sg"] = "" forms["pres_futr_2sg"] = "" forms["pres_futr_1pl"] = "" forms["pres_futr_2pl"] = "" forms["pres_futr_3pl"] = "" forms["past_m"] = "" forms["past_f"] = "" forms["past_pl"] = "" forms["pres_actv_part"] = "" forms["past_actv_part"] = "" forms["pres_adv_part"] = "" forms["past_adv_part"] = "" forms["past_adv_part_short"] = "" forms["impr_sg"] = "" forms["impr_pl"] = "" --alternatives forms["pres_futr_1sg2"] = nil forms["pres_futr_2sg2"] = nil forms["pres_futr_1pl2"] = nil forms["pres_futr_2pl2"] = nil forms["pres_futr_3pl2"] = nil forms["past_m2"] = nil forms["past_m3"] = nil forms["past_f2"] = nil forms["past_pl2"] = nil forms["pres_actv_part2"] = nil forms["past_actv_part2"] = nil forms["pres_adv_part2"] = nil forms["past_adv_part2"] = nil forms["past_adv_part_short2"] = nil forms["impr_sg2"] = nil forms["impr_pl2"] = nil end -- Perfective verbs have no present forms. if perf then forms["pres_actv_part"] = "" forms["pres_pasv_part"] = "" forms["pres_adv_part"] = "" forms["pres_1sg"] = "" forms["pres_2sg"] = "" forms["pres_3sg"] = "" forms["pres_1pl"] = "" forms["pres_2pl"] = "" forms["pres_3pl"] = "" --alternatives forms["pres_actv_part2"] = nil forms["pres_pasv_part2"] = nil forms["pres_adv_part2"] = nil forms["pres_1sg2"] = nil forms["pres_2sg2"] = nil forms["pres_3sg2"] = nil forms["pres_1pl2"] = nil forms["pres_2pl2"] = nil forms["pres_3pl2"] = nil forms["futr_1sg"] = forms["pres_futr_1sg"] forms["futr_2sg"] = forms["pres_futr_2sg"] forms["futr_3sg"] = forms["pres_futr_3sg"] forms["futr_1pl"] = forms["pres_futr_1pl"] forms["futr_2pl"] = forms["pres_futr_2pl"] forms["futr_3pl"] = forms["pres_futr_3pl"] -- alternatives forms["futr_1sg2"] = forms["pres_futr_1sg2"] forms["futr_2sg2"] = forms["pres_futr_2sg2"] forms["futr_3sg2"] = forms["pres_futr_3sg2"] forms["futr_1pl2"] = forms["pres_futr_1pl2"] forms["futr_2pl2"] = forms["pres_futr_2pl2"] forms["futr_3pl2"] = forms["pres_futr_3pl2"] else forms["pres_1sg"] = forms["pres_futr_1sg"] forms["pres_2sg"] = forms["pres_futr_2sg"] forms["pres_3sg"] = forms["pres_futr_3sg"] forms["pres_1pl"] = forms["pres_futr_1pl"] forms["pres_2pl"] = forms["pres_futr_2pl"] forms["pres_3pl"] = forms["pres_futr_3pl"] forms["pres_2sg"] = forms["pres_futr_2sg"] -- alternatives forms["pres_1sg2"] = forms["pres_futr_1sg2"] forms["pres_2sg2"] = forms["pres_futr_2sg2"] forms["pres_3sg2"] = forms["pres_futr_3sg2"] forms["pres_1pl2"] = forms["pres_futr_1pl2"] forms["pres_2pl2"] = forms["pres_futr_2pl2"] forms["pres_3pl2"] = forms["pres_futr_3pl2"] end local inf = forms["infinitive"] local inf_tr = translit.tr(forms["infinitive"]) -- Add transliterations to all forms for key, form in pairs(forms) do       -- check for empty strings and nil's        if form ~= "" and form then forms[key] = "" .. form .. " " .. translit.tr(form) .. " "       else forms[key] = "&mdash;" end end if not perf then forms["futr_1sg"] = "бу́ду " .. inf .. " búdu " .. inf_tr .. " "        forms["futr_2sg"] = "бу́дешь " .. inf .. " búdešʹ " .. inf_tr .. " "       forms["futr_3sg"] = "бу́дет " .. inf .. " búdet " .. inf_tr .. " "       forms["futr_1pl"] = "бу́дем " .. inf .. " búdem " .. inf_tr .. " "       forms["futr_2pl"] = "бу́дете " .. inf .. " búdete " .. inf_tr .. " "       forms["futr_3pl"] = "бу́дут " .. inf .. " búdut " .. inf_tr .. " "   end -- only for "бы́ть" the future forms are бу́ду, бу́дешь, etc.   if inf == "бы́ть" then forms["futr_1sg"] = "бу́ду " .. " <span style=\"color: #888\">búdu " .. " "        forms["futr_2sg"] = "<span lang=\"ru\" class=\"Cyrl\">бу́дешь " .. " <span style=\"color: #888\">búdešʹ " .. " "       forms["futr_3sg"] = "<span lang=\"ru\" class=\"Cyrl\">бу́дет "  .. " <span style=\"color: #888\">búdet " .. " "       forms["futr_1pl"] = "<span lang=\"ru\" class=\"Cyrl\">бу́дем "  .. " <span style=\"color: #888\">búdem "  .. " "       forms["futr_2pl"] = "<span lang=\"ru\" class=\"Cyrl\">бу́дете "  .. " <span style=\"color: #888\">búdete "  .. " "       forms["futr_3pl"] = "<span lang=\"ru\" class=\"Cyrl\">бу́дут "  .. " <span style=\"color: #888\">búdut "  .. " "   end if impers then forms["futr_1sg"] = "" forms["futr_2sg"] = "" forms["futr_1pl"] = "" forms["futr_2pl"] = "" forms["futr_3pl"] = "" --alternatives forms["futr_1sg2"] = nil forms["futr_2sg2"] = nil forms["futr_1pl2"] = nil forms["futr_2pl2"] = nil forms["futr_3pl2"] = nil end if forms["past_adv_part_short"] ~= "&mdash;" then forms["past_adv_part"] = forms["past_adv_part_short"] .. ", " .. forms["past_adv_part"] end -- alternative forms local alt_impr_sg = forms["impr_sg"] if forms["impr_sg2"] then alt_impr_sg = forms["impr_sg"] .. ", " .. forms["impr_sg2"] end local alt_impr_pl = forms["impr_pl"] if forms["impr_pl2"] then alt_impr_pl = forms["impr_pl"] .. ", " .. forms["impr_pl2"] end -- со́здал/созд́ал, п́ередал/переда́л, ́отдал/отд́ал local alt_past_m = forms["past_m"] if forms["past_m2"] then alt_past_m = forms["past_m"] .. ", " .. forms["past_m2"] end --for verbs with three past masculine sg forms: за́нялся, заня́лся, занялс́я (заня́ться) if forms["past_m3"] then alt_past_m = alt_past_m .. ", " .. forms["past_m3"] end -- short forms in 3a (исчез, сох, etc.) if forms["past_m_short"] then alt_past_m = forms["past_m_short"] .. ", " .. alt_past_m end local alt_past_f = forms["past_f"] if forms["past_f2"] then alt_past_f = forms["past_f"] .. ", " .. forms["past_f2"] end -- short forms in 3a (исчезла, сохла, etc.) if forms["past_f_short"] then alt_past_f = forms["past_f_short"] .. ", " .. alt_past_f end -- да́ло, дал́о; вз́яло, взяло́ local alt_past_n = forms["past_n"] if forms["past_n2"] then alt_past_n = forms["past_n"] .. ", " .. forms["past_n2"] end -- short forms in 3a (исчезло, сохло, etc.) if forms["past_n_short"] then alt_past_n = forms["past_n_short"] .. ", " .. alt_past_n end -- разобрали́сь (разобрали́) local alt_past_pl = forms["past_pl"] if forms["past_pl2"] then alt_past_pl = forms["past_pl"] .. ", " .. forms["past_pl2"] end -- short forms in 3a (исчезли, сохли, etc.) if forms["past_pl_short"] then alt_past_pl = forms["past_pl_short"] .. ", " .. alt_past_pl end --   -- тереть: тере́вши, тёрши, short: тере́в -- умереть: умере́вши, у́мерши, short: умере́в local alt_past_adv_part = forms["past_adv_part"] if forms["past_adv_part2"] then alt_past_adv_part = forms["past_adv_part"] .. ", " .. forms["past_adv_part2"] end -- сыпля, сыпя local alt_pres_adv_part = forms["pres_adv_part"] if forms["pres_adv_part2"] and not perf then alt_pres_adv_part = forms["pres_adv_part"] .. ", " .. forms["pres_adv_part2"] end local alt_pres_1sg = forms["pres_1sg"] if forms["pres_1sg2"] and not perf then alt_pres_1sg = forms["pres_1sg"] .. ", " .. forms["pres_1sg2"] end -- сыплешь, сыпешь local alt_pres_2sg = forms["pres_2sg"] if forms["pres_2sg2"] and not perf then alt_pres_2sg = forms["pres_2sg"] .. ", " .. forms["pres_2sg2"] end -- сыплет, сыпет local alt_pres_3sg = forms["pres_3sg"] if forms["pres_3sg2"] and not perf then alt_pres_3sg = forms["pres_3sg"] .. ", " .. forms["pres_3sg2"] end -- сыплем, сыпем local alt_pres_1pl = forms["pres_1pl"] if forms["pres_1pl2"] and not perf then alt_pres_1pl = forms["pres_1pl"] .. ", " .. forms["pres_1pl2"] end -- сыплете, сыпете local alt_pres_2pl = forms["pres_2pl"] if forms["pres_2pl2"] and not perf then alt_pres_2pl = forms["pres_2pl"] .. ", " .. forms["pres_2pl2"] end -- сыплют, сыпют local alt_pres_3pl = forms["pres_3pl"] if forms["pres_3pl2"] and not perf then alt_pres_3pl = forms["pres_3pl"] .. ", " .. forms["pres_3pl2"] end local alt_futr_1sg = forms["futr_1sg"] if forms["futr_1sg2"] then alt_futr_1sg = forms["futr_1sg"] .. ", " .. forms["futr_1sg2"] end -- насыплешь, насыпешь local alt_futr_2sg = forms["futr_2sg"] if forms["futr_2sg2"] then alt_futr_2sg = forms["futr_2sg"] .. ", " .. forms["futr_2sg2"] end -- насыплет, насыпет local alt_futr_3sg = forms["futr_3sg"] if forms["futr_3sg2"] then alt_futr_3sg = forms["futr_3sg"] .. ", " .. forms["futr_3sg2"] end -- насыплем, насыпем local alt_futr_1pl = forms["futr_1pl"] if forms["futr_1pl2"] then alt_futr_1pl = forms["futr_1pl"] .. ", " .. forms["futr_1pl2"] end -- насыплете, насыпете local alt_futr_2pl = forms["futr_2pl"] if forms["futr_2pl2"] then alt_futr_2pl = forms["futr_2pl"] .. ", " .. forms["futr_2pl2"] end -- насыплют, насыпют local alt_futr_3pl = forms["futr_3pl"] if forms["futr_3pl2"] then alt_futr_3pl = forms["futr_3pl"] .. ", " .. forms["futr_3pl2"] end local alt_pres_actv_part = forms["pres_actv_part"] if forms["pres_actv_part2"] then alt_pres_actv_part = forms["pres_actv_part"] .. ", " .. forms["pres_actv_part2"] end local alt_past_actv_part = forms["past_actv_part"] if forms["past_actv_part2"] then alt_past_actv_part = forms["past_actv_part"] .. ", " .. forms["past_actv_part2"] end local alt_pres_pasv_part = forms["pres_pasv_part"] if forms["pres_pasv_part2"] then alt_pres_pasv_part = forms["pres_pasv_part"] .. ", " .. forms["pres_pasv_part2"] end local alt_past_pasv_part = forms["past_pasv_part"] if forms["past_pasv_part2"] then alt_past_pasv_part = forms["past_pasv_part"] .. ", " .. forms["past_pasv_part2"] end return [=[ ]=] .. title .. [=[ ]=] end return export