trac.callcc.org

root/release/3/riaxpander/riaxpander-dsssl-lambda.scm

Revision 10322, 0.7 kB (checked in by ashinn, 9 months ago)

Adding support for compiled syntax extensions.

Line 
1
2 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3 ;; support DSSSL-style keywords
4
5 ;; Compiled macros don't support the hidden let-syntax in a macro
6 ;; definition trick, so we still need to load this (had issues passing
7 ;; it to EVAL at load-time in the compiled code, and was feeling lazy,
8 ;; and this works).
9
10 (define-syntax lambda
11   (let-syntax ((*lambda lambda))
12     (er-macro-transformer
13      (lambda (form rename compare)
14        (receive (standard-bvl body)
15            (##sys#ria-expand-extended-lambda-list
16             (cadr form)
17             (cddr form)
18             ##sys#syntax-error-hook)
19          `(,(rename '*lambda) ,standard-bvl ,@body))))))
Note: See TracBrowser for help on using the browser.