Module:form of/data

From Linguifex
< Module:form of
Revision as of 13:16, 12 January 2025 by Sware (talk | contribs) (Replaced content with "local export = {} local ipairs = ipairs local next = next local type = type export.TAG_TYPE = 1 export.GLOSSARY = 2 local SHORTCUTS = 3; export.SHORTCUTS = SHORTCUTS export.WIKIDATA = 4 export.APPENDIX = true export.WIKT = 0 export.WP = false local function process_shortcut(tags, shortcuts, name, shortcut) -- If the shortcut is already in the list, then there is a duplicate. if shortcuts[shortcut] then error("The shortcut \"" .. shortcut .. "\" (for the infle...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


local export = {}

local ipairs = ipairs
local next = next
local type = type

export.TAG_TYPE = 1
export.GLOSSARY = 2
local SHORTCUTS = 3; export.SHORTCUTS = SHORTCUTS
export.WIKIDATA = 4

export.APPENDIX = true
export.WIKT = 0
export.WP = false

local function process_shortcut(tags, shortcuts, name, shortcut)
	-- If the shortcut is already in the list, then there is a duplicate.
	if shortcuts[shortcut] then
		error("The shortcut \"" .. shortcut .. "\" (for the inflection tag \"" .. name .. "\") conflicts with an existing shortcut for the tag \"" .. shortcuts[shortcut] .. "\".")
	elseif tags[shortcut] then
		error("The shortcut \"" .. shortcut .. "\" (for the inflection tag \"" .. name .. "\") conflicts with an existing tag with that name.")
	end
	shortcuts[shortcut] = name
end

function export.finalize(tags, shortcuts)
	for name, data in next, tags do
		local data_shortcuts = data[SHORTCUTS]
		if data_shortcuts then
			if type(data_shortcuts) == "string" then
				process_shortcut(tags, shortcuts, name, data_shortcuts)
			else
				for _, shortcut in ipairs(data_shortcuts) do
					process_shortcut(tags, shortcuts, name, shortcut)
				end
			end
		end
	end
end

return export