summaryrefslogtreecommitdiff
path: root/trunk/Examples/lua/simple
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/Examples/lua/simple')
-rw-r--r--trunk/Examples/lua/simple/Makefile18
-rw-r--r--trunk/Examples/lua/simple/example.c18
-rw-r--r--trunk/Examples/lua/simple/example.i7
-rw-r--r--trunk/Examples/lua/simple/runme.lua35
4 files changed, 78 insertions, 0 deletions
diff --git a/trunk/Examples/lua/simple/Makefile b/trunk/Examples/lua/simple/Makefile
new file mode 100644
index 000000000..f181818a6
--- /dev/null
+++ b/trunk/Examples/lua/simple/Makefile
@@ -0,0 +1,18 @@
+TOP = ../..
+SWIG = $(TOP)/../preinst-swig
+SRCS = example.c
+TARGET = example
+INTERFACE = example.i
+
+all::
+ $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
+ TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' lua
+
+static::
+ $(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
+ TARGET='mylua' INTERFACE='$(INTERFACE)' lua_static
+
+clean::
+ $(MAKE) -f $(TOP)/Makefile lua_clean
+
+check: all
diff --git a/trunk/Examples/lua/simple/example.c b/trunk/Examples/lua/simple/example.c
new file mode 100644
index 000000000..1c2af789c
--- /dev/null
+++ b/trunk/Examples/lua/simple/example.c
@@ -0,0 +1,18 @@
+/* File : example.c */
+
+/* A global variable */
+double Foo = 3.0;
+
+/* Compute the greatest common divisor of positive integers */
+int gcd(int x, int y) {
+ int g;
+ g = y;
+ while (x > 0) {
+ g = x;
+ x = y % x;
+ y = g;
+ }
+ return g;
+}
+
+
diff --git a/trunk/Examples/lua/simple/example.i b/trunk/Examples/lua/simple/example.i
new file mode 100644
index 000000000..86ae9f361
--- /dev/null
+++ b/trunk/Examples/lua/simple/example.i
@@ -0,0 +1,7 @@
+/* File : example.i */
+%module example
+
+%inline %{
+extern int gcd(int x, int y);
+extern double Foo;
+%} \ No newline at end of file
diff --git a/trunk/Examples/lua/simple/runme.lua b/trunk/Examples/lua/simple/runme.lua
new file mode 100644
index 000000000..1e5a139c8
--- /dev/null
+++ b/trunk/Examples/lua/simple/runme.lua
@@ -0,0 +1,35 @@
+---- 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
+
+-- Call our gcd() function
+x = 42
+y = 105
+g = example.gcd(x,y)
+print("The gcd of",x,"and",y,"is",g)
+
+-- Manipulate the Foo global variable
+
+-- Output its current value
+print("Foo = ", example.Foo)
+
+-- Change its value
+example.Foo = 3.1415926
+
+-- See if the change took effect
+print("Foo = ", example.Foo)
+
+
+
+
+
+
+
+
+