1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-06 07:30:28 +02:00

* boot-9.scm (defmacro, define-macro, define-syntax-macro):

Define only at the top level.
This commit is contained in:
Keisuke Nishida 2001-04-15 15:20:28 +00:00
parent a54e6fa326
commit 8add1522ae
2 changed files with 20 additions and 6 deletions

View file

@ -1,3 +1,8 @@
2001-04-15 Keisuke Nishida <kxn30@po.cwru.edu>
* boot-9.scm (defmacro, define-macro, define-syntax-macro):
Define only at the top level.
2001-04-06 Thien-Thi Nguyen <ttn@revel.glug.org>
* threads.scm: Update copyright.

View file

@ -2021,10 +2021,11 @@
(let ((defmacro-transformer
(lambda (name parms . body)
(let ((transformer `(lambda ,parms ,@body)))
`(define ,name
(,(lambda (transformer)
(defmacro:transformer transformer))
,transformer))))))
`(eval-case
((load-toplevel)
(define ,name (defmacro:transformer ,transformer)))
(else
(error "defmacro can only be used at the top level")))))))
(defmacro:transformer defmacro-transformer)))
(define defmacro:syntax-transformer
@ -2560,7 +2561,11 @@
(if (symbol? first)
(car rest)
`(lambda ,(cdr first) ,@rest))))
`(define ,name (defmacro:transformer ,transformer))))
`(eval-case
((load-toplevel)
(define ,name (defmacro:transformer ,transformer)))
(else
(error "define-macro can only be used at the top level")))))
(defmacro define-syntax-macro (first . rest)
@ -2569,7 +2574,11 @@
(if (symbol? first)
(car rest)
`(lambda ,(cdr first) ,@rest))))
`(define ,name (defmacro:syntax-transformer ,transformer))))
`(eval-case
((load-toplevel)
(define ,name (defmacro:syntax-transformer ,transformer)))
(else
(error "define-syntax-macro can only be used at the top level")))))
;;; {Module System Macros}