mirror of
https://bitbucket.org/kingarthursteam/cannons.git
synced 2024-08-19 20:04:06 +02:00
31 lines
1.1 KiB
Lua
31 lines
1.1 KiB
Lua
|
function print_r (t, name, indent)
|
||
|
local tableList = {}
|
||
|
function table_r (t, name, indent, full)
|
||
|
local id = not full and name
|
||
|
or type(name)~="number" and tostring(name) or '['..name..']'
|
||
|
local tag = indent .. id .. ' = '
|
||
|
local out = {} -- result
|
||
|
if type(t) == "table" then
|
||
|
if tableList[t] ~= nil then table.insert(out, tag .. '{} -- ' .. tableList[t] .. ' (self reference)')
|
||
|
else
|
||
|
tableList[t]= full and (full .. '.' .. id) or id
|
||
|
if next(t) then -- Table not empty
|
||
|
table.insert(out, tag .. '{')
|
||
|
for key,value in pairs(t) do
|
||
|
table.insert(out,table_r(value,key,indent .. '| ',tableList[t]))
|
||
|
end
|
||
|
table.insert(out,indent .. '}')
|
||
|
else table.insert(out,tag .. '{}') end
|
||
|
end
|
||
|
else
|
||
|
local val = type(t)~="number" and type(t)~="boolean" and '"'..tostring(t)..'"' or tostring(t)
|
||
|
table.insert(out, tag .. val)
|
||
|
end
|
||
|
return table.concat(out, '\n')
|
||
|
end
|
||
|
return table_r(t,name or 'Value',indent or '')
|
||
|
end
|
||
|
|
||
|
function pr (t, name)
|
||
|
print(print_r(t,name))
|
||
|
end
|