This module contains data on various types of numbers in Malecite-Passamaquoddy.
local export = {numbers = {}}
local numbers = export.numbers
export.additional_number_types = {
{key = "adnominal"},
}
numbers = {
cardinal = {"pesq", "neqt"},
ordinal = "amsqahsewey",
adverbial = "neqt",
adnominal = {"pesq", "pesqon"},
initial_root = {"]", "]"}
}
numbers = {
cardinal = {"nis", "tapu"},
ordinal = "nisewey",
adverbial = "nisokehs",
adnominal = {"nisuwok", "nisonul"},
initial_root = "nis-"
}
numbers = {
cardinal = {"nihi", "'sis"},
ordinal = "nuhuwewey",
adverbial = "nihikehs",
adnominal = {"nuhuwok", "nohonul"},
initial_root = "'s-"
}
numbers = {
cardinal = "new",
ordinal = "newewey",
adverbial = "newokehs",
adnominal = {"newwok", "newonul"},
initial_root = "new-"
}
numbers = {
cardinal = "nan",
ordinal = "nanewey",
adverbial = "nanokehs",
adnominal = {"nanuwok", "nanonul"},
initial_root = "nan-"
}
generativeNumList = {
= "kamahcin",
= "oluwikonok",
= "oqomolcin",
= "esqonatek",
= "'qotinsk",
= "'qotanku",
= "nisanku",
= "'sanku",
= "newanku",
= "nananku",
= "'qotatq",
= "'qotamqahk",
= "'qotalokamqahk",
}
-- Automate the generation of numbers 16-19, which are simply + "kehsanku"
for n = 16, 19 do
generativeNumList = generativeNumList .. " kehsanku"
end
-- Automate the generation of multiples of 10 from 20-50, using this constructor: "insk"
for n = 20, 50, 10 do
local rootPrefix = numbers.initial_root:sub(1, -2)
generativeNumList = rootPrefix .. "insk"
end
-- Automate the generation of multiples of 10 from 60-90, which follow this rule: + "kehsinsk"
for n = 60, 90, 10 do
generativeNumList = generativeNumList .. " kehsinsk"
end
-- Automate the generation of all other numbers from 21-99, which use "cel" as a connector
for n = 21, 99 do
-- If not a multiple of 10, i.e. not 30, 40, etc.
local ones = n % 10
if ones ~= 0 then
local base = generativeNumList .. " cel "
-- 21, 22 and 23, and 31, 32, 33, etc. have alternative forms.
if ones <= 3 then
local form1 = base .. numbers.cardinal
local form2 = base .. numbers.cardinal
generativeNumList = {form1, form2, base}
-- Pull data from the numbers table
elseif ones <= 5 then
local form = base .. numbers.cardinal
generativeNumList = {form, base}
-- Pull data from the generativeNumList table
else
local form = base .. generativeNumList
generativeNumList = {form, base}
end
end
end
-- Automate the generation of multiples of 100 from 200-500, using this constructor: "atq"
for n = 200, 500, 100 do
local rootPrefix = numbers.initial_root:sub(1, -2)
generativeNumList = rootPrefix .. "atq"
end
-- Automate the generation of multiples of 100 from 600-900, which follow this rule: + "kehsatq"
for n = 600, 900, 100 do
generativeNumList = generativeNumList .. " kehsatq"
end
-- Automate the generation of multiples of 1000 from 2000-5000, using this constructor: "amqahk"
for n = 2000, 5000, 1000 do
local rootPrefix = numbers.initial_root:sub(1, -2)
generativeNumList = rootPrefix .. "amqahk"
end
-- Automate the generation of multiples of 1000 from 6000-9000, which follow this rule: + "kehsamqahk"
for n = 6000, 9000, 1000 do
generativeNumList = generativeNumList .. " kehsamqahk"
end
-- Automate the generation of multiples of a million from 2000000-5000000, using this constructor: "alokamqahk"
for n = 2000000, 5000000, 1000000 do
local rootPrefix = numbers.initial_root:sub(1, -2)
generativeNumList = rootPrefix .. "alokamqahk"
end
-- Automate the generation of multiples of a million from 6000000-9000000, which follow this rule: + "kehsalokamqahk"
for n = 6000000, 9000000, 1000000 do
generativeNumList = generativeNumList .. " kehsalokamqahk"
end
for n, word in pairs(generativeNumList) do
-- 21, 22 and 23, and 31, 32, 33, etc. have alternative forms.
if n > 20 and n < 100 and n % 10 ~= 0 and n % 10 <= 3 then
numbers = {
cardinal = {" .. "]]", " .. "]]"},
ordinal = {" .. "]] ]", " .. "]] ]"},
adverbial = " .. numbers.adverbial .. "]]",
adnominal = {" .. "]]", " .. "]]"}
}
-- Pull data from the numbers table
elseif n > 20 and n < 100 and n % 10 ~= 0 and n % 10 <= 5 then
numbers = {
cardinal = " .. "]]",
ordinal = " .. "]] ]",
adverbial = " .. numbers.adverbial .. "]]",
adnominal = " .. "]]"
}
-- Pull data from the generativeNumList table
elseif n > 20 and n < 100 and n % 10 ~= 0 then
numbers = {
cardinal = " .. "]]",
ordinal = " .. "]] ]",
adverbial = " .. generativeNumList .. "]] ]",
adnominal = " .. "]]",
}
-- All other numbers
else
numbers = {
cardinal = "]",
ordinal = "] ]",
adverbial = "] ]",
adnominal = {"] ]", "] ]"}
}
-- Overrides adnominal form for numbers greater than 9. The cardinal and adnominal forms are the same for these numbers.
if n > 9 then
numbers.adnominal = "]"
end
end
end
return export