Module:ProcessArgs

local p = {} function p.norm( origArgs ) if type( origArgs ) ~= 'table' then origArgs = mw.getCurrentFrame:getParent.args end local args = {} for k, v in pairs( origArgs ) do		v = mw.text.trim( tostring( v ) ) if v ~= '' then args[k] = v		end end return args end

function p.merge( origArgs, parentArgs, norm ) if type( origArgs ) ~= 'table' then norm = origArgs local f = mw.getCurrentFrame origArgs = f.args parentArgs = f:getParent.args end local args = {} for k, v in pairs( origArgs ) do		v = mw.text.trim( tostring( v ) ) if not norm or norm and v ~= '' then args[k] = v		end end for k, v in pairs( parentArgs ) do		v = mw.text.trim( v ) if not norm or norm and v ~= '' then args[k] = v		end end return args end

function p.overwrite( origArgs, parentArgs, norm ) if type( origArgs ) ~= 'table' then norm = origArgs local f = mw.getCurrentFrame origArgs = f.args parentArgs = f:getParent.args end local args = {} for k, v in pairs( parentArgs ) do		v = mw.text.trim( v ) if not norm or norm and v ~= '' then args[k] = v		end end for k, v in pairs( origArgs ) do		v = mw.text.trim( tostring( v ) ) if not norm or norm and v ~= '' then args[k] = v		end end return args end

function p.replaceAll( frame ) local args = frame local curFrame = mw.getCurrentFrame

if frame == mw.getCurrentFrame then args = require( 'Module:ProcessArgs').norm end local x = 3 local t = args[2] while args[x] do		t = string.gsub(t, args[x], "") x = x + 1 end curFrame:callParserFunction{name='#vardefine:'..args[1], args = {t} } return end

return p