Modül:de-eylem

Merhaba, buraya Modül:de-eylem kelimesinin anlamını aramaya geldiniz. DICTIOUS'da Modül:de-eylem kelimesinin tüm sözlük anlamlarını bulmakla kalmayacak, aynı zamanda etimolojisini, özelliklerini ve Modül:de-eylem kelimesinin tekil ve çoğul olarak nasıl söylendiğini de öğreneceksiniz. Modül:de-eylem kelimesi hakkında bilmeniz gereken her şey burada. Modül:de-eylem kelimesinin tanımı, konuşurken veya metinlerinizi yazarken daha kesin ve doğru olmanıza yardımcı olacaktır. XXX'in ve diğer kelimelerin tanımını bilmek, kelime dağarcığınızı zenginleştirir ve size daha fazla ve daha iyi dilsel kaynaklar sağlar.
Modül belgelemesi


local export = {}

local data = {}

local m_table = require("Modül:de-eylem/tablo")

local irregular_verbs = {
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
	 = true,
}

local pp = {
	 = true,
}

local function append(stem,suffix)
	stem = mw.text.split(stem,"_",true)
	for i=1,#stem do
		stem = stem .. suffix
	end
	return #stem==1 and stem or stem
end

local function make_pres_indc(conj,stem)
	local len = mw.ustring.len(stem)
	local final = mw.ustring.sub(stem,len,len)
	conj = stem .. "en"
	conj = stem .. "end"
	conj = stem .. "e"
	conj = stem .. "t"
	conj = stem .. "en"
	conj = stem .. "en"
	if final == "s" or final == "ß" then
		conj = stem .. "t"
		conj = stem .. "t"
		conj = {stem, stem .. "e"}
		conj = stem .. "t"
	elseif final == "t" then
		conj = stem .. "est"
		conj = stem .. "et"
		conj = stem .. "et"
		conj = stem .. "e"
		conj = stem .. "t"
	elseif final == "d" then
		conj = stem .. "est"
		conj = stem .. "et"
		conj = stem .. "et"
		conj = stem .. "e"
		conj = stem .. "t"
	else
		conj = stem .. "st"
		conj = stem .. "t"
		conj = {stem, stem .. "e"}
		conj = stem .. "t"
	end
end

local function make_pres_subj(conj,stem)
	conj = stem .. "e"
	conj = stem .. "est"
	conj = stem .. "e"
	conj = stem .. "en"
	conj = stem .. "et"
	conj = stem .. "en"
end

local function make_pres(conj,stem)
	make_pres_indc(conj,stem)
	make_pres_subj(conj,stem)
end

local function make_past_indc(conj,stem)
	local len = mw.ustring.len(stem)
	local final = mw.ustring.sub(stem,len,len)
	conj = append(stem,"")
	conj = append(stem,"")
	conj = append(stem,"en")
	conj = append(stem,"en")
	if final == "s" or final == "ß" then
		conj = append(stem,"t")
		conj = append(stem,"t")
	elseif final == "t" then
		conj = append(stem,"e")
		conj = append(stem,"est")
		conj = append(stem,"e")
		conj = append(stem,"et")
	elseif final == "d" then
		conj = append(stem,"est")
		conj = append(stem,"et")
	else
		conj = append(stem,"st")
		conj = append(stem,"t")
	end
end

local function make_past_subj(conj,stem)
	conj = append(stem,"e")
	conj = append(stem,"est")
	conj = append(stem,"e")
	conj = append(stem,"en")
	conj = append(stem,"et")
	conj = append(stem,"en")
end

local function make_past(conj,stem)
	make_past_indc(conj,stem)
	make_past_subj(conj,stem)
end

data = function(stem)
	local conj = {}
	conj = stem .. "en"
	conj = stem .. "end"
	conj = stem .. "t"
	
	conj = stem .. "e"
	conj = stem .. "st"
	conj = stem .. "t"
	conj = stem .. "en"
	conj = stem .. "t"
	conj = stem .. "en"
	
	conj = stem .. "e"
	conj = stem .. "est"
	conj = stem .. "e"
	conj = stem .. "en"
	conj = stem .. "et"
	conj = stem .. "en"
	
	make_past(conj,stem.."t")

	conj = {stem, stem .. "e"}
	conj = stem .. "t"
	
	return conj
end

data = function(stem)
	local conj = data(stem .. "s")

	conj = stem .. "st"

	return conj
end

data = function(stem)
	local conj = data(stem .. "ß")

	conj = stem .. "ßt"

	return conj
end

data = function(stem)
	local conj = data(stem .. "t")
	conj = stem .. "tet"
	
	conj = stem .. "test"
	conj = stem .. "tet"
	conj = stem .. "tet"
	
	make_past(conj,stem .. "tet")
	
	conj = stem .. "te"
	conj = stem .. "tet"
	
	return conj
end

data = function(stem)
	local conj = data(stem .. "d")
	conj = stem .. "det"
	
	conj = stem .. "dest"
	conj = stem .. "det"
	conj = stem .. "det"

	make_past(conj,stem .. "det")
	
	conj = stem .. "de"
	conj = stem .. "det"
	
	return conj
end

data = function(stem, consonant)
	local conj = data(stem .. "ech")
	conj = stem .. "ochen"
	
	conj = stem .. "ichst"
	conj = stem .. "icht"
	
	make_past_indc(conj, stem .. "ach")
	make_past_subj(conj, stem .. "äch")
	
	conj = stem .. "ich"
	
	return conj
end

data = function(stem, consonant)
	local conj = data(stem .. "ehm")
	conj = stem .. "ommen"
	
	conj = stem .. "immst"
	conj = stem .. "immt"
	
	make_past_indc(conj, stem .. "ahm")
	make_past_subj(conj, stem .. "ähm")
	
	conj = stem .. "imm"
	
	return conj
end

data = function(stem)
	local conj = data(stem .. "eh")
	conj = stem .. "ehen"
	
	conj = stem .. "iehst"
	conj = stem .. "ieht"
	
	make_past_indc(conj, stem .. "ah")
	make_past_subj(conj, stem .. "äh")
	
	if stem == "sch" then
		conj = "schieh"
	else
		conj = {stem .. "ieh", stem .. "iehe"}
	end
	
	return conj
end

data = function(stem)
	local conj = data(stem .. "enn")
	conj = stem .. "annt"
	
	make_past_indc(conj, stem .. "annt")

	return conj
end

data = function(stem)
	local conj = data(stem .. "in")
	conj = stem .. "unden"
	
	make_past_indc(conj, stem .. "and")
	make_past_subj(conj, stem .. "änd")
	
	return conj
end

data = function(stem)
	local conj = data(stem .. "ie")
	conj = stem .. "ossen"
	
	make_past_indc(conj, stem .. "oss")
	make_past_subj(conj, stem .. "öss")

	return conj
end

data = function(stem)
	local conj = data("bring")
	conj = "bracht"
	
	make_past_indc(conj, "brach")
	make_past_subj(conj, "bräch")
	
	return conj
end

data = function(stem)
	local conj = data("fahr")
	conj = "fahren"
	
	conj = "fährst"
	conj = "fährt"
	
	make_past_indc(conj,"fuhr")
	make_past_subj(conj,"führ")
	
	return conj
end

data = function(stem)
	local conj = data("komm")
	conj = "kommen"
	
	make_past_indc(conj,"kam")
	make_past_subj(conj,"käm")
	
	return conj
end

data = function(stem)
	local conj = data("las")
	conj = "lassen"
	
	conj = "lässt"
	conj = "lässt"
	
	make_past(conj,"ließ")
	
	return conj
end

data = function(stem)
	local conj = data("lösch")
	conj = "loschen"
	
	conj = "lischst"
	conj = "lischt"
	
	conj = {"lisch", "lische"}
	
	make_past_indc(conj,"losch")
	make_past_subj(conj,"lösch")
	
	return conj
end

data = function(stem)
	local conj = data("schaff")
	conj = "schaffen"
	
	make_past_indc(conj,"schuf")
	make_past_subj(conj,"schüf")
	
	return conj
end

data = function(stem)
	local conj = data("schlaf")
	conj = "schlafen"
	
	conj = "schläfst"
	conj = "schläft"
	
	make_past(conj,"schlief")
	
	return conj
end

data = function(stem)
	local conj = data("schwör")
	conj = "schworen"
	
	make_past_indc(conj,"schwor_schwur")
	make_past_subj(conj,"schwör_schwür")
	
	return conj
end

data = function(stem)
	local conj = {}
	conj = "sein"
	conj = "seiend"
	conj = "wesen"
	
	conj = "bin"
	conj = "bist"
	conj = "ist"
	conj = "sind"
	conj = "seid"
	conj = "sind"
	
	conj = "sei"
	conj = "seist"
	conj = "sei"
	conj = "seien"
	conj = "seiet"
	conj = "seien"
	
	make_past_indc(conj, "war")
	make_past_subj(conj, "wär")

	conj = "sei"
	conj = "seid"
	
	return conj
end

data = function(stem)
	local conj = data("steh")
	conj = "standen"
	
	make_pres_subj(conj, "ständ_stünd")
	make_past_indc(conj, stem .. "stand")
	
	return conj
end

data = function(stem)
	local conj = data("tu")
	conj = "tun"
	conj = "tuend"
	conj = "tan"
	
	conj = "tun"
	conj = "tun"
	
	make_past_indc(conj, "tat")
	conj = "tat"
	conj = "tat"
	
	make_past_subj(conj, "tät")
	
	return conj
end

data = function(stem)
	local conj = data("thu")
	conj = "thun"
	conj = "thuend"
	conj = "than"
	
	conj = "thun"
	conj = "thun"
	
	make_past_indc(conj, "that")
	conj = "that"
	conj = "that"
	
	make_past_subj(conj, "thät")
	
	return conj
end

data = function(stem)
	local conj = data("winn")
	conj = "wonnen"
	
	make_past_indc(conj,"wann")
	make_past_subj(conj,"wänn")
	
	return conj
end

data = function(stem)
	local conj = data("woll")
	
	conj = "will"
	conj = "willst"
	conj = "will"

	return conj
end

function export.auto(frame)
	args = frame:getParent().args
	local sep_prefix = args or ""
	local insep_prefix = args or ""
	local stem = args or ""
	local conj_type = args or ""
	local aux = args or "h"
	local insep = args or ""
	local impersonal = args or args or false
	
	sep_prefix = sep_prefix:gsub(" "," ")
	
	if conj_type == "" and stem == "" and insep_prefix == "" and sep_prefix == "" then -- {{de-conj-auto}}
		error("Please provide at least one argument")
	elseif conj_type == "" and stem == "" and insep_prefix == "" then -- {{de-conj-auto|sein}}
		conj_type = sep_prefix
		sep_prefix = ""
	elseif conj_type == "" and stem == "" then
		if irregular_verbs then -- {{de-conj-auto|ab|tun}}
			conj_type = insep_prefix
			insep_prefix = ""
		else -- {{de-conj-auto|mach|en}}
			conj_type = insep_prefix
			stem = sep_prefix
			insep_prefix = ""
			sep_prefix = ""
		end
	elseif conj_type == "" then
		if irregular_verbs then -- {{de-conj-auto|an|ver|tun}} (does not exist)
			conj_type = stem
			stem = ""
		else -- {{de-conj-auto|ab|f|inden}}
			conj_type = stem
			stem = insep_prefix
			insep_prefix = ""
		end
	end
	if insep ~= "" and insep ~= "no" and insep ~= "0" and insep_prefix == "" then
		insep_prefix = sep_prefix
		sep_prefix = ""
	end
	
	if not data then error("Conjugation type not recognized by module") end
	conj = data(stem)
	
	if pp then
		conj = nil
		conj = nil
	end
	
	text = m_table.maketable(sep_prefix,insep_prefix,conj,aux,impersonal)
	return text
end

function export.stems(frame)
	args = frame:getParent().args
	local sep_prefix = args or ""
	local stems = args or ""
	local pp = args or ""
	local aux = args or "h"
	local impersonal = args or ""
	if impersonal == "" then impersonal = args or "" end
	if impersonal == "" then impersonal = false end
	
	sep_prefix = sep_prefix:gsub(" "," ")
	
	if sep_prefix == "" and stems == "" and pp == "" then -- {{de-conj-stems}}
		error("Please provide at least one argument")
	elseif stems == "" then -- {{de-conj-stems|abandonnier}}
		stems = sep_prefix
		sep_prefix = ""
	elseif pp == "" then
		if mw.ustring.match(sep_prefix,"/") then
			pp = stems
			stems = sep_prefix
			sep_prefix = ""
		end
	end
	
	local conj = {}
	
	stems = mw.text.split(stems,"/")
	if pp == "" then
		conj = "ge" .. stems .. "t"
	else
		conj = pp
	end
	
	if #stems == 1 then
		make_pres(conj,stems)
		make_past(conj,stems)
	elseif #stems == 2 then
		make_pres(conj,stems)
		make_past(conj,stems)
	elseif #stems == 3 then
		make_pres(conj,stems)
		make_past_indc(conj,stems)
		make_past_subj(conj,stems)
	elseif #stems == 4 then
		make_pres_indc(conj,stems)
		make_pres_subj(conj,stems)
		make_past_indc(conj,stems)
		make_past_subj(conj,stems)
	end
	
	if args then
		conj = nil
		conj = nil
	end
	
	text = m_table.maketable(sep_prefix,"",conj,aux,impersonal,true)
	return text
end

return export