viruscamp / luadec

Lua Decompiler for lua 5.1 , 5.2 and 5.3
1.14k stars 343 forks source link

test case for LocVar startpc endpc #30

Open viruscamp opened 9 years ago

viruscamp commented 9 years ago
for i = 1, 10 do
    local a,b,c,d = i,i+1,i+2;
    print(a);
end
local c=...
local b,a=3,4;
print(a)

for i = 1, 10 do
    local x,y,z
    f[i] = function() x=x+1; print(y); z=i; end
end

do
    local a1 = 0
    print(a1)
end
local b1 = 1

local t = {a,b,c}
viruscamp commented 9 years ago

pc >= startpc 可以开始使用,即定义完成后的第一个pc,在 move 后, setlist 后 当 pc = startpc, 在处理 op 前,输出所有 startpc == pc 的 pending 输出后,从此开始 Ra 是 local, 并可以确定 Ra 的name pc >= endpc 从此不能使用, Ra 开始是 free 对于函数范围 5.1 endpc = sizecode - 1 对于函数范围 5.2 endpc = sizecode 对于 close 5.1 endpc = pc close 对于 close 5.2 endpc = pc close + 1 close 后,强制设定为 free