diff options
Diffstat (limited to 'Examples/chicken/overload/test-overload.scm')
| -rw-r--r-- | Examples/chicken/overload/test-overload.scm | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/Examples/chicken/overload/test-overload.scm b/Examples/chicken/overload/test-overload.scm new file mode 100644 index 0000000..168490f --- /dev/null +++ b/Examples/chicken/overload/test-overload.scm @@ -0,0 +1,45 @@ +;; This file demonstrates the overloading capabilities of SWIG + +(load-library 'example "overload.so") + +;; Low level +;; --------- + +(display " +Trying low level code ... + (foo 1) + (foo \"some string\") + (define A-FOO (new-Foo)) + (define ANOTHER-FOO (new-Foo A-FOO)) ;; copy constructor + (Foo-bar A-FOO 2) + (Foo-bar ANOTHER-FOO \"another string\" 3) +") + +(primitive:foo 1) +(primitive:foo "some string") +(define A-FOO (slot-ref (primitive:new-Foo) 'swig-this)) +(define ANOTHER-FOO (slot-ref (primitive:new-Foo A-FOO) 'swig-this)) ;; copy constructor +(primitive:Foo-bar A-FOO 2) +(primitive:Foo-bar ANOTHER-FOO "another string" 3) + +;; TinyCLOS +;; -------- + +(display " +Trying TinyCLOS code ... + (+foo+ 1) + (+foo+ \"some string\") + (define A-FOO (make <Foo>)) + (define ANOTHER-FOO (make <Foo> A-FOO)) ;; copy constructor + (-bar- A-FOO 2) + (-bar- ANOTHER-FOO \"another string\" 3) +") + +(foo 1) +(foo "some string") +(define A-FOO (make <Foo>)) +(define ANOTHER-FOO (make <Foo> A-FOO)) ;; copy constructor +(bar A-FOO 2) +(bar ANOTHER-FOO "another string" 3) + +(exit) |
