guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 16 snarf macros


From: Dale P. Smith
Subject: Re: 16 snarf macros
Date: Sat, 9 Mar 2002 07:53:14 -0500

On 08 Mar 2002 23:15:16 +0100
Marius Vollmer <address@hidden> wrote:

> "Dale P. Smith" <address@hidden> writes:
> 
> > #define TYPE_GET(TYPE, GETTER, C_NAME, S_NAME)                          \
> > SCM_SNARF_HERE (\
> > static const char s_##TYPE##_get_##C_NAME [] = S_NAME;                  \
> > static SCM TYPE##_get_##C_NAME (SCM obj)                                \
> > {                                                                       \
> >   TYPE *o;                                                              \
> >   SCM_ASSERT(SCM_SMOB_PREDICATE(tc_##TYPE, obj), obj, SCM_ARG1, 
> > s_##TYPE##_get_##C_NAME);\
> >   o = (TYPE *) SCM_SMOB_DATA(obj);                                      \
> >   return GETTER;                                                        \
> > }\
> > )SCM_SNARF_INIT (\
> >   scm_c_define_gsubr(s_##TYPE##_get_##C_NAME, 1, 0, 0, 
> > TYPE##_get_##C_NAME);\
> > )
> 
> Can't you do the following?
> 
>   #define TYPE_GET(TYPE, GETTER, C_NAME, S_NAME)                           \
>   SCM_PROC (s_##TYPE##_get_##C_NAME, S_NAME, 1, 0, 0, TYPE##_get_##C_NAME) \
>   static SCM                                                               \
>   TYPE##_get_##C_NAME (SCM obj)                                            \
>   {                                                                        \
>     TYPE *o;                                                               \
>     SCM_ASSERT (SCM_SMOB_PREDICATE(tc_##TYPE, obj), obj, SCM_ARG1,         \
>                 s_##TYPE##_get_##C_NAME);                                  \
>     o = (TYPE *) SCM_SMOB_DATA(obj);                                       \
>    return GETTER;                                                          \
>   }
> 

No.  The function bodies end up in the .x file.

-Dale

-- 
Dale P. Smith
Treasurer, Cleveland Linux Users Group http://cleveland.lug.net
Senior Systems Consultant, Altus Technologies Corporation
address@hidden
440-746-9000 x339



reply via email to

[Prev in Thread] Current Thread [Next in Thread]