39 lines
1.5 KiB
Plaintext
39 lines
1.5 KiB
Plaintext
|
;;;; srfi-7.stk -- SRFI-7 (PROGRAM)
|
|||
|
;;;;
|
|||
|
;;;; Copyright <20> 1999 Erick Gallesio - I3S-CNRS/ESSI <eg@unice.fr>
|
|||
|
;;;;
|
|||
|
;;;; Permission to use, copy, modify, distribute,and license this
|
|||
|
;;;; software and its documentation for any purpose is hereby granted,
|
|||
|
;;;; provided that existing copyright notices are retained in all
|
|||
|
;;;; copies and that this notice is included verbatim in any
|
|||
|
;;;; distributions. No written agreement, license, or royalty fee is
|
|||
|
;;;; required for any of the authorized uses.
|
|||
|
;;;; This software is provided ``AS IS'' without express or implied
|
|||
|
;;;; warranty.
|
|||
|
;;;;
|
|||
|
;;;; This is an implementation of SRFI-7 (Richard Kelsey). This implementation
|
|||
|
;;;; corresponds to the second implementation given in the reference document.
|
|||
|
;;;;
|
|||
|
;;;; Author: Erick Gallesio [eg@unice.fr]
|
|||
|
;;;; Creation date: 31-Aug-1999 16:10 (eg)
|
|||
|
;;;; Last file update: 3-Sep-1999 19:54 (eg)
|
|||
|
|
|||
|
(require "defsyntax")
|
|||
|
|
|||
|
(define-syntax program
|
|||
|
(syntax-rules (requires files code feature-cond)
|
|||
|
((program)
|
|||
|
(begin))
|
|||
|
((program (requires feature-id ...) more ...)
|
|||
|
(begin (cond-expand ((and feature-id ...) 'okay)) (program more ...)))
|
|||
|
((program (files filename ...) more ...)
|
|||
|
(begin (load filename) ... (program more ...)))
|
|||
|
((program (code stuff ...) more ...)
|
|||
|
(begin stuff ... (program more ...)))
|
|||
|
((program (feature-cond (requirement stuff ...) ...) more ...)
|
|||
|
(begin (cond-expand (requirement (program stuff ...)) ...)
|
|||
|
(program more ...)))))
|
|||
|
|
|||
|
(provide "srfi-7")
|
|||
|
|