Re: MOP/Macroexpansion
- From: "Coby Beck" <cbeck@xxxxxxxxxxxxx>
- Date: Sun, 29 May 2005 17:32:54 GMT
"Andreas Thiele" <nospam@xxxxxxxxxx> wrote in message
news:d7cb1h$8f9$04$1@xxxxxxxxxxxxxxxxxxxx
> Hi,
>
> the following code snippet works in my application if def-class is used at
> top-level:
>
> (defmacro def-methods (name)
> `(progn ,@(class-methods name)))
>
> (defmacro def-class (name parents &body body)
> `(progn
> (defclass ,name ,(if parents parents '(db-root))
> ,@(transform-source name body)
> (:metaclass db-class))
> (def-methods ,name)))
>
> class-methods computes a list of defmethod forms and needs to call
> find-class on the created class. Thus defclass needs to be executed before
> def-methods is expanded. This does not work, if I use def-class within a
Make def-methods a function instead, thus it will run after the execution of
the defclass form.
--
Coby Beck
(remove #\Space "coby 101 @ bigpond . com")
.
- References:
- MOP/Macroexpansion
- From: Andreas Thiele
- MOP/Macroexpansion
- Prev by Date: Re: Macros and symbols across packages
- Next by Date: Re: Portable AllegroServe + Clisp
- Previous by thread: Re: MOP/Macroexpansion
- Next by thread: Re: MOP/Macroexpansion
- Index(es):