Module:Grammar/Conjugate

local p = {}

function p.pluralize(str, apostrophe) apostrophe = apostrophe or '' local irregularplurals = { man = 'men' }	if irregularplurals[str] ~= nil then return irregularplurals[str] elseif (str:sub(-1) == 's') then return (str .. apostrophe)  --return unmodified (ends with 's', like 'boots', so we shouldn't append another 's') elseif (string.sub(str, -1) == 'y') and apostrophe == '' then return (string.sub(str, 1, -2) .. 'ies') elseif (str:sub(-1) == 'z' or str:sub(-2) == 'ch' or str:sub(-2) == 'sh' or str:sub(-1) == 'x') and apostrophe == '' then return (str .. 'es') else return (str.. apostrophe .. 's') end end

function p.make_possessive(string) return p.pluralize(string, "'") end

function p.singularverb(string) --[ Assumes the input string is already a plural verb.] local irregularsingulars = { ["are"] = 'is', ["were"] = 'was', ["have"] = 'has', ["'re"] = "'s", ["don't"] = "doesn't", ["'ve"] = "'s", ["do"] = "does" }	local result = irregularsingulars[string] if result ~= nil and result ~= '' then return result else return string .. "s" end end

function p.capitalize(str) return str:gsub("^%l", string.upper) end

return p