printTable.lua 1.0 KB

123456789101112131415161718192021222324252627282930
  1. -- Print anything - including nested tables
  2. -- Based on but modified from:
  3. -- http://lua-users.org/wiki/TableSerialization
  4. function printTable (tt, indent, done)
  5. done = done or {}
  6. indent = indent or 0
  7. if tt == nil then
  8. io.write("nil\n")
  9. else
  10. if type(tt) == "table" then
  11. for key, value in pairs (tt) do
  12. io.write(string.rep (" ", indent)) -- indent it
  13. if type (value) == "table" and not done [value] then
  14. done [value] = true
  15. io.write(string.format("[%s] => table\n", tostring (key)));
  16. io.write(string.rep (" ", indent+4)) -- indent it
  17. io.write("(\n");
  18. table_print (value, indent + 7, done)
  19. io.write(string.rep (" ", indent+4)) -- indent it
  20. io.write(")\n");
  21. else
  22. io.write(string.format("[%s] => %s\n",
  23. tostring (key), tostring(value)))
  24. end
  25. end
  26. else
  27. io.write(tt .. "\n")
  28. end
  29. end
  30. end