source: project/release/3/misc-extn/trunk/misc-extn-dsssl.scm @ 10987

Last change on this file since 10987 was 6202, checked in by Kon Lovett, 14 years ago

Rmvd extra dsssl-fixup, put test of dsssl-fixup back in testbase test, works w/ hygienic macros.

File size: 709 bytes
Line 
1;;;; misc-extn-dsssl.scm
2;;;; Kon Lovett, Aug '07
3
4;;; DSSSL Extended Lambda List
5
6(define-macro (dsssl-fixup ?keys ?opts ?rest . ?body)
7  (let-values (
8      [(optvars optvals)
9        (let loop ([opts ?opts]
10                   [varlst '()]
11                   [vallst '()])
12          (if (null? opts)
13              (values (reverse varlst) (reverse vallst))
14              (let* ([opt (car opts)]
15                     [var (car opt)])
16                (loop (cdr opts)
17                      (cons var varlst)
18                      (cons `(list ,var ,(cadr opt)) vallst)))))])
19    `(let-values ([(,?rest ,@optvars)
20                   (fixup-extended-lambda-list ',?keys ,?rest ,@optvals)])
21       ,@?body ) ) )
Note: See TracBrowser for help on using the repository browser.