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