better error message for R5RS transformer expressions that are not 'syntax-rules'

svn: r14183
This commit is contained in:
Matthew Flatt 2009-03-19 12:33:22 +00:00
parent 154b73755a
commit f14b7158cd
3 changed files with 19 additions and 3 deletions

View File

@ -1,10 +1,14 @@
(module main scheme/base
(require scheme/mpair
(for-syntax scheme/base syntax/kerncase)
(for-syntax scheme/base syntax/kerncase
"private/r5rs-trans.ss")
(only-in mzscheme transcript-on transcript-off))
(provide (for-syntax syntax-rules ...)
(provide (for-syntax syntax-rules ...
(rename-out [syntax-rules-only #%top]
[syntax-rules-only #%app]
[syntax-rules-only #%datum]))
(rename-out
[mcons cons]
[mcar car]

View File

@ -0,0 +1,11 @@
#lang scheme/base
(require (for-syntax scheme/base))
(provide syntax-rules-only)
(define-syntax (syntax-rules-only stx)
(syntax-case stx ()
[(_ . form)
(raise-syntax-error
'macro-transformer
"only a `syntax-rules' form is allowed"
#'form)]))

View File

@ -1,6 +1,7 @@
#lang scribble/doc
@(require scribble/manual
(for-label r5rs
(for-label (only-meta-in 0 r5rs)
(only-in r5rs syntax-rules ...)
(only-in mzscheme #%plain-module-begin)
(only-in scheme/mpair mmap)
(only-in scheme/contract one-of/c)