diff --git a/collects/htdp/asl/lang/reader.ss b/collects/htdp/asl/lang/reader.ss index 82c4f2d2e8..7f9e163c58 100644 --- a/collects/htdp/asl/lang/reader.ss +++ b/collects/htdp/asl/lang/reader.ss @@ -1,10 +1,4 @@ -#lang s-exp syntax/module-reader -lang/htdp-advanced -#:read (wrap-reader read options) -#:read-syntax (wrap-reader read-syntax options) -#:info (make-info options) -#:module-info (make-module-info options) - -(require htdp/bsl/reader) -(define options '(abbreviate-cons-as-list - read-accept-quasiquote)) +#lang s-exp htdp/bsl/reader +lang/htdp-intermediate-lambda +'(abbreviate-cons-as-list + read-accept-quasiquote) diff --git a/collects/htdp/bsl+/lang/reader.ss b/collects/htdp/bsl+/lang/reader.ss index 2515b33713..caff3dd2e5 100644 --- a/collects/htdp/bsl+/lang/reader.ss +++ b/collects/htdp/bsl+/lang/reader.ss @@ -1,10 +1,4 @@ -#lang s-exp syntax/module-reader +#lang s-exp htdp/bsl/reader lang/htdp-beginner-abbr -#:read (wrap-reader read options) -#:read-syntax (wrap-reader read-syntax options) -#:info (make-info options) -#:module-info (make-module-info options) - -(require htdp/bsl/reader) -(define options '(abbreviate-cons-as-list - read-accept-quasiquote)) \ No newline at end of file +'(abbreviate-cons-as-list + read-accept-quasiquote) diff --git a/collects/htdp/bsl/lang/reader.ss b/collects/htdp/bsl/lang/reader.ss index f56ca96519..64af9a8d22 100644 --- a/collects/htdp/bsl/lang/reader.ss +++ b/collects/htdp/bsl/lang/reader.ss @@ -1,9 +1,3 @@ -#lang s-exp syntax/module-reader +#lang s-exp htdp/bsl/reader lang/htdp-beginner -#:read (wrap-reader read options) -#:read-syntax (wrap-reader read-syntax options) -#:info (make-info options) -#:module-info (make-module-info options) - -(require htdp/bsl/reader) -(define options '()) +'() diff --git a/collects/htdp/bsl/reader.ss b/collects/htdp/bsl/reader.ss index bf04717491..1b9f896e23 100644 --- a/collects/htdp/bsl/reader.ss +++ b/collects/htdp/bsl/reader.ss @@ -1,7 +1,20 @@ #lang scheme/base -(provide wrap-reader - make-info - make-module-info) +(require (rename-in syntax/module-reader + [#%module-begin #%reader-module-begin])) +(provide (rename-out [module-begin #%module-begin]) + (except-out (all-from-out scheme/base) + #%module-begin)) + +(define-syntax-rule (module-begin lang opts) + (#%reader-module-begin + lang + + #:read (wrap-reader read options) + #:read-syntax (wrap-reader read-syntax options) + #:info (make-info options) + #:module-info (make-module-info options) + + (define options opts))) (define (wrap-reader read-proc options) (lambda args diff --git a/collects/htdp/isl+/lang/reader.ss b/collects/htdp/isl+/lang/reader.ss index 0a034153d5..7f9e163c58 100644 --- a/collects/htdp/isl+/lang/reader.ss +++ b/collects/htdp/isl+/lang/reader.ss @@ -1,10 +1,4 @@ -#lang s-exp syntax/module-reader +#lang s-exp htdp/bsl/reader lang/htdp-intermediate-lambda -#:read (wrap-reader read options) -#:read-syntax (wrap-reader read-syntax options) -#:info (make-info options) -#:module-info (make-module-info options) - -(require htdp/bsl/reader) -(define options '(abbreviate-cons-as-list - read-accept-quasiquote)) +'(abbreviate-cons-as-list + read-accept-quasiquote) diff --git a/collects/htdp/isl/lang/reader.ss b/collects/htdp/isl/lang/reader.ss index 21a20e50c9..57c04e9358 100644 --- a/collects/htdp/isl/lang/reader.ss +++ b/collects/htdp/isl/lang/reader.ss @@ -1,10 +1,4 @@ -#lang s-exp syntax/module-reader +#lang s-exp htdp/bsl/reader lang/htdp-intermediate -#:read (wrap-reader read options) -#:read-syntax (wrap-reader read-syntax options) -#:info (make-info options) -#:module-info (make-module-info options) - -(require htdp/bsl/reader) -(define options '(abbreviate-cons-as-list - read-accept-quasiquote)) \ No newline at end of file +'(abbreviate-cons-as-list + read-accept-quasiquote) diff --git a/collects/racket/lang/reader.ss b/collects/racket/lang/reader.ss index 49b8ffcdce..8a4ad4baf2 100644 --- a/collects/racket/lang/reader.ss +++ b/collects/racket/lang/reader.ss @@ -1,6 +1,6 @@ #lang s-exp syntax/module-reader racket -#:info get-info -(require racket/private/get-info) +#:module-info '#(racket/private/get-info get-info #f) + diff --git a/collects/racket/private/get-info.ss b/collects/racket/private/get-info.ss index d386e9cd5e..2f82482a07 100644 --- a/collects/racket/private/get-info.ss +++ b/collects/racket/private/get-info.ss @@ -2,11 +2,9 @@ (provide get-info) -(define get-info - (lambda (key def get-default) +(define (get-info data) + (lambda (key default) (case key [(configure-runtime) '#(racket/private/runtime configure #f)] - [else - (get-default key def)]))) - + [else default]))) diff --git a/collects/scribble/base/lang/reader.ss b/collects/scribble/base/lang/reader.ss index 5604e5e114..9c2b200c18 100644 --- a/collects/scribble/base/lang/reader.ss +++ b/collects/scribble/base/lang/reader.ss @@ -1,13 +1,3 @@ -#lang s-exp syntax/module-reader - +#lang s-exp scribble/base/reader scribble/base/lang - -#:read scribble:read-inside -#:read-syntax scribble:read-syntax-inside -#:whole-body-readers? #t #:wrapper1 (lambda (t) (list* 'doc 'values '() (t))) -#:module-info (scribble-base-module-info) -#:info (scribble-base-info) - -(require (prefix-in scribble: "../../reader.ss") - "../reader.ss") diff --git a/collects/scribble/base/reader.ss b/collects/scribble/base/reader.ss index 2e8af93a66..6704c3978b 100644 --- a/collects/scribble/base/reader.ss +++ b/collects/scribble/base/reader.ss @@ -1,16 +1,40 @@ #lang scheme/base - -(provide scribble-base-info +(require (prefix-in scribble: "../reader.ss") + (rename-in syntax/module-reader + [#%module-begin #%reader-module-begin])) +(provide (rename-out [module-begin #%module-begin]) + (except-out (all-from-out scheme/base) + #%module-begin) + scribble-base-info + scribble-base-reader-info scribble-base-module-info) -(define (scribble-base-info) +(define-syntax-rule (module-begin lang #:wrapper1 wrapper1) + (#%reader-module-begin + lang + + #:read scribble:read-inside + #:read-syntax scribble:read-syntax-inside + #:whole-body-readers? #t + #:wrapper1 wrapper1 + #:info (scribble-base-info) + #:module-info (scribble-base-module-info))) + +;; Settings that apply just to the surface syntax: +(define (scribble-base-reader-info) (lambda (key defval default) (case key [(color-lexer) (dynamic-require 'syntax-color/scribble-lexer 'scribble-inside-lexer)] + [else (default key defval)]))) + +;; Settings that apply to Scribble-renderable docs: +(define (scribble-base-info) + (lambda (key defval default) + (case key [(drscheme:toolbar-buttons) (dynamic-require 'scribble/tools/drscheme-buttons 'drscheme-buttons)] - [else (default key defval)]))) + [else ((scribble-base-reader-info) key defval default)]))) (define (scribble-base-module-info) (lambda (modpath data) diff --git a/collects/scribble/doc/lang/reader.ss b/collects/scribble/doc/lang/reader.ss index 0ec1859774..cf56c0226f 100644 --- a/collects/scribble/doc/lang/reader.ss +++ b/collects/scribble/doc/lang/reader.ss @@ -1,13 +1,3 @@ -#lang s-exp syntax/module-reader - +#lang s-exp scribble/base/reader scribble/doclang - -#:read scribble:read-inside -#:read-syntax scribble:read-syntax-inside -#:whole-body-readers? #t #:wrapper1 (lambda (t) (list* 'doc 'values '() (t))) -#:module-info (scribble-base-module-info) -#:info (scribble-base-info) - -(require (prefix-in scribble: "../../reader.ss") - scribble/base/reader) diff --git a/collects/scribble/jfp/lang/reader.ss b/collects/scribble/jfp/lang/reader.ss index 6619598530..09e0da561f 100644 --- a/collects/scribble/jfp/lang/reader.ss +++ b/collects/scribble/jfp/lang/reader.ss @@ -1,13 +1,3 @@ -#lang s-exp syntax/module-reader - +#lang s-exp scribble/base/reader scribble/jfp/lang - -#:read scribble:read-inside -#:read-syntax scribble:read-syntax-inside -#:whole-body-readers? #t #:wrapper1 (lambda (t) (cons 'doc (t))) -#:module-info (scribble-base-module-info) -#:info (scribble-base-info) - -(require (prefix-in scribble: "../../reader.ss") - scribble/base/reader) diff --git a/collects/scribble/lp/lang/reader.ss b/collects/scribble/lp/lang/reader.ss index b7eb4930f9..84961b2d2d 100644 --- a/collects/scribble/lp/lang/reader.ss +++ b/collects/scribble/lp/lang/reader.ss @@ -5,8 +5,12 @@ scribble/lp/lang/lang #:read read-inside #:read-syntax read-syntax-inside #:whole-body-readers? #t -#:module-info (scribble-base-module-info) #:info (scribble-base-info) +#:module-info (scribble-base-module-info) (require scribble/reader - scribble/base/reader) + (only-in scribble/base/reader + scribble-base-info + scribble-base-module-info)) + + diff --git a/collects/scribble/manual/lang/reader.ss b/collects/scribble/manual/lang/reader.ss index 28954057a0..ec831697ce 100644 --- a/collects/scribble/manual/lang/reader.ss +++ b/collects/scribble/manual/lang/reader.ss @@ -1,13 +1,3 @@ -#lang s-exp syntax/module-reader - +#lang s-exp scribble/base/reader scribble/manual/lang - -#:read scribble:read-inside -#:read-syntax scribble:read-syntax-inside -#:whole-body-readers? #t #:wrapper1 (lambda (t) (cons 'doc (t))) -#:module-info (scribble-base-module-info) -#:info (scribble-base-info) - -(require (prefix-in scribble: "../../reader.ss") - scribble/base/reader) diff --git a/collects/scribble/sigplan/lang/reader.ss b/collects/scribble/sigplan/lang/reader.ss index b029bbaa52..3963d6e58f 100644 --- a/collects/scribble/sigplan/lang/reader.ss +++ b/collects/scribble/sigplan/lang/reader.ss @@ -1,13 +1,3 @@ -#lang s-exp syntax/module-reader - +#lang s-exp scribble/base/reader scribble/sigplan/lang - -#:read scribble:read-inside -#:read-syntax scribble:read-syntax-inside -#:whole-body-readers? #t #:wrapper1 (lambda (t) (cons 'doc (t))) -#:module-info (scribble-base-module-info) -#:info (scribble-base-info) - -(require (prefix-in scribble: "../../reader.ss") - scribble/base/reader) diff --git a/collects/scribble/text/lang/reader.ss b/collects/scribble/text/lang/reader.ss index 245b628259..d9660753ae 100644 --- a/collects/scribble/text/lang/reader.ss +++ b/collects/scribble/text/lang/reader.ss @@ -5,5 +5,8 @@ scribble/text/textlang #:read scribble:read-inside #:read-syntax scribble:read-syntax-inside #:whole-body-readers? #t +#:info (scribble-base-reader-info) -(require (prefix-in scribble: "../../reader.ss")) +(require (prefix-in scribble: "../../reader.ss") + (only-in scribble/base/reader + scribble-base-reader-info))