Previous: Pattern language, Up: Macros [Index]
syntax-error behaves similarly to error (Exceptions) except that
implementations with an expansion pass separate from evaluation should
signal an error as soon as syntax-error is expanded. This can be
used as a syntax-rules ⟨template⟩ for a ⟨pattern⟩ that is
an invalid use of the macro, which can provide more descriptive error
messages. ⟨message⟩ is a string literal, and ⟨args⟩ arbitrary
expressions providing additional information. Applications cannot count on
being able to catch syntax errors with exception handlers or guards.
(define-syntax simple-let
(syntax-rules ()
((simple-let ((x . y) val) body1 body2 ...)
(syntax-error "expected an identifier" (x . y)))
((simple-let (name val) body1 body2 ...)