summaryrefslogtreecommitdiff
path: root/Examples/lua/pointer/runme.lua
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2009-08-18 20:56:02 +0000
committerLorry <lorry@roadtrain.codethink.co.uk>2012-09-25 16:59:08 +0000
commit9f8a09ed743cedd9547bf0661d518647966ab114 (patch)
tree9c7803d3b27a8ec22e91792ac7f7932efa128b20 /Examples/lua/pointer/runme.lua
downloadswig-tarball-master.tar.gz
Imported from /srv/lorry/lorry-area/swig-tarball/swig-1.3.40.tar.gz.HEADswig-1.3.40master
Diffstat (limited to 'Examples/lua/pointer/runme.lua')
-rw-r--r--Examples/lua/pointer/runme.lua48
1 files changed, 48 insertions, 0 deletions
diff --git a/Examples/lua/pointer/runme.lua b/Examples/lua/pointer/runme.lua
new file mode 100644
index 0000000..8deee67
--- /dev/null
+++ b/Examples/lua/pointer/runme.lua
@@ -0,0 +1,48 @@
+---- importing ----
+if string.sub(_VERSION,1,7)=='Lua 5.0' then
+ -- lua5.0 doesnt have a nice way to do this
+ lib=loadlib('example.dll','luaopen_example') or loadlib('example.so','luaopen_example')
+ assert(lib)()
+else
+ -- lua 5.1 does
+ require('example')
+end
+
+-- First create some objects using the pointer library.
+print("Testing the pointer library")
+a = example.new_intp()
+b = example.new_intp()
+c = example.new_intp()
+example.intp_assign(a,37)
+example.intp_assign(b,42)
+
+print(" a = "..tostring(a))
+print(" b = "..tostring(b))
+print(" c = "..tostring(c))
+
+-- Call the add() function with some pointers
+example.add(a,b,c)
+
+-- Now get the result
+r = example.intp_value(c)
+print(" 37 + 42 = "..r)
+
+-- Clean up the pointers
+-- since this is C-style pointers you must clean it up
+example.delete_intp(a)
+example.delete_intp(b)
+example.delete_intp(c)
+
+-- Now try the typemap library
+-- This should be much easier. Now how it is no longer
+-- necessary to manufacture pointers.
+
+print("Trying the typemap library")
+r = example.sub(37,42)
+print(" 37 - 42 = "..r)
+
+-- Now try the version with multiple return values
+
+print("Testing multiple return values")
+q,r = example.divide(42,37)
+print(" 42/37 = "..q.." remainder "..r)