8 #define s_0_0 (s_0_1 + 2)
39 #define s_2_0 (s_2_1 + 1)
59 'o',
'u',
's',
'l',
'i',
61 'e',
'n',
't',
'l',
'i',
63 'a',
'l',
'i',
't',
'i',
65 'b',
'i',
'l',
'i',
't',
'i',
67 'i',
'v',
'i',
't',
'i',
68 #define s_3_10 (s_3_11 + 1)
70 'a',
't',
'i',
'o',
'n',
'a',
'l',
72 'a',
'l',
'i',
's',
'm',
75 'i',
'z',
'a',
't',
'i',
'o',
'n',
81 'i',
'v',
'e',
'n',
'e',
's',
's',
83 'f',
'u',
'l',
'n',
'e',
's',
's',
85 'o',
'u',
's',
'n',
'e',
's',
's',
87 'i',
'c',
'a',
't',
'e',
89 'a',
't',
'i',
'v',
'e',
91 'a',
'l',
'i',
'z',
'e',
93 'i',
'c',
'i',
't',
'i',
130 #define s_5_15 (s_5_16 + 1)
131 #define s_5_16 (s_5_17 + 1)
133 'e',
'm',
'e',
'n',
't',
134 #define s_5_18 s_5_13
235 static const unsigned char g_v[] = { 17, 65, 16, 1 };
237 static const unsigned char g_v_WXY[] = { 1, 17, 65, 208, 1 };
272 if (!(I_p1 <= c))
return 0;
277 if (!(I_p2 <= c))
return 0;
284 if (c <= lb || p[c - 1] != 115)
return 0;
285 among_var = find_among_b(
s_pool,
a_0, 4, 0, 0);
286 if (!(among_var))
return 0;
290 {
int ret = slice_from_s(2,
s_0);
291 if (ret < 0)
return ret;
295 {
int ret = slice_from_s(1,
s_1);
296 if (ret < 0)
return ret;
300 {
int ret = slice_del();
301 if (ret < 0)
return ret;
311 if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((1048976 >> (p[c - 1] & 0x1f)) & 1))
return 0;
312 among_var = find_among_b(
s_pool,
a_2, 5, 0, 0);
313 if (!(among_var))
return 0;
318 if (ret <= 0)
return ret;
320 {
int ret = slice_from_s(2,
s_2);
321 if (ret < 0)
return ret;
325 {
int m_test1 = l - c;
327 int ret = out_grouping_b_U(
g_v, 97, 121, 1);
328 if (ret < 0)
return 0;
333 {
int ret = slice_del();
334 if (ret < 0)
return ret;
336 {
int m_test2 = l - c;
337 if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((68514004 >> (p[c - 1] & 0x1f)) & 1)) among_var = 3;
else
338 among_var = find_among_b(
s_pool,
a_1, 13, 0, 0);
339 if (!(among_var))
return 0;
345 insert_s(c, c, 1,
s_3);
351 {
int ret = skip_utf8(p, c, lb, 0, -1);
352 if (ret < 0)
return 0;
356 {
int ret = slice_del();
357 if (ret < 0)
return ret;
361 if (c != I_p1)
return 0;
362 {
int m_test3 = l - c;
363 {
int ret = r_shortv();
364 if (ret <= 0)
return ret;
369 insert_s(c, c, 1,
s_4);
381 {
int m1 = l - c; (void)m1;
382 if (c <= lb || p[c - 1] !=
'y')
goto lab1;
387 if (c <= lb || p[c - 1] !=
'Y')
return 0;
393 int ret = out_grouping_b_U(
g_v, 97, 121, 1);
394 if (ret < 0)
return 0;
397 {
int ret = slice_from_s(1,
s_5);
398 if (ret < 0)
return ret;
406 if (c - 2 <= lb || p[c - 1] >> 5 != 3 || !((815616 >> (p[c - 1] & 0x1f)) & 1))
return 0;
407 among_var = find_among_b(
s_pool,
a_3, 20, 0, 0);
408 if (!(among_var))
return 0;
411 if (ret <= 0)
return ret;
415 {
int ret = slice_from_s(4,
s_6);
416 if (ret < 0)
return ret;
420 {
int ret = slice_from_s(4,
s_7);
421 if (ret < 0)
return ret;
425 {
int ret = slice_from_s(4,
s_8);
426 if (ret < 0)
return ret;
430 {
int ret = slice_from_s(4,
s_9);
431 if (ret < 0)
return ret;
435 {
int ret = slice_from_s(3,
s_10);
436 if (ret < 0)
return ret;
440 {
int ret = slice_from_s(1,
s_11);
441 if (ret < 0)
return ret;
445 {
int ret = slice_from_s(3,
s_12);
446 if (ret < 0)
return ret;
450 {
int ret = slice_from_s(3,
s_13);
451 if (ret < 0)
return ret;
455 {
int ret = slice_from_s(2,
s_14);
456 if (ret < 0)
return ret;
460 {
int ret = slice_from_s(3,
s_15);
461 if (ret < 0)
return ret;
465 {
int ret = slice_from_s(3,
s_16);
466 if (ret < 0)
return ret;
470 {
int ret = slice_from_s(3,
s_17);
471 if (ret < 0)
return ret;
475 {
int ret = slice_from_s(3,
s_18);
476 if (ret < 0)
return ret;
486 if (c - 2 <= lb || p[c - 1] >> 5 != 3 || !((528928 >> (p[c - 1] & 0x1f)) & 1))
return 0;
487 among_var = find_among_b(
s_pool,
a_4, 7, 0, 0);
488 if (!(among_var))
return 0;
491 if (ret <= 0)
return ret;
495 {
int ret = slice_from_s(2,
s_19);
496 if (ret < 0)
return ret;
500 {
int ret = slice_from_s(2,
s_20);
501 if (ret < 0)
return ret;
505 {
int ret = slice_del();
506 if (ret < 0)
return ret;
516 if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((3961384 >> (p[c - 1] & 0x1f)) & 1))
return 0;
517 among_var = find_among_b(
s_pool,
a_5, 19, 0, 0);
518 if (!(among_var))
return 0;
521 if (ret <= 0)
return ret;
525 {
int ret = slice_del();
526 if (ret < 0)
return ret;
530 {
int m1 = l - c; (void)m1;
531 if (c <= lb || p[c - 1] !=
's')
goto lab1;
536 if (c <= lb || p[c - 1] !=
't')
return 0;
540 {
int ret = slice_del();
541 if (ret < 0)
return ret;
550 if (c <= lb || p[c - 1] !=
'e')
return 0;
553 {
int m1 = l - c; (void)m1;
555 if (ret == 0)
goto lab1;
556 if (ret < 0)
return ret;
562 if (ret <= 0)
return ret;
564 {
int m2 = l - c; (void)m2;
565 {
int ret = r_shortv();
566 if (ret == 0)
goto lab2;
567 if (ret < 0)
return ret;
575 {
int ret = slice_del();
576 if (ret < 0)
return ret;
583 if (c <= lb || p[c - 1] !=
'l')
return 0;
587 if (ret <= 0)
return ret;
589 if (c <= lb || p[c - 1] !=
'l')
return 0;
591 {
int ret = slice_del();
592 if (ret < 0)
return ret;
601 if (c == l || p[c] !=
'y')
goto lab0;
604 {
int ret = slice_from_s(1,
s_21);
605 if (ret < 0)
return ret;
616 if (in_grouping_U(
g_v, 97, 121, 0))
goto lab3;
618 if (c == l || p[c] !=
'y')
goto lab3;
625 {
int ret = skip_utf8(p, c, 0, l, 1);
626 if (ret < 0)
goto lab2;
630 {
int ret = slice_from_s(1,
s_22);
631 if (ret < 0)
return ret;
645 int ret = out_grouping_U(
g_v, 97, 121, 1);
646 if (ret < 0)
goto lab4;
650 int ret = in_grouping_U(
g_v, 97, 121, 1);
651 if (ret < 0)
goto lab4;
656 int ret = out_grouping_U(
g_v, 97, 121, 1);
657 if (ret < 0)
goto lab4;
661 int ret = in_grouping_U(
g_v, 97, 121, 1);
662 if (ret < 0)
goto lab4;
671 {
int m6 = l - c; (void)m6;
672 {
int ret = r_Step_1a();
673 if (ret < 0)
return ret;
677 {
int m7 = l - c; (void)m7;
678 {
int ret = r_Step_1b();
679 if (ret < 0)
return ret;
683 {
int m8 = l - c; (void)m8;
684 {
int ret = r_Step_1c();
685 if (ret < 0)
return ret;
689 {
int m9 = l - c; (void)m9;
690 {
int ret = r_Step_2();
691 if (ret < 0)
return ret;
695 {
int m10 = l - c; (void)m10;
696 {
int ret = r_Step_3();
697 if (ret < 0)
return ret;
701 {
int m11 = l - c; (void)m11;
702 {
int ret = r_Step_4();
703 if (ret < 0)
return ret;
707 {
int m12 = l - c; (void)m12;
708 {
int ret = r_Step_5a();
709 if (ret < 0)
return ret;
713 {
int m13 = l - c; (void)m13;
714 {
int ret = r_Step_5b();
715 if (ret < 0)
return ret;
721 if (!(I_Y_found))
goto lab5;
727 if (c == l || p[c] !=
'Y')
goto lab7;
734 {
int ret = skip_utf8(p, c, 0, l, 1);
735 if (ret < 0)
goto lab6;
739 {
int ret = slice_from_s(1,
s_23);
740 if (ret < 0)
return ret;
754 : I_Y_found(0), I_p2(0), I_p1(0)
765 return "earlyenglish";
int stem()
Virtual method implemented by the subclass to actually do the work.
~InternalStemEarlyenglish()
InternalStemEarlyenglish()
std::string get_description() const
Return a string describing this object.
int in_grouping_b_U(const unsigned char *s, int min, int max, int repeat)
int out_grouping_b_U(const unsigned char *s, int min, int max, int repeat)
static const struct among a_2[5]
static const symbol s_2[]
static const struct among a_3[20]
static const symbol s_4[]
static const symbol s_6[]
static const symbol s_21[]
static const symbol s_3[]
static const symbol s_7[]
static const symbol s_13[]
static const symbol s_20[]
static const symbol s_19[]
static const symbol s_23[]
static const unsigned char g_v_WXY[]
static const symbol s_16[]
static const symbol s_14[]
static const symbol s_22[]
static const symbol s_10[]
static const struct among a_0[4]
static const symbol s_1[]
static const struct among a_5[19]
static const struct among a_1[13]
static const symbol s_11[]
static const symbol s_12[]
static const struct among a_4[7]
static const symbol s_pool[]
static const symbol s_18[]
static const symbol s_17[]
static const unsigned char g_v[]
static const symbol s_8[]
static const symbol s_9[]
static const symbol s_5[]
static const symbol s_15[]
static const symbol s_0[]