[<<][staapl][>>][..]
Thu Aug 2 20:52:12 CEST 2007
weird macro bug
;; This driver could be generalized into eager evaluation for macros.
(define-for-syntax (process-args op stx stx-args)
(datum->syntax-object
stx
(map (lambda (x)
(if (and (list? x)
(eq? ': (car x)))
(op (cdr x))
x))
(syntax-object->datum stx-args))))
;; This utility macro calls another macro with an argument list
;; reversed if it is tagged with ':'. This is necessary for PN <->
;; RPN conversion.
(define-syntax reverse-args
(lambda (stx)
(syntax-case stx ()
((_ m . args)
#`(m . #,(process-args reverse stx #'args))))))
The code above doesn't work.. Something about the syntax gets lost
maybe? Expanding the macro seems to do the right thing though..
[Reply][About]
[<<][staapl][>>][..]