PostgreSQL Source Code git master
stem_UTF_8_lithuanian.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_envlithuanian_UTF_8_create_env (void)
 
void lithuanian_UTF_8_close_env (struct SN_env *z)
 
int lithuanian_UTF_8_stem (struct SN_env *z)
 

Function Documentation

◆ lithuanian_UTF_8_close_env()

void lithuanian_UTF_8_close_env ( struct SN_env z)

Definition at line 829 of file stem_UTF_8_lithuanian.c.

829{ SN_close_env(z, 0); }
void SN_close_env(struct SN_env *z, int S_size)
Definition: api.c:34

References SN_close_env().

◆ lithuanian_UTF_8_create_env()

struct SN_env * lithuanian_UTF_8_create_env ( void  )

Definition at line 827 of file stem_UTF_8_lithuanian.c.

827{ return SN_create_env(0, 1); }
struct SN_env * SN_create_env(int S_size, int I_size)
Definition: api.c:3

References SN_create_env().

◆ lithuanian_UTF_8_stem()

int lithuanian_UTF_8_stem ( struct SN_env z)

Definition at line 752 of file stem_UTF_8_lithuanian.c.

752 {
753 z->I[0] = z->l;
754 { int c1 = z->c;
755 { int c2 = z->c;
756 { int c_test3 = z->c;
757 if (z->c == z->l || z->p[z->c] != 'a') { z->c = c2; goto lab1; }
758 z->c++;
759 z->c = c_test3;
760 }
761 if (len_utf8(z->p) <= 6) { z->c = c2; goto lab1; }
762 { int ret = skip_utf8(z->p, z->c, z->l, 1);
763 if (ret < 0) { z->c = c2; goto lab1; }
764 z->c = ret;
765 }
766 lab1:
767 ;
768 }
769
770 {
771 int ret = out_grouping_U(z, g_v, 97, 371, 1);
772 if (ret < 0) goto lab0;
773 z->c += ret;
774 }
775
776 {
777 int ret = in_grouping_U(z, g_v, 97, 371, 1);
778 if (ret < 0) goto lab0;
779 z->c += ret;
780 }
781 z->I[0] = z->c;
782 lab0:
783 z->c = c1;
784 }
785 z->lb = z->c; z->c = z->l;
786
787 { int m4 = z->l - z->c; (void)m4;
788 { int ret = r_fix_conflicts(z);
789 if (ret < 0) return ret;
790 }
791 z->c = z->l - m4;
792 }
793 { int m5 = z->l - z->c; (void)m5;
794 { int ret = r_step1(z);
795 if (ret < 0) return ret;
796 }
797 z->c = z->l - m5;
798 }
799 { int m6 = z->l - z->c; (void)m6;
800 { int ret = r_fix_chdz(z);
801 if (ret < 0) return ret;
802 }
803 z->c = z->l - m6;
804 }
805 { int m7 = z->l - z->c; (void)m7;
806 { int ret = r_step2(z);
807 if (ret < 0) return ret;
808 }
809 z->c = z->l - m7;
810 }
811 { int m8 = z->l - z->c; (void)m8;
812 { int ret = r_fix_chdz(z);
813 if (ret < 0) return ret;
814 }
815 z->c = z->l - m8;
816 }
817 { int m9 = z->l - z->c; (void)m9;
818 { int ret = r_fix_gd(z);
819 if (ret < 0) return ret;
820 }
821 z->c = z->l - m9;
822 }
823 z->c = z->lb;
824 return 1;
825}
static int r_step1(struct SN_env *z)
static int r_fix_gd(struct SN_env *z)
static int r_fix_chdz(struct SN_env *z)
static int r_step2(struct SN_env *z)
static int r_fix_conflicts(struct SN_env *z)
static const unsigned char g_v[]
int lb
Definition: api.h:16
symbol * p
Definition: api.h:15
int * I
Definition: api.h:18
int c
Definition: api.h:16
int l
Definition: api.h:16
int out_grouping_U(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
Definition: utilities.c:141
int in_grouping_U(struct SN_env *z, const unsigned char *s, int min, int max, int repeat)
Definition: utilities.c:117
int skip_utf8(const symbol *p, int c, int limit, int n)
Definition: utilities.c:27
int len_utf8(const symbol *p)
Definition: utilities.c:478

References SN_env::c, g_v, SN_env::I, in_grouping_U(), SN_env::l, SN_env::lb, len_utf8(), out_grouping_U(), SN_env::p, r_fix_chdz(), r_fix_conflicts(), r_fix_gd(), r_step1(), r_step2(), and skip_utf8().