moonscript/tests/outputs/class.lua

455 lines
10 KiB
Lua
Raw Normal View History

local Hello
Hello = (function()
local _parent_0 = nil
2011-07-14 07:02:07 +00:00
local _base_0 = {
hello = function(self)
return print(self.test, self.world)
end,
__tostring = function(self)
return "hello world"
end
}
2011-06-15 15:52:01 +00:00
_base_0.__index = _base_0
2011-07-14 07:02:07 +00:00
if _parent_0 then
setmetatable(_base_0, _parent_0.__base)
2011-07-14 07:02:07 +00:00
end
local _class_0 = setmetatable({
__init = function(self, test, world)
2011-06-15 15:52:01 +00:00
self.test, self.world = test, world
return print("creating object..")
end,
__base = _base_0,
__name = "Hello",
__parent = _parent_0
2011-07-14 07:02:07 +00:00
}, {
__index = function(cls, name)
local val = rawget(_base_0, name)
if val == nil and _parent_0 then
return _parent_0[name]
else
return val
end
end,
__call = function(cls, ...)
local _self_0 = setmetatable({}, _base_0)
cls.__init(_self_0, ...)
return _self_0
2011-07-14 07:02:07 +00:00
end
})
2011-07-04 18:36:26 +00:00
_base_0.__class = _class_0
return _class_0
2011-06-15 15:52:01 +00:00
end)()
2011-06-15 06:13:33 +00:00
local x = Hello(1, 2)
x:hello()
2011-06-16 05:41:17 +00:00
print(x)
local Simple
Simple = (function()
local _parent_0 = nil
2011-07-14 07:02:07 +00:00
local _base_0 = {
cool = function(self)
return print("cool")
end
}
2011-06-16 05:41:17 +00:00
_base_0.__index = _base_0
2011-07-14 07:02:07 +00:00
if _parent_0 then
setmetatable(_base_0, _parent_0.__base)
2011-07-14 07:02:07 +00:00
end
local _class_0 = setmetatable({
__init = function(self, ...)
if _parent_0 then
return _parent_0.__init(self, ...)
end
end,
__base = _base_0,
__name = "Simple",
__parent = _parent_0
2011-07-14 07:02:07 +00:00
}, {
__index = function(cls, name)
local val = rawget(_base_0, name)
if val == nil and _parent_0 then
return _parent_0[name]
else
return val
end
end,
__call = function(cls, ...)
local _self_0 = setmetatable({}, _base_0)
cls.__init(_self_0, ...)
return _self_0
2011-07-14 07:02:07 +00:00
end
})
2011-07-04 18:36:26 +00:00
_base_0.__class = _class_0
return _class_0
2011-06-16 05:41:17 +00:00
end)()
local Yikes
Yikes = (function()
local _parent_0 = Simple
2011-07-14 07:02:07 +00:00
local _base_0 = { }
2011-06-16 05:41:17 +00:00
_base_0.__index = _base_0
if _parent_0 then
setmetatable(_base_0, _parent_0.__base)
2011-06-16 05:41:17 +00:00
end
2011-07-14 07:02:07 +00:00
local _class_0 = setmetatable({
__init = function(self)
return print("created hello")
end,
__base = _base_0,
__name = "Yikes",
__parent = _parent_0
2011-07-14 07:02:07 +00:00
}, {
__index = function(cls, name)
local val = rawget(_base_0, name)
if val == nil and _parent_0 then
return _parent_0[name]
else
return val
end
end,
__call = function(cls, ...)
local _self_0 = setmetatable({}, _base_0)
cls.__init(_self_0, ...)
return _self_0
2011-07-14 07:02:07 +00:00
end
})
2011-07-04 18:36:26 +00:00
_base_0.__class = _class_0
return _class_0
end)()
2011-06-16 05:41:17 +00:00
x = Yikes()
x:cool()
local Hi
Hi = (function()
local _parent_0 = nil
2011-07-14 07:02:07 +00:00
local _base_0 = {
cool = function(self, num)
return print("num", num)
end
}
_base_0.__index = _base_0
2011-07-14 07:02:07 +00:00
if _parent_0 then
setmetatable(_base_0, _parent_0.__base)
2011-07-14 07:02:07 +00:00
end
local _class_0 = setmetatable({
__init = function(self, arg)
return print("init arg", arg)
end,
__base = _base_0,
__name = "Hi",
__parent = _parent_0
2011-07-14 07:02:07 +00:00
}, {
__index = function(cls, name)
local val = rawget(_base_0, name)
if val == nil and _parent_0 then
return _parent_0[name]
else
return val
end
end,
__call = function(cls, ...)
local _self_0 = setmetatable({}, _base_0)
cls.__init(_self_0, ...)
return _self_0
2011-07-14 07:02:07 +00:00
end
})
2011-07-04 18:36:26 +00:00
_base_0.__class = _class_0
return _class_0
end)()
Simple = (function()
local _parent_0 = Hi
2011-07-14 07:02:07 +00:00
local _base_0 = {
cool = function(self)
return _parent_0.cool(self, 120302)
end
}
_base_0.__index = _base_0
if _parent_0 then
setmetatable(_base_0, _parent_0.__base)
end
2011-07-14 07:02:07 +00:00
local _class_0 = setmetatable({
__init = function(self)
return _parent_0.__init(self, "man")
end,
__base = _base_0,
__name = "Simple",
__parent = _parent_0
2011-07-14 07:02:07 +00:00
}, {
__index = function(cls, name)
local val = rawget(_base_0, name)
if val == nil and _parent_0 then
return _parent_0[name]
else
return val
end
end,
__call = function(cls, ...)
local _self_0 = setmetatable({}, _base_0)
cls.__init(_self_0, ...)
return _self_0
2011-07-14 07:02:07 +00:00
end
})
2011-07-04 18:36:26 +00:00
_base_0.__class = _class_0
return _class_0
end)()
x = Simple()
2011-07-04 18:36:26 +00:00
x:cool()
print(x.__class == Simple)
local Okay
Okay = (function()
local _parent_0 = nil
local _base_0 = {
something = 20323
}
_base_0.__index = _base_0
if _parent_0 then
setmetatable(_base_0, _parent_0.__base)
end
local _class_0 = setmetatable({
__init = function(self, ...)
if _parent_0 then
return _parent_0.__init(self, ...)
end
end,
__base = _base_0,
__name = "Okay",
__parent = _parent_0
}, {
__index = function(cls, name)
local val = rawget(_base_0, name)
if val == nil and _parent_0 then
return _parent_0[name]
else
return val
end
end,
__call = function(cls, ...)
local _self_0 = setmetatable({}, _base_0)
cls.__init(_self_0, ...)
return _self_0
end
})
_base_0.__class = _class_0
return _class_0
end)()
local Biggie
Biggie = (function()
local _parent_0 = Okay
local _base_0 = {
something = function(self)
_parent_0.something(self, 1, 2, 3, 4)
_parent_0.something(another_self, 1, 2, 3, 4)
return assert(_parent_0 == Okay)
end
}
_base_0.__index = _base_0
if _parent_0 then
setmetatable(_base_0, _parent_0.__base)
end
local _class_0 = setmetatable({
__init = function(self, ...)
if _parent_0 then
return _parent_0.__init(self, ...)
end
end,
__base = _base_0,
__name = "Biggie",
__parent = _parent_0
}, {
__index = function(cls, name)
local val = rawget(_base_0, name)
if val == nil and _parent_0 then
return _parent_0[name]
else
return val
end
end,
__call = function(cls, ...)
local _self_0 = setmetatable({}, _base_0)
cls.__init(_self_0, ...)
return _self_0
end
})
_base_0.__class = _class_0
return _class_0
end)()
local Yeah
Yeah = (function()
local _parent_0 = nil
local _base_0 = {
okay = function(self)
return _parent_0.something(self, 1, 2, 3, 4)
end
}
_base_0.__index = _base_0
if _parent_0 then
setmetatable(_base_0, _parent_0.__base)
end
local _class_0 = setmetatable({
__init = function(self, ...)
if _parent_0 then
return _parent_0.__init(self, ...)
end
end,
__base = _base_0,
__name = "Yeah",
__parent = _parent_0
}, {
__index = function(cls, name)
local val = rawget(_base_0, name)
if val == nil and _parent_0 then
return _parent_0[name]
else
return val
end
end,
__call = function(cls, ...)
local _self_0 = setmetatable({}, _base_0)
cls.__init(_self_0, ...)
return _self_0
end
})
_base_0.__class = _class_0
return _class_0
end)()
local What
What = (function()
local _parent_0 = nil
local _base_0 = {
something = function(self)
return print("val:", self.val)
end
}
_base_0.__index = _base_0
if _parent_0 then
setmetatable(_base_0, _parent_0.__base)
end
local _class_0 = setmetatable({
__init = function(self, ...)
if _parent_0 then
return _parent_0.__init(self, ...)
end
end,
__base = _base_0,
__name = "What",
__parent = _parent_0
}, {
__index = function(cls, name)
local val = rawget(_base_0, name)
if val == nil and _parent_0 then
return _parent_0[name]
else
return val
end
end,
__call = function(cls, ...)
local _self_0 = setmetatable({}, _base_0)
cls.__init(_self_0, ...)
return _self_0
end
})
_base_0.__class = _class_0
return _class_0
end)()
Hello = (function()
local _parent_0 = What
local _base_0 = {
val = 2323,
something = function(self)
return (function()
local _base_1 = _parent_0
local _fn_0 = _base_1.something
return function(...)
return _fn_0(self, ...)
end
end)()
end
}
_base_0.__index = _base_0
if _parent_0 then
setmetatable(_base_0, _parent_0.__base)
end
local _class_0 = setmetatable({
__init = function(self, ...)
if _parent_0 then
return _parent_0.__init(self, ...)
end
end,
__base = _base_0,
__name = "Hello",
__parent = _parent_0
}, {
__index = function(cls, name)
local val = rawget(_base_0, name)
if val == nil and _parent_0 then
return _parent_0[name]
else
return val
end
end,
__call = function(cls, ...)
local _self_0 = setmetatable({}, _base_0)
cls.__init(_self_0, ...)
return _self_0
end
})
_base_0.__class = _class_0
return _class_0
end)()
do
local _with_0 = Hello()
x = _with_0:something()
print(x)
x()
end
local CoolSuper
CoolSuper = (function()
local _parent_0 = nil
local _base_0 = {
hi = function(self)
_parent_0.hi(self, 1, 2, 3, 4)(1, 2, 3, 4)
_parent_0.something(1, 2, 3, 4)
local _ = _parent_0.something(1, 2, 3, 4).world
_parent_0.yeah(self, "world").okay(hi, hi, hi)
_ = something.super
_ = _parent_0.super.super.super
return nil
end
}
_base_0.__index = _base_0
if _parent_0 then
setmetatable(_base_0, _parent_0.__base)
end
local _class_0 = setmetatable({
__init = function(self, ...)
if _parent_0 then
return _parent_0.__init(self, ...)
end
end,
__base = _base_0,
__name = "CoolSuper",
__parent = _parent_0
}, {
__index = function(cls, name)
local val = rawget(_base_0, name)
if val == nil and _parent_0 then
return _parent_0[name]
else
return val
end
end,
__call = function(cls, ...)
local _self_0 = setmetatable({}, _base_0)
cls.__init(_self_0, ...)
return _self_0
end
})
_base_0.__class = _class_0
return _class_0
2012-01-09 06:24:58 +00:00
end)()
x = self.hello
x = self.__class.hello
self:hello("world")
self.__class:hello("world")
self.__class:one(self.__class:two(4, 5)(self.three, self.four))
local xx
xx = function(hello, world, cool)
self.hello, self.__class.world = hello, world
end