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;
}
Beispiel #2
0
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);
}
Beispiel #3
0
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;
}