~ubuntu-branches/ubuntu/hoary/swig1.3/hoary

« back to all changes in this revision

Viewing changes to Runtime/swigrun.scm

  • Committer: Bazaar Package Importer
  • Author(s): Thom May
  • Date: 2004-08-02 15:57:10 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20040802155710-bm292q1d6x6tw7gc
Tags: 1.3.21-5ubuntu1
Fix linking for ruby, python, perl and tcl bindings

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
;; -*- buffer-read-only: t -*- vi: set ro:
 
2
;; This file was created automatically by SWIG.
 
3
;; Don't modify this file, modify the SWIG interface instead.
 
4
(cond-expand ((or chicken-compile-shared shared)) (else (declare (unit swigrun))))
 
5
 
 
6
(declare 
 
7
    (hide swig-init)
 
8
    (foreign-declare "C_extern void swigrun_swig_init(int,C_word,C_word) C_noret;"))
 
9
(define swig-init (##core#primitive "swigrun_swig_init"))
 
10
(swig-init)
 
11
 
 
12
 
 
13
(declare 
 
14
 (foreign-declare "C_extern int   swigrun_swig_num_types (void);")
 
15
 (foreign-declare "C_extern char* swigrun_swig_type_name (int);")
 
16
 (foreign-declare "C_extern void* swigrun_swig_type_ptr (int);")
 
17
 (foreign-declare "C_extern char* swigrun_swig_type_str (int);")
 
18
 (foreign-declare "C_extern void  swigrun_swig_type_tag (int, C_word);"))
 
19
(define-record swig-swigrun-tag class name ptr str)
 
20
(define-record-printer (swig-swigrun-tag tag out)
 
21
 (fprintf out "#<c++ ~S>(~A)" (swig-swigrun-tag-str tag) 
 
22
  (swig-swigrun-tag-ptr tag)))
 
23
(define swig-swigrun-tag-num 
 
24
 ((foreign-lambda int "swigrun_swig_num_types")))
 
25
(define swig-swigrun-tags (make-vector swig-swigrun-tag-num #f))
 
26
(letrec
 
27
 ((gen
 
28
   (lambda (l i)
 
29
    (if (= i 0) (cons 0 l) (gen (cons i l) (- i 1))))))
 
30
 (let ((indices (if (<= swig-swigrun-tag-num 0) (quote ())
 
31
                 (gen (quote ()) (- swig-swigrun-tag-num 1)))))
 
32
  (for-each 
 
33
   (lambda (index)
 
34
    (let 
 
35
     ((tag
 
36
       (make-swig-swigrun-tag 
 
37
        1000 
 
38
        ((foreign-lambda
 
39
          c-string "swigrun_swig_type_name" int) index)
 
40
        ((foreign-lambda
 
41
          c-pointer "swigrun_swig_type_ptr" int) index)
 
42
        ((foreign-lambda
 
43
          c-string "swigrun_swig_type_str" int) index))))
 
44
     (vector-set! swig-swigrun-tags index tag)
 
45
     ((foreign-lambda void "swigrun_swig_type_tag"
 
46
       int scheme-object) index tag)))
 
47
   indices)))
 
48
 
 
49