PostgreSQL Source Code  git master
stem_ISO_8859_1_french.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_envfrench_ISO_8859_1_create_env (void)
 
void french_ISO_8859_1_close_env (struct SN_env *z)
 
int french_ISO_8859_1_stem (struct SN_env *z)
 

Function Documentation

◆ french_ISO_8859_1_close_env()

void french_ISO_8859_1_close_env ( struct SN_env z)

Definition at line 1251 of file stem_ISO_8859_1_french.c.

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

References SN_close_env().

◆ french_ISO_8859_1_create_env()

struct SN_env* french_ISO_8859_1_create_env ( void  )

Definition at line 1249 of file stem_ISO_8859_1_french.c.

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

References SN_create_env().

◆ french_ISO_8859_1_stem()

int french_ISO_8859_1_stem ( struct SN_env z)

Definition at line 1153 of file stem_ISO_8859_1_french.c.

1153  {
1154  { int c1 = z->c;
1155  { int ret = r_prelude(z);
1156  if (ret < 0) return ret;
1157  }
1158  z->c = c1;
1159  }
1160 
1161  { int ret = r_mark_regions(z);
1162  if (ret < 0) return ret;
1163  }
1164  z->lb = z->c; z->c = z->l;
1165 
1166  { int m2 = z->l - z->c; (void)m2;
1167  { int m3 = z->l - z->c; (void)m3;
1168  { int m4 = z->l - z->c; (void)m4;
1169  { int m5 = z->l - z->c; (void)m5;
1170  { int ret = r_standard_suffix(z);
1171  if (ret == 0) goto lab4;
1172  if (ret < 0) return ret;
1173  }
1174  goto lab3;
1175  lab4:
1176  z->c = z->l - m5;
1177  { int ret = r_i_verb_suffix(z);
1178  if (ret == 0) goto lab5;
1179  if (ret < 0) return ret;
1180  }
1181  goto lab3;
1182  lab5:
1183  z->c = z->l - m5;
1184  { int ret = r_verb_suffix(z);
1185  if (ret == 0) goto lab2;
1186  if (ret < 0) return ret;
1187  }
1188  }
1189  lab3:
1190  z->c = z->l - m4;
1191  { int m6 = z->l - z->c; (void)m6;
1192  z->ket = z->c;
1193  { int m7 = z->l - z->c; (void)m7;
1194  if (z->c <= z->lb || z->p[z->c - 1] != 'Y') goto lab8;
1195  z->c--;
1196  z->bra = z->c;
1197  { int ret = slice_from_s(z, 1, s_33);
1198  if (ret < 0) return ret;
1199  }
1200  goto lab7;
1201  lab8:
1202  z->c = z->l - m7;
1203  if (z->c <= z->lb || z->p[z->c - 1] != 0xE7) { z->c = z->l - m6; goto lab6; }
1204  z->c--;
1205  z->bra = z->c;
1206  { int ret = slice_from_s(z, 1, s_34);
1207  if (ret < 0) return ret;
1208  }
1209  }
1210  lab7:
1211  lab6:
1212  ;
1213  }
1214  }
1215  goto lab1;
1216  lab2:
1217  z->c = z->l - m3;
1218  { int ret = r_residual_suffix(z);
1219  if (ret == 0) goto lab0;
1220  if (ret < 0) return ret;
1221  }
1222  }
1223  lab1:
1224  lab0:
1225  z->c = z->l - m2;
1226  }
1227  { int m8 = z->l - z->c; (void)m8;
1228  { int ret = r_un_double(z);
1229  if (ret < 0) return ret;
1230  }
1231  z->c = z->l - m8;
1232  }
1233  { int m9 = z->l - z->c; (void)m9;
1234  { int ret = r_un_accent(z);
1235  if (ret < 0) return ret;
1236  }
1237  z->c = z->l - m9;
1238  }
1239  z->c = z->lb;
1240  { int c10 = z->c;
1241  { int ret = r_postlude(z);
1242  if (ret < 0) return ret;
1243  }
1244  z->c = c10;
1245  }
1246  return 1;
1247 }
static int r_un_accent(struct SN_env *z)
static int r_standard_suffix(struct SN_env *z)
static int r_un_double(struct SN_env *z)
static int r_verb_suffix(struct SN_env *z)
static int r_i_verb_suffix(struct SN_env *z)
static int r_postlude(struct SN_env *z)
static int r_prelude(struct SN_env *z)
static int r_mark_regions(struct SN_env *z)
static const symbol s_33[]
static int r_residual_suffix(struct SN_env *z)
static const symbol s_34[]
int lb
Definition: api.h:16
symbol * p
Definition: api.h:15
int ket
Definition: api.h:16
int c
Definition: api.h:16
int bra
Definition: api.h:16
int l
Definition: api.h:16
int slice_from_s(struct SN_env *z, int s_size, const symbol *s)
Definition: utilities.c:422

References SN_env::bra, SN_env::c, SN_env::ket, SN_env::l, SN_env::lb, SN_env::p, r_i_verb_suffix(), r_mark_regions(), r_postlude(), r_prelude(), r_residual_suffix(), r_standard_suffix(), r_un_accent(), r_un_double(), r_verb_suffix(), s_33, s_34, and slice_from_s().