diff options
author | Lorry Tar Creator <lorry-tar-importer@baserock.org> | 2009-08-18 20:56:02 +0000 |
---|---|---|
committer | Lorry <lorry@roadtrain.codethink.co.uk> | 2012-09-25 16:59:08 +0000 |
commit | 9f8a09ed743cedd9547bf0661d518647966ab114 (patch) | |
tree | 9c7803d3b27a8ec22e91792ac7f7932efa128b20 /Examples/lua/pointer/runme.lua | |
download | swig-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.lua | 48 |
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) |