local decl = {}

decl["m1"] = {
	params = {
		[1] = {},
		},
	singular = function(args, data)
		data.forms["nom_sg"] = {args[1] .. "i"}
		data.forms["nom_sg_def"] = {args[1] .. "in"}
		
		data.forms["acc_sg"] = {args[1] .. "a"}
		data.forms["acc_sg_def"] = {args[1] .. "an"}
		
		data.forms["dat_sg"] = {args[1] .. "a"}
		data.forms["dat_sg_def"] = {args[1] .. "anum"}
		
		data.forms["gen_sg"] = {args[1] .. "a"}
		data.forms["gen_sg_def"] = {args[1] .. "ans"}
	end,
	plural = function(args, data)
		data.forms["nom_pl"] = {args[1] .. "ar"}
		data.forms["nom_pl_def"] = {args[1] .. "arnir"}
		
		data.forms["acc_pl"] = {args[1] .. "ar"}
		data.forms["acc_pl_def"] = {args[1] .. "arnar"}
		
		data.forms["dat_pl"] = {args[1] .. "um"}
		data.forms["dat_pl_def"] = {args[1] .. "unum"}
		
		data.forms["gen_pl"] = {args[1] .. "a"}
		data.forms["gen_pl_def"] = {args[1] .. "anna"}
	end
}
setmetatable(decl["m1"], {__call = function(self, args, data)
	data.decl_type = "m1"
	
	self.singular(args, data)
	self.plural(args, data)
end
})

decl["m1-p"] = {
	params = {
		[1] = {},
		},
}
setmetatable(decl["m1-p"], {__call = function(self, args, data)
	decl["m1"].plural(args, data)
	
	data.info = "(僅複數)"
	data.decl_type = "m1p"
	data.defective = "p"
end
})

decl["m1-s"] = {
	params = {
		[1] = {},
		},
}
setmetatable(decl["m1-s"], {__call = function(self, args, data)
	decl["m1"].singular(args, data)
	
	data.info = "(僅單數)"
	data.decl_type = "m1s"
	data.defective = "s"
end
})

decl["m1-s-def"] = {
	params = {
		[1] = {},
		},
}
setmetatable(decl["m1-s-def"], {__call = function(self, args, data)
	decl["m1"].singular(args, data)
	
	data.info = "(僅單數)"
	data.decl_type = "m1s def"
	data.defective = "s_def"
end
})

decl["m2"] = {
	params = {
		[1] = {},
		},
	singular = function(args, data)
		data.forms["nom_sg"] = {args[1] .. "i"}
		data.forms["nom_sg_def"] = {args[1] .. "in"}
		
		data.forms["acc_sg"] = {args[1] .. "ja"}
		data.forms["acc_sg_def"] = {args[1] .. "jan"}
		
		data.forms["dat_sg"] = {args[1] .. "ja"}
		data.forms["dat_sg_def"] = {args[1] .. "janum"}
		
		data.forms["gen_sg"] = {args[1] .. "ja"}
		data.forms["gen_sg_def"] = {args[1] .. "jans"}
	end,
	plural = function(args, data)
		data.forms["nom_pl"] = {args[1] .. "jar"}
		data.forms["nom_pl_def"] = {args[1] .. "jarnir"}
		
		data.forms["acc_pl"] = {args[1] .. "jar"}
		data.forms["acc_pl_def"] = {args[1] .. "jarnar"}
		
		data.forms["dat_pl"] = {args[1] .. "jum"}
		data.forms["dat_pl_def"] = {args[1] .. "junum"}
		
		data.forms["gen_pl"] = {args[1] .. "ja"}
		data.forms["gen_pl_def"] = {args[1] .. "janna"}
	end
}
setmetatable(decl["m2"], {__call = function(self, args, data)
	data.decl_type = "m2"
	
	self.singular(args, data)
	self.plural(args, data)
end
})

decl["m3"] = {
	params = {
		[1] = {},
		[2] = {},
		},
}
setmetatable(decl["m3"], {__call = function(self, args, data)
	data.decl_type = "m3"
	
	data.forms["nom_sg"] = {args[1] .. "a" .. args[2] .. "i"}
	data.forms["nom_sg_def"] = {args[1] .. "a" .. args[2] .. "in"}
	data.forms["nom_pl"] = {args[1] .. "a" .. args[2] .. "ar"}
	data.forms["nom_pl_def"] = {args[1] .. "a" .. args[2] .. "arnir"}

	data.forms["acc_sg"] = {args[1] .. "a" .. args[2] .. "a"}
	data.forms["acc_sg_def"] = {args[1] .. "a" .. args[2] .. "an"}
	data.forms["acc_pl"] = {args[1] .. "a" .. args[2] .. "ar"}
	data.forms["acc_pl_def"] = {args[1] .. "a" .. args[2] .. "arnar"}
	
	data.forms["dat_sg"] = {args[1] .. "a" .. args[2] .. "a"}
	data.forms["dat_sg_def"] = {args[1] .. "a" .. args[2] .. "anum"}
	data.forms["dat_pl"] = {args[1] .. "ø" .. args[2] .. "um"}
	data.forms["dat_pl_def"] = {args[1] .. "ø" .. args[2] .. "unum"}
	
	data.forms["gen_sg"] = {args[1] .. "a" .. args[2] .. "a"}
	data.forms["gen_sg_def"] = {args[1] .. "a" .. args[2] .. "ans"}
	data.forms["gen_pl"] = {args[1] .. "a" .. args[2] .. "a"}
	data.forms["gen_pl_def"] = {args[1] .. "a" .. args[2] .. "anna"}
end
})

decl["m4"] = {
	params = {
		[1] = {},
		[2] = {},
		},
}
setmetatable(decl["m4"], {__call = function(self, args, data)
	data.decl_type = "m4"
	
	data.forms["nom_sg"] = {args[1] .. "a" .. args[2] .. "i"}
	data.forms["nom_sg_def"] = {args[1] .. "a" .. args[2] .. "in"}
	data.forms["nom_pl"] = {args[1] .. "a" .. args[2] .. "ar"}
	data.forms["nom_pl_def"] = {args[1] .. "a" .. args[2] .. "arnir"}

	data.forms["acc_sg"] = {args[1] .. "a" .. args[2] .. "a"}
	data.forms["acc_sg_def"] = {args[1] .. "a" .. args[2] .. "an"}
	data.forms["acc_pl"] = {args[1] .. "a" .. args[2] .. "ar"}
	data.forms["acc_pl_def"] = {args[1] .. "a" .. args[2] .. "arnar"}
	
	data.forms["dat_sg"] = {args[1] .. "a" .. args[2] .. "a"}
	data.forms["dat_sg_def"] = {args[1] .. "a" .. args[2] .. "anum"}
	data.forms["dat_pl"] = {args[1] .. "o" .. args[2] .. "um"}
	data.forms["dat_pl_def"] = {args[1] .. "o" .. args[2] .. "unum"}
	
	data.forms["gen_sg"] = {args[1] .. "a" .. args[2] .. "a"}
	data.forms["gen_sg_def"] = {args[1] .. "a" .. args[2] .. "ans"}
	data.forms["gen_pl"] = {args[1] .. "a" .. args[2] .. "a"}
	data.forms["gen_pl_def"] = {args[1] .. "a" .. args[2] .. "anna"}
end
})

decl["m5"] = {
	params = {
		[1] = {},
		[2] = {},
		},
}
setmetatable(decl["m5"], {__call = function(self, args, data)
	data.decl_type = "m5"
	
	data.forms["nom_sg"] = {args[1] .. "ó" .. args[2] .. "i"}
	data.forms["nom_sg_def"] = {args[1] .. "ó" .. args[2] .. "in"}
	data.forms["nom_pl"] = {args[1] .. "ø" .. args[2] .. "ur"}
	data.forms["nom_pl_def"] = {args[1] .. "ø" .. args[2] .. "urnir"}

	data.forms["acc_sg"] = {args[1] .. "ó" .. args[2] .. "a"}
	data.forms["acc_sg_def"] = {args[1] .. "ó" .. args[2] .. "an"}
	data.forms["acc_pl"] = {args[1] .. "ø" .. args[2] .. "ur"}
	data.forms["acc_pl_def"] = {args[1] .. "ø" .. args[2] .. "urnar"}
	
	data.forms["dat_sg"] = {args[1] .. "ó" .. args[2] .. "a"}
	data.forms["dat_sg_def"] = {args[1] .. "ó" .. args[2] .. "anum"}
	data.forms["dat_pl"] = {args[1] .. "ó" .. args[2] .. "um"}
	data.forms["dat_pl_def"] = {args[1] .. "ó" .. args[2] .. "unum"}
	
	data.forms["gen_sg"] = {args[1] .. "ó" .. args[2] .. "a"}
	data.forms["gen_sg_def"] = {args[1] .. "ó" .. args[2] .. "ans"}
	data.forms["gen_pl"] = {args[1] .. "ó" .. args[2] .. "a"}
	data.forms["gen_pl_def"] = {args[1] .. "ó" .. args[2] .. "anna"}
end
})

decl["m6"] = {
	params = {
		[1] = {},
		},
	singular = function(args, data)
		data.forms["nom_sg"] = {args[1] .. "ur"}
		data.forms["nom_sg_def"] = {args[1] .. "urin"}
		
		data.forms["acc_sg"] = {args[1]}
		data.forms["acc_sg_def"] = {args[1] .. "in"}
		
		data.forms["dat_sg"] = {args[1] .. "i"}
		data.forms["dat_sg_def"] = {args[1] .. "inum"}
		
		data.forms["gen_sg"] = {args[1] .. "s"}
		data.forms["gen_sg_def"] = {args[1] .. "sins"}
	end,
	plural = function(args, data)
		data.forms["nom_pl"] = {args[1] .. "ar"}
		data.forms["nom_pl_def"] = {args[1] .. "arnir"}
		
		data.forms["acc_pl"] = {args[1] .. "ar"}
		data.forms["acc_pl_def"] = {args[1] .. "arnar"}
		
		data.forms["dat_pl"] = {args[1] .. "um"}
		data.forms["dat_pl_def"] = {args[1] .. "unum"}
		
		data.forms["gen_pl"] = {args[1] .. "a"}
		data.forms["gen_pl_def"] = {args[1] .. "anna"}
	end
}
setmetatable(decl["m6"], {__call = function(self, args, data)
	data.decl_type = "m6"
	
	self.singular(args, data)
	self.plural(args, data)
end
})

decl["m6-s"] = {
	params = {
		[1] = {},
		},
}
setmetatable(decl["m6-s"], {__call = function(self, args, data)
	decl["m6"].singular(args, data)
	
	data.info = "(僅單數)"
	data.decl_type = "m6s"
	data.defective = "s"
end
})
	    
return decl