;; 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 )) (define ANOTHER-FOO (make A-FOO)) ;; copy constructor (-bar- A-FOO 2) (-bar- ANOTHER-FOO \"another string\" 3) ") (foo 1) (foo "some string") (define A-FOO (make )) (define ANOTHER-FOO (make A-FOO)) ;; copy constructor (bar A-FOO 2) (bar ANOTHER-FOO "another string" 3) (exit)