diff --git a/collects/scribble/lp/lang/lang.ss b/collects/scribble/lp/lang/lang.ss index b3eb79042e..180411e573 100644 --- a/collects/scribble/lp/lang/lang.ss +++ b/collects/scribble/lp/lang/lang.ss @@ -29,7 +29,7 @@ (define-syntax (tangle stx) (define chunk-mentions '()) (define stupid-internal-definition-sytnax - (unless main-id + (unless first-id (raise-syntax-error 'scribble/lp "no chunks"))) (define body (let loop ([block (if main-id diff --git a/collects/scribble/private/lp.ss b/collects/scribble/private/lp.ss index 3d266d4c0c..8e019e5d57 100644 --- a/collects/scribble/private/lp.ss +++ b/collects/scribble/private/lp.ss @@ -40,7 +40,18 @@ (map (lambda (expr) (syntax-case expr (require) [(require mod ...) - #'(mod ...)] + (let loop ([mods (syntax->list #'(mod ...))]) + (cond + [(null? mods) null] + [else + (syntax-case (car mods) (for-syntax) + [(for-syntax x ...) + (loop (cdr mods)) + #; + (append (loop (syntax->list #'(x ...))) + (loop (cdr mods)))] + [x + (cons #'x (loop (cdr mods)))])]))] [else null])) (syntax->list #'(expr ...)))]) (syntax-local-lift-require