Files
wow-weakauras/WA snippets/Registers.lua
2025-05-15 20:37:50 +02:00

85 lines
1.8 KiB
Lua

registers = {
["filostack"] = {},
["fifostack"] = {},
["lifostack"] = {},
["lilostack"] = {},
["filo"] = {
["push"] = function(var)
if not var then return false end
registers.filostack[#registers.filostack + 1] = var
return true
end,
["pop"] = function()
local var = registers.filostack[#registers.filostack]
if not var then return false end
registers.filostack[#registers.filostack] = nil
return var
end,
},
["fifo"] = {
["push"] = function(var)
if not var then return false end
registers.fifostack[#registers.fifostack + 1] = var
return true
end,
["pop"] = function()
local var = registers.fifostack[1]
if not var then return false end
registers.fifostack[1] = nil
for i = 1, #registers.fifostack do
registers.fifostack[i] = registers.fifostack[i + 1]
registers.fifostack[i + 1] = nil
end
return var
end,
},
["lifo"] = {
["push"] = function(var)
if not var then return false end
for i = 1, #registers.lifostack do
registers.lifostack[i + 1] = registers.lifostack[i]
end
registers.lifostack[1] = var
return true
end,
["pop"] = function()
local var = #registers.lifostack
if not var then return false end
registers.lifostack[#registers.lifostack] = nil
return var
end,
},
}
print("lifo")
print("")
for i = 1, 10 do
print("push")
print(registers.lifo.push(i))
end
print("")
for k, v in ipairs(registers.lifostack) do
print(v)
end
print("")
for i = 1, #registers.lifostack do
print("pop")
print(registers.lifo.pop())
end
print("")
print("lilo")
print("")
for i = 1, 4 do
print("push")
print(registers.lilo.push(i))
end
print("")
for k, v in ipairs(registers.lilostack) do
print(v)
end
print("")
for i = 1, #registers.lilostack do
print("pop")
print(registers.lilo.pop())
end