Module:mg-noun/data: Difference between revisions

From Linguifex
Jump to navigation Jump to search
No edit summary
No edit summary
Line 24: Line 24:
data.forms["da_p"] = {s1 .. "ú"}
data.forms["da_p"] = {s1 .. "ú"}
data.forms["lo_p"] = {s1 .. "ui"}
data.forms["lo_p"] = {s1 .. "ui"}
end
})
data["A"] = {
params = {
[1] = {},
},
}
setmetatable(data["A"], {__call = function(self, args, data)
local stem = data.head
local s1 = sub(stem, 1, -2); local s2 = sub(stem, 1, -3)
data.decl_type = "A"
table.insert(data.categories, "Modern Gallaecian a-declension nouns")
data.forms["di_s"] = {s1 .. "a"}
data.forms["da_s"] = {s1 .. "e"}
data.forms["lo_s"] = {s1 .. "e"}
data.forms["di_p"] = {s1 .. "as"}
data.forms["da_p"] = {s1 .. "au"}
data.forms["lo_p"] = {s1 .. "ai"}
end
})
data["E"] = {
params = {
[1] = {},
},
}
setmetatable(data["E"], {__call = function(self, args, data)
local stem = data.head
local s1 = sub(stem, 1, -2); local s2 = sub(stem, 1, -3)
data.decl_type = "E"
table.insert(data.categories, "Modern Gallaecian e-declension nouns")
data.forms["di_s"] = {s1 .. "e"}
data.forms["da_s"] = {s1 .. "e"}
data.forms["lo_s"] = {s1 .. "e"}
data.forms["di_p"] = {s1 .. "es"}
data.forms["da_p"] = {s1 .. "iu"}
data.forms["lo_p"] = {s1 .. "ei"}
end
})
data["N"] = {
params = {
[1] = {},
},
}
setmetatable(data["N"], {__call = function(self, args, data)
local stem = data.head; data.decl_type = "N"
local s1 = sub(stem, 1, -2); local s2 = sub(stem, 1, -3)
local changes = {["d"] = "n", ["z"] = "i", ["n"] = "n"}
local changed = gsub(s1, ".$", function(foo) return changes[foo] or "-" end)
table.insert(data.categories, "Modern Gallaecian n-declension nouns")
data.forms["di_s"] = {stem}
data.forms["di_p"] = {s2 .. "nes"}
if not match(changed, "-") then
data.forms["da_s"] = {s2 .. "ne"}
data.forms["lo_s"] = {s2 .. "ne"}
data.forms["da_p"] = {s2 .. "nú"}
data.forms["lo_p"] = {s2 .. "nui"}
end
end
end

Revision as of 12:01, 12 September 2021



local sub = mw.ustring.sub
local gsub = mw.ustring.gsub
local match = mw.ustring.match
local PAGENAME = mw.title.getCurrentTitle().text

local data = {}

data["O"] = {
	params = {
		[1] = {},
	},
}
setmetatable(data["O"], {__call = function(self, args, data)
	local stem = data.head; local inserted = gsub(stem, "(.)o$", "i%1")
	local s1 = sub(stem, 1, -2); local s2 = sub(stem, 1, -3)
	data.decl_type = "O"
	table.insert(data.categories, "Modern Gallaecian o-declension nouns")
	
	data.forms["di_s"] = {s1 .. "o"}
	data.forms["da_s"] = {s1 .. "o"}
	data.forms["lo_s"] = {inserted .. "e"}
	
	data.forms["di_p"] = {s1 .. "os"}
	data.forms["da_p"] = {s1 .. "ú"}
	data.forms["lo_p"] = {s1 .. "ui"}
	
end
})

data["A"] = {
	params = {
		[1] = {},
	},
}
setmetatable(data["A"], {__call = function(self, args, data)
	local stem = data.head
	local s1 = sub(stem, 1, -2); local s2 = sub(stem, 1, -3)
	data.decl_type = "A"
	table.insert(data.categories, "Modern Gallaecian a-declension nouns")
	
	data.forms["di_s"] = {s1 .. "a"}
	data.forms["da_s"] = {s1 .. "e"}
	data.forms["lo_s"] = {s1 .. "e"}
	
	data.forms["di_p"] = {s1 .. "as"}
	data.forms["da_p"] = {s1 .. "au"}
	data.forms["lo_p"] = {s1 .. "ai"}
	
end
})

data["E"] = {
	params = {
		[1] = {},
	},
}
setmetatable(data["E"], {__call = function(self, args, data)
	local stem = data.head
	local s1 = sub(stem, 1, -2); local s2 = sub(stem, 1, -3)
	data.decl_type = "E"
	table.insert(data.categories, "Modern Gallaecian e-declension nouns")
	
	data.forms["di_s"] = {s1 .. "e"}
	data.forms["da_s"] = {s1 .. "e"}
	data.forms["lo_s"] = {s1 .. "e"}
	
	data.forms["di_p"] = {s1 .. "es"}
	data.forms["da_p"] = {s1 .. "iu"}
	data.forms["lo_p"] = {s1 .. "ei"}
	
end
})

data["N"] = {
	params = {
		[1] = {},
	},
}
setmetatable(data["N"], {__call = function(self, args, data)
	local stem = data.head; data.decl_type = "N"
	local s1 = sub(stem, 1, -2); local s2 = sub(stem, 1, -3)
	local changes = {["d"] = "n", ["z"] = "i", ["n"] = "n"}
	local changed = gsub(s1, ".$", function(foo) return changes[foo] or "-" end)
	table.insert(data.categories, "Modern Gallaecian n-declension nouns")
	
	data.forms["di_s"] = {stem}
	data.forms["di_p"] = {s2 .. "nes"}
	
	if not match(changed, "-") then
		data.forms["da_s"] = {s2 .. "ne"}
		data.forms["lo_s"] = {s2 .. "ne"}
		data.forms["da_p"] = {s2 .. "nú"}
		data.forms["lo_p"] = {s2 .. "nui"}
	end
	
end
})

data["R"] = {
	params = {
		[1] = {},
	},
}
setmetatable(data["R"], {__call = function(self, args, data)
	local stem = data.head
	local s1 = sub(stem, 1, -2); local s2 = sub(stem, 1, -3)
	data.decl_type = "R"
	table.insert(data.categories, "Modern Gallaecian r-declension nouns")
	
	data.forms["di_s"] = {s1 .. "r"}
	data.forms["da_s"] = {s2 .. "re"}
	data.forms["lo_s"] = {s2 .. "re"}
	
	data.forms["di_p"] = {s2 .. "res"}
	data.forms["da_p"] = {s2 .. "rú"}
	data.forms["lo_p"] = {s2 .. "rui"}
	
end
})

return data