import source from 1.3.40
[external/swig.git] / Examples / chicken / overload / test-overload.scm
1 ;; This file demonstrates the overloading capabilities of SWIG
2
3 (load-library 'example "overload.so")
4
5 ;; Low level
6 ;; ---------
7
8 (display "
9 Trying low level code ...
10   (foo 1)
11   (foo \"some string\")
12   (define A-FOO (new-Foo))
13   (define ANOTHER-FOO (new-Foo A-FOO)) ;; copy constructor
14   (Foo-bar A-FOO 2)
15   (Foo-bar ANOTHER-FOO \"another string\" 3)
16 ")
17
18 (primitive:foo 1)
19 (primitive:foo "some string")
20 (define A-FOO (slot-ref (primitive:new-Foo) 'swig-this))
21 (define ANOTHER-FOO (slot-ref (primitive:new-Foo A-FOO) 'swig-this)) ;; copy constructor
22 (primitive:Foo-bar A-FOO 2)
23 (primitive:Foo-bar ANOTHER-FOO "another string" 3)
24
25 ;; TinyCLOS
26 ;; --------
27
28 (display "
29 Trying TinyCLOS code ...
30   (+foo+ 1)
31   (+foo+ \"some string\")
32   (define A-FOO (make <Foo>))
33   (define ANOTHER-FOO (make <Foo> A-FOO)) ;; copy constructor
34   (-bar- A-FOO 2)
35   (-bar- ANOTHER-FOO \"another string\" 3)
36 ")
37
38 (foo 1)
39 (foo "some string")
40 (define A-FOO (make <Foo>))
41 (define ANOTHER-FOO (make <Foo> A-FOO)) ;; copy constructor
42 (bar A-FOO 2)
43 (bar ANOTHER-FOO "another string" 3)
44
45 (exit)