Moduuli:Ety/taulukot
Tämän moduulin ohjeistuksen voi tehdä sivulle Moduuli:Ety/taulukot/ohje
local etykielet = {
['baltt'] = {
"balttilainen kielimuoto",
"balttilaisen kielimuodon",
"balttilaista kielimuotoa",
},
['germ'] = {
"kantagermaani",
"kantagermaanin",
"kantagermaania",
},
['ieur'] = {
"indoeurooppalainen kantakieli",
"indoeurooppalaisen kantakielen",
"indoeurooppalaista kantakieltä",
},
['kantaurali'] = {
"kantaurali",
"kantauralin",
"kantauralia",
},
['klat'] = {
"keskilatina",
"keskilatinan",
"keskilatinaa",
},
['*ksm'] = {
"kantasuomi",
"kantasuomen",
"kantasuomea",
},
['vksm'] = {
"varhaiskantasuomi",
"varhaiskantasuomen",
"varhaiskantasuomea",
},
['mksm'] = {
"myöhäiskantasuomi",
"myöhäiskantasuomen",
"myöhäiskantasuomea",
},
['*ims'] = {
"itämerensuomi",
"itämerensuomen",
"itämerensuomea",
},
['+mr'] = {
"muinaisruotsi",
"muinaisruotsin",
"muinaisruotsia",
},
['skand'] = {
"kantaskandinaavi",
"kantaskandinaavin",
"kantaskandinaavia",
},
['*kas'] = {
"keskialasaksa",
"keskialasaksan",
"keskialasaksaa",
},
['*kys'] = {
"keskiyläsaksa",
"keskiyläsaksan",
"keskiyläsaksaa",
},
['*vur'] = {
"varhaisempi uusruotsi",
"varhaisemman uusruotsin",
"varhaisempaa uusruotsia",
},
}
-- Kielikoodit ovat aina kaksi tai kolme kirjainta pitkiä. Muiden merkintöjen
-- pitää olla aina vähintään neljä merkkiä.
local kielipuu = {
['ieur'] = { -- indoeurooppalainen
['la'] = { -- latina
'ca', --katalaani
'es', --espanja
['fro'] = { -- muinaisranska
'fr', -- ranska
},
'it', -- italia
'pt', -- portugali
'ro', -- romania
'sc', -- sardi
},
['germ'] = { -- germaaninen
['*kys'] = { -- keskiyläsaksa
'de', -- saksa
},
['ang'] = { -- muinaisenglanti
'en', -- englanti
},
['skand'] = { -- skandinaavinen
'da', -- tanska
'no', -- norja
['*mr'] = { -- muinaisruotsi
'sv',-- ruotsi
},
}
}
},
['kantaurali'] = { -- uralilainen kantakieli
['*ksm'] = { -- kantasuomi
['vksm'] = { -- myöhäiskantasuomi
['mksm'] = { -- myöhäiskantasuomi
['*ims'] = { -- itämerensuomi
'et', -- viro
'fi', -- suomi
'krl', -- karjala
'vot', -- vatja
'vep', -- vepsä
'ink', -- inkeroinen
'lud', -- lyydi
'liv', -- liivi
},
},
'sme', -- pohjoissaame
},
},
},
}
--------------------------------------------------------------------------------
local function clone_and_append(orig, value)
local copy = {}
for k, v in pairs(orig) do
copy[k] = v
end
table.insert(copy, value)
return copy
end
local function print_path(path)
print("[ " .. table.concat(path, ", ") .. " ]")
end
local function create_descendant_table()
local descs = {}
local function traverse(subtree, path)
for key, val in pairs(subtree) do
if type(val) == "table" then
traverse(val, clone_and_append(path, key))
elseif type(val) == "string" then
for _, ancestor in ipairs(path) do
descs[val .. ":" .. ancestor] = "true"
end
end
end
end
for key, val in pairs(kielipuu) do
traverse(val, { key })
end
return descs
end
return {
['etykielet'] = etykielet,
['sukulaisuudet'] = create_descendant_table(),
}