8 #define s_0_0 (s_0_1 + 2)    11 'e', 
't', 
'h', 
'e', 
'd',
    13 #define s_0_3 (s_0_0 + 1)    15 'e', 
'r', 
'e', 
'd', 
'e',
    16 #define s_0_5 (s_0_6 + 2)    26 'h', 
'e', 
'd', 
'e', 
'r',
    29 #define s_0_16 (s_0_17 + 3)    32 #define s_0_18 (s_0_19 + 3)    33 #define s_0_19 (s_0_20 + 2)    35 'e', 
'r', 
'e', 
'n', 
'd', 
'e', 
's',
    39 'e', 
'r', 
'n', 
'e', 
's',
    42 #define s_0_24 (s_0_25 + 3)    44 'h', 
'e', 
'd', 
'e', 
'n', 
's',
    46 'e', 
'r', 
'e', 
'n', 
's',
    49 #define s_0_28 (s_0_29 + 2)    51 'e', 
'r', 
'e', 
't', 
's',
    62 #define s_2_0 (s_2_1 + 1)    63 #define s_2_1 (s_2_2 + 1)    69 'l', 0xC3, 0xB8, 
's', 
't',
   128 static const unsigned char g_v[] = { 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 128 };
   130 static const unsigned char g_s_ending[] = { 239, 254, 42, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16 };
   140             if (ret < 0) 
return 0;
   148         if (ret < 0) 
return 0;
   153         if (ret < 0) 
return 0;
   168         if (
c < 
I_p1) 
return 0;
   171         if (
c <= 
lb || 
p[
c - 1] >> 5 != 3 || !((1851440 >> (
p[
c - 1] & 0x1f)) & 1)) { 
lb = mlimit1; 
return 0; }
   173         if (!(among_var)) { 
lb = mlimit1; 
return 0; }
   180                 if (ret < 0) 
return ret;
   186                 if (ret < 0) 
return ret;
   194     {   
int m_test1 = 
l - 
c;
   197             if (c < 
I_p1) 
return 0;
   200             if (c - 1 <= 
lb || (
p[c - 1] != 100 && 
p[c - 1] != 116)) { 
lb = mlimit2; 
return 0; }
   208         if (ret < 0) 
return 0;
   213         if (ret < 0) 
return ret;
   220     {   
int m1 = 
l - 
c; (void)m1;
   226             if (ret < 0) 
return ret;
   233         if (
c < 
I_p1) 
return 0;
   236         if (
c - 1 <= 
lb || 
p[
c - 1] >> 5 != 3 || !((1572992 >> (
p[
c - 1] & 0x1f)) & 1)) { 
lb = mlimit2; 
return 0; }
   238         if (!(among_var)) { 
lb = mlimit2; 
return 0; }
   245                 if (ret < 0) 
return ret;
   247             {   
int m3 = 
l - 
c; (void)m3;
   249                     if (ret < 0) 
return ret;
   256                 if (ret < 0) 
return ret;
   266         if (
c < 
I_p1) 
return 0;
   272             if (ret == 0) 
return -1;
   279         if (ret < 0) 
return ret;
   287             if (ret < 0) 
return ret;
   293     {   
int m2 = 
l - 
c; (void)m2;
   295             if (ret < 0) 
return ret;
   299     {   
int m3 = 
l - 
c; (void)m3;
   301             if (ret < 0) 
return ret;
   305     {   
int m4 = 
l - 
c; (void)m4;
   307             if (ret < 0) 
return ret;
   311     {   
int m5 = 
l - 
c; (void)m5;
   313             if (ret < 0) 
return ret;
 
static const symbol s_1[]
 
int find_among_b(const symbol *pool, const struct among *v, int v_size, const unsigned char *fnum, const among_function *f)
 
int eq_v_b(const symbol *v)
 
static const unsigned char g_v[]
 
int eq_s_b(int s_size, const symbol *s)
 
int stem()
Virtual method implemented by the subclass to actually do the work. 
 
static const symbol s_pool[]
 
symbol * slice_to(symbol *v)
 
int slice_from_s(int s_size, const symbol *s)
 
static const symbol s_2[]
 
static const struct among a_2[5]
 
static int skip_utf8(const symbol *p, int c, int lb, int l, int n)
 
int in_grouping_b_U(const unsigned char *s, int min, int max, int repeat)
 
std::string get_description() const
Return a string describing this object. 
 
static const struct among a_1[4]
 
int out_grouping_b_U(const unsigned char *s, int min, int max, int repeat)
 
static symbol * create_s()
 
int out_grouping_U(const unsigned char *s, int min, int max, int repeat)
 
static const symbol s_0[]
 
static const unsigned char g_s_ending[]
 
static const struct among a_0[32]
 
int in_grouping_U(const unsigned char *s, int min, int max, int repeat)