Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
-- This file:
--   http://anggtwu.net/LUA/Basic1.lua.html
--   http://anggtwu.net/LUA/Basic1.lua
--          (find-angg "LUA/Basic1.lua")
-- Author: Eduardo Ochs <eduardoochs@gmail.com>
--
-- (defun e () (interactive) (find-angg "LUA/Basic1.lua"))


BLine = Class {
  type = "BLine",
  __tostring = function (bl) return format("%4d %s", bl[1], bl[2]) end,
  __index = {
  },
}

BLines = Class {
  type    = "BLines",
  __tostring = function (bls) return mapconcat(tostring, bls, "\n") end,
  __index = {
    find = function (bls, n)
        for i=1,#bls do if bls[i][1] >= n then return i end end
      end,
    set = function (bls, n, body)
        local i = bls:find(n)
        if i and bls[i][1] == n then table.remove(bls, i) end
        if body then table.insert(bls, i or #bls+1, BLine {n,body}) end
        return bls
      end,
  },
}

--[[
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "Basic1.lua"
= BLine {10, "print 42"}
bls = BLines {
  BLine {10, "print 42"},
  BLine {20, "n=n+1"},
  BLine {30, "print n"},
}
= bls
= bls:find(15)
= bls:find(20)
= bls:find(50)
= bls:set(20)
= bls:set(20, "foo")
= bls:set(30, "bar")
= bls:set(40, "plic")

--]]


-- Local Variables:
-- coding:  utf-8-unix
-- End: