Header And Logo

PostgreSQL
| The world's most advanced open source database.

Data Structures | Functions

regexport.h File Reference

#include "regex/regex.h"
Include dependency graph for regexport.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  regex_arc_t

Functions

int pg_reg_getnumstates (const regex_t *regex)
int pg_reg_getinitialstate (const regex_t *regex)
int pg_reg_getfinalstate (const regex_t *regex)
int pg_reg_getnumoutarcs (const regex_t *regex, int st)
void pg_reg_getoutarcs (const regex_t *regex, int st, regex_arc_t *arcs, int arcs_len)
int pg_reg_getnumcolors (const regex_t *regex)
int pg_reg_colorisbegin (const regex_t *regex, int co)
int pg_reg_colorisend (const regex_t *regex, int co)
int pg_reg_getnumcharacters (const regex_t *regex, int co)
void pg_reg_getcharacters (const regex_t *regex, int co, pg_wchar *chars, int chars_len)

Function Documentation

int pg_reg_colorisbegin ( const regex_t regex,
int  co 
)

Definition at line 155 of file regexport.c.

References assert, cnfa::bos, NULL, regex_t::re_guts, regex_t::re_magic, and REMAGIC.

Referenced by addKey().

{
    struct cnfa *cnfa;

    assert(regex != NULL && regex->re_magic == REMAGIC);
    cnfa = &((struct guts *) regex->re_guts)->search;

    if (co == cnfa->bos[0] || co == cnfa->bos[1])
        return true;
    else
        return false;
}

int pg_reg_colorisend ( const regex_t regex,
int  co 
)

Definition at line 172 of file regexport.c.

References assert, cnfa::eos, NULL, regex_t::re_guts, regex_t::re_magic, and REMAGIC.

Referenced by addKey().

{
    struct cnfa *cnfa;

    assert(regex != NULL && regex->re_magic == REMAGIC);
    cnfa = &((struct guts *) regex->re_guts)->search;

    if (co == cnfa->eos[0] || co == cnfa->eos[1])
        return true;
    else
        return false;
}

void pg_reg_getcharacters ( const regex_t regex,
int  co,
pg_wchar chars,
int  chars_len 
)

Definition at line 221 of file regexport.c.

References assert, colormap::cd, colordesc::flags, colormap::max, NULL, PSEUDO, regex_t::re_guts, regex_t::re_magic, REMAGIC, scancolormap(), and colormap::tree.

Referenced by getColorInfo().

{
    struct colormap *cm;

    assert(regex != NULL && regex->re_magic == REMAGIC);
    cm = &((struct guts *) regex->re_guts)->cmap;

    if (co <= 0 || co > cm->max || chars_len <= 0)
        return;
    if (cm->cd[co].flags & PSEUDO)
        return;

    /* Recursively search the colormap tree */
    scancolormap(cm, co, cm->tree, 0, 0, &chars, &chars_len);
}

int pg_reg_getfinalstate ( const regex_t regex  ) 

Definition at line 68 of file regexport.c.

References assert, NULL, cnfa::post, regex_t::re_guts, regex_t::re_magic, and REMAGIC.

Referenced by addKey().

{
    struct cnfa *cnfa;

    assert(regex != NULL && regex->re_magic == REMAGIC);
    cnfa = &((struct guts *) regex->re_guts)->search;

    return cnfa->post;
}

int pg_reg_getinitialstate ( const regex_t regex  ) 

Definition at line 54 of file regexport.c.

References assert, NULL, cnfa::pre, regex_t::re_guts, regex_t::re_magic, and REMAGIC.

Referenced by transformGraph().

{
    struct cnfa *cnfa;

    assert(regex != NULL && regex->re_magic == REMAGIC);
    cnfa = &((struct guts *) regex->re_guts)->search;

    return cnfa->pre;
}

int pg_reg_getnumcharacters ( const regex_t regex,
int  co 
)

Definition at line 196 of file regexport.c.

References assert, colormap::cd, colordesc::flags, colormap::max, colordesc::nchrs, NULL, PSEUDO, regex_t::re_guts, regex_t::re_magic, and REMAGIC.

Referenced by getColorInfo().

{
    struct colormap *cm;

    assert(regex != NULL && regex->re_magic == REMAGIC);
    cm = &((struct guts *) regex->re_guts)->cmap;

    if (co <= 0 || co > cm->max)    /* we reject 0 which is WHITE */
        return -1;
    if (cm->cd[co].flags & PSEUDO)      /* also pseudocolors (BOS etc) */
        return -1;

    return cm->cd[co].nchrs;
}

int pg_reg_getnumcolors ( const regex_t regex  ) 

Definition at line 138 of file regexport.c.

References assert, colormap::max, NULL, regex_t::re_guts, regex_t::re_magic, and REMAGIC.

Referenced by getColorInfo().

{
    struct colormap *cm;

    assert(regex != NULL && regex->re_magic == REMAGIC);
    cm = &((struct guts *) regex->re_guts)->cmap;

    return cm->max + 1;
}

int pg_reg_getnumoutarcs ( const regex_t regex,
int  st 
)

Definition at line 84 of file regexport.c.

References assert, carc::co, COLORLESS, cnfa::ncolors, cnfa::nstates, NULL, regex_t::re_guts, regex_t::re_magic, REMAGIC, and cnfa::states.

Referenced by addArcs(), and addKey().

{
    struct cnfa *cnfa;
    struct carc *ca;
    int         count;

    assert(regex != NULL && regex->re_magic == REMAGIC);
    cnfa = &((struct guts *) regex->re_guts)->search;

    if (st < 0 || st >= cnfa->nstates)
        return 0;
    count = 0;
    for (ca = cnfa->states[st]; ca->co != COLORLESS; ca++)
    {
        if (ca->co < cnfa->ncolors)
            count++;
    }
    return count;
}

int pg_reg_getnumstates ( const regex_t regex  ) 

Definition at line 40 of file regexport.c.

References assert, cnfa::nstates, NULL, regex_t::re_guts, regex_t::re_magic, and REMAGIC.

{
    struct cnfa *cnfa;

    assert(regex != NULL && regex->re_magic == REMAGIC);
    cnfa = &((struct guts *) regex->re_guts)->search;

    return cnfa->nstates;
}

void pg_reg_getoutarcs ( const regex_t regex,
int  st,
regex_arc_t arcs,
int  arcs_len 
)

Definition at line 110 of file regexport.c.

References assert, regex_arc_t::co, carc::co, COLORLESS, cnfa::ncolors, cnfa::nstates, NULL, regex_t::re_guts, regex_t::re_magic, REMAGIC, cnfa::states, carc::to, and regex_arc_t::to.

Referenced by addArcs(), and addKey().

{
    struct cnfa *cnfa;
    struct carc *ca;

    assert(regex != NULL && regex->re_magic == REMAGIC);
    cnfa = &((struct guts *) regex->re_guts)->search;

    if (st < 0 || st >= cnfa->nstates || arcs_len <= 0)
        return;
    for (ca = cnfa->states[st]; ca->co != COLORLESS; ca++)
    {
        if (ca->co < cnfa->ncolors)
        {
            arcs->co = ca->co;
            arcs->to = ca->to;
            arcs++;
            if (--arcs_len == 0)
                break;
        }
    }
}