blob: 6aecba594b655146022e1a827cdbe5e9b4c3538e [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 IrishStemmer 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("b'", -1, 1),
new Among("bh", -1, 4),
new Among("bhf", 1, 2),
new Among("bp", -1, 8),
new Among("ch", -1, 5),
new Among("d'", -1, 1),
new Among("d'fh", 5, 2),
new Among("dh", -1, 6),
new Among("dt", -1, 9),
new Among("fh", -1, 2),
new Among("gc", -1, 5),
new Among("gh", -1, 7),
new Among("h-", -1, 1),
new Among("m'", -1, 1),
new Among("mb", -1, 4),
new Among("mh", -1, 10),
new Among("n-", -1, 1),
new Among("nd", -1, 6),
new Among("ng", -1, 7),
new Among("ph", -1, 8),
new Among("sh", -1, 3),
new Among("t-", -1, 1),
new Among("th", -1, 9),
new Among("ts", -1, 3)
};
private final static Among a_1[] = {
new Among("\u00EDochta", -1, 1),
new Among("a\u00EDochta", 0, 1),
new Among("ire", -1, 2),
new Among("aire", 2, 2),
new Among("abh", -1, 1),
new Among("eabh", 4, 1),
new Among("ibh", -1, 1),
new Among("aibh", 6, 1),
new Among("amh", -1, 1),
new Among("eamh", 8, 1),
new Among("imh", -1, 1),
new Among("aimh", 10, 1),
new Among("\u00EDocht", -1, 1),
new Among("a\u00EDocht", 12, 1),
new Among("ir\u00ED", -1, 2),
new Among("air\u00ED", 14, 2)
};
private final static Among a_2[] = {
new Among("\u00F3ideacha", -1, 6),
new Among("patacha", -1, 5),
new Among("achta", -1, 1),
new Among("arcachta", 2, 2),
new Among("eachta", 2, 1),
new Among("grafa\u00EDochta", -1, 4),
new Among("paite", -1, 5),
new Among("ach", -1, 1),
new Among("each", 7, 1),
new Among("\u00F3ideach", 8, 6),
new Among("gineach", 8, 3),
new Among("patach", 7, 5),
new Among("grafa\u00EDoch", -1, 4),
new Among("pataigh", -1, 5),
new Among("\u00F3idigh", -1, 6),
new Among("acht\u00FAil", -1, 1),
new Among("eacht\u00FAil", 15, 1),
new Among("gineas", -1, 3),
new Among("ginis", -1, 3),
new Among("acht", -1, 1),
new Among("arcacht", 19, 2),
new Among("eacht", 19, 1),
new Among("grafa\u00EDocht", -1, 4),
new Among("arcachta\u00ED", -1, 2),
new Among("grafa\u00EDochta\u00ED", -1, 4)
};
private final static Among a_3[] = {
new Among("imid", -1, 1),
new Among("aimid", 0, 1),
new Among("\u00EDmid", -1, 1),
new Among("a\u00EDmid", 2, 1),
new Among("adh", -1, 2),
new Among("eadh", 4, 2),
new Among("faidh", -1, 1),
new Among("fidh", -1, 1),
new Among("\u00E1il", -1, 2),
new Among("ain", -1, 2),
new Among("tear", -1, 2),
new Among("tar", -1, 2)
};
private static final char g_v[] = {17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 2 };
private int I_p2;
private int I_p1;
private int I_pV;
private boolean r_mark_regions() {
I_pV = limit;
I_p1 = limit;
I_p2 = limit;
int v_1 = cursor;
lab0: {
golab1: while(true)
{
lab2: {
if (!(in_grouping(g_v, 97, 250)))
{
break lab2;
}
break golab1;
}
if (cursor >= limit)
{
break lab0;
}
cursor++;
}
I_pV = cursor;
}
cursor = v_1;
int v_3 = cursor;
lab3: {
golab4: while(true)
{
lab5: {
if (!(in_grouping(g_v, 97, 250)))
{
break lab5;
}
break golab4;
}
if (cursor >= limit)
{
break lab3;
}
cursor++;
}
golab6: while(true)
{
lab7: {
if (!(out_grouping(g_v, 97, 250)))
{
break lab7;
}
break golab6;
}
if (cursor >= limit)
{
break lab3;
}
cursor++;
}
I_p1 = cursor;
golab8: while(true)
{
lab9: {
if (!(in_grouping(g_v, 97, 250)))
{
break lab9;
}
break golab8;
}
if (cursor >= limit)
{
break lab3;
}
cursor++;
}
golab10: while(true)
{
lab11: {
if (!(out_grouping(g_v, 97, 250)))
{
break lab11;
}
break golab10;
}
if (cursor >= limit)
{
break lab3;
}
cursor++;
}
I_p2 = cursor;
}
cursor = v_3;
return true;
}
private boolean r_initial_morph() {
int among_var;
bra = cursor;
among_var = find_among(a_0);
if (among_var == 0)
{
return false;
}
ket = cursor;
switch (among_var) {
case 1:
slice_del();
break;
case 2:
slice_from("f");
break;
case 3:
slice_from("s");
break;
case 4:
slice_from("b");
break;
case 5:
slice_from("c");
break;
case 6:
slice_from("d");
break;
case 7:
slice_from("g");
break;
case 8:
slice_from("p");
break;
case 9:
slice_from("t");
break;
case 10:
slice_from("m");
break;
}
return true;
}
private boolean r_RV() {
if (!(I_pV <= cursor))
{
return false;
}
return true;
}
private boolean r_R1() {
if (!(I_p1 <= cursor))
{
return false;
}
return true;
}
private boolean r_R2() {
if (!(I_p2 <= cursor))
{
return false;
}
return true;
}
private boolean r_noun_sfx() {
int among_var;
ket = cursor;
among_var = find_among_b(a_1);
if (among_var == 0)
{
return false;
}
bra = cursor;
switch (among_var) {
case 1:
if (!r_R1())
{
return false;
}
slice_del();
break;
case 2:
if (!r_R2())
{
return false;
}
slice_del();
break;
}
return true;
}
private boolean r_deriv() {
int among_var;
ket = cursor;
among_var = find_among_b(a_2);
if (among_var == 0)
{
return false;
}
bra = cursor;
switch (among_var) {
case 1:
if (!r_R2())
{
return false;
}
slice_del();
break;
case 2:
slice_from("arc");
break;
case 3:
slice_from("gin");
break;
case 4:
slice_from("graf");
break;
case 5:
slice_from("paite");
break;
case 6:
slice_from("\u00F3id");
break;
}
return true;
}
private boolean r_verb_sfx() {
int among_var;
ket = cursor;
among_var = find_among_b(a_3);
if (among_var == 0)
{
return false;
}
bra = cursor;
switch (among_var) {
case 1:
if (!r_RV())
{
return false;
}
slice_del();
break;
case 2:
if (!r_R1())
{
return false;
}
slice_del();
break;
}
return true;
}
public boolean stem() {
int v_1 = cursor;
r_initial_morph();
cursor = v_1;
r_mark_regions();
limit_backward = cursor;
cursor = limit;
int v_3 = limit - cursor;
r_noun_sfx();
cursor = limit - v_3;
int v_4 = limit - cursor;
r_deriv();
cursor = limit - v_4;
int v_5 = limit - cursor;
r_verb_sfx();
cursor = limit - v_5;
cursor = limit_backward;
return true;
}
@Override
public boolean equals( Object o ) {
return o instanceof IrishStemmer;
}
@Override
public int hashCode() {
return IrishStemmer.class.getName().hashCode();
}
}