PostgreSQL Source Code git master
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
stem_UTF_8_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_UTF_8_create_env (void)
 
void french_UTF_8_close_env (struct SN_env *z)
 
int french_UTF_8_stem (struct SN_env *z)
 

Function Documentation

◆ french_UTF_8_close_env()

void french_UTF_8_close_env ( struct SN_env z)

Definition at line 1295 of file stem_UTF_8_french.c.

1295{ 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_UTF_8_create_env()

struct SN_env * french_UTF_8_create_env ( void  )

Definition at line 1293 of file stem_UTF_8_french.c.

1293{ 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_UTF_8_stem()

int french_UTF_8_stem ( struct SN_env z)

Definition at line 1192 of file stem_UTF_8_french.c.

1192 {
1193 { int c1 = z->c;
1194 { int ret = r_elisions(z);
1195 if (ret < 0) return ret;
1196 }
1197 z->c = c1;
1198 }
1199 { int c2 = z->c;
1200 { int ret = r_prelude(z);
1201 if (ret < 0) return ret;
1202 }
1203 z->c = c2;
1204 }
1205
1206 { int ret = r_mark_regions(z);
1207 if (ret < 0) return ret;
1208 }
1209 z->lb = z->c; z->c = z->l;
1210
1211 { int m3 = z->l - z->c; (void)m3;
1212 { int m4 = z->l - z->c; (void)m4;
1213 { int m5 = z->l - z->c; (void)m5;
1214 { int m6 = z->l - z->c; (void)m6;
1215 { int ret = r_standard_suffix(z);
1216 if (ret == 0) goto lab4;
1217 if (ret < 0) return ret;
1218 }
1219 goto lab3;
1220 lab4:
1221 z->c = z->l - m6;
1222 { int ret = r_i_verb_suffix(z);
1223 if (ret == 0) goto lab5;
1224 if (ret < 0) return ret;
1225 }
1226 goto lab3;
1227 lab5:
1228 z->c = z->l - m6;
1229 { int ret = r_verb_suffix(z);
1230 if (ret == 0) goto lab2;
1231 if (ret < 0) return ret;
1232 }
1233 }
1234 lab3:
1235 z->c = z->l - m5;
1236 { int m7 = z->l - z->c; (void)m7;
1237 z->ket = z->c;
1238 { int m8 = z->l - z->c; (void)m8;
1239 if (z->c <= z->lb || z->p[z->c - 1] != 'Y') goto lab8;
1240 z->c--;
1241 z->bra = z->c;
1242 { int ret = slice_from_s(z, 1, s_38);
1243 if (ret < 0) return ret;
1244 }
1245 goto lab7;
1246 lab8:
1247 z->c = z->l - m8;
1248 if (!(eq_s_b(z, 2, s_39))) { z->c = z->l - m7; goto lab6; }
1249 z->bra = z->c;
1250 { int ret = slice_from_s(z, 1, s_40);
1251 if (ret < 0) return ret;
1252 }
1253 }
1254 lab7:
1255 lab6:
1256 ;
1257 }
1258 }
1259 goto lab1;
1260 lab2:
1261 z->c = z->l - m4;
1262 { int ret = r_residual_suffix(z);
1263 if (ret == 0) goto lab0;
1264 if (ret < 0) return ret;
1265 }
1266 }
1267 lab1:
1268 lab0:
1269 z->c = z->l - m3;
1270 }
1271 { int m9 = z->l - z->c; (void)m9;
1272 { int ret = r_un_double(z);
1273 if (ret < 0) return ret;
1274 }
1275 z->c = z->l - m9;
1276 }
1277 { int m10 = z->l - z->c; (void)m10;
1278 { int ret = r_un_accent(z);
1279 if (ret < 0) return ret;
1280 }
1281 z->c = z->l - m10;
1282 }
1283 z->c = z->lb;
1284 { int c11 = z->c;
1285 { int ret = r_postlude(z);
1286 if (ret < 0) return ret;
1287 }
1288 z->c = c11;
1289 }
1290 return 1;
1291}
static int r_un_accent(struct SN_env *z)
static const symbol s_38[]
static int r_elisions(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 const symbol s_39[]
static int r_mark_regions(struct SN_env *z)
static const symbol s_40[]
static int r_residual_suffix(struct SN_env *z)
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 eq_s_b(struct SN_env *z, int s_size, const symbol *s)
Definition: utilities.c:220
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, eq_s_b(), SN_env::ket, SN_env::l, SN_env::lb, SN_env::p, r_elisions(), 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_38, s_39, s_40, and slice_from_s().