Documentation for this module may be created at Модул:form of/data/doc

local tags = {}

-- шахси
tags["аввал-шахси"] = {
	tag_type = "шахси",
	glossary = "аввал-шахси",
	shortcuts = {"1"},
}

tags["дуюм-шахси"] = {
	tag_type = "шахси",
	glossary = "дуюм-шахси",
	shortcuts = {"2"},
}

tags["сеюм-шахси"] = {
	tag_type = "шахси",
	glossary = "сеюм-шахси",
	shortcuts = {"3"},
}

tags["бешахс"] = {
	tag_type = "шахси",
	glossary = "бешахс",
	shortcuts = {"impers"},
}

-- шумора
tags["ягона"] = {
	tag_type = "ягона",
	glossary = "шумораи ягона",
	shortcuts = {"s"},
}

tags["дугона"] = {
	tag_type = "шумора",
	glossary = "шумораи дугона",
	shortcuts = {"d"},
}

tags["бисёрӣ"] = {
	tag_type = "шумора",
	glossary = "шумораи бисёрӣ",
	shortcuts = {"p"},
}

-- гендерӣ
tags["мардона"] = {
	tag_type = "гендерӣ",
	glossary = "гендерӣ",
	shortcuts = {"m"},
}

tags["занона"] = {
	tag_type = "гендерӣ",
	glossary = "гендерӣ",
	shortcuts = {"f"},
}

tags["ьинси миёна"] = {
	tag_type = "гендерӣ",
	glossary = "гендерӣ",
	shortcuts = {"n"},
}

tags["умумӣ"] = {
	tag_type = "гендерӣ",
	glossary = "гендерӣ",
	shortcuts = {"c"},
}

-- шаҳри орости (Шояд баъзан барои хеле фоиданок бошад [[Module:object usage]].)
tags["зинда кардан"] = {
	tag_type = "шаҳри орости",
	glossary = "зинда кардан",
	shortcuts = {"an"},
}

tags["тобеъанд"] = {
	tag_type = "шаҳри орости",
	glossary = "тобеъанд",
	shortcuts = {"in"},
}

tags["шахсӣ"] = {
	tag_type = "шаҳри орости",
	shortcuts = {"pr"},
}

-- таранг/ҷиҳати
tags["ҳузур"] = {
	tag_type = "таранг-ҷиҳати",
	shortcuts = {"pres"},
}

tags["гузашта"] = {
	tag_type = "таранг-ҷиҳати",
}

tags["оянда"] = {
	tag_type = "таранг-ҷиҳати",
	shortcuts = {"fut", "futr"},
}

tags["preterite"] = {
	tag_type = "таранг-ҷиҳати",
	shortcuts = {"pret"},
}

tags["комил"] = {
	tag_type = "таранг-ҷиҳати",
	shortcuts = {"perf"},
}

tags["нокомил"] = {
	tag_type = "таранг-ҷиҳати",
	glossary = "нокомил",
	shortcuts = {"impf", "imperf"},
}

tags["комил бештари"] = {
	tag_type = "таранг-ҷиҳати",
	shortcuts = {"plup", "pluperf"},
}

tags["аористи"] = {
	tag_type = "таранг-ҷиҳати",
	shortcuts = {"aor", "aori"},
}

tags["гузаштаи таърихӣ"] = {
	tag_type = "таранг-ҷиҳати",
	shortcuts = {"phis"},
}

-- таъб
tags["ҳатмӣ"] = {
	tag_type = "таъб",
	shortcuts = {"imp", "impr"},
}

tags["шаҳодати"] = {
	tag_type = "таъб",
	shortcuts = {"ind", "indc", "indic"},
}

tags["вачхи"] = {
	tag_type = "таъб",
	shortcuts = {"sub", "subj"},
}

tags["шартӣ"] = {
	tag_type = "таъб",
	shortcuts = {"cond"},
}

-- овози
tags["фаъол"] = {
	tag_type = "овози",
	glossary = "овози фаъол",
	shortcuts = {"act", "actv"},
}

tags["миёна"] = {
	tag_type = "овози",
	glossary = "овози миёна",
	shortcuts = {"mid", "midl"},
}

tags["қафомонда"] = {
	tag_type = "овози",
	glossary = "овози қафомонда",
	shortcuts = {"pass", "pasv"},
}

tags["медио қафомонда"] = {
	tag_type = "овози",
	shortcuts = {"mp", "mpsv"},
}

-- ғайри-ниҳоӣ
tags["инфинитиви"] = {
	tag_type = "ғайри-ниҳоӣ",
	shortcuts = {"inf"},
}

tags["зарри"] = {
	tag_type = "ғайри-ниҳоӣ",
	shortcuts = {"part"},
}

-- сурати
tags["цойбони"] = {
	tag_type = "сурат",
	shortcuts = {"abe"},
}

tags["аблативи"] = {
	tag_type = "сурат",
	glossary = "аблативи",
	shortcuts = {"abl"},
}

tags["мутлақи"] = {
	tag_type = "сурат",
	shortcuts = {"abs"},
}

tags["цойбони"] = {
	tag_type = "сурат",
	shortcuts = {"ade"},
}

tags["алативӣ́"] = {
	tag_type = "сурат",
	shortcuts = {"all"},
}

tags["винителнӣ"] = {
	tag_type = "сурат",
	glossary = "сурати винителнӣ",
	shortcuts = {"acc"},
}

tags["алоқаи-ниҳоӣ"] = {
	tag_type = "сурат",
	shortcuts = {"cfi", "cfin"},
}

tags["комитатӣ"] = {
	tag_type = "сурат",
	shortcuts = {"com"},
}

tags["дателний"] = {
	tag_type = "сурат",
	glossary = "сурати дателний",
	shortcuts = {"dat"},
}

tags["таъхирй"] = {
	tag_type = "сурат",
	shortcuts = {"del"},
}

tags["элативй"] = {
	tag_type = "сурат",
	glossary = "элативй",
	shortcuts = {"ela"},
}

tags["эргативй"] = {
	tag_type = "сурат",
	glossary = "эргативй",
	shortcuts = {"erg"},
}

tags["эсив-расмӣ"] = {
	tag_type = "сурат",
	shortcuts = {"esf", "efor"},
}

tags["эсив-модалйвй"] = {
	tag_type = "сурат",
	shortcuts = {"esm", "emod"},
}

tags["эсивӣ"] = {
	tag_type = "сурат",
	shortcuts = {"ess"},
}

tags["родителенӣ"] = {
	tag_type = "сурат",
	glossary = "сурати родителенӣ",
	shortcuts = {"gen"},
}

tags["illative"] = {
	tag_type = "сурат",
	shortcuts = {"ill"},
}

tags["inessive"] = {
	tag_type = "сурат",
	shortcuts = {"ine"},
}

tags["олатбобӣ"] = {
	tag_type = "сурат",
	glossary = "сурати олатбобӣ",
	shortcuts = {"ins"},
}

tags["маҳаллӣ"] = {
	tag_type = "сурат",
	glossary = "маҳаллӣ",
	shortcuts = {"loc"},
}

tags["неизборенӣ"] = {
	tag_type = "сурат",
	glossary = "сурати неизборенӣ",
	shortcuts = {"nom"},
}

tags["oblique"] = {
	tag_type = "сурат",
	glossary = "oblique case",
	shortcuts = {"obl"},
}

tags["partitive"] = {
	tag_type = "сурат",
	glossary = "сурати partitive",
	shortcuts = {"par"},
}

tags["prepositional"] = {
	tag_type = "сурат",
	shortcuts = {"pre", "prep"},
}

tags["sublative"] = {
	tag_type = "сурат",
	shortcuts = {"sbl"},
}

tags["superessive"] = {
	tag_type = "сурат",
	shortcuts = {"spe"},
}

tags["муваққатӣ"] = {
	tag_type = "сурат",
	shortcuts = {"tem", "temp"},
}

tags["қатъи"] = {
	tag_type = "сурат",
	shortcuts = {"ter", "term"},
}

tags["тарьуми"] = {
	tag_type = "сурат",
	shortcuts = {"tra", "tran"},
}

tags["вокативи"] = {
	tag_type = "сурат",
	glossary = "сурати вокативи",
	shortcuts = {"voc"},
}

-- муайяниро
tags["муайян"] = {
	tag_type = "муайяниро",
	glossary = "муайян",
	shortcuts = {"def", "defn"},
}

tags["номуайян"] = {
	tag_type = "муайяниро",
	glossary = "номуайян",
	shortcuts = {"indef", "indf"},
}

-- дигар барчаспҳои
tags["ва"] = {
	tag_type = "дигар",
}

local shortcuts = {}

-- Эҷоди рӯйхати миёнабурҳои
for name, data in pairs(tags) do
	if data.shortcuts then
		for _, shortcut in ipairs(data.shortcuts) do
			-- Агар миёнбурро аст, аллакай дар рӯйхат бошад, пас аст такрорӣ нест.
			if shortcuts[shortcut] then
				error("миёнбурро \"" .. shortcut .. "\" (барои теги грамматикаи \"" .. name .. "\") муноқишаҳо бо миёнбурро мавҷуда барои теги \"" .. shortcuts[shortcut] .. "\".")
			elseif tags[shortcut] then
				error("миёнбурро \"" .. shortcut .. "\" (барои теги грамматикаи \"" .. name .. "\") муноқишаҳо бо теги мавҷуда бо ин ном.")
			end
			
			shortcuts[shortcut] = name
		end
	end
end

return {tags = tags, shortcuts = shortcuts}