if string.sub(_VERSION,1,7)=='Lua 5.0' then
lib=loadlib('example.dll','luaopen_example') or loadlib('example.so','luaopen_example')
assert(lib)()
else
require('example')
end
print("Creating some objects:")
c = example.Circle(10)
print(" Created circle", c)
s = example.Square(10)
print(" Created square", s)
print("\nA total of",example.Shape_nshapes,"shapes were created")
c.x = 20
c.y = 30
s.x = -10
s.y = 5
print("\nHere is their current position:")
print(string.format(" Circle = (%f, %f)",c.x,c.y))
print(string.format(" Square = (%f, %f)",s.x,s.y))
print("\nHere are some properties of the shapes:")
for _,o in pairs({c,s}) do
print(" ", o)
print(" area = ", o:area())
print(" perimeter = ", o:perimeter())
end
print("\nGuess I'll clean up now")
c=nil
s=nil
collectgarbage()
print(example.Shape_nshapes,"shapes remain")
print "Goodbye"