PostgreSQL Source Code  git master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
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

void french_UTF_8_close_env ( struct SN_env z)

Definition at line 1255 of file stem_UTF_8_french.c.

References SN_close_env().

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

Definition at line 1253 of file stem_UTF_8_french.c.

References SN_create_env().

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

Definition at line 1147 of file stem_UTF_8_french.c.

References SN_env::bra, SN_env::c, eq_s_b(), SN_env::ket, SN_env::l, SN_env::lb, 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_41, s_42, s_43, s_44, and slice_from_s().

1147  {
1148  { int c1 = z->c; /* do, line 223 */
1149  { int ret = r_prelude(z);
1150  if (ret == 0) goto lab0; /* call prelude, line 223 */
1151  if (ret < 0) return ret;
1152  }
1153  lab0:
1154  z->c = c1;
1155  }
1156  { int c2 = z->c; /* do, line 224 */
1157  { int ret = r_mark_regions(z);
1158  if (ret == 0) goto lab1; /* call mark_regions, line 224 */
1159  if (ret < 0) return ret;
1160  }
1161  lab1:
1162  z->c = c2;
1163  }
1164  z->lb = z->c; z->c = z->l; /* backwards, line 225 */
1165 
1166  { int m3 = z->l - z->c; (void)m3; /* do, line 227 */
1167  { int m4 = z->l - z->c; (void)m4; /* or, line 237 */
1168  { int m5 = z->l - z->c; (void)m5; /* and, line 233 */
1169  { int m6 = z->l - z->c; (void)m6; /* or, line 229 */
1170  { int ret = r_standard_suffix(z);
1171  if (ret == 0) goto lab6; /* call standard_suffix, line 229 */
1172  if (ret < 0) return ret;
1173  }
1174  goto lab5;
1175  lab6:
1176  z->c = z->l - m6;
1177  { int ret = r_i_verb_suffix(z);
1178  if (ret == 0) goto lab7; /* call i_verb_suffix, line 230 */
1179  if (ret < 0) return ret;
1180  }
1181  goto lab5;
1182  lab7:
1183  z->c = z->l - m6;
1184  { int ret = r_verb_suffix(z);
1185  if (ret == 0) goto lab4; /* call verb_suffix, line 231 */
1186  if (ret < 0) return ret;
1187  }
1188  }
1189  lab5:
1190  z->c = z->l - m5;
1191  { int m_keep = z->l - z->c;/* (void) m_keep;*/ /* try, line 234 */
1192  z->ket = z->c; /* [, line 234 */
1193  { int m7 = z->l - z->c; (void)m7; /* or, line 234 */
1194  if (!(eq_s_b(z, 1, s_41))) goto lab10;
1195  z->bra = z->c; /* ], line 234 */
1196  { int ret = slice_from_s(z, 1, s_42); /* <-, line 234 */
1197  if (ret < 0) return ret;
1198  }
1199  goto lab9;
1200  lab10:
1201  z->c = z->l - m7;
1202  if (!(eq_s_b(z, 2, s_43))) { z->c = z->l - m_keep; goto lab8; }
1203  z->bra = z->c; /* ], line 235 */
1204  { int ret = slice_from_s(z, 1, s_44); /* <-, line 235 */
1205  if (ret < 0) return ret;
1206  }
1207  }
1208  lab9:
1209  lab8:
1210  ;
1211  }
1212  }
1213  goto lab3;
1214  lab4:
1215  z->c = z->l - m4;
1216  { int ret = r_residual_suffix(z);
1217  if (ret == 0) goto lab2; /* call residual_suffix, line 238 */
1218  if (ret < 0) return ret;
1219  }
1220  }
1221  lab3:
1222  lab2:
1223  z->c = z->l - m3;
1224  }
1225  { int m8 = z->l - z->c; (void)m8; /* do, line 243 */
1226  { int ret = r_un_double(z);
1227  if (ret == 0) goto lab11; /* call un_double, line 243 */
1228  if (ret < 0) return ret;
1229  }
1230  lab11:
1231  z->c = z->l - m8;
1232  }
1233  { int m9 = z->l - z->c; (void)m9; /* do, line 244 */
1234  { int ret = r_un_accent(z);
1235  if (ret == 0) goto lab12; /* call un_accent, line 244 */
1236  if (ret < 0) return ret;
1237  }
1238  lab12:
1239  z->c = z->l - m9;
1240  }
1241  z->c = z->lb;
1242  { int c10 = z->c; /* do, line 246 */
1243  { int ret = r_postlude(z);
1244  if (ret == 0) goto lab13; /* call postlude, line 246 */
1245  if (ret < 0) return ret;
1246  }
1247  lab13:
1248  z->c = c10;
1249  }
1250  return 1;
1251 }
static const symbol s_44[]
static int r_postlude(struct SN_env *z)
static int r_un_accent(struct SN_env *z)
static int r_un_double(struct SN_env *z)
int eq_s_b(struct SN_env *z, int s_size, const symbol *s)
Definition: utilities.c:194
int ket
Definition: api.h:16
int bra
Definition: api.h:16
int c
Definition: api.h:16
int slice_from_s(struct SN_env *z, int s_size, const symbol *s)
Definition: utilities.c:392
static int r_prelude(struct SN_env *z)
static const symbol s_43[]
static const symbol s_42[]
int lb
Definition: api.h:16
static int r_i_verb_suffix(struct SN_env *z)
static int r_verb_suffix(struct SN_env *z)
static int r_residual_suffix(struct SN_env *z)
static int r_standard_suffix(struct SN_env *z)
int l
Definition: api.h:16
static int r_mark_regions(struct SN_env *z)
static const symbol s_41[]