summaryrefslogtreecommitdiff
path: root/Source/tests/02-luax/script.lua
diff options
context:
space:
mode:
Diffstat (limited to 'Source/tests/02-luax/script.lua')
-rw-r--r--Source/tests/02-luax/script.lua141
1 files changed, 141 insertions, 0 deletions
diff --git a/Source/tests/02-luax/script.lua b/Source/tests/02-luax/script.lua
new file mode 100644
index 0000000..7e553d2
--- /dev/null
+++ b/Source/tests/02-luax/script.lua
@@ -0,0 +1,141 @@
+string script = R"scriptcode(
+-- start script
+
+function main()
+ local a = 19
+ print(Asura.version)
+ print(Asura.author.name)
+ print("ok")
+ print(Asura.author.func())
+-- local boy = Asura.SimBoy.New("I am peter!", 19)
+-- boy:Say()
+-- print(Asura.SimSchool.GetName())
+ print(Asura.SimBoy.Class)
+ print(Asura.SimBoy.Gender)
+ print(Asura.SimBoy.GetClassName())
+ print(Asura.School.GetName())
+ print(Asura.School.Region)
+--[[
+ local Kid = Asura.SimBoy.Extend()
+ Asura.Kid = Kid
+ Kid.New = function(self, height, age)
+ self.base(age)
+ self.height = height
+ end
+ Kid.GetHeight = function(self)
+ print(self.height)
+ end
+ local kid = Kid.New(110, 12)
+ kid:GetHeight()
+ ]]
+ local kid = Asura.SimBoy.New(23, "Chai")
+ print(kid:GetAge())
+ print(kid:GetName())
+ kid.fruit = function()
+ return "apple"
+ end
+ print(kid.fruit())
+ print(Asura.SimBoy.GetGender())
+ Asura.SimBoy.Havefun = function()
+ return "Boys have some fun!"
+ end
+ print(Asura.SimBoy.Havefun())
+
+-- ޸෽
+ Asura.SimBoy.Foo = function()
+ return "SimBoy.Foo"
+ end
+ print(Asura.SimBoy.Foo())
+
+ print(Asura.EGender.BOY)
+ --Asura.EGender.BOY = 2
+ print(Asura.EGender.BOY)
+ print(Asura.SimBoy.EHabits.Girls)
+ print(Asura.EHabits.Girls)
+ print(kid)
+
+ kid:Write(function()
+ return "kid:Write()"
+ end )
+ print(kid:Speak())
+
+ kid:Write(function()
+ return "kid:Write() 2"
+ end )
+ print(kid:Speak())
+
+------------------- plain class test
+ local Foo = Asura.Class("Foo")
+ Foo.__init = function(self, age, name, boy)
+ self.age = age
+ self.name = name
+ self.boy = boy
+ end
+ Foo.GetAge = function(self)
+ return self.age
+ end
+ Foo.GetName = function(self)
+ return self.name
+ end
+ local foo = Foo.New(10, "lee", kid)
+ print(foo:GetName())
+ print(Foo.GetClassName())
+ print(foo.GetClassName())
+ print(foo.boy:GetAge())
+--------------------inherits test
+ local Coo = Foo.Extend("Coo")
+ print(Coo.GetClassName())
+ local coo = Coo.New(20, "Wang", kid)
+ print(coo:GetAge())
+ Coo.__init = function(self, age, name, boy)
+ self.age = age - 1
+ self.name = boy:GetName()
+ self.boy = boy
+ self.__base.__init(self, age, "Wangba", boy)
+ end
+ Coo.GetName = function(self)
+ local name = self.__base.GetName(self)
+ return "his name is " .. name
+ end
+ local coo2 = Coo.New(20, "Wang", kid)
+ print(coo2:GetAge())
+ print(coo2.GetClassName())
+ print(coo2:GetName())
+ print(coo2)
+ print(coo)
+ print(coo2:TypeOf("Foo"))
+---------------------plain enum test
+ local ERace = Asura.Enum("ERace", {
+ ["White"] = 1,
+ ["Asian"] = 2,
+ ["Black"] = 3,
+ })
+ print(ERace.White)
+ print(ERace.Asian)
+----------------------native class inherit test
+ -- local Boy2 = Asura.SimBoy.Extend("Boy2")
+ -- Boy2.Speak = function(self)
+ -- return self.__base.GetAge(self)
+ -- end
+ -- Boy2.__init = function(self, age, name)
+ -- print("__init " .. age)
+ -- print("__init " .. name)
+ -- end
+ -- local boy22 = Boy2.New(12, "Liu")
+ -- print(boy22)
+ -- print(boy22:Speak())
+
+------------------------gc test
+ local boy = Asura.SimBoy.New(11, "chaichai")
+ boy = nil
+
+ io.read()
+end
+function err(msg)
+ print(msg)
+end
+xpcall(main, err)
+
+
+-- end script
+)scriptcode"; \ No newline at end of file