/usr/share/guile/site/g-wrap/scm-codegen.scm is in g-wrap 1.9.15-0.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | ;;;; File: scm-codegen.scm
;;;; Copyright (C) 2005 Andreas Rottmann
;;;;
;;;; This program is free software; you can redistribute it and/or
;;;; modify it under the terms of the GNU Lesser General Public
;;;; License as published by the Free Software Foundation; either
;;;; version 2, or (at your option) any later version.
;;;;
;;;; This program is distributed in the hope that it will be useful,
;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
;;;; Lesser General Public License for more details.
;;;;
;;;; You should have received a copy of the GNU Lesser General Public
;;;; License along with this software; see the file COPYING. If not,
;;;; write to the Free Software Foundation, 675 Mass Ave, Cambridge,
;;;; MA 02139, USA.
;;;;
;;; Commentary:
;;
; This module provides the generate-wrapset method for creating
; Scheme-based wrappers.
;;
;;; Code:
(define-module (g-wrap scm-codegen)
#:use-module (oop goops)
#:use-module (g-wrap)
#:use-module (g-wrap util)
#:export (declarations-cg))
(define (generate-wrapset-scm wrapset port)
(define (dsp-list lst)
(for-each (lambda (s) (display s port)) lst))
(define (rndr expressions)
(render (make-scm-code expressions) port))
(let ((items (reverse (slot-ref wrapset 'items))))
(define (render-items cg)
(for-each (lambda (item)
(rndr (cg wrapset item)))
items))
;;(format #t "client types: ~S\n" client-types)
(dsp-list
(list
";; Generated by G-Wrap-TNG: an experimental wrapper engine\n"
"\n"))
(format #t "decl-cg: ~S\n" (generic-function-methods declarations-cg))
(rndr (declarations-cg wrapset))
(render-items declarations-cg)))
(define-method (generate-wrapset (wrapset <gw-wrapset>)
(basename <string>))
(let ((wrapset-source-name (string-append basename ".scm")))
(call-with-output-file/cleanup
wrapset-source-name
(lambda (port)
(generate-wrapset-scm wrapset port)))))
;;; Default implementations (no-ops)
(define-method (declarations-cg (wrapset <gw-wrapset>))
'())
(define-method (declarations-cg (wrapset <gw-wrapset>) (item <gw-item>))
'())
|