52 #define s_2_1 (s_2_2 + 1)
78 'b',
'e',
'l',
'a',
'j',
'a',
'r',
83 'p',
'e',
'l',
'a',
'j',
'a',
'r',
112 static const unsigned char af_2[3] =
136 static const unsigned char af_3[12] =
163 static const unsigned char af_4[6] =
173 static const unsigned char g_vowel[] = { 17, 65, 16 };
185 if (
c - 2 <=
lb || (
p[
c - 1] != 104 &&
p[
c - 1] != 110))
return 0;
189 if (ret < 0)
return ret;
197 if (c - 1 <= lb || (p[c - 1] != 97 && p[c - 1] != 117))
return 0;
198 if (!(find_among_b(
s_pool,
a_1, 3, 0, 0)))
return 0;
200 {
int ret = slice_del();
201 if (ret < 0)
return ret;
209 if (!(I_prefix != 3))
return 0;
210 if (!(I_prefix != 2))
return 0;
215 if (!(I_prefix != 1))
return 0;
220 if (!(I_prefix <= 2))
return 0;
221 {
int m1 = l - c; (void)m1;
222 if (c <= lb || p[c - 1] !=
's')
goto lab0;
233 if (c <= lb || (p[c - 1] != 105 && p[c - 1] != 110))
return 0;
236 {
int ret = slice_del();
237 if (ret < 0)
return ret;
244 if (in_grouping_U(
g_vowel, 97, 117, 0))
return 0;
249 if (out_grouping_U(
g_vowel, 97, 117, 0))
return 0;
250 if (!(eq_s(2,
s_0)))
return 0;
257 if (c + 1 >= l || (p[c + 1] != 105 && p[c + 1] != 101))
return 0;
259 if (!(among_var))
return 0;
263 {
int ret = slice_del();
264 if (ret < 0)
return ret;
270 {
int ret = slice_del();
271 if (ret < 0)
return ret;
278 {
int ret = slice_from_s(1,
s_1);
279 if (ret < 0)
return ret;
285 {
int ret = slice_from_s(1,
s_2);
286 if (ret < 0)
return ret;
295 if (in_grouping_U(
g_vowel, 97, 117, 0))
goto lab1;
297 {
int ret = slice_from_s(1,
s_3);
298 if (ret < 0)
return ret;
304 {
int ret = slice_del();
305 if (ret < 0)
return ret;
315 if (in_grouping_U(
g_vowel, 97, 117, 0))
goto lab3;
317 {
int ret = slice_from_s(1,
s_4);
318 if (ret < 0)
return ret;
324 {
int ret = slice_del();
325 if (ret < 0)
return ret;
337 if (c + 1 >= l || p[c + 1] != 101)
return 0;
339 if (!(among_var))
return 0;
343 {
int ret = slice_del();
344 if (ret < 0)
return ret;
350 {
int ret = slice_from_s(4,
s_5);
351 if (ret < 0)
return ret;
356 {
int ret = slice_del();
357 if (ret < 0)
return ret;
363 {
int ret = slice_from_s(4,
s_6);
364 if (ret < 0)
return ret;
379 int ret = out_grouping_U(
g_vowel, 97, 117, 1);
380 if (ret < 0)
goto lab1;
391 if (!(I_measure > 2))
return 0;
395 {
int m3 = l - c; (void)m3;
396 {
int ret = r_remove_particle();
397 if (ret < 0)
return ret;
401 if (!(I_measure > 2))
return 0;
402 {
int m4 = l - c; (void)m4;
403 {
int ret = r_remove_possessive_pronoun();
404 if (ret < 0)
return ret;
409 if (!(I_measure > 2))
return 0;
412 {
int ret = r_remove_first_order_prefix();
413 if (ret == 0)
goto lab3;
414 if (ret < 0)
return ret;
418 if (!(I_measure > 2))
goto lab4;
421 {
int ret = r_remove_suffix();
422 if (ret == 0)
goto lab4;
423 if (ret < 0)
return ret;
428 if (!(I_measure > 2))
goto lab4;
429 {
int ret = r_remove_second_order_prefix();
430 if (ret == 0)
goto lab4;
431 if (ret < 0)
return ret;
442 {
int ret = r_remove_second_order_prefix();
443 if (ret < 0)
return ret;
448 if (!(I_measure > 2))
goto lab5;
451 {
int ret = r_remove_suffix();
452 if (ret == 0)
goto lab5;
453 if (ret < 0)
return ret;
465 : I_prefix(0), I_measure(0)
int r_remove_first_order_prefix()
int r_remove_possessive_pronoun()
int r_remove_second_order_prefix()
~InternalStemIndonesian()
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 find_among_b(const symbol *pool, const struct among *v, int v_size, const unsigned char *fnum, const among_function *f)
Class representing a stemming algorithm implementation.
static int tr_SUFFIX_I_OK(Xapian::StemImplementation *this_ptr)
static const symbol s_2[]
static int tr_SUFFIX_KAN_OK(Xapian::StemImplementation *this_ptr)
static const symbol s_4[]
static const unsigned char af_2[3]
static const struct among a_4[6]
static const struct among a_0[3]
static const symbol s_6[]
static const symbol s_3[]
static const unsigned char af_4[6]
static int tr_VOWEL(Xapian::StemImplementation *this_ptr)
static const struct among a_3[12]
static const among_function af[5]
static const struct among a_1[3]
static const symbol s_1[]
static const struct among a_2[3]
static int tr_SUFFIX_AN_OK(Xapian::StemImplementation *this_ptr)
static const symbol s_pool[]
static const unsigned char g_vowel[]
static int tr_KER(Xapian::StemImplementation *this_ptr)
static const symbol s_5[]
static const symbol s_0[]
static const unsigned char af_3[12]
int(* among_function)(Xapian::StemImplementation *)