45,621
edits
No edit summary |
No edit summary |
||
Line 7: | Line 7: | ||
local ce = {"a", "ta", "ka", "ma", "bma", "ska"} | local ce = {"a", "ta", "ka", "ma", "bma", "ska"} | ||
local | local m_com = require('Module:siwa-noun/common') | ||
local data = {} | local data = {} | ||
Line 32: | Line 17: | ||
} | } | ||
setmetatable(data["a"], {__call = function(self, args, data) | setmetatable(data["a"], {__call = function(self, args, data) | ||
local stem = args.nolen and data.head or lenition(data.head) | local stem = args.nolen and data.head or m_com.lenition(data.head) | ||
local s2, s3 = sub(stem, 1, -3), sub(stem, 1, -4) | local s2, s3 = sub(stem, 1, -3), sub(stem, 1, -4) | ||
table.insert(data.categories, "Siwa a-declension nouns") | table.insert(data.categories, "Siwa a-declension nouns") | ||
Line 69: | Line 54: | ||
loc = s2 .. "ki" | loc = s2 .. "ki" | ||
else | else | ||
data.forms["m"] = { | data.forms["m"] = {stem .. "ka"} | ||
loc = | loc = stem .. "ki" | ||
end | end | ||
Line 99: | Line 84: | ||
} | } | ||
setmetatable(data["e"], {__call = function(self, args, data) | setmetatable(data["e"], {__call = function(self, args, data) | ||
local stem = args.nolen and data.head or lenition(data.head) | local stem = args.nolen and data.head or m_com.lenition(data.head) | ||
local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | ||
table.insert(data.categories, "Siwa e-declension nouns") | table.insert(data.categories, "Siwa e-declension nouns") | ||
Line 142: | Line 127: | ||
loc = s2 .. "ġġi" | loc = s2 .. "ġġi" | ||
else | else | ||
data.forms["m"] = { | data.forms["m"] = {stem .. "ri"} | ||
loc = | loc = stem .. "ri" | ||
end | end | ||
elseif stem:match("[io]$") then | elseif stem:match("[io]$") then | ||
Line 172: | Line 157: | ||
loc = s2 .. (data.q == "s" and "gme" or "hme") | loc = s2 .. (data.q == "s" and "gme" or "hme") | ||
else | else | ||
data.forms["m"] = { | data.forms["m"] = {stem .. "me"} | ||
loc = | loc = stem .. "mei" | ||
end | end | ||
end | end | ||
Line 199: | Line 184: | ||
} | } | ||
setmetatable(data["i"], {__call = function(self, args, data) | setmetatable(data["i"], {__call = function(self, args, data) | ||
local stem = args.nolen and data.head or lenition(data.head) | local stem = args.nolen and data.head or m_com.lenition(data.head) | ||
local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | ||
table.insert(data.categories, "Siwa i-declension nouns") | table.insert(data.categories, "Siwa i-declension nouns") | ||
Line 236: | Line 221: | ||
table.insert(data.forms["ine"], s1 .. "ỉa") | table.insert(data.forms["ine"], s1 .. "ỉa") | ||
else | else | ||
data.forms["m"] = { | data.forms["m"] = {stem .. "di"} | ||
ill, ela, ade = | ill, ela, ade = stem .. "h", stem .. "h", stem .. "h" | ||
all, abl = | all, abl = stem .. "i", stem .. "i" | ||
ine = | ine = stem .. "di" | ||
end | end | ||
Line 258: | Line 243: | ||
} | } | ||
setmetatable(data["o"], {__call = function(self, args, data) | setmetatable(data["o"], {__call = function(self, args, data) | ||
local stem = args.nolen and data.head or lenition(data.head) | local stem = args.nolen and data.head or m_com.lenition(data.head) | ||
local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | ||
table.insert(data.categories, "Siwa o-declension nouns") | table.insert(data.categories, "Siwa o-declension nouns") | ||
Line 284: | Line 269: | ||
loc = s2 .. "lmoi" | loc = s2 .. "lmoi" | ||
else | else | ||
data.forms["m"] = { | data.forms["m"] = {stem .. "mo"} | ||
loc = | loc = stem .. "moi" | ||
end | end | ||
elseif stem:match("i$") then | elseif stem:match("i$") then | ||
if stem:match(v.."hhį.$") then | if stem:match(v.."hhį.$") then | ||
data.forms["m"] = {sub | data.forms["m"] = {sub(stem, 1, -5) .. "ṡko"} | ||
loc = sub | loc = sub(stem, 1, -5) .. "ṡkoi" | ||
elseif stem:match(v.."[mn][mn].$") then | elseif stem:match(v.."[mn][mn].$") then | ||
data.forms["m"] = {s3 .. "kko"} | data.forms["m"] = {s3 .. "kko"} | ||
Line 310: | Line 295: | ||
loc = s2 .. "ṡkoi" | loc = s2 .. "ṡkoi" | ||
else | else | ||
data.forms["m"] = { | data.forms["m"] = {stem .. "ko"} | ||
loc = | loc = stem .. "koi" | ||
end | end | ||
elseif stem:match("[ouyů].$") then | elseif stem:match("[ouyů].$") then | ||
Line 327: | Line 312: | ||
loc = s2 .. "lmi" | loc = s2 .. "lmi" | ||
else | else | ||
data.forms["m"] = { | data.forms["m"] = {stem .. "ma"} | ||
ill, ela = | ill, ela = stem .. "n", stem .. "n" | ||
ine, ade, all, abl = | ine, ade, all, abl = stem .. "mi", stem .. "mi", stem .. "mi", stem .. "mi" | ||
end | end | ||
end | end | ||
Line 357: | Line 342: | ||
} | } | ||
setmetatable(data["u"], {__call = function(self, args, data) | setmetatable(data["u"], {__call = function(self, args, data) | ||
local stem = args.nolen and data.head or lenition(data.head) | local stem = args.nolen and data.head or m_com.lenition(data.head) | ||
local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | ||
table.insert(data.categories, "Siwa u-declension nouns") | table.insert(data.categories, "Siwa u-declension nouns") | ||
Line 380: | Line 365: | ||
loc = s2 .. "lmoi" | loc = s2 .. "lmoi" | ||
else | else | ||
data.forms["m"] = { | data.forms["m"] = {stem .. "mo"} | ||
loc = | loc = stem .. "moi" | ||
end | end | ||
elseif stem:match("[ouyů]$") then | elseif stem:match("[ouyů]$") then | ||
Line 397: | Line 382: | ||
loc = s2 .. "lmi" | loc = s2 .. "lmi" | ||
else | else | ||
data.forms["m"] = { | data.forms["m"] = {stem .. "ma"} | ||
ill, ela = | ill, ela = stem .. "n", stem .. "n" | ||
ine, ade, all, abl = | ine, ade, all, abl = stem .. "mi", stem .. "mi", stem .. "mi", stem .. "mi" | ||
end | end | ||
end | end | ||
Line 427: | Line 412: | ||
} | } | ||
setmetatable(data["y"], {__call = function(self, args, data) | setmetatable(data["y"], {__call = function(self, args, data) | ||
local stem = args.nolen and data.head or lenition(data.head) | local stem = args.nolen and data.head or m_com.lenition(data.head) | ||
local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | local s1, s2, s3 = sub(stem, 1, -2), sub(stem, 1, -3), sub(stem, 1, -4) | ||
table.insert(data.categories, "Siwa y-declension nouns") | table.insert(data.categories, "Siwa y-declension nouns") | ||
Line 449: | Line 434: | ||
loc = s2 .. "lmoi" | loc = s2 .. "lmoi" | ||
else | else | ||
data.forms["m"] = { | data.forms["m"] = {stem .. "mo"} | ||
loc = | loc = stem .. "moi" | ||
end | end | ||
elseif stem:match("i$") then | elseif stem:match("i$") then | ||
Line 483: | Line 468: | ||
table.insert(data.forms["ine"], s1 .. "ỉa") | table.insert(data.forms["ine"], s1 .. "ỉa") | ||
else | else | ||
data.forms["m"] = { | data.forms["m"] = {stem .. "di"} | ||
ill, ela, ade = | ill, ela, ade = stem .. "h", stem .. "h", stem .. "h" | ||
all, abl = | all, abl = stem .. "i", stem .. "i" | ||
ine = | ine = stem .. "di" | ||
end | end | ||
end | end |