25 #define s_2_0 (s_2_1 + 2)
29 'g',
'l',
'i',
'e',
'l',
'a',
36 #define s_2_6 (s_2_7 + 2)
40 'g',
'l',
'i',
'e',
'l',
'e',
47 #define s_2_12 (s_2_13 + 2)
51 'g',
'l',
'i',
'e',
'n',
'e',
62 #define s_2_20 (s_2_2 + 1)
66 'g',
'l',
'i',
'e',
'l',
'i',
82 #define s_2_31 (s_2_32 + 2)
86 'g',
'l',
'i',
'e',
'l',
'o',
120 'l',
'o',
'g',
'i',
'a',
131 #define s_6_7 (s_6_8 + 3)
133 'a',
't',
'r',
'i',
'c',
'e',
137 'l',
'o',
'g',
'i',
'e',
139 'a',
'b',
'i',
'l',
'e',
141 'i',
'b',
'i',
'l',
'e',
143 'u',
's',
'i',
'o',
'n',
'e',
145 'a',
'z',
'i',
'o',
'n',
'e',
147 'u',
'z',
'i',
'o',
'n',
'e',
149 'a',
't',
'o',
'r',
'e',
154 #define s_6_19 (s_6_20 + 1)
156 'a',
'm',
'e',
'n',
't',
'e',
165 #define s_6_25 (s_6_26 + 3)
167 'a',
't',
'r',
'i',
'c',
'i',
171 'a',
'b',
'i',
'l',
'i',
173 'i',
'b',
'i',
'l',
'i',
177 'u',
's',
'i',
'o',
'n',
'i',
179 'a',
'z',
'i',
'o',
'n',
'i',
181 'u',
'z',
'i',
'o',
'n',
'i',
183 'a',
't',
'o',
'r',
'i',
189 'a',
'm',
'e',
'n',
't',
'i',
191 'i',
'm',
'e',
'n',
't',
'i',
203 'a',
'm',
'e',
'n',
't',
'o',
205 'i',
'm',
'e',
'n',
't',
'o',
209 'i',
't', 0xC3, 0xA0,
211 'i',
's',
't', 0xC3, 0xA0,
213 'i',
's',
't', 0xC3, 0xA8,
215 'i',
's',
't', 0xC3, 0xAC,
238 #define s_7_15 s_7_72
239 #define s_7_16 (s_7_17 + 2)
241 'a',
'v',
'a',
't',
'e',
243 'e',
'v',
'a',
't',
'e',
245 'i',
'v',
'a',
't',
'e',
246 #define s_7_20 (s_7_21 + 2)
248 'e',
'r',
'e',
't',
'e',
250 'i',
'r',
'e',
't',
'e',
254 'e',
'r',
'e',
's',
't',
'e',
256 'i',
'r',
'e',
's',
't',
'e',
271 #define s_7_33 s_7_52
277 'e',
'r',
'e',
's',
't',
'i',
279 'i',
'r',
'e',
's',
't',
'i',
288 #define s_7_42 s_7_66
298 'a',
'v',
'a',
'm',
'o',
300 'e',
'v',
'a',
'm',
'o',
302 'i',
'v',
'a',
'm',
'o',
304 'e',
'r',
'e',
'm',
'o',
306 'i',
'r',
'e',
'm',
'o',
308 'a',
's',
's',
'i',
'm',
'o',
311 #define s_7_54 (s_7_55 + 2)
313 'e',
'r',
'e',
'm',
'm',
'o',
315 'i',
'r',
'e',
'm',
'm',
'o',
318 #define s_7_58 (s_7_59 + 3)
320 'i',
's',
'c',
'a',
'n',
'o',
322 'a',
'v',
'a',
'n',
'o',
324 'e',
'v',
'a',
'n',
'o',
326 'i',
'v',
'a',
'n',
'o',
328 'e',
'r',
'a',
'n',
'n',
'o',
330 'i',
'r',
'a',
'n',
'n',
'o',
331 #define s_7_65 (s_7_66 + 3)
333 'i',
's',
'c',
'o',
'n',
'o',
335 'a',
'r',
'o',
'n',
'o',
337 'e',
'r',
'o',
'n',
'o',
339 'i',
'r',
'o',
'n',
'o',
341 'e',
'r',
'e',
'b',
'b',
'e',
'r',
'o',
343 'i',
'r',
'e',
'b',
'b',
'e',
'r',
'o',
345 'a',
's',
's',
'e',
'r',
'o',
347 'e',
's',
's',
'e',
'r',
'o',
349 'i',
's',
's',
'e',
'r',
'o',
362 #define s_7_81 s_7_12
365 'e',
'r', 0xC3, 0xA0,
367 'i',
'r', 0xC3, 0xA0,
369 'e',
'r', 0xC3, 0xB2,
371 'i',
'r', 0xC3, 0xB2,
611 static const unsigned char g_v[] = { 17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2, 1 };
613 static const unsigned char g_AEIO[] = { 17, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2 };
615 static const unsigned char g_CG[] = { 17 };
643 if (!(among_var))
goto lab0;
648 if (ret < 0)
return ret;
653 if (ret < 0)
return ret;
658 if (ret < 0)
return ret;
663 if (ret < 0)
return ret;
668 if (ret < 0)
return ret;
673 if (ret < 0)
return ret;
678 if (ret < 0)
goto lab0;
697 if (
c ==
l ||
p[
c] !=
'u')
goto lab4;
702 if (ret < 0)
return ret;
707 if (
c ==
l ||
p[
c] !=
'i')
goto lab2;
712 if (ret < 0)
return ret;
721 if (ret < 0)
goto lab1;
739 if (in_grouping_U(
g_v, 97, 249, 0))
goto lab2;
741 if (out_grouping_U(
g_v, 97, 249, 0))
goto lab4;
743 int ret = out_grouping_U(
g_v, 97, 249, 1);
744 if (ret < 0)
goto lab4;
750 if (in_grouping_U(
g_v, 97, 249, 0))
goto lab2;
752 int ret = in_grouping_U(
g_v, 97, 249, 1);
753 if (ret < 0)
goto lab2;
761 if (out_grouping_U(
g_v, 97, 249, 0))
goto lab0;
763 if (out_grouping_U(
g_v, 97, 249, 0))
goto lab6;
765 int ret = out_grouping_U(
g_v, 97, 249, 1);
766 if (ret < 0)
goto lab6;
772 if (in_grouping_U(
g_v, 97, 249, 0))
goto lab0;
773 {
int ret = skip_utf8(p, c, 0, l, 1);
774 if (ret < 0)
goto lab0;
788 int ret = out_grouping_U(
g_v, 97, 249, 1);
789 if (ret < 0)
goto lab7;
793 int ret = in_grouping_U(
g_v, 97, 249, 1);
794 if (ret < 0)
goto lab7;
799 int ret = out_grouping_U(
g_v, 97, 249, 1);
800 if (ret < 0)
goto lab7;
804 int ret = in_grouping_U(
g_v, 97, 249, 1);
805 if (ret < 0)
goto lab7;
820 if (c >= l || (p[c + 0] != 73 && p[c + 0] != 85)) among_var = 3;
else
821 among_var = find_among(
s_pool,
a_1, 3, 0, 0);
822 if (!(among_var))
goto lab0;
826 {
int ret = slice_from_s(1,
s_8);
827 if (ret < 0)
return ret;
831 {
int ret = slice_from_s(1,
s_9);
832 if (ret < 0)
return ret;
836 {
int ret = skip_utf8(p, c, 0, l, 1);
837 if (ret < 0)
goto lab0;
851 if (!(I_pV <= c))
return 0;
856 if (!(I_p1 <= c))
return 0;
861 if (!(I_p2 <= c))
return 0;
868 if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((33314 >> (p[c - 1] & 0x1f)) & 1))
return 0;
869 if (!(find_among_b(
s_pool,
a_2, 37, 0, 0)))
return 0;
871 if (c - 1 <= lb || (p[c - 1] != 111 && p[c - 1] != 114))
return 0;
872 among_var = find_among_b(
s_pool,
a_3, 5, 0, 0);
873 if (!(among_var))
return 0;
875 if (ret <= 0)
return ret;
879 {
int ret = slice_del();
880 if (ret < 0)
return ret;
884 {
int ret = slice_from_s(1,
s_10);
885 if (ret < 0)
return ret;
895 among_var = find_among_b(
s_pool,
a_6, 51, 0, 0);
896 if (!(among_var))
return 0;
901 if (ret <= 0)
return ret;
903 {
int ret = slice_del();
904 if (ret < 0)
return ret;
909 if (ret <= 0)
return ret;
911 {
int ret = slice_del();
912 if (ret < 0)
return ret;
914 {
int m1 = l - c; (void)m1;
916 if (!(eq_s_b(2,
s_11))) { c = l - m1;
goto lab0; }
919 if (ret == 0) { c = l - m1;
goto lab0; }
920 if (ret < 0)
return ret;
922 {
int ret = slice_del();
923 if (ret < 0)
return ret;
931 if (ret <= 0)
return ret;
933 {
int ret = slice_from_s(3,
s_12);
934 if (ret < 0)
return ret;
939 if (ret <= 0)
return ret;
941 {
int ret = slice_from_s(1,
s_13);
942 if (ret < 0)
return ret;
947 if (ret <= 0)
return ret;
949 {
int ret = slice_from_s(4,
s_14);
950 if (ret < 0)
return ret;
955 if (ret <= 0)
return ret;
957 {
int ret = slice_del();
958 if (ret < 0)
return ret;
963 if (ret <= 0)
return ret;
965 {
int ret = slice_del();
966 if (ret < 0)
return ret;
968 {
int m2 = l - c; (void)m2;
970 if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((4722696 >> (p[c - 1] & 0x1f)) & 1)) { c = l - m2;
goto lab1; }
971 among_var = find_among_b(
s_pool,
a_4, 4, 0, 0);
972 if (!(among_var)) { c = l - m2;
goto lab1; }
975 if (ret == 0) { c = l - m2;
goto lab1; }
976 if (ret < 0)
return ret;
978 {
int ret = slice_del();
979 if (ret < 0)
return ret;
984 if (!(eq_s_b(2,
s_15))) { c = l - m2;
goto lab1; }
987 if (ret == 0) { c = l - m2;
goto lab1; }
988 if (ret < 0)
return ret;
990 {
int ret = slice_del();
991 if (ret < 0)
return ret;
1001 if (ret <= 0)
return ret;
1003 {
int ret = slice_del();
1004 if (ret < 0)
return ret;
1006 {
int m3 = l - c; (void)m3;
1008 if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((4198408 >> (p[c - 1] & 0x1f)) & 1)) { c = l - m3;
goto lab2; }
1009 if (!(find_among_b(
s_pool,
a_5, 3, 0, 0))) { c = l - m3;
goto lab2; }
1012 if (ret == 0) { c = l - m3;
goto lab2; }
1013 if (ret < 0)
return ret;
1015 {
int ret = slice_del();
1016 if (ret < 0)
return ret;
1024 if (ret <= 0)
return ret;
1026 {
int ret = slice_del();
1027 if (ret < 0)
return ret;
1029 {
int m4 = l - c; (void)m4;
1031 if (!(eq_s_b(2,
s_16))) { c = l - m4;
goto lab3; }
1034 if (ret == 0) { c = l - m4;
goto lab3; }
1035 if (ret < 0)
return ret;
1037 {
int ret = slice_del();
1038 if (ret < 0)
return ret;
1041 if (!(eq_s_b(2,
s_17))) { c = l - m4;
goto lab3; }
1044 if (ret == 0) { c = l - m4;
goto lab3; }
1045 if (ret < 0)
return ret;
1047 {
int ret = slice_del();
1048 if (ret < 0)
return ret;
1061 if (c < I_pV)
return 0;
1062 mlimit1 = lb; lb = I_pV;
1064 if (!(find_among_b(
s_pool,
a_7, 87, 0, 0))) { lb = mlimit1;
return 0; }
1066 {
int ret = slice_del();
1067 if (ret < 0)
return ret;
1075 {
int m1 = l - c; (void)m1;
1077 if (in_grouping_b_U(
g_AEIO, 97, 242, 0)) { c = l - m1;
goto lab0; }
1080 if (ret == 0) { c = l - m1;
goto lab0; }
1081 if (ret < 0)
return ret;
1083 {
int ret = slice_del();
1084 if (ret < 0)
return ret;
1087 if (c <= lb || p[c - 1] !=
'i') { c = l - m1;
goto lab0; }
1091 if (ret == 0) { c = l - m1;
goto lab0; }
1092 if (ret < 0)
return ret;
1094 {
int ret = slice_del();
1095 if (ret < 0)
return ret;
1100 {
int m2 = l - c; (void)m2;
1102 if (c <= lb || p[c - 1] !=
'h') { c = l - m2;
goto lab1; }
1105 if (in_grouping_b_U(
g_CG, 99, 103, 0)) { c = l - m2;
goto lab1; }
1107 if (ret == 0) { c = l - m2;
goto lab1; }
1108 if (ret < 0)
return ret;
1110 {
int ret = slice_del();
1111 if (ret < 0)
return ret;
1121 {
int ret = r_prelude();
1122 if (ret < 0)
return ret;
1127 {
int ret = r_mark_regions();
1128 if (ret < 0)
return ret;
1132 {
int m2 = l - c; (void)m2;
1133 {
int ret = r_attached_pronoun();
1134 if (ret < 0)
return ret;
1138 {
int m3 = l - c; (void)m3;
1139 {
int m4 = l - c; (void)m4;
1140 {
int ret = r_standard_suffix();
1141 if (ret == 0)
goto lab2;
1142 if (ret < 0)
return ret;
1147 {
int ret = r_verb_suffix();
1148 if (ret == 0)
goto lab0;
1149 if (ret < 0)
return ret;
1156 {
int m5 = l - c; (void)m5;
1157 {
int ret = r_vowel_suffix();
1158 if (ret < 0)
return ret;
1164 {
int ret = r_postlude();
1165 if (ret < 0)
return ret;
1173 : I_p2(0), I_p1(0), I_pV(0)
std::string get_description() const
Return a string describing this object.
int stem()
Virtual method implemented by the subclass to actually do the work.
int in_grouping_U(const unsigned char *s, int min, int max, int repeat)
int slice_from_s(int s_size, const symbol *s)
int find_among(const symbol *pool, const struct among *v, int v_size, const unsigned char *fnum, const among_function *f)
static int skip_utf8(const symbol *p, int c, int lb, int l, int n)
static const symbol s_2[]
static const unsigned char g_AEIO[]
static const symbol s_4[]
static const symbol s_6[]
static const symbol s_3[]
static const struct among a_0[7]
static const struct among a_6[51]
static const symbol s_7[]
static const symbol s_13[]
static const struct among a_7[87]
static const struct among a_2[37]
static const symbol s_16[]
static const symbol s_14[]
static const struct among a_5[3]
static const symbol s_10[]
static const struct among a_1[3]
static const unsigned char g_CG[]
static const symbol s_1[]
static const symbol s_11[]
static const symbol s_12[]
static const struct among a_3[5]
static const symbol s_pool[]
static const symbol s_17[]
static const struct among a_4[4]
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[]