36 'k', 0xC3, 0xA4, 0xC3, 0xA4,
'n',
49 #define s_1_3 (s_1_4 + 1)
60 #define s_2_3 (s_2_4 + 1)
98 0xC3, 0xA4, 0xC3, 0xA4,
100 0xC3, 0xB6, 0xC3, 0xB6,
101 #define s_6_0 (s_6_1 + 2)
108 #define s_6_4 (s_6_5 + 1)
139 'h', 0xC3, 0xA4,
'n',
141 'h', 0xC3, 0xB6,
'n',
142 #define s_6_22 (s_6_20 + 1)
144 'l',
'l', 0xC3, 0xA4,
148 's',
's', 0xC3, 0xA4,
149 #define s_6_26 (s_6_27 + 1)
151 'l',
't', 0xC3, 0xA4,
153 's',
't', 0xC3, 0xA4,
155 't',
't', 0xC3, 0xA4,
158 #define s_7_1 (s_7_2 + 1)
161 #define s_7_3 (s_7_4 + 1)
164 #define s_7_5 (s_7_6 + 1)
167 #define s_7_7 (s_7_8 + 1)
171 'e',
'j', 0xC3, 0xA4,
172 #define s_7_10 (s_7_11 + 1)
174 'i',
'm',
'm', 0xC3, 0xA4,
175 #define s_7_12 (s_7_13 + 1)
177 'i',
'm',
'p', 0xC3, 0xA4,
182 #define s_9_0 (s_9_1 + 1)
292 static const unsigned char af_6[30] =
359 static const unsigned char g_AEI[] = { 17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8 };
361 static const unsigned char g_V1[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
363 static const unsigned char g_V2[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
365 static const unsigned char g_particle_end[] = { 17, 97, 24, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 };
380 if (ret < 0)
return 0;
385 if (ret < 0)
return 0;
391 if (ret < 0)
return 0;
396 if (ret < 0)
return 0;
404 if (!(I_p2 <= c))
return 0;
412 if (c < I_p1)
return 0;
413 mlimit1 = lb; lb = I_p1;
415 among_var = find_among_b(
s_pool,
a_0, 10, 0, 0);
416 if (!(among_var)) { lb = mlimit1;
return 0; }
426 if (ret <= 0)
return ret;
430 {
int ret = slice_del();
431 if (ret < 0)
return ret;
440 if (c < I_p1)
return 0;
441 mlimit1 = lb; lb = I_p1;
443 among_var = find_among_b(
s_pool,
a_4, 9, 0, 0);
444 if (!(among_var)) { lb = mlimit1;
return 0; }
450 {
int m2 = l - c; (void)m2;
451 if (c <= lb || p[c - 1] !=
'k')
goto lab0;
457 {
int ret = slice_del();
458 if (ret < 0)
return ret;
462 {
int ret = slice_del();
463 if (ret < 0)
return ret;
466 if (!(eq_s_b(3,
s_0)))
return 0;
468 {
int ret = slice_from_s(3,
s_1);
469 if (ret < 0)
return ret;
473 {
int ret = slice_del();
474 if (ret < 0)
return ret;
478 if (c - 1 <= lb || p[c - 1] != 97)
return 0;
479 if (!(find_among_b(
s_pool,
a_1, 6, 0, 0)))
return 0;
480 {
int ret = slice_del();
481 if (ret < 0)
return ret;
485 if (c - 2 <= lb || p[c - 1] != 164)
return 0;
486 if (!(find_among_b(
s_pool,
a_2, 6, 0, 0)))
return 0;
487 {
int ret = slice_del();
488 if (ret < 0)
return ret;
492 if (c - 2 <= lb || p[c - 1] != 101)
return 0;
493 if (!(find_among_b(
s_pool,
a_3, 2, 0, 0)))
return 0;
494 {
int ret = slice_del();
495 if (ret < 0)
return ret;
503 if (!(find_among_b(
s_pool,
a_5, 7, 0, 0)))
return 0;
508 if (c <= lb || p[c - 1] !=
'i')
return 0;
510 if (in_grouping_b_U(
g_V2, 97, 246, 0))
return 0;
518 if (c < I_p1)
return 0;
519 mlimit1 = lb; lb = I_p1;
522 if (!(among_var)) { lb = mlimit1;
return 0; }
528 if (c <= lb || p[c - 1] !=
'a')
return 0;
532 if (c <= lb || p[c - 1] !=
'e')
return 0;
536 if (c <= lb || p[c - 1] !=
'i')
return 0;
540 if (c <= lb || p[c - 1] !=
'o')
return 0;
544 if (!(eq_s_b(2,
s_2)))
return 0;
547 if (!(eq_s_b(2,
s_3)))
return 0;
550 {
int m2 = l - c; (void)m2;
551 {
int m3 = l - c; (void)m3;
552 {
int m4 = l - c; (void)m4;
553 {
int ret = r_LONG();
554 if (ret == 0)
goto lab2;
555 if (ret < 0)
return ret;
560 if (!(eq_s_b(2,
s_4))) { c = l - m2;
goto lab0; }
564 {
int ret = skip_utf8(p, c, lb, 0, -1);
565 if (ret < 0) { c = l - m2;
goto lab0; }
575 if (in_grouping_b_U(
g_V1, 97, 246, 0))
return 0;
576 if (out_grouping_b_U(
g_V1, 97, 246, 0))
return 0;
579 {
int ret = slice_del();
580 if (ret < 0)
return ret;
582 I_ending_removed = 1;
590 if (c < I_p2)
return 0;
591 mlimit1 = lb; lb = I_p2;
593 among_var = find_among_b(
s_pool,
a_7, 14, 0, 0);
594 if (!(among_var)) { lb = mlimit1;
return 0; }
600 {
int m2 = l - c; (void)m2;
601 if (!(eq_s_b(2,
s_5)))
goto lab0;
608 {
int ret = slice_del();
609 if (ret < 0)
return ret;
617 if (c < I_p1)
return 0;
618 mlimit1 = lb; lb = I_p1;
620 if (c <= lb || (p[c - 1] != 105 && p[c - 1] != 106)) { lb = mlimit1;
return 0; }
621 if (!(find_among_b(
s_pool,
a_8, 2, 0, 0))) { lb = mlimit1;
return 0; }
625 {
int ret = slice_del();
626 if (ret < 0)
return ret;
635 if (c < I_p1)
return 0;
636 mlimit1 = lb; lb = I_p1;
638 if (c <= lb || p[c - 1] !=
't') { lb = mlimit1;
return 0; }
641 {
int m_test2 = l - c;
642 if (in_grouping_b_U(
g_V1, 97, 246, 0)) { lb = mlimit1;
return 0; }
645 {
int ret = slice_del();
646 if (ret < 0)
return ret;
652 if (c < I_p2)
return 0;
653 mlimit3 = lb; lb = I_p2;
655 if (c - 2 <= lb || p[c - 1] != 97) { lb = mlimit3;
return 0; }
656 among_var = find_among_b(
s_pool,
a_9, 2, 0, 0);
657 if (!(among_var)) { lb = mlimit3;
return 0; }
663 {
int m4 = l - c; (void)m4;
664 if (!(eq_s_b(2,
s_6)))
goto lab0;
671 {
int ret = slice_del();
672 if (ret < 0)
return ret;
680 if (c < I_p1)
return 0;
681 mlimit1 = lb; lb = I_p1;
682 {
int m2 = l - c; (void)m2;
683 {
int m3 = l - c; (void)m3;
684 {
int ret = r_LONG();
685 if (ret == 0)
goto lab0;
686 if (ret < 0)
return ret;
690 {
int ret = skip_utf8(p, c, lb, 0, -1);
691 if (ret < 0)
goto lab0;
695 {
int ret = slice_del();
696 if (ret < 0)
return ret;
702 {
int m4 = l - c; (void)m4;
704 if (in_grouping_b_U(
g_AEI, 97, 228, 0))
goto lab1;
706 if (out_grouping_b_U(
g_V1, 97, 246, 0))
goto lab1;
707 {
int ret = slice_del();
708 if (ret < 0)
return ret;
713 {
int m5 = l - c; (void)m5;
715 if (c <= lb || p[c - 1] !=
'j')
goto lab2;
718 {
int m6 = l - c; (void)m6;
719 if (c <= lb || p[c - 1] !=
'o')
goto lab4;
724 if (c <= lb || p[c - 1] !=
'u')
goto lab2;
728 {
int ret = slice_del();
729 if (ret < 0)
return ret;
734 {
int m7 = l - c; (void)m7;
736 if (c <= lb || p[c - 1] !=
'o')
goto lab5;
739 if (c <= lb || p[c - 1] !=
'j')
goto lab5;
741 {
int ret = slice_del();
742 if (ret < 0)
return ret;
749 if (in_grouping_b_U(
g_V1, 97, 246, 1) < 0)
return 0;
751 {
int ret = skip_utf8(p, c, lb, 0, -1);
752 if (ret < 0)
return 0;
756 {
symbol * ret = slice_to(S_x);
757 if (ret == 0)
return -1;
760 if (!(eq_v_b(S_x)))
return 0;
761 {
int ret = slice_del();
762 if (ret < 0)
return ret;
769 {
int ret = r_mark_regions();
770 if (ret < 0)
return ret;
774 I_ending_removed = 0;
777 {
int m2 = l - c; (void)m2;
778 {
int ret = r_particle_etc();
779 if (ret < 0)
return ret;
783 {
int m3 = l - c; (void)m3;
784 {
int ret = r_possessive();
785 if (ret < 0)
return ret;
789 {
int m4 = l - c; (void)m4;
790 {
int ret = r_case_ending();
791 if (ret < 0)
return ret;
795 {
int m5 = l - c; (void)m5;
796 {
int ret = r_other_endings();
797 if (ret < 0)
return ret;
802 if (!(I_ending_removed))
goto lab1;
803 {
int m6 = l - c; (void)m6;
804 {
int ret = r_i_plural();
805 if (ret < 0)
return ret;
811 {
int m7 = l - c; (void)m7;
812 {
int ret = r_t_plural();
813 if (ret < 0)
return ret;
818 {
int m8 = l - c; (void)m8;
819 {
int ret = r_tidy();
820 if (ret < 0)
return ret;
829 : I_ending_removed(0), S_x(0), I_p2(0), I_p1(0)
int stem()
Virtual method implemented by the subclass to actually do the work.
std::string get_description() const
Return a string describing this object.
static symbol * create_s()
int out_grouping_U(const unsigned char *s, int min, int max, int repeat)
int in_grouping_U(const unsigned char *s, int min, int max, int repeat)
Class representing a stemming algorithm implementation.
static const symbol s_2[]
static const struct among a_3[2]
static const symbol s_4[]
static const struct among a_7[14]
static const unsigned char g_V1[]
static const unsigned char g_particle_end[]
static const struct among a_5[7]
static const struct among a_2[6]
static const symbol s_6[]
static const symbol s_3[]
static const unsigned char g_V2[]
static const struct among a_4[9]
static const struct among a_6[30]
static const struct among a_1[6]
static const symbol s_1[]
static const struct among a_9[2]
static const unsigned char g_AEI[]
static const unsigned char af_6[30]
static const struct among a_0[10]
static const among_function af[2]
static int tr_LONG(Xapian::StemImplementation *this_ptr)
static const symbol s_pool[]
static const symbol s_5[]
static int tr_VI(Xapian::StemImplementation *this_ptr)
static const symbol s_0[]
static const struct among a_8[2]
int(* among_function)(Xapian::StemImplementation *)