Avoid lumping together output values as (output '(x y z)), use

separate output expressions instead.

svn: r14015
This commit is contained in:
Eli Barzilay 2009-03-08 21:10:07 +00:00
parent fe618071dc
commit 8b5b6a53d9

View File

@ -78,14 +78,16 @@
(define post? (not (null? (syntax-e #'(post ...)))))
(define (wrap expr)
(if (or pre? post?)
#`(begin #,@(if pre? #'((decor '(pre ...))) #'())
#`(begin #,@(if pre? #'((decor 'pre) ...) #'())
#,expr
#,@(if post? #'((decor '(post ...))) #'()))
#,@(if post? #'((decor 'post) ...) #'()))
expr))
(cond [(begin?->list expr*)
=> (lambda (xs)
(if (null? xs)
(if (or pre? post?) #'(decor '(pre ... post ...)) expr*)
(if (or pre? post?)
#'(begin (decor 'pre) ... (decor 'post) ...)
expr*)
#`(process-begin/text begin decor
pre ... #,@xs post ...)))]
[(definition? expr*) expr*] ; dump pre/post