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