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>
|
2001-04-06 Thien-Thi Nguyen <ttn@revel.glug.org>
|
||||||
|
|
||||||
* threads.scm: Update copyright.
|
* threads.scm: Update copyright.
|
||||||
|
|
|
@ -2021,10 +2021,11 @@
|
||||||
(let ((defmacro-transformer
|
(let ((defmacro-transformer
|
||||||
(lambda (name parms . body)
|
(lambda (name parms . body)
|
||||||
(let ((transformer `(lambda ,parms ,@body)))
|
(let ((transformer `(lambda ,parms ,@body)))
|
||||||
`(define ,name
|
`(eval-case
|
||||||
(,(lambda (transformer)
|
((load-toplevel)
|
||||||
(defmacro:transformer transformer))
|
(define ,name (defmacro:transformer ,transformer)))
|
||||||
,transformer))))))
|
(else
|
||||||
|
(error "defmacro can only be used at the top level")))))))
|
||||||
(defmacro:transformer defmacro-transformer)))
|
(defmacro:transformer defmacro-transformer)))
|
||||||
|
|
||||||
(define defmacro:syntax-transformer
|
(define defmacro:syntax-transformer
|
||||||
|
@ -2560,7 +2561,11 @@
|
||||||
(if (symbol? first)
|
(if (symbol? first)
|
||||||
(car rest)
|
(car rest)
|
||||||
`(lambda ,(cdr first) ,@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)
|
(defmacro define-syntax-macro (first . rest)
|
||||||
|
@ -2569,7 +2574,11 @@
|
||||||
(if (symbol? first)
|
(if (symbol? first)
|
||||||
(car rest)
|
(car rest)
|
||||||
`(lambda ,(cdr first) ,@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}
|
;;; {Module System Macros}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue