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:
parent
a54e6fa326
commit
8add1522ae
2 changed files with 20 additions and 6 deletions
|
@ -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.
|
||||
|
|
|
@ -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}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue