fix racket runtime-config info; reduce boilerplate for HtDP and Scribble language families

svn: r18761
This commit is contained in:
Matthew Flatt 2010-04-08 13:53:59 +00:00
parent 4410b5adf6
commit 8b31b1b552
16 changed files with 79 additions and 117 deletions

View File

@ -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)

View File

@ -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))
'(abbreviate-cons-as-list
read-accept-quasiquote)

View File

@ -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 '())
'()

View File

@ -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

View File

@ -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)

View File

@ -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))
'(abbreviate-cons-as-list
read-accept-quasiquote)

View File

@ -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)

View File

@ -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])))

View File

@ -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")

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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))

View File

@ -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)

View File

@ -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)

View File

@ -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))