冬虫夏草到底是什么| 铂金是什么材质| 乐话提醒业务是什么意思| 丘疹性荨麻疹用什么药| 什么水什么什么| 大卡是什么意思| 鲤鱼吃什么| 地高辛是什么药| 7月17什么星座| 褐色是什么颜色的图片| 有偿服务是什么意思| 腺样体肥大吃什么药| 霉菌性阴炎用什么药止痒效果好| 肾精亏虚吃什么中成药| ercp是什么意思| 安徽有什么特色美食| 本来无一物何处惹尘埃是什么意思| 晒伤了涂什么药| 羊毛疔是什么病| 乳腺结节不能吃什么| 梦见自己家被盗有什么预兆| 时柱代表什么| 10月13号是什么星座| cmf是什么| 梦见长豆角是什么意思| 脑梗吃什么药效果好| 吃什么补肺养肺比较好| 碘酊和碘伏有什么区别| 客之痣是什么意思| 手指关节疼痛是什么原因| 女人排卵是什么时间| 脸为什么容易红| 前白蛋白是什么意思| 一垒二垒三垒全垒打是什么意思| k值是什么意思| 心内科是看什么病的| 看脖子挂什么科| 回光返照是什么意思| 爱琴海在什么地方| 宫腔内稍高回声是什么意思| 鼻子经常流鼻涕是什么原因| 包皮什么意思| 静脉曲张吃什么药最好| 毛滴虫病是什么病| 病毒感染有什么症状| 舅舅和外甥女是什么关系| 人活着到底是为了什么| 英国为什么叫日不落帝国| 肠息肉是什么原因引起的| 女性支原体阳性是什么意思| 李白字什么号什么| 无锡机场叫什么名字| 有胆结石的人不能吃什么东西| 眉梢有痣代表什么| 尿潜血是什么病| 血氧饱和度什么意思| 血糖高吃什么降血糖| 连奕名为什么娶杨若兮| 亚型是什么意思| 醉氧是什么意思| 月经一直不干净吃什么药| 粉籍是什么意思| 铁蛋白高吃什么食物好| 新生儿用什么奶粉好| 胃底腺息肉什么意思| 小鸡啄米什么意思| 喝酒胃出血吃什么药| 氟西汀什么意思| 甲状腺结节低回声什么意思| 寡糖是什么| 吸入物变应原筛查是什么| 冰雪什么| 肝功能挂什么科| 1981年五行属什么| 生孩子前要注意什么| 什么品牌的洗衣机最好| 湖南湖北以什么湖为界| 法老是什么意思| 睡觉头出汗是什么原因| 啵啵是什么| 红花有什么作用| 月柱代表什么| 尿酸高的人吃什么食物好| 耳后长痣代表什么意思| 宫禁糜烂用什么药| 岁寒三友是指什么| 孩子反复发烧是什么原因| 交警中队长是什么级别| 肺大泡是什么| 五行缺水戴什么| 处女座属于什么星象| 脚底出汗是什么原因| 祭祀什么意思| 粗枝大叶是什么意思| 2019年是什么生肖| 腋下疼痛什么原因| 韧带损伤挂什么科| 女人辟邪带什么最好| 溃疡是什么| 5月3日什么星座| 兽医是什么专业| 恶寒发热是什么意思| 隐翅虫是什么样子| 结婚纪念日送什么礼物| cr5是什么意思| 五常大米是什么意思| 忠诚的近义词是什么| 儿童节送老婆什么礼物| 早醒是什么原因造成的| 龟皮痒用什么药膏| 酒花是什么| 胸腔疼痛挂什么科| 玫瑰花有什么作用| 一什么牌子| 擦什么能阻止毛发生长| copd什么意思| 身份证拍照穿什么衣服| 什么是禅定| 黄色衣服配什么颜色裤子好看| 心跳太慢吃什么药| 晚上睡觉盗汗是什么原因| 张良和刘邦是什么关系| 交公粮是什么意思| 男人长阴虱是什么原因| 早餐吃什么比较好| 板鞋配什么裤子好看| 蛋白石是什么| 社区医院属于什么级别| 女生不来大姨妈是什么原因| 深圳到香港需要办理什么手续| 一岁宝宝能吃什么水果| 屈原为什么投江| 儿童嗓子疼吃什么药好| 看睾丸去医院挂什么科| 晚上喝什么有助于睡眠| 更年期提前是什么症状| 巫山云雨是什么意思| 吃苹果什么意思| 痣发痒是什么原因| 胃胀嗳气吃什么药最有效| 稽留流产是什么原因| 爱马仕是什么牌子| 38码衣服相当于什么码| 什么叫cta检查| 21属什么| 来大姨妈肚子疼是什么原因| 犄角旮旯是什么意思| 21速和24速有什么区别| 秋葵有什么营养| 奶奶的姐姐叫什么| 马口鱼是什么鱼| 打新股需要什么条件| 孕酮偏低是什么原因| 立是什么结构的字| 什么书最香| 又当又立是什么意思| 头晕出虚汗是什么原因引起的| 黄金有什么作用与功效| 嘴唇暗紫色是什么原因| 松鼠桂鱼是什么鱼| 基尼系数是什么意思| 猜忌是什么意思| 这是什么地方| 家里蟑螂多是什么原因| 金刚钻是什么意思| 机车是什么意思| 坐飞机需要带什么证件| 种牙好还是镶牙好区别是什么| 胎盘下缘覆盖宫颈内口是什么意思| 四时是什么时辰| 牛顿发明了什么| 5月30日是什么星座| 八面玲珑什么意思| 28.88红包代表什么意思| 母胎solo是什么意思| dm是什么| 脸上长痘痘用什么药膏效果好| 这是什么地方| 怎么看自己五行属什么| iron是什么意思| 猫吃什么| 一进门见到什么植物好| 胃烧灼吃什么立马缓解| 36属什么| 政委什么级别| 童瑶为什么要告黄定宇| 双鱼座是什么象星座| 头发染什么颜色显皮肤白显年轻| 2001年属蛇五行属什么| 月经很少什么原因| choker什么意思| 什么是diy| 人活一辈子到底为了什么| 气管炎吃什么药好| 起大运是什么意思| 常喝苦荞茶有什么好处| 耵聍是什么意思| 喉镜能检查出什么病| 乙肝检查挂什么科| 士官是什么级别| 药占比什么意思| 中出什么意思| 双子座后面是什么星座| 周围型肺ca是什么意思| 肾功能不好吃什么药| 眼睛红用什么眼药水| 羹什么意思| 体毛旺盛是什么原因| 明天有什么考试| 二月出生是什么星座| 16588a是什么尺码女装| 什么材质可以放微波炉加热| 211是什么大学| 七九年属什么生肖| 活在当下是什么意思| 扎心是什么意思| hvb是什么意思| pi是什么意思| 阴道炎用什么药效果最好| idh是什么意思| 强化灶是什么意思| 黄芪补什么| 偶尔失眠是什么原因| aj和nike什么关系| 任达华属什么生肖| 3p 什么 感觉| 60大寿送什么礼物| 亨字五行属什么| 拉拉什么意思| au585是什么金| 沙金是什么| 做雾化起什么作用| 破财免灾什么意思| 背动态心电图要注意什么| 右眼跳代表什么| 麦冬和什么相克| 笙箫是什么意思| 梦见拉麦子是什么预兆| dyj什么意思| 肉什么结构| 打嗝吃什么药效果好| 软组织损伤用什么药| 家里为什么会有壁虎| 半夏反什么药| 电压高是什么原因造成| 什么的绿叶| 考虑是什么意思| 六月初六是什么星座| 为什么熊猫是国宝| 中介什么意思| 手莫名其妙的肿了因为什么| 坐月子吃什么好| 血氨高会导致什么后果| 什么牛什么毛| 胎毒是什么样子的图片| 钙不能和什么一起吃| 什么丝什么缕| 脑梗挂号挂什么科室| Op是什么| 小朋友口臭是什么原因| 舌头涩是什么原因| 鹅口疮有什么症状| 拉肚子吃什么食物好| braf基因v600e突变是什么意思| 百度Vare le yelbulo

眼窝凹陷是什么原因

Yizie Wikipiide?
百度   老张对记者说:“我拿锄头干了30多年的农活儿,没想到现在土埋半截了,又拿起笔当了一回学生,这机会难得,必须得认真听课啊。

Documentation for this module may be created at Module:Arguments/doc

-- This module provides easy processing of arguments passed to Scribunto from
-- #invoke. It is intended for use by other Lua modules, and should not be
-- called from #invoke directly.

local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType

local arguments = {}

-- Generate four different tidyVal functions, so that we don't have to check the
-- options every time we call it.

local function tidyValDefault(key, val)
	if type(val) == 'string' then
		val = val:match('^%s*(.-)%s*$')
		if val == '' then
			return nil
		else
			return val
		end
	else
		return val
	end
end

local function tidyValTrimOnly(key, val)
	if type(val) == 'string' then
		return val:match('^%s*(.-)%s*$')
	else
		return val
	end
end

local function tidyValRemoveBlanksOnly(key, val)
	if type(val) == 'string' then
		if val:find('%S') then
			return val
		else
			return nil
		end
	else
		return val
	end
end

local function tidyValNoChange(key, val)
	return val
end

local function matchesTitle(given, title)
	local tp = type( given )
	return (tp == 'string' or tp == 'number') and mw.title.new( given ).prefixedText == title
end

local translate_mt = { __index = function(t, k) return k end }

function arguments.getArgs(frame, options)
	checkType('getArgs', 1, frame, 'table', true)
	checkType('getArgs', 2, options, 'table', true)
	frame = frame or {}
	options = options or {}

	--[[
	-- Set up argument translation.
	--]]
	options.translate = options.translate or {}
	if getmetatable(options.translate) == nil then
		setmetatable(options.translate, translate_mt)
	end
	if options.backtranslate == nil then
		options.backtranslate = {}
		for k,v in pairs(options.translate) do
			options.backtranslate[v] = k
		end
	end
	if options.backtranslate and getmetatable(options.backtranslate) == nil then
		setmetatable(options.backtranslate, {
			__index = function(t, k)
				if options.translate[k] ~= k then
					return nil
				else
					return k
				end
			end
		})
	end

	--[[
	-- Get the argument tables. If we were passed a valid frame object, get the
	-- frame arguments (fargs) and the parent frame arguments (pargs), depending
	-- on the options set and on the parent frame's availability. If we weren't
	-- passed a valid frame object, we are being called from another Lua module
	-- or from the debug console, so assume that we were passed a table of args
	-- directly, and assign it to a new variable (luaArgs).
	--]]
	local fargs, pargs, luaArgs
	if type(frame.args) == 'table' and type(frame.getParent) == 'function' then
		if options.wrappers then
			--[[
			-- The wrappers option makes Module:Arguments look up arguments in
			-- either the frame argument table or the parent argument table, but
			-- not both. This means that users can use either the #invoke syntax
			-- or a wrapper template without the loss of performance associated
			-- with looking arguments up in both the frame and the parent frame.
			-- Module:Arguments will look up arguments in the parent frame
			-- if it finds the parent frame's title in options.wrapper;
			-- otherwise it will look up arguments in the frame object passed
			-- to getArgs.
			--]]
			local parent = frame:getParent()
			if not parent then
				fargs = frame.args
			else
				local title = parent:getTitle():gsub('/sandbox$', '')
				local found = false
				if matchesTitle(options.wrappers, title) then
					found = true
				elseif type(options.wrappers) == 'table' then
					for _,v in pairs(options.wrappers) do
						if matchesTitle(v, title) then
							found = true
							break
						end
					end
				end

				-- We test for false specifically here so that nil (the default) acts like true.
				if found or options.frameOnly == false then
					pargs = parent.args
				end
				if not found or options.parentOnly == false then
					fargs = frame.args
				end
			end
		else
			-- options.wrapper isn't set, so check the other options.
			if not options.parentOnly then
				fargs = frame.args
			end
			if not options.frameOnly then
				local parent = frame:getParent()
				pargs = parent and parent.args or nil
			end
		end
		if options.parentFirst then
			fargs, pargs = pargs, fargs
		end
	else
		luaArgs = frame
	end

	-- Set the order of precedence of the argument tables. If the variables are
	-- nil, nothing will be added to the table, which is how we avoid clashes
	-- between the frame/parent args and the Lua args.
	local argTables = {fargs}
	argTables[#argTables + 1] = pargs
	argTables[#argTables + 1] = luaArgs

	--[[
	-- Generate the tidyVal function. If it has been specified by the user, we
	-- use that; if not, we choose one of four functions depending on the
	-- options chosen. This is so that we don't have to call the options table
	-- every time the function is called.
	--]]
	local tidyVal = options.valueFunc
	if tidyVal then
		if type(tidyVal) ~= 'function' then
			error(
				"bad value assigned to option 'valueFunc'"
					.. '(function expected, got '
					.. type(tidyVal)
					.. ')',
				2
			)
		end
	elseif options.trim ~= false then
		if options.removeBlanks ~= false then
			tidyVal = tidyValDefault
		else
			tidyVal = tidyValTrimOnly
		end
	else
		if options.removeBlanks ~= false then
			tidyVal = tidyValRemoveBlanksOnly
		else
			tidyVal = tidyValNoChange
		end
	end

	--[[
	-- Set up the args, metaArgs and nilArgs tables. args will be the one
	-- accessed from functions, and metaArgs will hold the actual arguments. Nil
	-- arguments are memoized in nilArgs, and the metatable connects all of them
	-- together.
	--]]
	local args, metaArgs, nilArgs, metatable = {}, {}, {}, {}
	setmetatable(args, metatable)

	local function mergeArgs(tables)
		--[[
		-- Accepts multiple tables as input and merges their keys and values
		-- into one table. If a value is already present it is not overwritten;
		-- tables listed earlier have precedence. We are also memoizing nil
		-- values, which can be overwritten if they are 's' (soft).
		--]]
		for _, t in ipairs(tables) do
			for key, val in pairs(t) do
				if metaArgs[key] == nil and nilArgs[key] ~= 'h' then
					local tidiedVal = tidyVal(key, val)
					if tidiedVal == nil then
						nilArgs[key] = 's'
					else
						metaArgs[key] = tidiedVal
					end
				end
			end
		end
	end

	--[[
	-- Define metatable behaviour. Arguments are memoized in the metaArgs table,
	-- and are only fetched from the argument tables once. Fetching arguments
	-- from the argument tables is the most resource-intensive step in this
	-- module, so we try and avoid it where possible. For this reason, nil
	-- arguments are also memoized, in the nilArgs table. Also, we keep a record
	-- in the metatable of when pairs and ipairs have been called, so we do not
	-- run pairs and ipairs on the argument tables more than once. We also do
	-- not run ipairs on fargs and pargs if pairs has already been run, as all
	-- the arguments will already have been copied over.
	--]]

	metatable.__index = function (t, key)
		--[[
		-- Fetches an argument when the args table is indexed. First we check
		-- to see if the value is memoized, and if not we try and fetch it from
		-- the argument tables. When we check memoization, we need to check
		-- metaArgs before nilArgs, as both can be non-nil at the same time.
		-- If the argument is not present in metaArgs, we also check whether
		-- pairs has been run yet. If pairs has already been run, we return nil.
		-- This is because all the arguments will have already been copied into
		-- metaArgs by the mergeArgs function, meaning that any other arguments
		-- must be nil.
		--]]
		if type(key) == 'string' then
			key = options.translate[key]
		end
		local val = metaArgs[key]
		if val ~= nil then
			return val
		elseif metatable.donePairs or nilArgs[key] then
			return nil
		end
		for _, argTable in ipairs(argTables) do
			local argTableVal = tidyVal(key, argTable[key])
			if argTableVal ~= nil then
				metaArgs[key] = argTableVal
				return argTableVal
			end
		end
		nilArgs[key] = 'h'
		return nil
	end

	metatable.__newindex = function (t, key, val)
		-- This function is called when a module tries to add a new value to the
		-- args table, or tries to change an existing value.
		if type(key) == 'string' then
			key = options.translate[key]
		end
		if options.readOnly then
			error(
				'could not write to argument table key "'
					.. tostring(key)
					.. '"; the table is read-only',
				2
			)
		elseif options.noOverwrite and args[key] ~= nil then
			error(
				'could not write to argument table key "'
					.. tostring(key)
					.. '"; overwriting existing arguments is not permitted',
				2
			)
		elseif val == nil then
			--[[
			-- If the argument is to be overwritten with nil, we need to erase
			-- the value in metaArgs, so that __index, __pairs and __ipairs do
			-- not use a previous existing value, if present; and we also need
			-- to memoize the nil in nilArgs, so that the value isn't looked
			-- up in the argument tables if it is accessed again.
			--]]
			metaArgs[key] = nil
			nilArgs[key] = 'h'
		else
			metaArgs[key] = val
		end
	end

	local function translatenext(invariant)
		local k, v = next(invariant.t, invariant.k)
		invariant.k = k
		if k == nil then
			return nil
		elseif type(k) ~= 'string' or not options.backtranslate then
			return k, v
		else
			local backtranslate = options.backtranslate[k]
			if backtranslate == nil then
				-- Skip this one. This is a tail call, so this won't cause stack overflow
				return translatenext(invariant)
			else
				return backtranslate, v
			end
		end
	end

	metatable.__pairs = function ()
		-- Called when pairs is run on the args table.
		if not metatable.donePairs then
			mergeArgs(argTables)
			metatable.donePairs = true
		end
		return translatenext, { t = metaArgs }
	end

	local function inext(t, i)
		-- This uses our __index metamethod
		local v = t[i + 1]
		if v ~= nil then
			return i + 1, v
		end
	end

	metatable.__ipairs = function (t)
		-- Called when ipairs is run on the args table.
		return inext, t, 0
	end

	return args
end

return arguments
天运子什么修为 徒孙是什么意思 吃什么水果对眼睛好 三个降号是什么调 龙的五行属性是什么
什么叫走读生 嘴苦是什么原因 舌头溃疡吃什么药 店长的工作职责是什么 早上吃什么最有营养
微信上面有个耳朵是什么意思 地主之谊是什么意思 马车标志是什么品牌 甲醛什么味 鸡精和味精有什么区别
去湿气吃什么最好 什么大河 尿多是什么原因男性 肺结核传染途径是什么 菠菜和豆腐为什么不能一起吃
送医生什么礼物好hcv8jop1ns6r.cn 退而求其次是什么意思hcv8jop5ns5r.cn 蛔虫长什么样hcv8jop0ns1r.cn 肺气肿吃什么食物好hcv7jop6ns8r.cn 中暑吃什么药好得快hkuteam.com
下体瘙痒是什么原因hcv8jop6ns3r.cn 一飞冲天是什么生肖kuyehao.com 什么是面首naasee.com 7月一日是什么节日hcv8jop2ns8r.cn 属兔适合佩戴什么饰品shenchushe.com
西红柿拌白糖又叫什么hcv8jop2ns8r.cn 孕妇尿回收是干什么用的hcv8jop0ns7r.cn 生活方式是什么意思hcv7jop9ns5r.cn 突然眼睛充血是什么原因引起的hcv9jop5ns1r.cn 割掉胆对人有什么影响hcv9jop8ns2r.cn
大便次数增多是什么原因jasonfriends.com 友女是什么意思hcv9jop2ns5r.cn 羽字五行属什么的hcv8jop3ns8r.cn 皱褶什么意思hcv8jop0ns2r.cn 男生来大姨夫是什么意思imcecn.com
百度