1 | local serpent = grab('#158')
|
2 | local function tableToLua(t) |
3 | return "return "..serpent.block(t) |
4 | end |
5 | |
6 | local function isSimpleTable(tbl, seen) |
7 | if seen == nil then seen = {} end
|
8 | local seen = {}
|
9 | if seen[tbl] then return false end -- has cycles, not simple |
10 | local t = type(tbl) |
11 | if t == 'number' or t == 'string' then return true end |
12 | if t ~= 'table' then return false end |
13 | seen[tbl] = true |
14 | for k, v in pairs(tbl) do |
15 | if not isSimpleTable(k, seen) |
16 | or not isSimpleTable(t, seen) then |
17 | return false |
18 | end |
19 | end |
20 | end |
21 | |
22 | local lines = {}
|
23 | for k, v in pairs(_G) do |
24 | if type(v) == 'number' then |
25 | table.insert(lines, k..'='..tostring(v)) |
26 | elseif type(v) == 'string' then |
27 | table.insert(lines, k..'='..('%q'):format(v))
|
28 | elseif type(v) == 'table' and isSimpleTable(v) then |
29 | table.insert(lines, k..'='..tableToLua(v)) |
30 | end |
31 | end |
32 | return table.concat(lines, "\n") |
Special snippet. Used for updating objects.
test run test run with input download show line numbers
Travelled to 12 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
No comments. add comment
| Recognizer | Recognition Result | Visualize | Recalc |
|---|---|---|---|
| #308 | 913 | [visualize] |
| Snippet ID: | #151 |
| Snippet name: | luaPrintVars |
| Eternal ID of this version: | #151/1 |
| Text MD5: | 71efc65a03bb83a6114d8a1c4eb32277 |
| Author: | stefan |
| Category: | internal helpers |
| Type: | Lua code |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2014-01-13 05:18:29 |
| Source code size: | 913 bytes / 32 lines |
| Pitched / IR pitched: | Yes / Yes |
| Views / Downloads: | 1094 / 268 |
| Referenced in: | [show references] |