packages feed

stemmer 0.4 → 0.5

raw patch · 2 files changed

+2/−98 lines, 2 files

Files

− libstemmer_c/libstemmer/libstemmer.c
@@ -1,95 +0,0 @@--#include <stdlib.h>-#include <string.h>-#include "../include/libstemmer.h"-#include "../runtime/api.h"-#include "modules.h"--struct sb_stemmer {-    struct SN_env * (*create)(void);-    void (*close)(struct SN_env *);-    int (*stem)(struct SN_env *);--    struct SN_env * env;-};--extern const char **-sb_stemmer_list(void)-{-    return algorithm_names;-}--static stemmer_encoding_t-sb_getenc(const char * charenc)-{-    struct stemmer_encoding * encoding;-    if (charenc == NULL) return ENC_UTF_8;-    for (encoding = encodings; encoding->name != 0; encoding++) {-	if (strcmp(encoding->name, charenc) == 0) break;-    }-    if (encoding->name == NULL) return ENC_UNKNOWN;-    return encoding->enc;-}--extern struct sb_stemmer *-sb_stemmer_new(const char * algorithm, const char * charenc)-{-    stemmer_encoding_t enc;-    struct stemmer_modules * module;-    struct sb_stemmer * stemmer;--    enc = sb_getenc(charenc);-    if (enc == ENC_UNKNOWN) return NULL;--    for (module = modules; module->name != 0; module++) {-	if (strcmp(module->name, algorithm) == 0 && module->enc == enc) break;-    }-    if (module->name == NULL) return NULL;-    -    stemmer = (struct sb_stemmer *) malloc(sizeof(struct sb_stemmer));-    if (stemmer == NULL) return NULL;--    stemmer->create = module->create;-    stemmer->close = module->close;-    stemmer->stem = module->stem;--    stemmer->env = stemmer->create();-    if (stemmer->env == NULL)-    {-        sb_stemmer_delete(stemmer);-        return NULL;-    }--    return stemmer;-}--void-sb_stemmer_delete(struct sb_stemmer * stemmer)-{-    if (stemmer == 0) return;-    if (stemmer->close == 0) return;-    stemmer->close(stemmer->env);-    stemmer->close = 0;-    free(stemmer);-}--const sb_symbol *-sb_stemmer_stem(struct sb_stemmer * stemmer, const sb_symbol * word, int size)-{-    int ret;-    if (SN_set_current(stemmer->env, size, (const symbol *)(word)))-    {-        stemmer->env->l = 0;-        return NULL;-    }-    ret = stemmer->stem(stemmer->env);-    if (ret < 0) return NULL;-    stemmer->env->p[stemmer->env->l] = 0;-    return (const sb_symbol *)(stemmer->env->p);-}--int-sb_stemmer_length(struct sb_stemmer * stemmer)-{-    return stemmer->env->l;-}
stemmer.cabal view
@@ -1,5 +1,5 @@ Name:            stemmer-Version:         0.4+Version:         0.5 Synopsis:        Haskell bindings to the Snowball stemming library. Description:     Haskell bindings to the Snowball stemming library. Category:        Natural Language Processing, Text@@ -8,7 +8,7 @@ Copyright:       (c) 2008, 2009 Tupil Author:          Tupil Maintainer:      Ben Gamari <bgamari.foss@gmail.com>-Homepage:        http://blog.tupil.com/tag/stemmer+Homepage:        http://www.github.com/bgamari/stemmer Build-Type:      Simple Cabal-Version:   >= 1.6 @@ -62,7 +62,6 @@         libstemmer_c/runtime/utilities.c         libstemmer_c/runtime/api.c         libstemmer_c/libstemmer/libstemmer_utf8.c-        libstemmer_c/libstemmer/libstemmer.c         libstemmer_c/src_c/stem_UTF_8_english.c         libstemmer_c/src_c/stem_ISO_8859_1_finnish.c         libstemmer_c/src_c/stem_KOI8_R_russian.c