/* in C part of .xs, else in a .h */ #define SNOWBALL_FUNCS(X) \ X(list, 39) \ X(new, 38) \ X(delete, 41) \ X(stem, 39) \ X(length, 41) MODULE = Lingua::Stem::Snowball PACKAGE = Lingua::Stem::Snowball PROTOTYPES: disable BOOT: { #ifdef I_HAVE_C99 /* not a real symbol, don't use this */ #define X(symname, no, ...) \ SV *sb_stemmer_ ## symname ## _sv = newSViv(PTR2IV(sb_stemmer_ ## symname)); \ hv_store(PL_modglobal, "Lingua::Stem::Snowball::sb_stemmer_" #symname, no, sb_stemmer_ ## symname ## _sv, 0); SNOWBALL_FUNCS(X) #undef X #else #define X(symname, no, ...) \ SV *sb_stemmer_ ## symname ## _sv = newSViv(PTR2IV(sb_stemmer_ ## symname)); SNOWBALL_FUNCS(X) #undef X #define X(symname, no, ...) \ hv_store(PL_modglobal, "Lingua::Stem::Snowball::sb_stemmer_" #symname, no, sb_stemmer_ ## symname ## _sv, 0); SNOWBALL_FUNCS(X) #undef X #endif }