lp-include.rkt (581B)
1 #lang scheme/base 2 3 (require scheme/include (for-syntax scheme/base) 4 (only-in scribble/private/lp chunk CHUNK) 5 scribble/manual) 6 7 (provide lp-include) 8 9 (define-syntax (module stx) 10 (syntax-case stx (#%module-begin) 11 [(module name base (#%module-begin body ...)) 12 #'(begin body ...)] 13 [(module name base body ...) 14 (raise-syntax-error #f "missing #%module-begin" stx)])) 15 16 (define-syntax (lp-include stx) 17 (syntax-case stx () 18 [(_ name) 19 (with-syntax ([there (datum->syntax stx 'there)]) 20 #'(include-at/relative-to here there name))]))