|[ < ]||[ > ]||[ << ]||[ Up ]||[ >> ]||[Top]||[Contents]||[Index]||[ ? ]|
errorf(See section 6.16.1 Signalling errors), except that the error is signalled at macro-expansion time (i.e. compile time) rather than run time.
They are useful to tell the user the wrong usage of macro in
the comprehensive way, instead of the cryptic error from the macro
expander. Because of the purpose, arg ... are first
unwrap-syntax described below, to strip off
the internal syntactic binding informations.
(define-syntax my-macro (syntax-rules () ((_ a b) (foo2 a b)) ((_ a b c) (foo3 a b c)) ((_ . ?) (syntax-error "malformed my-macro" (my-macro . ?))))) (my-macro 1 2 3 4) => error: "malformed my-macro: (mymacro 1 2 3 4)"