summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--module/language/scheme/translate.scm12
1 files changed, 6 insertions, 6 deletions
diff --git a/module/language/scheme/translate.scm b/module/language/scheme/translate.scm
index b8585e3cd..493ce819d 100644
--- a/module/language/scheme/translate.scm
+++ b/module/language/scheme/translate.scm
@@ -58,10 +58,7 @@
;; definition forward-declared them
(and (variable-bound? var) (variable-ref var)))))))
(cond
- ((or (primitive-macro? val)
- (eq? val eval-case))
- (or (assq-ref primitive-syntax-table head)
- (syntax-error #f "unhandled primitive macro" head)))
+ ((assq-ref custom-transformer-table val))
((defmacro? val)
(lambda (env loc exp)
@@ -77,6 +74,9 @@
(with-fluids ((eec (module-eval-closure mod)))
(sc-expand3 exp 'c '(compile load eval)))))))
+ ((primitive-macro? val)
+ (syntax-error #f "unhandled primitive macro" head))
+
((macro? val)
(syntax-error #f "unknown kind of macro" head))
@@ -121,7 +121,7 @@
(define (make1 clause)
(let ((sym (car clause))
(clauses (cdr clause)))
- `(cons ',sym
+ `(cons ,sym
(lambda (,env ,loc ,exp)
(define (,retranslate x) (trans ,env (location x) x))
(pmatch (cdr ,exp)
@@ -131,7 +131,7 @@
(define *the-compile-toplevel-symbol* 'compile-toplevel)
-(define primitive-syntax-table
+(define custom-transformer-table
(make-pmatch-transformers
e l retrans
(quote