From 37265a7250695d365d0f29d3d722511f844145e2 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sat, 15 Sep 2007 22:27:14 +0000 Subject: [PATCH] 371.3 svn: r7350 original commit: 001404dec0ddf49e774ecac33df6601c4e1b542c --- collects/mzscheme/lang/reader.ss | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 collects/mzscheme/lang/reader.ss diff --git a/collects/mzscheme/lang/reader.ss b/collects/mzscheme/lang/reader.ss new file mode 100644 index 0000000..ea0df3a --- /dev/null +++ b/collects/mzscheme/lang/reader.ss @@ -0,0 +1,26 @@ +(module reader mzscheme + (provide (rename *read read) + (rename *read-syntax read-syntax)) + + (define (*read in) + (wrap in read)) + + (define (*read-syntax src in) + (wrap in (lambda (in) + (read-syntax src in)))) + + (define (wrap port read) + (let ([body + (let loop ([a null]) + (let ([v (read port)]) + (if (eof-object? v) + (reverse a) + (loop (cons v a)))))]) + (let* ([p-name (object-name port)] + [name (if (path? p-name) + (let-values ([(base name dir?) (split-path p-name)]) + (string->symbol (path->string (path-replace-suffix name #"")))) + 'page)] + [id 'doc]) + `(module ,name mzscheme + . ,body)))))