Module:siwa-noun/data: Difference between revisions

Jump to navigation Jump to search
no edit summary
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

Navigation menu