summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDirk Herrmann <dirk@dirk-herrmanns-seiten.de>2002-11-16 16:01:06 +0000
committerDirk Herrmann <dirk@dirk-herrmanns-seiten.de>2002-11-16 16:01:06 +0000
commitc55bcb329743378e1af784ac41a29764d46fe65c (patch)
tree0f218b80f4b8e460903bf5f8a3dfeb0e90762163
parent6aa9ea7c90e1cb9075add79d91074d8e1f6b3d7c (diff)
downloadguile-c55bcb329743378e1af784ac41a29764d46fe65c.tar.gz
* syncase.scm (define-syntax, eval-when, fluid-let-syntax,
identifier-syntax, let-syntax, letrec-syntax, syntax, syntax-case, syntax-rules, with-syntax, include): Changed definitions to form 'real' macro definitions.
-rw-r--r--ice-9/ChangeLog7
-rw-r--r--ice-9/syncase.scm23
2 files changed, 19 insertions, 11 deletions
diff --git a/ice-9/ChangeLog b/ice-9/ChangeLog
index b68f9bea0..8c273792b 100644
--- a/ice-9/ChangeLog
+++ b/ice-9/ChangeLog
@@ -1,5 +1,12 @@
2002-11-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
+ * syncase.scm (define-syntax, eval-when, fluid-let-syntax,
+ identifier-syntax, let-syntax, letrec-syntax, syntax, syntax-case,
+ syntax-rules, with-syntax, include): Changed definitions to form
+ 'real' macro definitions.
+
+2002-11-16 Dirk Herrmann <D.Herrmann@tu-bs.de>
+
* boot-9.scm (define-private, export-syntax, export-syntax):
Fixed my previous fix (blush).
diff --git a/ice-9/syncase.scm b/ice-9/syncase.scm
index dea7d615c..92bb0d370 100644
--- a/ice-9/syncase.scm
+++ b/ice-9/syncase.scm
@@ -83,21 +83,22 @@
(define bound-identifier=? #f)
(define datum->syntax-object #f)
-(define define-syntax sc-macro)
-(define eval-when sc-macro)
-(define fluid-let-syntax sc-macro)
(define free-identifier=? #f)
(define generate-temporaries #f)
(define identifier? #f)
-(define identifier-syntax sc-macro)
-(define let-syntax sc-macro)
-(define letrec-syntax sc-macro)
-(define syntax sc-macro)
-(define syntax-case sc-macro)
(define syntax-object->datum #f)
-(define syntax-rules sc-macro)
-(define with-syntax sc-macro)
-(define include sc-macro)
+
+(defmacro define-syntax args `(sc-macro ,@args))
+(defmacro eval-when args `(sc-macro ,@args))
+(defmacro fluid-let-syntax args `(sc-macro ,@args))
+(defmacro identifier-syntax args `(sc-macro ,@args))
+(defmacro let-syntax args `(sc-macro ,@args))
+(defmacro letrec-syntax args `(sc-macro ,@args))
+(defmacro syntax args `(sc-macro ,@args))
+(defmacro syntax-case args `(sc-macro ,@args))
+(defmacro syntax-rules args `(sc-macro ,@args))
+(defmacro with-syntax args `(sc-macro ,@args))
+(defmacro include args `(sc-macro ,@args))
(define primitive-syntax '(quote lambda letrec if set! begin define or
and let let* cond do quasiquote unquote