vars = {}
values = {}
function open(file)
lex(file)
end
function lex(file)
local data = io.open(file, "r")
for char in data:lines() do
--Print
if char:sub(1, 6) == "print:" then
print(char:sub(7))
end
--Integer
if char:sub(1, 2) == "V:" then
vars [#vars + 1] = char:sub(3, 5)
if char:sub(6, 6) == "=" then
values [#values + 1] = char:sub(7)
end
--print("NAME:"..vars [#vars]..", ".."VALUE:"..values [#values])
end
--Add
if char:sub(1, 4) == "add:" then
if char:sub(5, 7) == vars[#vars] then
if char:sub(8, 8) == "," then
if char:sub(9, 11) == vars[#vars] then
print(values[#values] + values[#values])
--print(vars[#vars])
end
end
end
end
end
--Debug purposes
--[[
for k, v in pairs(vars) do
print(k, v)
end
for b, a in pairs(values) do
print(b, a)
end
--]]
end
function run()
while true do
print("Open a file")
file = io.read()
print("File name:"..file)
print("")
lex(file)
print("")
end
end
run()
基本上它所说的" - 添加"我希望它查找我们使用我们在文本文件中记下的名称设置的变量,然后查找我们使用相同名称设置的另一个变量,例如:V:Var = 12(nextline)V:Vr2 = 10 (nextline)add:Var,Vr2,然后它会添加设置的值
答案 0 :(得分:2)
你走在正确的轨道上。我要做的改变特别是将V之后的内容作为vars表中的一个键,并设置=之后的值作为值,所以:
if char:sub(1,2) == "V:" and char:sub(6, 6) == "=" then
vars[char:sub(3,5)] = tonumber(char:sub(7))
end
然后,你需要为你的添加功能做的就是:
function add_vars(one, two)
return vars[one] + vars[two]
end
至少,我想我明白你想要什么。如果不是,那么您想详细了解您的收获情况以及您的期望。