// This file was generated automatically by the Snowball to Java compiler
package org.tartarus.snowball.ext;
import org.tartarus.snowball.Among;
import org.tartarus.snowball.SnowballProgram;
This class was automatically generated by a Snowball to Java compiler
It implements the stemming algorithm defined by a snowball script.
/**
* This class was automatically generated by a Snowball to Java compiler
* It implements the stemming algorithm defined by a snowball script.
*/
@SuppressWarnings("unused") public class IrishStemmer extends SnowballProgram {
private static final long serialVersionUID = 1L;
/* patched */ private static final java.lang.invoke.MethodHandles.Lookup methodObject = java.lang.invoke.MethodHandles.lookup();
private final static Among a_0[] = {
new Among ( "b'", -1, 4, "", methodObject ),
new Among ( "bh", -1, 14, "", methodObject ),
new Among ( "bhf", 1, 9, "", methodObject ),
new Among ( "bp", -1, 11, "", methodObject ),
new Among ( "ch", -1, 15, "", methodObject ),
new Among ( "d'", -1, 2, "", methodObject ),
new Among ( "d'fh", 5, 3, "", methodObject ),
new Among ( "dh", -1, 16, "", methodObject ),
new Among ( "dt", -1, 13, "", methodObject ),
new Among ( "fh", -1, 17, "", methodObject ),
new Among ( "gc", -1, 7, "", methodObject ),
new Among ( "gh", -1, 18, "", methodObject ),
new Among ( "h-", -1, 1, "", methodObject ),
new Among ( "m'", -1, 4, "", methodObject ),
new Among ( "mb", -1, 6, "", methodObject ),
new Among ( "mh", -1, 19, "", methodObject ),
new Among ( "n-", -1, 1, "", methodObject ),
new Among ( "nd", -1, 8, "", methodObject ),
new Among ( "ng", -1, 10, "", methodObject ),
new Among ( "ph", -1, 20, "", methodObject ),
new Among ( "sh", -1, 5, "", methodObject ),
new Among ( "t-", -1, 1, "", methodObject ),
new Among ( "th", -1, 21, "", methodObject ),
new Among ( "ts", -1, 12, "", methodObject )
};
private final static Among a_1[] = {
new Among ( "\u00EDochta", -1, 1, "", methodObject ),
new Among ( "a\u00EDochta", 0, 1, "", methodObject ),
new Among ( "ire", -1, 2, "", methodObject ),
new Among ( "aire", 2, 2, "", methodObject ),
new Among ( "abh", -1, 1, "", methodObject ),
new Among ( "eabh", 4, 1, "", methodObject ),
new Among ( "ibh", -1, 1, "", methodObject ),
new Among ( "aibh", 6, 1, "", methodObject ),
new Among ( "amh", -1, 1, "", methodObject ),
new Among ( "eamh", 8, 1, "", methodObject ),
new Among ( "imh", -1, 1, "", methodObject ),
new Among ( "aimh", 10, 1, "", methodObject ),
new Among ( "\u00EDocht", -1, 1, "", methodObject ),
new Among ( "a\u00EDocht", 12, 1, "", methodObject ),
new Among ( "ir\u00ED", -1, 2, "", methodObject ),
new Among ( "air\u00ED", 14, 2, "", methodObject )
};
private final static Among a_2[] = {
new Among ( "\u00F3ideacha", -1, 6, "", methodObject ),
new Among ( "patacha", -1, 5, "", methodObject ),
new Among ( "achta", -1, 1, "", methodObject ),
new Among ( "arcachta", 2, 2, "", methodObject ),
new Among ( "eachta", 2, 1, "", methodObject ),
new Among ( "grafa\u00EDochta", -1, 4, "", methodObject ),
new Among ( "paite", -1, 5, "", methodObject ),
new Among ( "ach", -1, 1, "", methodObject ),
new Among ( "each", 7, 1, "", methodObject ),
new Among ( "\u00F3ideach", 8, 6, "", methodObject ),
new Among ( "gineach", 8, 3, "", methodObject ),
new Among ( "patach", 7, 5, "", methodObject ),
new Among ( "grafa\u00EDoch", -1, 4, "", methodObject ),
new Among ( "pataigh", -1, 5, "", methodObject ),
new Among ( "\u00F3idigh", -1, 6, "", methodObject ),
new Among ( "acht\u00FAil", -1, 1, "", methodObject ),
new Among ( "eacht\u00FAil", 15, 1, "", methodObject ),
new Among ( "gineas", -1, 3, "", methodObject ),
new Among ( "ginis", -1, 3, "", methodObject ),
new Among ( "acht", -1, 1, "", methodObject ),
new Among ( "arcacht", 19, 2, "", methodObject ),
new Among ( "eacht", 19, 1, "", methodObject ),
new Among ( "grafa\u00EDocht", -1, 4, "", methodObject ),
new Among ( "arcachta\u00ED", -1, 2, "", methodObject ),
new Among ( "grafa\u00EDochta\u00ED", -1, 4, "", methodObject )
};
private final static Among a_3[] = {
new Among ( "imid", -1, 1, "", methodObject ),
new Among ( "aimid", 0, 1, "", methodObject ),
new Among ( "\u00EDmid", -1, 1, "", methodObject ),
new Among ( "a\u00EDmid", 2, 1, "", methodObject ),
new Among ( "adh", -1, 2, "", methodObject ),
new Among ( "eadh", 4, 2, "", methodObject ),
new Among ( "faidh", -1, 1, "", methodObject ),
new Among ( "fidh", -1, 1, "", methodObject ),
new Among ( "\u00E1il", -1, 2, "", methodObject ),
new Among ( "ain", -1, 2, "", methodObject ),
new Among ( "tear", -1, 2, "", methodObject ),
new Among ( "tar", -1, 2, "", methodObject )
};
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 void copy_from(IrishStemmer other) {
I_p2 = other.I_p2;
I_p1 = other.I_p1;
I_pV = other.I_pV;
super.copy_from(other);
}
private boolean r_mark_regions() {
int v_1;
int v_3;
// (, line 28
I_pV = limit;
I_p1 = limit;
I_p2 = limit;
// do, line 34
v_1 = cursor;
lab0: do {
// (, line 34
// gopast, line 35
golab1: while(true)
{
lab2: do {
if (!(in_grouping(g_v, 97, 250)))
{
break lab2;
}
break golab1;
} while (false);
if (cursor >= limit)
{
break lab0;
}
cursor++;
}
// setmark pV, line 35
I_pV = cursor;
} while (false);
cursor = v_1;
// do, line 37
v_3 = cursor;
lab3: do {
// (, line 37
// gopast, line 38
golab4: while(true)
{
lab5: do {
if (!(in_grouping(g_v, 97, 250)))
{
break lab5;
}
break golab4;
} while (false);
if (cursor >= limit)
{
break lab3;
}
cursor++;
}
// gopast, line 38
golab6: while(true)
{
lab7: do {
if (!(out_grouping(g_v, 97, 250)))
{
break lab7;
}
break golab6;
} while (false);
if (cursor >= limit)
{
break lab3;
}
cursor++;
}
// setmark p1, line 38
I_p1 = cursor;
// gopast, line 39
golab8: while(true)
{
lab9: do {
if (!(in_grouping(g_v, 97, 250)))
{
break lab9;
}
break golab8;
} while (false);
if (cursor >= limit)
{
break lab3;
}
cursor++;
}
// gopast, line 39
golab10: while(true)
{
lab11: do {
if (!(out_grouping(g_v, 97, 250)))
{
break lab11;
}
break golab10;
} while (false);
if (cursor >= limit)
{
break lab3;
}
cursor++;
}
// setmark p2, line 39
I_p2 = cursor;
} while (false);
cursor = v_3;
return true;
}
private boolean r_initial_morph() {
int among_var;
// (, line 43
// [, line 44
bra = cursor;
// substring, line 44
among_var = find_among(a_0, 24);
if (among_var == 0)
{
return false;
}
// ], line 44
ket = cursor;
switch(among_var) {
case 0:
return false;
case 1:
// (, line 46
// delete, line 46
slice_del();
break;
case 2:
// (, line 50
// delete, line 50
slice_del();
break;
case 3:
// (, line 52
// <-, line 52
slice_from("f");
break;
case 4:
// (, line 55
// delete, line 55
slice_del();
break;
case 5:
// (, line 58
// <-, line 58
slice_from("s");
break;
case 6:
// (, line 61
// <-, line 61
slice_from("b");
break;
case 7:
// (, line 63
// <-, line 63
slice_from("c");
break;
case 8:
// (, line 65
// <-, line 65
slice_from("d");
break;
case 9:
// (, line 67
// <-, line 67
slice_from("f");
break;
case 10:
// (, line 69
// <-, line 69
slice_from("g");
break;
case 11:
// (, line 71
// <-, line 71
slice_from("p");
break;
case 12:
// (, line 73
// <-, line 73
slice_from("s");
break;
case 13:
// (, line 75
// <-, line 75
slice_from("t");
break;
case 14:
// (, line 79
// <-, line 79
slice_from("b");
break;
case 15:
// (, line 81
// <-, line 81
slice_from("c");
break;
case 16:
// (, line 83
// <-, line 83
slice_from("d");
break;
case 17:
// (, line 85
// <-, line 85
slice_from("f");
break;
case 18:
// (, line 87
// <-, line 87
slice_from("g");
break;
case 19:
// (, line 89
// <-, line 89
slice_from("m");
break;
case 20:
// (, line 91
// <-, line 91
slice_from("p");
break;
case 21:
// (, line 93
// <-, line 93
slice_from("t");
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;
// (, line 103
// [, line 104
ket = cursor;
// substring, line 104
among_var = find_among_b(a_1, 16);
if (among_var == 0)
{
return false;
}
// ], line 104
bra = cursor;
switch(among_var) {
case 0:
return false;
case 1:
// (, line 108
// call R1, line 108
if (!r_R1())
{
return false;
}
// delete, line 108
slice_del();
break;
case 2:
// (, line 110
// call R2, line 110
if (!r_R2())
{
return false;
}
// delete, line 110
slice_del();
break;
}
return true;
}
private boolean r_deriv() {
int among_var;
// (, line 113
// [, line 114
ket = cursor;
// substring, line 114
among_var = find_among_b(a_2, 25);
if (among_var == 0)
{
return false;
}
// ], line 114
bra = cursor;
switch(among_var) {
case 0:
return false;
case 1:
// (, line 116
// call R2, line 116
if (!r_R2())
{
return false;
}
// delete, line 116
slice_del();
break;
case 2:
// (, line 118
// <-, line 118
slice_from("arc");
break;
case 3:
// (, line 120
// <-, line 120
slice_from("gin");
break;
case 4:
// (, line 122
// <-, line 122
slice_from("graf");
break;
case 5:
// (, line 124
// <-, line 124
slice_from("paite");
break;
case 6:
// (, line 126
// <-, line 126
slice_from("\u00F3id");
break;
}
return true;
}
private boolean r_verb_sfx() {
int among_var;
// (, line 129
// [, line 130
ket = cursor;
// substring, line 130
among_var = find_among_b(a_3, 12);
if (among_var == 0)
{
return false;
}
// ], line 130
bra = cursor;
switch(among_var) {
case 0:
return false;
case 1:
// (, line 133
// call RV, line 133
if (!r_RV())
{
return false;
}
// delete, line 133
slice_del();
break;
case 2:
// (, line 138
// call R1, line 138
if (!r_R1())
{
return false;
}
// delete, line 138
slice_del();
break;
}
return true;
}
@Override
public boolean stem() {
int v_1;
int v_2;
int v_3;
int v_4;
int v_5;
// (, line 143
// do, line 144
v_1 = cursor;
lab0: do {
// call initial_morph, line 144
if (!r_initial_morph())
{
break lab0;
}
} while (false);
cursor = v_1;
// do, line 145
v_2 = cursor;
lab1: do {
// call mark_regions, line 145
if (!r_mark_regions())
{
break lab1;
}
} while (false);
cursor = v_2;
// backwards, line 146
limit_backward = cursor; cursor = limit;
// (, line 146
// do, line 147
v_3 = limit - cursor;
lab2: do {
// call noun_sfx, line 147
if (!r_noun_sfx())
{
break lab2;
}
} while (false);
cursor = limit - v_3;
// do, line 148
v_4 = limit - cursor;
lab3: do {
// call deriv, line 148
if (!r_deriv())
{
break lab3;
}
} while (false);
cursor = limit - v_4;
// do, line 149
v_5 = limit - cursor;
lab4: do {
// call verb_sfx, line 149
if (!r_verb_sfx())
{
break lab4;
}
} while (false);
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();
}
}