diff --git a/piclib/built-in.scm b/piclib/built-in.scm index 568cff08..6cf7b28c 100644 --- a/piclib/built-in.scm +++ b/piclib/built-in.scm @@ -599,6 +599,16 @@ (let ((expr (walk (lambda (x) (if (symbol? x) (inject x) x)) expr))) (make-syntactic-closure mac-env '() (f expr inject compare))))) +(define-syntax define-auxiliary-syntax + (ir-macro-transformer + (lambda (expr i c) + `(define-syntax ,(cadr expr) + (sc-macro-transformer + (lambda (expr env) + (error "invalid use of auxiliary syntax"))))))) + +(define-auxiliary-syntax unquote) +(define-auxiliary-syntax unquote-splicing) (define-syntax or (ir-macro-transformer (lambda (expr inject compare)