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 1446 of file stem_ISO_8859_1_french.c.

1446 {
1447 SN_delete_env(z);
1448}
void SN_delete_env(struct SN_env *z)
Definition: api.c:18

References SN_delete_env().

◆ french_ISO_8859_1_create_env()

struct SN_env * french_ISO_8859_1_create_env ( void  )

Definition at line 1436 of file stem_ISO_8859_1_french.c.

1436 {
1437 struct SN_env * z = SN_new_env(sizeof(SN_local));
1438 if (z) {
1439 ((SN_local *)z)->i_p2 = 0;
1440 ((SN_local *)z)->i_p1 = 0;
1441 ((SN_local *)z)->i_pV = 0;
1442 }
1443 return z;
1444}
struct SN_env * SN_new_env(int alloc_size)
Definition: api.c:5
Definition: api.h:15

References SN_new_env().

◆ french_ISO_8859_1_stem()

int french_ISO_8859_1_stem ( struct SN_env z)

Definition at line 1316 of file stem_ISO_8859_1_french.c.

1316 {
1317 {
1318 int v_1 = z->c;
1319 {
1320 int ret = r_elisions(z);
1321 if (ret < 0) return ret;
1322 }
1323 z->c = v_1;
1324 }
1325 {
1326 int v_2 = z->c;
1327 {
1328 int ret = r_prelude(z);
1329 if (ret < 0) return ret;
1330 }
1331 z->c = v_2;
1332 }
1333 {
1334 int ret = r_mark_regions(z);
1335 if (ret < 0) return ret;
1336 }
1337 z->lb = z->c; z->c = z->l;
1338 {
1339 int v_3 = z->l - z->c;
1340 do {
1341 int v_4 = z->l - z->c;
1342 {
1343 int v_5 = z->l - z->c;
1344 do {
1345 int v_6 = z->l - z->c;
1346 {
1347 int ret = r_standard_suffix(z);
1348 if (ret == 0) goto lab2;
1349 if (ret < 0) return ret;
1350 }
1351 break;
1352 lab2:
1353 z->c = z->l - v_6;
1354 {
1355 int ret = r_i_verb_suffix(z);
1356 if (ret == 0) goto lab3;
1357 if (ret < 0) return ret;
1358 }
1359 break;
1360 lab3:
1361 z->c = z->l - v_6;
1362 {
1363 int ret = r_verb_suffix(z);
1364 if (ret == 0) goto lab1;
1365 if (ret < 0) return ret;
1366 }
1367 } while (0);
1368 z->c = z->l - v_5;
1369 {
1370 int v_7 = z->l - z->c;
1371 z->ket = z->c;
1372 do {
1373 int v_8 = z->l - z->c;
1374 if (z->c <= z->lb || z->p[z->c - 1] != 'Y') goto lab5;
1375 z->c--;
1376 z->bra = z->c;
1377 {
1378 int ret = slice_from_s(z, 1, s_35);
1379 if (ret < 0) return ret;
1380 }
1381 break;
1382 lab5:
1383 z->c = z->l - v_8;
1384 if (z->c <= z->lb || z->p[z->c - 1] != 0xE7) { z->c = z->l - v_7; goto lab4; }
1385 z->c--;
1386 z->bra = z->c;
1387 {
1388 int ret = slice_from_s(z, 1, s_36);
1389 if (ret < 0) return ret;
1390 }
1391 } while (0);
1392 lab4:
1393 ;
1394 }
1395 }
1396 break;
1397 lab1:
1398 z->c = z->l - v_4;
1399 {
1400 int ret = r_residual_suffix(z);
1401 if (ret == 0) goto lab0;
1402 if (ret < 0) return ret;
1403 }
1404 } while (0);
1405 lab0:
1406 z->c = z->l - v_3;
1407 }
1408 {
1409 int v_9 = z->l - z->c;
1410 {
1411 int ret = r_un_double(z);
1412 if (ret < 0) return ret;
1413 }
1414 z->c = z->l - v_9;
1415 }
1416 {
1417 int v_10 = z->l - z->c;
1418 {
1419 int ret = r_un_accent(z);
1420 if (ret < 0) return ret;
1421 }
1422 z->c = z->l - v_10;
1423 }
1424 z->c = z->lb;
1425 {
1426 int v_11 = z->c;
1427 {
1428 int ret = r_postlude(z);
1429 if (ret < 0) return ret;
1430 }
1431 z->c = v_11;
1432 }
1433 return 1;
1434}
static int r_un_accent(struct SN_env *z)
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 const symbol s_35[]
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_36[]
static int r_residual_suffix(struct SN_env *z)
int lb
Definition: api.h:17
symbol * p
Definition: api.h:16
int ket
Definition: api.h:17
int c
Definition: api.h:17
int bra
Definition: api.h:17
int l
Definition: api.h:17
SNOWBALL_ERR slice_from_s(struct SN_env *z, int s_size, const symbol *s)
Definition: utilities.c:432

References SN_env::bra, SN_env::c, 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_35, s_36, and slice_from_s().