Module:Road data/parser/hooks/sandbox explained

local p =

-- Change to "" upon deployment.local moduleSuffix = "/sandbox"

local parserModuleName = "Module:Road data/parser" .. moduleSuffix

function p.split(parameters, args) local route = tonumber(args.route) or 0 if route < parameters.split then return parameters.below else return parameters.above endend

function p.splitlen(parameters, args) local route = args.route if #route < parameters.split then return parameters.below else return parameters.above endend

function p.between(parameters, args) local lower = parameters.lower local upper = parameters.upper local route = tonumber(args.route) or 0 if route < lower or route >= upper then return parameters.no else return parameters.yes endend

function p.mask(parameters, args) local baseParam = parameters.base local maskedParam = parameters.masked local maskModule = "Module:" .. parameters.mask local mask = mw.loadData(maskModule) args[maskedParam] = mask[args[baseParam]] return parameters.defaultend

function p.padroute(parameters, args) local route = args.route local paddedLength = parameters.paddedLength args.paddedRoute = string.format("%0" .. tostring(paddedLength) .. "d", route) return parameters.defaultend

function p.lowercase(parameters, args) local route = args.route args.lowercase = string.lower(route) return parameters.defaultend

--For the first element (pattern, action) in .actions such thatargs[.base] begins with pattern, return action.If no such element exists, return .default (nil if unspecified).function p.beginswith(parameters, args) local baseParam = parameters.base local actions = parameters.actions local arg = args[baseParam] for pattern,action in pairs(actions) do if mw.ustring.sub(arg, 1, mw.ustring.len(pattern))

pattern then return action end end return parameters.defaultend

--function p.match(parameters, args) local parserModule = require(parserModuleName) local parser = parserModule.parser

local entry = parameters.entry local kind = parameters.kind local path = parameters.path local actions = parameters.actions local value = parser(args, entry, kind, path) for pattern,action in pairs(actions) do if mw.ustring.match(value, pattern) then return action end end return parameters.defaultend

return p