PostgreSQL Source Code git master
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 1464 of file stem_UTF_8_french.c.

1464 {
1465 SN_delete_env(z);
1466}
void SN_delete_env(struct SN_env *z)
Definition: api.c:18

References SN_delete_env().

◆ french_UTF_8_create_env()

struct SN_env * french_UTF_8_create_env ( void  )

Definition at line 1454 of file stem_UTF_8_french.c.

1454 {
1455 struct SN_env * z = SN_new_env(sizeof(SN_local));
1456 if (z) {
1457 ((SN_local *)z)->i_p2 = 0;
1458 ((SN_local *)z)->i_p1 = 0;
1459 ((SN_local *)z)->i_pV = 0;
1460 }
1461 return z;
1462}
struct SN_env * SN_new_env(int alloc_size)
Definition: api.c:5
Definition: api.h:15

References SN_new_env().

◆ french_UTF_8_stem()

int french_UTF_8_stem ( struct SN_env z)

Definition at line 1335 of file stem_UTF_8_french.c.

1335 {
1336 {
1337 int v_1 = z->c;
1338 {
1339 int ret = r_elisions(z);
1340 if (ret < 0) return ret;
1341 }
1342 z->c = v_1;
1343 }
1344 {
1345 int v_2 = z->c;
1346 {
1347 int ret = r_prelude(z);
1348 if (ret < 0) return ret;
1349 }
1350 z->c = v_2;
1351 }
1352 {
1353 int ret = r_mark_regions(z);
1354 if (ret < 0) return ret;
1355 }
1356 z->lb = z->c; z->c = z->l;
1357 {
1358 int v_3 = z->l - z->c;
1359 do {
1360 int v_4 = z->l - z->c;
1361 {
1362 int v_5 = z->l - z->c;
1363 do {
1364 int v_6 = z->l - z->c;
1365 {
1366 int ret = r_standard_suffix(z);
1367 if (ret == 0) goto lab2;
1368 if (ret < 0) return ret;
1369 }
1370 break;
1371 lab2:
1372 z->c = z->l - v_6;
1373 {
1374 int ret = r_i_verb_suffix(z);
1375 if (ret == 0) goto lab3;
1376 if (ret < 0) return ret;
1377 }
1378 break;
1379 lab3:
1380 z->c = z->l - v_6;
1381 {
1382 int ret = r_verb_suffix(z);
1383 if (ret == 0) goto lab1;
1384 if (ret < 0) return ret;
1385 }
1386 } while (0);
1387 z->c = z->l - v_5;
1388 {
1389 int v_7 = z->l - z->c;
1390 z->ket = z->c;
1391 do {
1392 int v_8 = z->l - z->c;
1393 if (z->c <= z->lb || z->p[z->c - 1] != 'Y') goto lab5;
1394 z->c--;
1395 z->bra = z->c;
1396 {
1397 int ret = slice_from_s(z, 1, s_39);
1398 if (ret < 0) return ret;
1399 }
1400 break;
1401 lab5:
1402 z->c = z->l - v_8;
1403 if (!(eq_s_b(z, 2, s_40))) { z->c = z->l - v_7; goto lab4; }
1404 z->bra = z->c;
1405 {
1406 int ret = slice_from_s(z, 1, s_41);
1407 if (ret < 0) return ret;
1408 }
1409 } while (0);
1410 lab4:
1411 ;
1412 }
1413 }
1414 break;
1415 lab1:
1416 z->c = z->l - v_4;
1417 {
1418 int ret = r_residual_suffix(z);
1419 if (ret == 0) goto lab0;
1420 if (ret < 0) return ret;
1421 }
1422 } while (0);
1423 lab0:
1424 z->c = z->l - v_3;
1425 }
1426 {
1427 int v_9 = z->l - z->c;
1428 {
1429 int ret = r_un_double(z);
1430 if (ret < 0) return ret;
1431 }
1432 z->c = z->l - v_9;
1433 }
1434 {
1435 int v_10 = z->l - z->c;
1436 {
1437 int ret = r_un_accent(z);
1438 if (ret < 0) return ret;
1439 }
1440 z->c = z->l - v_10;
1441 }
1442 z->c = z->lb;
1443 {
1444 int v_11 = z->c;
1445 {
1446 int ret = r_postlude(z);
1447 if (ret < 0) return ret;
1448 }
1449 z->c = v_11;
1450 }
1451 return 1;
1452}
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 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_41[]
static const symbol s_40[]
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
int eq_s_b(struct SN_env *z, int s_size, const symbol *s)
Definition: utilities.c:236

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_39, s_40, s_41, and slice_from_s().