delay 'scheme' expansion to expression position

svn: r13794
This commit is contained in:
Matthew Flatt 2009-02-22 21:40:45 +00:00
parent 04c2a2c3a4
commit 42fad650c7

View File

@ -653,10 +653,13 @@
[else `(quote ,v)]))) [else `(quote ,v)])))
(define (cvt s) (define (cvt s)
(datum->syntax #'here (stx->loc-s-expr s) #f)) (datum->syntax #'here (stx->loc-s-expr s) #f))
(if (eq? (syntax-local-context) 'expression)
(syntax-case stx () (syntax-case stx ()
[(_ expr) #`(typeset-code #,(cvt #'expr))] [(_ expr) #`(typeset-code #,(cvt #'expr))]
[(_ expr (... ...)) [(_ expr (... ...))
#`(typeset-code #,(cvt #'(code:line expr (... ...))))])))] #`(typeset-code #,(cvt #'(code:line expr (... ...))))])
(quasisyntax/loc stx
(#%expression #,stx)))))]
[(_ code typeset-code uncode d->s) [(_ code typeset-code uncode d->s)
#'(define-code code typeset-code uncode d->s syntax-property)] #'(define-code code typeset-code uncode d->s syntax-property)]
[(_ code typeset-code uncode) [(_ code typeset-code uncode)