* There's no need to do the syntactic checks of identifiers for
`chunk', if there's an error, then people will get it anyway when they run the code. This means that `chunk' can be a simple syntax-rule. * Removed some redundant requires. svn: r13634 original commit: 8298feacb247eb6b5de309c06a9faadbc08b0eb0
This commit is contained in:
parent
e257507b09
commit
92cd42afe6
|
@ -2,29 +2,12 @@
|
|||
|
||||
@(begin
|
||||
|
||||
(require (for-syntax scheme/base
|
||||
syntax/boundmap
|
||||
scheme/list
|
||||
compiler/cm-accomplice)
|
||||
scribble/manual
|
||||
scribble/struct
|
||||
scribble/basic
|
||||
scribble/decode
|
||||
scheme/include)
|
||||
(require scribble/manual scribble/decode scheme/include)
|
||||
|
||||
;; define `chunk' as a macro that typesets the code
|
||||
(define-syntax (chunk stx)
|
||||
(syntax-case stx ()
|
||||
[(_ name expr ...)
|
||||
(cond
|
||||
[(not (identifier? #'name))
|
||||
(raise-syntax-error #f "expected a chunk name" stx #'name)]
|
||||
[(not (regexp-match? #rx"^<.*>$" (symbol->string (syntax-e #'name))))
|
||||
(raise-syntax-error
|
||||
#f "chunk names must begin and end with angle brackets, <...>"
|
||||
stx #'name)]
|
||||
[else #`(make-splice (list (emph (scheme name) " ::=")
|
||||
(schemeblock expr ...)))])]))
|
||||
(define-syntax-rule (chunk name expr ...)
|
||||
(make-splice (list (emph (scheme name) " ::=")
|
||||
(schemeblock expr ...))))
|
||||
|
||||
(define-syntax module
|
||||
(syntax-rules () [(module name base body ...) (begin body ...)]))
|
||||
|
|
Loading…
Reference in New Issue
Block a user