Module:Sandbox/iantresman/sandbox/archive/mw.recursive

local p = {} -- defines a variable p as an empty table, but *not* nil.

local a = {}

a.b = {}

a.b.c = {}

a.b.c.d = {}

a.b.c.d.e = "some string"

a.b.c.f = "some other string"

function p.main( frame )

result = "*LUA Version: " .. _VERSION

-- result = result .. "\n*Arguments: " .. prtable(frame.args)

-- result = result .. "\n*MW data: " .. prtable(mw.site)

result = result .. "\n*Example table: " .. prtable(a)

return result

end

function prtable(t, result)

result = result or ""

if type(t) == "table" then

for k, v in pairs(t) do

if type(v)=="string" then

result = result .. "\n:" .. k .. ": " .. v

else

result = result .. "\n:" .. k .. ": " .. prtable(v, result)

end

end

else

result = result .. tostring(t)

end

return result

end

return p