33 lines
733 B
Lua
33 lines
733 B
Lua
local cmd = require("dms.cmd")
|
|
local Chunk = {}
|
|
Chunk.__index = Chunk
|
|
function Chunk:__tostring()
|
|
local str = self.chunkname..":"..self.chunktype.."\n"
|
|
local s = ""
|
|
for i,v in pairs(self.cmds) do
|
|
str = str .. tostring(v).."\n"
|
|
end
|
|
return str
|
|
end
|
|
function Chunk:new(cname,ctype,filename)
|
|
local c = {}
|
|
setmetatable(c,self)
|
|
c.chunkname = cname
|
|
c.chunktype = ctype
|
|
c.filename = filename
|
|
c.pos = 0
|
|
c.cmds = {}
|
|
c.labels = {} -- ["label"] = pos
|
|
return c
|
|
end
|
|
function Chunk:addLabel(label)
|
|
self.labels[label] = self:count()
|
|
end
|
|
function Chunk:addCmd(cmd)
|
|
cmd.chunk = self
|
|
table.insert(self.cmds,cmd)
|
|
end
|
|
function Chunk:count()
|
|
return #self.cmds
|
|
end
|
|
return Chunk |