blob: bb9dafa08523ce26152fa28bdffebb3d8ef1be85 [file] [log] [blame]
// Generated by Snowball 2.0.0 - https://snowballstem.org/
package org.tartarus.snowball.ext;
import org.tartarus.snowball.Among;
/**
* This class implements the stemming algorithm defined by a snowball script.
* <p>
* Generated by Snowball 2.0.0 - https://snowballstem.org/
* </p>
*/
@SuppressWarnings("unused")
public class IndonesianStemmer extends org.tartarus.snowball.SnowballStemmer {
private static final long serialVersionUID = 1L;
private static final java.lang.invoke.MethodHandles.Lookup methodObject = java.lang.invoke.MethodHandles.lookup();
private final static Among a_0[] = {
new Among("kah", -1, 1),
new Among("lah", -1, 1),
new Among("pun", -1, 1)
};
private final static Among a_1[] = {
new Among("nya", -1, 1),
new Among("ku", -1, 1),
new Among("mu", -1, 1)
};
private final static Among a_2[] = {
new Among("i", -1, 1, "r_SUFFIX_I_OK", methodObject),
new Among("an", -1, 1, "r_SUFFIX_AN_OK", methodObject),
new Among("kan", 1, 1, "r_SUFFIX_KAN_OK", methodObject)
};
private final static Among a_3[] = {
new Among("di", -1, 1),
new Among("ke", -1, 2),
new Among("me", -1, 1),
new Among("mem", 2, 5),
new Among("men", 2, 1),
new Among("meng", 4, 1),
new Among("meny", 4, 3, "r_VOWEL", methodObject),
new Among("pem", -1, 6),
new Among("pen", -1, 2),
new Among("peng", 8, 2),
new Among("peny", 8, 4, "r_VOWEL", methodObject),
new Among("ter", -1, 1)
};
private final static Among a_4[] = {
new Among("be", -1, 3, "r_KER", methodObject),
new Among("belajar", 0, 4),
new Among("ber", 0, 3),
new Among("pe", -1, 1),
new Among("pelajar", 3, 2),
new Among("per", 3, 1)
};
private static final char g_vowel[] = {17, 65, 16 };
private int I_prefix;
private int I_measure;
private boolean r_remove_particle() {
ket = cursor;
if (find_among_b(a_0) == 0)
{
return false;
}
bra = cursor;
slice_del();
I_measure -= 1;
return true;
}
private boolean r_remove_possessive_pronoun() {
ket = cursor;
if (find_among_b(a_1) == 0)
{
return false;
}
bra = cursor;
slice_del();
I_measure -= 1;
return true;
}
public boolean r_SUFFIX_KAN_OK() {
if (!(I_prefix != 3))
{
return false;
}
if (!(I_prefix != 2))
{
return false;
}
return true;
}
public boolean r_SUFFIX_AN_OK() {
if (!(I_prefix != 1))
{
return false;
}
return true;
}
public boolean r_SUFFIX_I_OK() {
if (!(I_prefix <= 2))
{
return false;
}
{
int v_1 = limit - cursor;
lab0: {
if (!(eq_s_b("s")))
{
break lab0;
}
return false;
}
cursor = limit - v_1;
}
return true;
}
private boolean r_remove_suffix() {
ket = cursor;
if (find_among_b(a_2) == 0)
{
return false;
}
bra = cursor;
slice_del();
I_measure -= 1;
return true;
}
public boolean r_VOWEL() {
if (!(in_grouping(g_vowel, 97, 117)))
{
return false;
}
return true;
}
public boolean r_KER() {
if (!(out_grouping(g_vowel, 97, 117)))
{
return false;
}
if (!(eq_s("er")))
{
return false;
}
return true;
}
private boolean r_remove_first_order_prefix() {
int among_var;
bra = cursor;
among_var = find_among(a_3);
if (among_var == 0)
{
return false;
}
ket = cursor;
switch (among_var) {
case 1:
slice_del();
I_prefix = 1;
I_measure -= 1;
break;
case 2:
slice_del();
I_prefix = 3;
I_measure -= 1;
break;
case 3:
I_prefix = 1;
slice_from("s");
I_measure -= 1;
break;
case 4:
I_prefix = 3;
slice_from("s");
I_measure -= 1;
break;
case 5:
I_prefix = 1;
I_measure -= 1;
lab0: {
int v_1 = cursor;
lab1: {
int v_2 = cursor;
if (!(in_grouping(g_vowel, 97, 117)))
{
break lab1;
}
cursor = v_2;
slice_from("p");
break lab0;
}
cursor = v_1;
slice_del();
}
break;
case 6:
I_prefix = 3;
I_measure -= 1;
lab2: {
int v_3 = cursor;
lab3: {
int v_4 = cursor;
if (!(in_grouping(g_vowel, 97, 117)))
{
break lab3;
}
cursor = v_4;
slice_from("p");
break lab2;
}
cursor = v_3;
slice_del();
}
break;
}
return true;
}
private boolean r_remove_second_order_prefix() {
int among_var;
bra = cursor;
among_var = find_among(a_4);
if (among_var == 0)
{
return false;
}
ket = cursor;
switch (among_var) {
case 1:
slice_del();
I_prefix = 2;
I_measure -= 1;
break;
case 2:
slice_from("ajar");
I_measure -= 1;
break;
case 3:
slice_del();
I_prefix = 4;
I_measure -= 1;
break;
case 4:
slice_from("ajar");
I_prefix = 4;
I_measure -= 1;
break;
}
return true;
}
public boolean stem() {
I_measure = 0;
int v_1 = cursor;
lab0: {
while(true)
{
int v_2 = cursor;
lab1: {
golab2: while(true)
{
lab3: {
if (!(in_grouping(g_vowel, 97, 117)))
{
break lab3;
}
break golab2;
}
if (cursor >= limit)
{
break lab1;
}
cursor++;
}
I_measure += 1;
continue;
}
cursor = v_2;
break;
}
}
cursor = v_1;
if (!(I_measure > 2))
{
return false;
}
I_prefix = 0;
limit_backward = cursor;
cursor = limit;
int v_4 = limit - cursor;
r_remove_particle();
cursor = limit - v_4;
if (!(I_measure > 2))
{
return false;
}
int v_5 = limit - cursor;
r_remove_possessive_pronoun();
cursor = limit - v_5;
cursor = limit_backward;
if (!(I_measure > 2))
{
return false;
}
lab4: {
int v_6 = cursor;
lab5: {
int v_7 = cursor;
if (!r_remove_first_order_prefix())
{
break lab5;
}
int v_8 = cursor;
lab6: {
int v_9 = cursor;
if (!(I_measure > 2))
{
break lab6;
}
limit_backward = cursor;
cursor = limit;
if (!r_remove_suffix())
{
break lab6;
}
cursor = limit_backward;
cursor = v_9;
if (!(I_measure > 2))
{
break lab6;
}
if (!r_remove_second_order_prefix())
{
break lab6;
}
}
cursor = v_8;
cursor = v_7;
break lab4;
}
cursor = v_6;
int v_10 = cursor;
r_remove_second_order_prefix();
cursor = v_10;
int v_11 = cursor;
lab7: {
if (!(I_measure > 2))
{
break lab7;
}
limit_backward = cursor;
cursor = limit;
if (!r_remove_suffix())
{
break lab7;
}
cursor = limit_backward;
}
cursor = v_11;
}
return true;
}
@Override
public boolean equals( Object o ) {
return o instanceof IndonesianStemmer;
}
@Override
public int hashCode() {
return IndonesianStemmer.class.getName().hashCode();
}
}