37 #define s_2_5 (s_2_6 + 1)
44 #define s_3_2 (s_3_3 + 1)
132 static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32, 8 };
163 if (
c ==
l ||
p[
c] !=
'u')
goto lab3;
168 if (ret < 0)
return ret;
173 if (
c ==
l ||
p[
c] !=
'y')
goto lab1;
178 if (ret < 0)
return ret;
187 if (ret < 0)
goto lab0;
202 if (!(among_var))
goto lab4;
207 if (ret < 0)
return ret;
212 if (ret < 0)
return ret;
217 if (ret < 0)
return ret;
222 if (ret < 0)
return ret;
227 if (ret < 0)
goto lab4;
233 if (ret < 0)
goto lab4;
250 {
int ret = skip_utf8(p, c, 0, l, + 3);
251 if (ret < 0)
return 0;
258 int ret = out_grouping_U(
g_v, 97, 252, 1);
259 if (ret < 0)
return 0;
263 int ret = in_grouping_U(
g_v, 97, 252, 1);
264 if (ret < 0)
return 0;
269 if (!(I_p1 < I_x))
goto lab0;
273 int ret = out_grouping_U(
g_v, 97, 252, 1);
274 if (ret < 0)
return 0;
278 int ret = in_grouping_U(
g_v, 97, 252, 1);
279 if (ret < 0)
return 0;
291 among_var = find_among(
s_pool,
a_1, 6, 0, 0);
292 if (!(among_var))
goto lab0;
296 {
int ret = slice_from_s(1,
s_6);
297 if (ret < 0)
return ret;
301 {
int ret = slice_from_s(1,
s_7);
302 if (ret < 0)
return ret;
306 {
int ret = slice_from_s(1,
s_8);
307 if (ret < 0)
return ret;
311 {
int ret = slice_from_s(1,
s_9);
312 if (ret < 0)
return ret;
316 {
int ret = skip_utf8(p, c, 0, l, 1);
317 if (ret < 0)
goto lab0;
331 if (!(I_p1 <= c))
return 0;
336 if (!(I_p2 <= c))
return 0;
342 {
int m1 = l - c; (void)m1;
344 if (c <= lb || p[c - 1] >> 5 != 3 || !((811040 >> (p[c - 1] & 0x1f)) & 1))
goto lab0;
345 among_var = find_among_b(
s_pool,
a_2, 7, 0, 0);
346 if (!(among_var))
goto lab0;
349 if (ret == 0)
goto lab0;
350 if (ret < 0)
return ret;
354 {
int ret = slice_del();
355 if (ret < 0)
return ret;
359 {
int ret = slice_del();
360 if (ret < 0)
return ret;
362 {
int m2 = l - c; (void)m2;
364 if (c <= lb || p[c - 1] !=
's') { c = l - m2;
goto lab1; }
367 if (!(eq_s_b(3,
s_10))) { c = l - m2;
goto lab1; }
368 {
int ret = slice_del();
369 if (ret < 0)
return ret;
376 if (in_grouping_b_U(
g_s_ending, 98, 116, 0))
goto lab0;
377 {
int ret = slice_del();
378 if (ret < 0)
return ret;
385 {
int m3 = l - c; (void)m3;
387 if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((1327104 >> (p[c - 1] & 0x1f)) & 1))
goto lab2;
388 among_var = find_among_b(
s_pool,
a_3, 4, 0, 0);
389 if (!(among_var))
goto lab2;
392 if (ret == 0)
goto lab2;
393 if (ret < 0)
return ret;
397 {
int ret = slice_del();
398 if (ret < 0)
return ret;
402 if (in_grouping_b_U(
g_st_ending, 98, 116, 0))
goto lab2;
403 {
int ret = skip_utf8(p, c, lb, l, - 3);
404 if (ret < 0)
goto lab2;
407 {
int ret = slice_del();
408 if (ret < 0)
return ret;
415 {
int m4 = l - c; (void)m4;
417 if (c - 1 <= lb || p[c - 1] >> 5 != 3 || !((1051024 >> (p[c - 1] & 0x1f)) & 1))
goto lab3;
418 among_var = find_among_b(
s_pool,
a_5, 8, 0, 0);
419 if (!(among_var))
goto lab3;
422 if (ret == 0)
goto lab3;
423 if (ret < 0)
return ret;
427 {
int ret = slice_del();
428 if (ret < 0)
return ret;
430 {
int m5 = l - c; (void)m5;
432 if (!(eq_s_b(2,
s_11))) { c = l - m5;
goto lab4; }
434 {
int m6 = l - c; (void)m6;
435 if (c <= lb || p[c - 1] !=
'e')
goto lab5;
437 { c = l - m5;
goto lab4; }
442 if (ret == 0) { c = l - m5;
goto lab4; }
443 if (ret < 0)
return ret;
445 {
int ret = slice_del();
446 if (ret < 0)
return ret;
453 {
int m7 = l - c; (void)m7;
454 if (c <= lb || p[c - 1] !=
'e')
goto lab6;
460 {
int ret = slice_del();
461 if (ret < 0)
return ret;
465 {
int ret = slice_del();
466 if (ret < 0)
return ret;
468 {
int m8 = l - c; (void)m8;
470 {
int m9 = l - c; (void)m9;
471 if (!(eq_s_b(2,
s_12)))
goto lab9;
475 if (!(eq_s_b(2,
s_13))) { c = l - m8;
goto lab7; }
480 if (ret == 0) { c = l - m8;
goto lab7; }
481 if (ret < 0)
return ret;
483 {
int ret = slice_del();
484 if (ret < 0)
return ret;
491 {
int ret = slice_del();
492 if (ret < 0)
return ret;
494 {
int m10 = l - c; (void)m10;
496 if (c - 1 <= lb || (p[c - 1] != 103 && p[c - 1] != 104)) { c = l - m10;
goto lab10; }
497 if (!(find_among_b(
s_pool,
a_4, 2, 0, 0))) { c = l - m10;
goto lab10; }
500 if (ret == 0) { c = l - m10;
goto lab10; }
501 if (ret < 0)
return ret;
503 {
int ret = slice_del();
504 if (ret < 0)
return ret;
519 {
int ret = r_prelude();
520 if (ret < 0)
return ret;
525 {
int ret = r_mark_regions();
526 if (ret < 0)
return ret;
533 {
int ret = r_standard_suffix();
534 if (ret < 0)
return ret;
538 {
int ret = r_postlude();
539 if (ret < 0)
return ret;
547 : I_x(0), I_p2(0), I_p1(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 symbol s_4[]
static const struct among a_2[7]
static const struct among a_5[8]
static const unsigned char g_st_ending[]
static const struct among a_3[4]
static const symbol s_6[]
static const symbol s_3[]
static const symbol s_7[]
static const symbol s_13[]
static const struct among a_4[2]
static const symbol s_10[]
static const struct among a_1[6]
static const symbol s_1[]
static const struct among a_0[6]
static const symbol s_11[]
static const symbol s_12[]
static const symbol s_pool[]
static const unsigned char g_v[]
static const unsigned char g_s_ending[]
static const symbol s_8[]
static const symbol s_9[]
static const symbol s_5[]
static const symbol s_0[]