require "prelude" local function _zt() local y, x = POP(''), POP('') PUSH('', x * y) end local function _zp() local y, x = POP(''), POP('') PUSH('', x + y) end local function _sqrt() local x = POP('') PUSH('', math.sqrt(x)) end local function _print() print(POP('')) end local function _pprint() require "pprint" (POP('')) end local function _drop() POP('') end local function _dup() PUSH("x", POP('')) PUSH('', PEEK("x")) PUSH('', POP("x")) end local function _enter() _dup() PUSH('', PEEK("lobby")) do local value, object = POP(''), POP('') PUSHTO(object, "lobby", value) end _dup() _me() do local value, object = POP(''), POP('') PUSHTO(object, "parent", value) end _become() end local function _leave() POP("lobby") PUSH('', PEEK("parent")) _me() do local value, object = POP(''), POP('') PUSHTO(object, "child", value) end PUSH('', POP("parent")) _become() PUSH('', POP("child")) end local function _rectangle() love.graphics.rectangle(POP('fill-mode'), POP('x'), POP('y'), POP('w'), POP('h')) end local function _ZCrectangle() PUSH('', PEEK("position")) _enter() PUSH('', PEEK("parent")) PUSH('', PEEK("x")) do local value, object = POP(''), POP('') PUSHTO(object, "x", value) end PUSH('', PEEK("parent")) PUSH('', PEEK("y")) do local value, object = POP(''), POP('') PUSHTO(object, "y", value) end _leave() _drop() PUSH('', PEEK("size")) _enter() PUSH('', PEEK("parent")) PUSH('', PEEK("x")) do local value, object = POP(''), POP('') PUSHTO(object, "w", value) end PUSH('', PEEK("parent")) PUSH('', PEEK("x")) do local value, object = POP(''), POP('') PUSHTO(object, "h", value) end _leave() _drop() _rectangle() end local function _draw() PUSH('', PEEK("player")) _enter() PUSH('', "fill") PUSH("fill-mode", POP('')) _ZCrectangle() _leave() _drop() end local function _newzmpoint() _object() _enter() PUSH('', PEEK("parent")) PUSH('', POPFROM(POP(''), "x")) PUSH("x", POP('')) PUSH('', PEEK("parent")) PUSH('', POPFROM(POP(''), "y")) PUSH("y", POP('')) _leave() end _object() _enter() PUSH('', 100) PUSH("x", POP('')) PUSH('', 100) PUSH("y", POP('')) _newzmpoint() PUSH("position", POP('')) PUSH('', 25) PUSH("x", POP('')) PUSH('', 25) PUSH("y", POP('')) _newzmpoint() PUSH("size", POP('')) _object() _enter() PUSH('', 1) PUSH("r", POP('')) PUSH('', 1) PUSH("g", POP('')) PUSH('', 0) PUSH("b", POP('')) _leave() PUSH("color", POP('')) _leave() PUSH("player", POP('')) function love.draw() _draw() end