Header And Logo

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

Functions

stem_UTF_8_finnish.h File Reference

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

struct SN_envfinnish_UTF_8_create_env (void)
void finnish_UTF_8_close_env (struct SN_env *z)
int finnish_UTF_8_stem (struct SN_env *z)

Function Documentation

void finnish_UTF_8_close_env ( struct SN_env z  ) 

Definition at line 767 of file stem_UTF_8_finnish.c.

References SN_close_env().

{ SN_close_env(z, 1); }

struct SN_env* finnish_UTF_8_create_env ( void   )  [read]

Definition at line 765 of file stem_UTF_8_finnish.c.

References SN_create_env().

{ return SN_create_env(1, 2, 1); }

int finnish_UTF_8_stem ( struct SN_env z  ) 

Definition at line 686 of file stem_UTF_8_finnish.c.

References SN_env::B, SN_env::c, SN_env::l, SN_env::lb, r_case_ending(), r_i_plural(), r_mark_regions(), r_other_endings(), r_particle_etc(), r_possessive(), r_t_plural(), and r_tidy().

                                                 {
    {   int c1 = z->c; /* do, line 185 */
        {   int ret = r_mark_regions(z);
            if (ret == 0) goto lab0; /* call mark_regions, line 185 */
            if (ret < 0) return ret;
        }
    lab0:
        z->c = c1;
    }
    z->B[0] = 0; /* unset ending_removed, line 186 */
    z->lb = z->c; z->c = z->l; /* backwards, line 187 */

    {   int m2 = z->l - z->c; (void)m2; /* do, line 188 */
        {   int ret = r_particle_etc(z);
            if (ret == 0) goto lab1; /* call particle_etc, line 188 */
            if (ret < 0) return ret;
        }
    lab1:
        z->c = z->l - m2;
    }
    {   int m3 = z->l - z->c; (void)m3; /* do, line 189 */
        {   int ret = r_possessive(z);
            if (ret == 0) goto lab2; /* call possessive, line 189 */
            if (ret < 0) return ret;
        }
    lab2:
        z->c = z->l - m3;
    }
    {   int m4 = z->l - z->c; (void)m4; /* do, line 190 */
        {   int ret = r_case_ending(z);
            if (ret == 0) goto lab3; /* call case_ending, line 190 */
            if (ret < 0) return ret;
        }
    lab3:
        z->c = z->l - m4;
    }
    {   int m5 = z->l - z->c; (void)m5; /* do, line 191 */
        {   int ret = r_other_endings(z);
            if (ret == 0) goto lab4; /* call other_endings, line 191 */
            if (ret < 0) return ret;
        }
    lab4:
        z->c = z->l - m5;
    }
    {   int m6 = z->l - z->c; (void)m6; /* or, line 192 */
        if (!(z->B[0])) goto lab6; /* Boolean test ending_removed, line 192 */
        {   int m7 = z->l - z->c; (void)m7; /* do, line 192 */
            {   int ret = r_i_plural(z);
                if (ret == 0) goto lab7; /* call i_plural, line 192 */
                if (ret < 0) return ret;
            }
        lab7:
            z->c = z->l - m7;
        }
        goto lab5;
    lab6:
        z->c = z->l - m6;
        {   int m8 = z->l - z->c; (void)m8; /* do, line 192 */
            {   int ret = r_t_plural(z);
                if (ret == 0) goto lab8; /* call t_plural, line 192 */
                if (ret < 0) return ret;
            }
        lab8:
            z->c = z->l - m8;
        }
    }
lab5:
    {   int m9 = z->l - z->c; (void)m9; /* do, line 193 */
        {   int ret = r_tidy(z);
            if (ret == 0) goto lab9; /* call tidy, line 193 */
            if (ret < 0) return ret;
        }
    lab9:
        z->c = z->l - m9;
    }
    z->c = z->lb;
    return 1;
}