Lingua-ZH-TaBE

 view release on metacpan or  search on metacpan

TaBE.xs  view on Meta::CPAN

ZuYinIndex
tabeZozyKeyToZuYinIndex(key)
        int     key

int
tabeZhiIsBig5Code(zhi)
        Zhi     zhi

ZhiCode
tabeZhiToZhiCode(zhi)
        Zhi     zhi

Zhi
tabeZhiCodeToZhi(code)
        ZhiCode code

int
tabeZhiCodeToPackedBig5Code(code)
        ZhiCode code

unsigned long int
tabeZhiCodeLookupRefCount(code)
        ZhiCode code

MODULE = Lingua::ZH::TaBE   PACKAGE = Lingua::ZH::TaBE::Chu

Chu
new(package, chu, num_chunk=-1)
        const char *        package
        ZhiStr              chu
        int                 num_chunk
    CODE:
        New(1, RETVAL, 1, struct ChuInfo);
        RETVAL->chu = chu;
        RETVAL->num_chunk = num_chunk;
        RETVAL->chunk = NULL;
    OUTPUT:
        RETVAL

ZhiStr
chu(chu)
        Chu     chu
    CODE:
        RETVAL = chu->chu;
    OUTPUT:
        RETVAL

int
num_chunk(chu)
        Chu     chu
    CODE:
        RETVAL = chu->num_chunk;
    OUTPUT:
        RETVAL

void
chunk(chu, i=0, tmp=NULL)
        Chu     chu
        unsigned long int   i
        SV*     tmp
    PPCODE:
        if (chu->num_chunk <= 0) XSRETURN_EMPTY;
        EXTEND(SP, chu->num_chunk);
        for (; i < chu->num_chunk; i++) {
            tmp = newSV(0);
            sv_setref_pv(tmp, "Lingua::ZH::TaBE::Chunk", &(chu->chunk[i]));
            PUSHs(tmp);
        }

int
ToChunkInfo(chu)
        Chu     chu
    CODE:
        RETVAL = tabeChuInfoToChunkInfo(chu);
    OUTPUT:
        RETVAL

MODULE = Lingua::ZH::TaBE   PACKAGE = Lingua::ZH::TaBE::Chunk

Chunk
new(package, chunk, num_tsi=-1)
        const char *        package
        ZhiStr              chunk
        int                 num_tsi
    CODE:
        New(0, RETVAL, 1, struct ChunkInfo);
        RETVAL->chunk = chunk;
        RETVAL->num_tsi = num_tsi;
        RETVAL->tsi = NULL;
    OUTPUT:
        RETVAL

ZhiStr
chunk(chunk)
        Chunk   chunk
    CODE:
        RETVAL = chunk->chunk;
    OUTPUT:
        RETVAL

int
num_tsi(chunk)
        Chunk   chunk
    CODE:
        RETVAL = chunk->num_tsi;
    OUTPUT:
        RETVAL

void
tsi(chunk, i=0, tmp=NULL)
        Chunk   chunk
        unsigned long int   i
        SV*     tmp
    PPCODE:
        if (chunk->num_tsi <= 0) XSRETURN_EMPTY;
        EXTEND(SP, chunk->num_tsi);
        for (; i < chunk->num_tsi; i++) {
            tmp = newSV(0);
            sv_setref_pv(tmp, "Lingua::ZH::TaBE::Tsi", &(chunk->tsi[i]));
            PUSHs(tmp);
        }

int
SegmentationSimplex(chunk, tsidb=TSIDB)
        Chunk   chunk
        TsiDB   tsidb
    CODE:
        RETVAL = tabeChunkSegmentationSimplex(tsidb, chunk);
    OUTPUT:
        RETVAL

int
SegmentationComplex(chunk, tsidb=TSIDB)
        Chunk   chunk
        TsiDB   tsidb
    CODE:
        RETVAL = tabeChunkSegmentationComplex(tsidb, chunk);
    OUTPUT:
        RETVAL

int
SegmentationBackward(chunk, tsidb=TSIDB)
        Chunk   chunk
        TsiDB   tsidb
    CODE:
        RETVAL = tabeChunkSegmentationBackward(tsidb, chunk);
    OUTPUT:
        RETVAL

MODULE = Lingua::ZH::TaBE   PACKAGE = Lingua::ZH::TaBE::Tsi

Tsi
new(package, tsi, refcount=0, yinnum=0)
        const char *        package
        ZhiStr              tsi
        unsigned long int   refcount
        unsigned long int   yinnum
    CODE:
        New(0, RETVAL, 1, struct TsiInfo);
        RETVAL->tsi = tsi;
        RETVAL->refcount = refcount;
        RETVAL->yinnum = yinnum;
        RETVAL->yindata = NULL;
    OUTPUT:
        RETVAL

ZhiStr
tsi(tsi)
        Tsi     tsi
    CODE:
        RETVAL = tsi->tsi;
    OUTPUT:
        RETVAL

unsigned long int
refcount(tsi)
        Tsi     tsi
    CODE:
        RETVAL = tsi->refcount;
    OUTPUT:
        RETVAL

unsigned long int
yinnum(tsi)
        Tsi     tsi
    CODE:
        RETVAL = tsi->yinnum;
    OUTPUT:
        RETVAL

void
yindata(tsi, i=0, tmp=NULL)
        Tsi                 tsi
        unsigned long int   i
        SV*     tmp
    PPCODE:
        if (tsi->yinnum <= 0) XSRETURN_EMPTY;
        EXTEND(SP, tsi->yinnum);
        for (; i < tsi->yinnum; i++) {
            tmp = newSV(0);
            sv_setref_uv(tmp, "Lingua::ZH::TaBE::Yin", tsi->yindata[i]);
            PUSHs(tmp);
        }

int
LookupPossibleTsiYin(tsi, tsidb=TSIDB)
        Tsi     tsi
        TsiDB   tsidb
    CODE:
        RETVAL = tabeTsiInfoLookupPossibleTsiYin(tsidb, tsi);
    OUTPUT:
        RETVAL

int
LookupZhiYin(z, tsidb=TSIDB)
        Tsi     z
        TsiDB   tsidb
    CODE:
        RETVAL = tabeTsiInfoLookupZhiYin(tsidb, z);
    OUTPUT:
        RETVAL

MODULE = Lingua::ZH::TaBE   PACKAGE = Lingua::ZH::TaBE::TsiYin

TsiYin
new(package, yin, yinlen=0, tsinum=0, tsidata=NULL)
        const char *        package
        YinList             yin
        unsigned long int   yinlen
        unsigned long int   tsinum
        ZhiStr              tsidata
    CODE:
        New(0, RETVAL, 1, struct TsiYinInfo);
        RETVAL->yin = yin;
        RETVAL->yinlen = strlen((char *)yin);
        RETVAL->tsinum = tsinum;
        RETVAL->tsidata = tsidata;
    OUTPUT:
        RETVAL

unsigned long int
yinlen(tsiyin)
        TsiYin  tsiyin
    CODE:
        RETVAL = tsiyin->yinlen;
    OUTPUT:
        RETVAL

SV *
yin(tsiyin)
        TsiYin  tsiyin
    CODE:
        RETVAL = newSVpvn((char *)tsiyin->yin, tsiyin->yinlen);
    OUTPUT:
        RETVAL

unsigned long int
tsinum(tsiyin)
        TsiYin  tsiyin
    CODE:
        RETVAL = tsiyin->tsinum;
    OUTPUT:
        RETVAL

void
tsidata(tsiyin, i=0, tmp=NULL, tsi=NULL)
        TsiYin              tsiyin
        unsigned long int   i
        Tsi                 tsi
        SV *                tmp
    PPCODE:
        if (tsiyin->tsinum <= 0) XSRETURN_EMPTY;
        EXTEND(SP, tsiyin->tsinum);
        for (; i < tsiyin->tsinum; i++) {
            New(0, tsi, 1, struct TsiInfo);
            strncpy(
                tsi->tsi, 
                (char *)tsiyin->tsidata+((i * tsiyin->yinlen)) * 2,
                tsiyin->yinlen * 2 + 1
            );
            tsi->refcount = -1;
            tsi->yinnum = -1;
            tsi->yindata = NULL;
            sv_setref_pv(tmp, "Lingua::ZH::TaBE::Tsi", &(tsi));
            PUSHs(tmp);
        }

MODULE = Lingua::ZH::TaBE   PACKAGE = Lingua::ZH::TaBE::TsiDB

TsiDB
new(package, type, db_name, flags)
        const char *    package
        int     type
        const char *    db_name
        int     flags
    CODE:
        RETVAL = TSIDB = tabeTsiDBOpen(type, db_name, flags);
    OUTPUT:
        RETVAL

int
type(tsidb)
        TsiDB   tsidb
    CODE:
        RETVAL = tsidb->type;
    OUTPUT:
        RETVAL

int
flags(tsidb)
        TsiDB   tsidb
    CODE:
        RETVAL = tsidb->flags;
    OUTPUT:
        RETVAL

char *
db_name(tsidb)
        TsiDB   tsidb
    CODE:
        RETVAL = tsidb->db_name;
    OUTPUT:
        RETVAL

void
Close(tsidb)
        TsiDB   tsidb
    CODE:
        tsidb->Close(tsidb);

int



( run in 0.361 second using v1.01-cache-2.11-cpan-e93a5daba3e )