45,631
edits
No edit summary |
No edit summary |
||
Line 10: | Line 10: | ||
local m_com = require('Module:siwa-noun/common') | local m_com = require('Module:siwa-noun/common') | ||
local function exactly(source, pattern) | |||
return source:match("^" .. pattern .. "$") | |||
end | |||
local data = {} | local data = {} | ||
Line 721: | Line 725: | ||
end | end | ||
end | |||
}) | |||
data["animate"] = { | |||
params = { | |||
[2] = {}, -- stressed vowel | |||
}, | |||
} | |||
setmetatable(data["animate"], {__call = function(self, args, data) | |||
local stem = data.head; local sv = args[2] | |||
local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | |||
data.forms["u_sg"] = {PAGENAME} | |||
if stem:match("m[ao]$") then | |||
data.forms["m_sg"] = {s2 .. (exactly(sv, "[ou]") and "ṡi" or "ka")} | |||
data.forms["u_pl"] = {stem .. "gi"} | |||
data.forms["m_pl"] = {data.forms.m_sg[1] .. "gi"} | |||
elseif stem:match(v.."nn.$") then | |||
data.forms["m"] = {s3 .. (data.q == "s" and "nka" or "kka")} | |||
loc = s3 .. (data.q == "s" and "nki" or "kki") | |||
elseif stem:match(v.."vv.$") then | |||
data.forms["m"] = {s3 .. "gga"} | |||
loc = s3 .. "ggi" | |||
elseif stem:match(v.."[lrs]k.$") then | |||
data.forms["m"] = {s2 .. "kka"} | |||
loc = s2 .. "kki" | |||
elseif stem:match(v.."m.$") then | |||
data.forms["m"] = {s2 .. (data.q == "s" and "mġa" or data.q == "l" and "mka" or "kka")} | |||
loc = s2 .. (data.q == "s" and "mṡi" or data.q == "l" and "mki" or "kki") | |||
elseif stem:match(v.."n.$") then | |||
data.forms["m"] = {s2 .. (data.q == "s" and "nka" or "kka")} | |||
loc = s2 .. (data.q == "s" and "nki" or "kki") | |||
elseif stem:match(v.."[pb].$") then | |||
data.forms["m"] = {s2 .. (data.q == "s" and "pra" or "ḍga")} | |||
loc = s2 .. (data.q == "s" and "pri" or "ḍgi") | |||
elseif stem:match(v.."[td].$") then | |||
data.forms["m"] = {s2 .. (data.q == "s" and "tra" or "rka")} | |||
loc = s2 .. (data.q == "s" and "tri" or "tṡi") | |||
elseif stem:match(v.."r.$") then | |||
data.forms["m"] = {s2 .. "hka"} | |||
loc = s2 .. "hki" | |||
elseif stem:match(v.."ṡṡ.$") then | |||
data.forms["m"] = {s2 .. "ka"} | |||
loc = s2 .. "ki" | |||
else | |||
data.forms["m"] = {(args.d and s1 or stem) .. "ka"} | |||
loc = (args.d and s1 or stem) .. "ki" | |||
na = true | |||
end | |||
--[[if stem:match("i$") then | |||
table.insert(data.forms["u_pl"]) | |||
end]] | |||
end | end | ||
}) | }) | ||
return data | return data |