Module:bac à sable/Andreyyshore/ro-réfl
Apparence
La documentation pour ce module peut être créée à Module:bac à sable/Andreyyshore/ro-réfl/Documentation
local p = {}
local table_acc = {
["m"] = { " mă", "mă", "m-" },
["t"] = { " te", "te", "te-" },
["s"] = { " se", "se", "s-" },
["l"] = { "-l", "îl", "l-" },
["o"] = { " o", "o", "-o" },
["n"] = { " ne", "ne", "ne-" },
["v"] = { " vă", "vă", "v-" },
["i"] = { "-i", "îi", "i-" },
["e"] = { " le", "le", "le-" }
}
local table_dat = {
["m"] = { "-mi", "îmi", "mi-", "mi", "mi" },
["ț"] = { "-ți", "îți", "ți-", "ți", "ți" },
["ș"] = { "-și", "își", "și-", "și", "și" },
["i"] = { "-i", "îi", "i-", "i", "i" },
["n"] = { " ne", "ne", "ne-", "ni", "ne" },
["v"] = { " vă", "vă", "v-", "vi", "v" },
["l"] = { " le", "le", "le-", "li", "le" }
}
function p.pronoms(a, verb, acc, dat, contr)
if contr == "" then contr = 2
elseif (contr:sub(1, 1) == "-") or (contr:sub(1, 1) == "<") then contr = 1
else contr = 3
end
if acc ~= "" then
if (acc == "mă") or (acc == "m-") or (acc == "-mă") or (acc == "m") then acc = "m"
elseif (acc == "te") or (acc == "te-") or (acc == "-te") or (acc == "t") then acc = "t"
elseif (acc == "se") or (acc == "s-") or (acc == "-se") or (acc == "s") or (acc == "-") then acc = "s"
elseif (acc == "îl") or (acc == "l-") or (acc == "-l") or (acc == "l") then acc = "l"
elseif (acc == "o") or (acc == "-o") then acc = "o"
elseif (acc == "ne") or (acc == "ne-") or (acc == "-ne") or (acc == "n") then acc = "n"
elseif (acc == "vă") or (acc == "v-") or (acc == "-vă") or (acc == "v") then acc = "v"
elseif (acc == "îi") or (acc == "i-") or (acc == "-i") or (acc == "i") then acc = "i"
elseif (acc == "le") or (acc == "le-") or (acc == "-le") or (acc == "e") then acc = "e"
else acc = "" end
end
if dat ~= "" then
if (dat == "îmi") or (dat == "mi") or (dat == "-mi") or (dat == "m") then dat = "m"
elseif (dat == "îți") or (dat == "ți") or (dat == "-ți") or (dat == "ț") then dat = "ț"
elseif (dat == "își") or (dat == "și") or (dat == "-și") or (dat == "ș") then dat = "ș"
elseif (dat == "îi") or (dat == "i") or (dat == "-i") then dat = "i"
elseif (dat == "ne") or (dat == "ni") or (dat == "n") then dat = "n"
elseif (dat == "vă") or (dat == "vi") or (dat == "v") then dat = "v"
elseif (dat == "le") or (dat == "li") or (dat == "l") then dat = "l"
else dat = "" end
end
if (acc == "") and (dat == "") then return ((a ~= "") and (a .. " ") or "") .. verb
elseif verb == "" then
if dat == "" then return a .. table_acc[acc][contr]
elseif acc == "" then return a .. table_dat[dat][contr]
else
if contr == 1 then
if acc == "o" then return a .. " " .. table_dat[dat][5] .. table_acc[acc][3]
else return a .. " " .. table_dat[dat][4] .. table_acc[acc][1] end
elseif contr == 2 then
if acc == "o" then return ((a ~= "") and (a .. " ") or "") .. table_dat[dat][5] .. table_acc[acc][3]
else return ((a ~= "") and (a .. " ") or "") .. table_dat[dat][4] .. table_acc[acc][1] end
else
if acc == "o" then return ((a ~= "") and (a .. " ") or "") .. table_dat[dat][3] .. "..." .. table_acc["o"][3]
else return ((a ~= "") and (a .. " ") or "") .. table_dat[dat][4] .. " " .. table_acc[acc][3] end
end
end
return a .. ""
elseif dat == "" then
if contr == 3 then
if acc == "o" then return ((a ~= "") and (a .. " ") or "") .. verb .. table_acc["o"][3]
else return ((a ~= "") and (a .. " ") or "") .. table_acc[acc][3] .. verb end
else return a .. table_acc[acc][contr] .. " " .. verb end
elseif acc == "" then
if contr == 3 then return ((a ~= "") and (a .. " ") or "") .. table_dat[dat][contr] .. verb
else return a .. table_dat[dat][contr] .. " " .. verb end
end
if contr == 1 then
if acc == "o" then return a .. " " .. table_dat[dat][5] .. table_acc[acc][3] .. " " .. verb
else return a .. " " .. table_dat[dat][4] .. table_acc[acc][1] .. " " .. verb end
elseif contr == 2 then
if acc == "o" then return ((a ~= "") and (a .. " ") or "") .. table_dat[dat][5] .. table_acc[acc][3] .. " " .. verb
else return ((a ~= "") and (a .. " ") or "") .. table_dat[dat][4] .. table_acc[acc][1] .. " " .. verb end
end
if acc == "o" then return ((a ~= "") and (a .. " ") or "") .. table_dat[dat][3] .. verb .. table_acc["o"][3] end
return ((a ~= "") and (a .. " ") or "") .. table_dat[dat][4] .. " " .. table_acc[acc][3] .. verb
end
function p.main(frame)
local args = frame:getParent().args
local a = args[1] or args["a"] or ""
local verb = args[2] or args["verb"] or ""
local acc = args[3] or args["acc"] or ""
local dat = args[4] or args["dat"] or ""
local contr = args[5] or args["contr"] or ""
return p.pronoms(a, verb, acc, dat, contr)
end
return p