85 lines
1.8 KiB
Lua
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
|