VALUE fuzzy_snowball_languages(VALUE self) { VALUE languages = rb_ary_new(); const char **list = sb_stemmer_list(); while (*list) { // ignore 'porter' - it's only for backwards compatibility. if (strcmp(*list, "porter")) rb_ary_push(languages, rb_str_new2(*list)); list++; } return languages; }
static foreign_t snowball_algorithms(term_t list) { term_t tail = PL_copy_term_ref(list); term_t head = PL_new_term_ref(); const char **algos = sb_stemmer_list(); int i; for(i=0; algos[i]; i++) { if ( !PL_unify_list(tail, head, tail) || !PL_unify_atom_chars(head, algos[i]) ) return FALSE; } return PL_unify_nil(tail); }
static PyObject *__pyx_f_7Stemmer_algorithms(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_aliases = 0; char **__pyx_v_algs; int __pyx_v_i; PyObject *__pyx_v_py_algs; PyObject *__pyx_r; PyObject *__pyx_1 = 0; int __pyx_2; PyObject *__pyx_3 = 0; PyObject *__pyx_4 = 0; static char *__pyx_argnames[] = {"aliases",0}; __pyx_v_aliases = __pyx_d1; if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "|O", __pyx_argnames, &__pyx_v_aliases)) return 0; Py_INCREF(__pyx_v_aliases); __pyx_v_py_algs = Py_None; Py_INCREF(Py_None); /* "/home/richard/private/Working/snowball/pystemmer/src/Stemmer.pyx":62 */ __pyx_1 = PyList_New(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 62; goto __pyx_L1;} Py_DECREF(__pyx_v_py_algs); __pyx_v_py_algs = __pyx_1; __pyx_1 = 0; /* "/home/richard/private/Working/snowball/pystemmer/src/Stemmer.pyx":63 */ __pyx_v_algs = sb_stemmer_list(); /* "/home/richard/private/Working/snowball/pystemmer/src/Stemmer.pyx":64 */ __pyx_v_i = 0; /* "/home/richard/private/Working/snowball/pystemmer/src/Stemmer.pyx":65 */ while (1) { __pyx_2 = ((__pyx_v_algs[__pyx_v_i]) != NULL); if (!__pyx_2) break; /* "/home/richard/private/Working/snowball/pystemmer/src/Stemmer.pyx":66 */ __pyx_1 = PyObject_GetAttr(__pyx_v_py_algs, __pyx_n_append); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; goto __pyx_L1;} __pyx_3 = PyString_FromString((__pyx_v_algs[__pyx_v_i])); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; goto __pyx_L1;} __pyx_4 = PyTuple_New(1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; goto __pyx_L1;} PyTuple_SET_ITEM(__pyx_4, 0, __pyx_3); __pyx_3 = 0; __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; goto __pyx_L1;} Py_DECREF(__pyx_1); __pyx_1 = 0; Py_DECREF(__pyx_4); __pyx_4 = 0; Py_DECREF(__pyx_3); __pyx_3 = 0; /* "/home/richard/private/Working/snowball/pystemmer/src/Stemmer.pyx":67 */ __pyx_v_i = (__pyx_v_i + 1); } /* "/home/richard/private/Working/snowball/pystemmer/src/Stemmer.pyx":68 */ Py_INCREF(__pyx_v_py_algs); __pyx_r = __pyx_v_py_algs; goto __pyx_L0; __pyx_r = Py_None; Py_INCREF(Py_None); goto __pyx_L0; __pyx_L1:; Py_XDECREF(__pyx_1); Py_XDECREF(__pyx_3); Py_XDECREF(__pyx_4); __Pyx_AddTraceback("Stemmer.algorithms"); __pyx_r = 0; __pyx_L0:; Py_DECREF(__pyx_v_py_algs); Py_DECREF(__pyx_v_aliases); return __pyx_r; }