save.lua 796 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. $debug
  2. function savevar (n,v)
  3. if v = nil then return end;
  4. if type(v) = "number" then print(n.."="..v) return end
  5. if type(v) = "string" then print(n.."='"..v.."'") return end
  6. if type(v) = "table" then
  7. if v.__visited__ ~= nil then
  8. print(n .. "=" .. v.__visited__);
  9. else
  10. print(n.."=@()")
  11. v.__visited__ = n;
  12. local r,f;
  13. r,f = next(v,nil);
  14. while r ~= nil do
  15. if r ~= "__visited__" then
  16. if type(r) = 'string' then
  17. savevar(n.."['"..r.."']",f)
  18. else
  19. savevar(n.."["..r.."]",f)
  20. end
  21. end
  22. r,f = next(v,r)
  23. end
  24. end
  25. end
  26. end
  27. function save ()
  28. local n,v
  29. n,v = nextvar(nil)
  30. while n ~= nil do
  31. savevar(n,v);
  32. n,v = nextvar(n)
  33. end
  34. end
  35. a = 3
  36. x = @{a = 4, b = "name", l=@[4,5,67]}
  37. b = @{t=5}
  38. x.next = b
  39. save()