aboutsummaryrefslogtreecommitdiff
path: root/save.lua
blob: 1a4ba04d8c1dd5f03641be6871e7addefb7d3ce3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
$debug


function savevar (n,v)
 if v = nil then return end;
 if type(v) = "number" then print(n.."="..v) return end
 if type(v) = "string" then print(n.."='"..v.."'") return end
 if type(v) = "table" then
   if v.__visited__ ~= nil then
     print(n .. "=" .. v.__visited__);
   else
    print(n.."=@()")
    v.__visited__ = n;
    local r,f;
    r,f = next(v,nil);
    while r ~= nil do
      if r ~= "__visited__" then
        if type(r) = 'string' then
          savevar(n.."['"..r.."']",f)
	else
          savevar(n.."["..r.."]",f)
	end
      end
      r,f = next(v,r)
    end
   end
 end
end

function save ()
local n,v
  n,v = nextvar(nil)
  while n ~= nil do 
    savevar(n,v); 
    n,v = nextvar(n)
  end
end

a = 3
x = @{a = 4, b = "name", l=@[4,5,67]}

b = @{t=5}
x.next = b


save()