guile-devel
[Top][All Lists]
Advanced

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

Re: 16 snarf macros


From: Marius Vollmer
Subject: Re: 16 snarf macros
Date: 08 Mar 2002 23:15:16 +0100
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.1

"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;                                                          \
  }



reply via email to

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