873 lines
24 KiB
JavaScript
873 lines
24 KiB
JavaScript
// Generated by Snowball 2.1.0 - https://snowballstem.org/
|
|
|
|
/**@constructor*/
|
|
RomanianStemmer = function() {
|
|
var base = new BaseStemmer();
|
|
/** @const */ var a_0 = [
|
|
["", -1, 3],
|
|
["I", 0, 1],
|
|
["U", 0, 2]
|
|
];
|
|
|
|
/** @const */ var a_1 = [
|
|
["ea", -1, 3],
|
|
["a\u0163ia", -1, 7],
|
|
["aua", -1, 2],
|
|
["iua", -1, 4],
|
|
["a\u0163ie", -1, 7],
|
|
["ele", -1, 3],
|
|
["ile", -1, 5],
|
|
["iile", 6, 4],
|
|
["iei", -1, 4],
|
|
["atei", -1, 6],
|
|
["ii", -1, 4],
|
|
["ului", -1, 1],
|
|
["ul", -1, 1],
|
|
["elor", -1, 3],
|
|
["ilor", -1, 4],
|
|
["iilor", 14, 4]
|
|
];
|
|
|
|
/** @const */ var a_2 = [
|
|
["icala", -1, 4],
|
|
["iciva", -1, 4],
|
|
["ativa", -1, 5],
|
|
["itiva", -1, 6],
|
|
["icale", -1, 4],
|
|
["a\u0163iune", -1, 5],
|
|
["i\u0163iune", -1, 6],
|
|
["atoare", -1, 5],
|
|
["itoare", -1, 6],
|
|
["\u0103toare", -1, 5],
|
|
["icitate", -1, 4],
|
|
["abilitate", -1, 1],
|
|
["ibilitate", -1, 2],
|
|
["ivitate", -1, 3],
|
|
["icive", -1, 4],
|
|
["ative", -1, 5],
|
|
["itive", -1, 6],
|
|
["icali", -1, 4],
|
|
["atori", -1, 5],
|
|
["icatori", 18, 4],
|
|
["itori", -1, 6],
|
|
["\u0103tori", -1, 5],
|
|
["icitati", -1, 4],
|
|
["abilitati", -1, 1],
|
|
["ivitati", -1, 3],
|
|
["icivi", -1, 4],
|
|
["ativi", -1, 5],
|
|
["itivi", -1, 6],
|
|
["icit\u0103i", -1, 4],
|
|
["abilit\u0103i", -1, 1],
|
|
["ivit\u0103i", -1, 3],
|
|
["icit\u0103\u0163i", -1, 4],
|
|
["abilit\u0103\u0163i", -1, 1],
|
|
["ivit\u0103\u0163i", -1, 3],
|
|
["ical", -1, 4],
|
|
["ator", -1, 5],
|
|
["icator", 35, 4],
|
|
["itor", -1, 6],
|
|
["\u0103tor", -1, 5],
|
|
["iciv", -1, 4],
|
|
["ativ", -1, 5],
|
|
["itiv", -1, 6],
|
|
["ical\u0103", -1, 4],
|
|
["iciv\u0103", -1, 4],
|
|
["ativ\u0103", -1, 5],
|
|
["itiv\u0103", -1, 6]
|
|
];
|
|
|
|
/** @const */ var a_3 = [
|
|
["ica", -1, 1],
|
|
["abila", -1, 1],
|
|
["ibila", -1, 1],
|
|
["oasa", -1, 1],
|
|
["ata", -1, 1],
|
|
["ita", -1, 1],
|
|
["anta", -1, 1],
|
|
["ista", -1, 3],
|
|
["uta", -1, 1],
|
|
["iva", -1, 1],
|
|
["ic", -1, 1],
|
|
["ice", -1, 1],
|
|
["abile", -1, 1],
|
|
["ibile", -1, 1],
|
|
["isme", -1, 3],
|
|
["iune", -1, 2],
|
|
["oase", -1, 1],
|
|
["ate", -1, 1],
|
|
["itate", 17, 1],
|
|
["ite", -1, 1],
|
|
["ante", -1, 1],
|
|
["iste", -1, 3],
|
|
["ute", -1, 1],
|
|
["ive", -1, 1],
|
|
["ici", -1, 1],
|
|
["abili", -1, 1],
|
|
["ibili", -1, 1],
|
|
["iuni", -1, 2],
|
|
["atori", -1, 1],
|
|
["osi", -1, 1],
|
|
["ati", -1, 1],
|
|
["itati", 30, 1],
|
|
["iti", -1, 1],
|
|
["anti", -1, 1],
|
|
["isti", -1, 3],
|
|
["uti", -1, 1],
|
|
["i\u015Fti", -1, 3],
|
|
["ivi", -1, 1],
|
|
["it\u0103i", -1, 1],
|
|
["o\u015Fi", -1, 1],
|
|
["it\u0103\u0163i", -1, 1],
|
|
["abil", -1, 1],
|
|
["ibil", -1, 1],
|
|
["ism", -1, 3],
|
|
["ator", -1, 1],
|
|
["os", -1, 1],
|
|
["at", -1, 1],
|
|
["it", -1, 1],
|
|
["ant", -1, 1],
|
|
["ist", -1, 3],
|
|
["ut", -1, 1],
|
|
["iv", -1, 1],
|
|
["ic\u0103", -1, 1],
|
|
["abil\u0103", -1, 1],
|
|
["ibil\u0103", -1, 1],
|
|
["oas\u0103", -1, 1],
|
|
["at\u0103", -1, 1],
|
|
["it\u0103", -1, 1],
|
|
["ant\u0103", -1, 1],
|
|
["ist\u0103", -1, 3],
|
|
["ut\u0103", -1, 1],
|
|
["iv\u0103", -1, 1]
|
|
];
|
|
|
|
/** @const */ var a_4 = [
|
|
["ea", -1, 1],
|
|
["ia", -1, 1],
|
|
["esc", -1, 1],
|
|
["\u0103sc", -1, 1],
|
|
["ind", -1, 1],
|
|
["\u00E2nd", -1, 1],
|
|
["are", -1, 1],
|
|
["ere", -1, 1],
|
|
["ire", -1, 1],
|
|
["\u00E2re", -1, 1],
|
|
["se", -1, 2],
|
|
["ase", 10, 1],
|
|
["sese", 10, 2],
|
|
["ise", 10, 1],
|
|
["use", 10, 1],
|
|
["\u00E2se", 10, 1],
|
|
["e\u015Fte", -1, 1],
|
|
["\u0103\u015Fte", -1, 1],
|
|
["eze", -1, 1],
|
|
["ai", -1, 1],
|
|
["eai", 19, 1],
|
|
["iai", 19, 1],
|
|
["sei", -1, 2],
|
|
["e\u015Fti", -1, 1],
|
|
["\u0103\u015Fti", -1, 1],
|
|
["ui", -1, 1],
|
|
["ezi", -1, 1],
|
|
["\u00E2i", -1, 1],
|
|
["a\u015Fi", -1, 1],
|
|
["se\u015Fi", -1, 2],
|
|
["ase\u015Fi", 29, 1],
|
|
["sese\u015Fi", 29, 2],
|
|
["ise\u015Fi", 29, 1],
|
|
["use\u015Fi", 29, 1],
|
|
["\u00E2se\u015Fi", 29, 1],
|
|
["i\u015Fi", -1, 1],
|
|
["u\u015Fi", -1, 1],
|
|
["\u00E2\u015Fi", -1, 1],
|
|
["a\u0163i", -1, 2],
|
|
["ea\u0163i", 38, 1],
|
|
["ia\u0163i", 38, 1],
|
|
["e\u0163i", -1, 2],
|
|
["i\u0163i", -1, 2],
|
|
["\u00E2\u0163i", -1, 2],
|
|
["ar\u0103\u0163i", -1, 1],
|
|
["ser\u0103\u0163i", -1, 2],
|
|
["aser\u0103\u0163i", 45, 1],
|
|
["seser\u0103\u0163i", 45, 2],
|
|
["iser\u0103\u0163i", 45, 1],
|
|
["user\u0103\u0163i", 45, 1],
|
|
["\u00E2ser\u0103\u0163i", 45, 1],
|
|
["ir\u0103\u0163i", -1, 1],
|
|
["ur\u0103\u0163i", -1, 1],
|
|
["\u00E2r\u0103\u0163i", -1, 1],
|
|
["am", -1, 1],
|
|
["eam", 54, 1],
|
|
["iam", 54, 1],
|
|
["em", -1, 2],
|
|
["asem", 57, 1],
|
|
["sesem", 57, 2],
|
|
["isem", 57, 1],
|
|
["usem", 57, 1],
|
|
["\u00E2sem", 57, 1],
|
|
["im", -1, 2],
|
|
["\u00E2m", -1, 2],
|
|
["\u0103m", -1, 2],
|
|
["ar\u0103m", 65, 1],
|
|
["ser\u0103m", 65, 2],
|
|
["aser\u0103m", 67, 1],
|
|
["seser\u0103m", 67, 2],
|
|
["iser\u0103m", 67, 1],
|
|
["user\u0103m", 67, 1],
|
|
["\u00E2ser\u0103m", 67, 1],
|
|
["ir\u0103m", 65, 1],
|
|
["ur\u0103m", 65, 1],
|
|
["\u00E2r\u0103m", 65, 1],
|
|
["au", -1, 1],
|
|
["eau", 76, 1],
|
|
["iau", 76, 1],
|
|
["indu", -1, 1],
|
|
["\u00E2ndu", -1, 1],
|
|
["ez", -1, 1],
|
|
["easc\u0103", -1, 1],
|
|
["ar\u0103", -1, 1],
|
|
["ser\u0103", -1, 2],
|
|
["aser\u0103", 84, 1],
|
|
["seser\u0103", 84, 2],
|
|
["iser\u0103", 84, 1],
|
|
["user\u0103", 84, 1],
|
|
["\u00E2ser\u0103", 84, 1],
|
|
["ir\u0103", -1, 1],
|
|
["ur\u0103", -1, 1],
|
|
["\u00E2r\u0103", -1, 1],
|
|
["eaz\u0103", -1, 1]
|
|
];
|
|
|
|
/** @const */ var a_5 = [
|
|
["a", -1, 1],
|
|
["e", -1, 1],
|
|
["ie", 1, 1],
|
|
["i", -1, 1],
|
|
["\u0103", -1, 1]
|
|
];
|
|
|
|
/** @const */ var /** Array<int> */ g_v = [17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 32, 0, 0, 4];
|
|
|
|
var /** boolean */ B_standard_suffix_removed = false;
|
|
var /** number */ I_p2 = 0;
|
|
var /** number */ I_p1 = 0;
|
|
var /** number */ I_pV = 0;
|
|
|
|
|
|
/** @return {boolean} */
|
|
function r_prelude() {
|
|
while(true)
|
|
{
|
|
var /** number */ v_1 = base.cursor;
|
|
lab0: {
|
|
golab1: while(true)
|
|
{
|
|
var /** number */ v_2 = base.cursor;
|
|
lab2: {
|
|
if (!(base.in_grouping(g_v, 97, 259)))
|
|
{
|
|
break lab2;
|
|
}
|
|
base.bra = base.cursor;
|
|
lab3: {
|
|
var /** number */ v_3 = base.cursor;
|
|
lab4: {
|
|
if (!(base.eq_s("u")))
|
|
{
|
|
break lab4;
|
|
}
|
|
base.ket = base.cursor;
|
|
if (!(base.in_grouping(g_v, 97, 259)))
|
|
{
|
|
break lab4;
|
|
}
|
|
if (!base.slice_from("U"))
|
|
{
|
|
return false;
|
|
}
|
|
break lab3;
|
|
}
|
|
base.cursor = v_3;
|
|
if (!(base.eq_s("i")))
|
|
{
|
|
break lab2;
|
|
}
|
|
base.ket = base.cursor;
|
|
if (!(base.in_grouping(g_v, 97, 259)))
|
|
{
|
|
break lab2;
|
|
}
|
|
if (!base.slice_from("I"))
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
base.cursor = v_2;
|
|
break golab1;
|
|
}
|
|
base.cursor = v_2;
|
|
if (base.cursor >= base.limit)
|
|
{
|
|
break lab0;
|
|
}
|
|
base.cursor++;
|
|
}
|
|
continue;
|
|
}
|
|
base.cursor = v_1;
|
|
break;
|
|
}
|
|
return true;
|
|
};
|
|
|
|
/** @return {boolean} */
|
|
function r_mark_regions() {
|
|
I_pV = base.limit;
|
|
I_p1 = base.limit;
|
|
I_p2 = base.limit;
|
|
var /** number */ v_1 = base.cursor;
|
|
lab0: {
|
|
lab1: {
|
|
var /** number */ v_2 = base.cursor;
|
|
lab2: {
|
|
if (!(base.in_grouping(g_v, 97, 259)))
|
|
{
|
|
break lab2;
|
|
}
|
|
lab3: {
|
|
var /** number */ v_3 = base.cursor;
|
|
lab4: {
|
|
if (!(base.out_grouping(g_v, 97, 259)))
|
|
{
|
|
break lab4;
|
|
}
|
|
golab5: while(true)
|
|
{
|
|
lab6: {
|
|
if (!(base.in_grouping(g_v, 97, 259)))
|
|
{
|
|
break lab6;
|
|
}
|
|
break golab5;
|
|
}
|
|
if (base.cursor >= base.limit)
|
|
{
|
|
break lab4;
|
|
}
|
|
base.cursor++;
|
|
}
|
|
break lab3;
|
|
}
|
|
base.cursor = v_3;
|
|
if (!(base.in_grouping(g_v, 97, 259)))
|
|
{
|
|
break lab2;
|
|
}
|
|
golab7: while(true)
|
|
{
|
|
lab8: {
|
|
if (!(base.out_grouping(g_v, 97, 259)))
|
|
{
|
|
break lab8;
|
|
}
|
|
break golab7;
|
|
}
|
|
if (base.cursor >= base.limit)
|
|
{
|
|
break lab2;
|
|
}
|
|
base.cursor++;
|
|
}
|
|
}
|
|
break lab1;
|
|
}
|
|
base.cursor = v_2;
|
|
if (!(base.out_grouping(g_v, 97, 259)))
|
|
{
|
|
break lab0;
|
|
}
|
|
lab9: {
|
|
var /** number */ v_6 = base.cursor;
|
|
lab10: {
|
|
if (!(base.out_grouping(g_v, 97, 259)))
|
|
{
|
|
break lab10;
|
|
}
|
|
golab11: while(true)
|
|
{
|
|
lab12: {
|
|
if (!(base.in_grouping(g_v, 97, 259)))
|
|
{
|
|
break lab12;
|
|
}
|
|
break golab11;
|
|
}
|
|
if (base.cursor >= base.limit)
|
|
{
|
|
break lab10;
|
|
}
|
|
base.cursor++;
|
|
}
|
|
break lab9;
|
|
}
|
|
base.cursor = v_6;
|
|
if (!(base.in_grouping(g_v, 97, 259)))
|
|
{
|
|
break lab0;
|
|
}
|
|
if (base.cursor >= base.limit)
|
|
{
|
|
break lab0;
|
|
}
|
|
base.cursor++;
|
|
}
|
|
}
|
|
I_pV = base.cursor;
|
|
}
|
|
base.cursor = v_1;
|
|
var /** number */ v_8 = base.cursor;
|
|
lab13: {
|
|
golab14: while(true)
|
|
{
|
|
lab15: {
|
|
if (!(base.in_grouping(g_v, 97, 259)))
|
|
{
|
|
break lab15;
|
|
}
|
|
break golab14;
|
|
}
|
|
if (base.cursor >= base.limit)
|
|
{
|
|
break lab13;
|
|
}
|
|
base.cursor++;
|
|
}
|
|
golab16: while(true)
|
|
{
|
|
lab17: {
|
|
if (!(base.out_grouping(g_v, 97, 259)))
|
|
{
|
|
break lab17;
|
|
}
|
|
break golab16;
|
|
}
|
|
if (base.cursor >= base.limit)
|
|
{
|
|
break lab13;
|
|
}
|
|
base.cursor++;
|
|
}
|
|
I_p1 = base.cursor;
|
|
golab18: while(true)
|
|
{
|
|
lab19: {
|
|
if (!(base.in_grouping(g_v, 97, 259)))
|
|
{
|
|
break lab19;
|
|
}
|
|
break golab18;
|
|
}
|
|
if (base.cursor >= base.limit)
|
|
{
|
|
break lab13;
|
|
}
|
|
base.cursor++;
|
|
}
|
|
golab20: while(true)
|
|
{
|
|
lab21: {
|
|
if (!(base.out_grouping(g_v, 97, 259)))
|
|
{
|
|
break lab21;
|
|
}
|
|
break golab20;
|
|
}
|
|
if (base.cursor >= base.limit)
|
|
{
|
|
break lab13;
|
|
}
|
|
base.cursor++;
|
|
}
|
|
I_p2 = base.cursor;
|
|
}
|
|
base.cursor = v_8;
|
|
return true;
|
|
};
|
|
|
|
/** @return {boolean} */
|
|
function r_postlude() {
|
|
var /** number */ among_var;
|
|
while(true)
|
|
{
|
|
var /** number */ v_1 = base.cursor;
|
|
lab0: {
|
|
base.bra = base.cursor;
|
|
among_var = base.find_among(a_0);
|
|
if (among_var == 0)
|
|
{
|
|
break lab0;
|
|
}
|
|
base.ket = base.cursor;
|
|
switch (among_var) {
|
|
case 1:
|
|
if (!base.slice_from("i"))
|
|
{
|
|
return false;
|
|
}
|
|
break;
|
|
case 2:
|
|
if (!base.slice_from("u"))
|
|
{
|
|
return false;
|
|
}
|
|
break;
|
|
case 3:
|
|
if (base.cursor >= base.limit)
|
|
{
|
|
break lab0;
|
|
}
|
|
base.cursor++;
|
|
break;
|
|
}
|
|
continue;
|
|
}
|
|
base.cursor = v_1;
|
|
break;
|
|
}
|
|
return true;
|
|
};
|
|
|
|
/** @return {boolean} */
|
|
function r_RV() {
|
|
if (!(I_pV <= base.cursor))
|
|
{
|
|
return false;
|
|
}
|
|
return true;
|
|
};
|
|
|
|
/** @return {boolean} */
|
|
function r_R1() {
|
|
if (!(I_p1 <= base.cursor))
|
|
{
|
|
return false;
|
|
}
|
|
return true;
|
|
};
|
|
|
|
/** @return {boolean} */
|
|
function r_R2() {
|
|
if (!(I_p2 <= base.cursor))
|
|
{
|
|
return false;
|
|
}
|
|
return true;
|
|
};
|
|
|
|
/** @return {boolean} */
|
|
function r_step_0() {
|
|
var /** number */ among_var;
|
|
base.ket = base.cursor;
|
|
among_var = base.find_among_b(a_1);
|
|
if (among_var == 0)
|
|
{
|
|
return false;
|
|
}
|
|
base.bra = base.cursor;
|
|
if (!r_R1())
|
|
{
|
|
return false;
|
|
}
|
|
switch (among_var) {
|
|
case 1:
|
|
if (!base.slice_del())
|
|
{
|
|
return false;
|
|
}
|
|
break;
|
|
case 2:
|
|
if (!base.slice_from("a"))
|
|
{
|
|
return false;
|
|
}
|
|
break;
|
|
case 3:
|
|
if (!base.slice_from("e"))
|
|
{
|
|
return false;
|
|
}
|
|
break;
|
|
case 4:
|
|
if (!base.slice_from("i"))
|
|
{
|
|
return false;
|
|
}
|
|
break;
|
|
case 5:
|
|
{
|
|
var /** number */ v_1 = base.limit - base.cursor;
|
|
lab0: {
|
|
if (!(base.eq_s_b("ab")))
|
|
{
|
|
break lab0;
|
|
}
|
|
return false;
|
|
}
|
|
base.cursor = base.limit - v_1;
|
|
}
|
|
if (!base.slice_from("i"))
|
|
{
|
|
return false;
|
|
}
|
|
break;
|
|
case 6:
|
|
if (!base.slice_from("at"))
|
|
{
|
|
return false;
|
|
}
|
|
break;
|
|
case 7:
|
|
if (!base.slice_from("a\u0163i"))
|
|
{
|
|
return false;
|
|
}
|
|
break;
|
|
}
|
|
return true;
|
|
};
|
|
|
|
/** @return {boolean} */
|
|
function r_combo_suffix() {
|
|
var /** number */ among_var;
|
|
var /** number */ v_1 = base.limit - base.cursor;
|
|
base.ket = base.cursor;
|
|
among_var = base.find_among_b(a_2);
|
|
if (among_var == 0)
|
|
{
|
|
return false;
|
|
}
|
|
base.bra = base.cursor;
|
|
if (!r_R1())
|
|
{
|
|
return false;
|
|
}
|
|
switch (among_var) {
|
|
case 1:
|
|
if (!base.slice_from("abil"))
|
|
{
|
|
return false;
|
|
}
|
|
break;
|
|
case 2:
|
|
if (!base.slice_from("ibil"))
|
|
{
|
|
return false;
|
|
}
|
|
break;
|
|
case 3:
|
|
if (!base.slice_from("iv"))
|
|
{
|
|
return false;
|
|
}
|
|
break;
|
|
case 4:
|
|
if (!base.slice_from("ic"))
|
|
{
|
|
return false;
|
|
}
|
|
break;
|
|
case 5:
|
|
if (!base.slice_from("at"))
|
|
{
|
|
return false;
|
|
}
|
|
break;
|
|
case 6:
|
|
if (!base.slice_from("it"))
|
|
{
|
|
return false;
|
|
}
|
|
break;
|
|
}
|
|
B_standard_suffix_removed = true;
|
|
base.cursor = base.limit - v_1;
|
|
return true;
|
|
};
|
|
|
|
/** @return {boolean} */
|
|
function r_standard_suffix() {
|
|
var /** number */ among_var;
|
|
B_standard_suffix_removed = false;
|
|
while(true)
|
|
{
|
|
var /** number */ v_1 = base.limit - base.cursor;
|
|
lab0: {
|
|
if (!r_combo_suffix())
|
|
{
|
|
break lab0;
|
|
}
|
|
continue;
|
|
}
|
|
base.cursor = base.limit - v_1;
|
|
break;
|
|
}
|
|
base.ket = base.cursor;
|
|
among_var = base.find_among_b(a_3);
|
|
if (among_var == 0)
|
|
{
|
|
return false;
|
|
}
|
|
base.bra = base.cursor;
|
|
if (!r_R2())
|
|
{
|
|
return false;
|
|
}
|
|
switch (among_var) {
|
|
case 1:
|
|
if (!base.slice_del())
|
|
{
|
|
return false;
|
|
}
|
|
break;
|
|
case 2:
|
|
if (!(base.eq_s_b("\u0163")))
|
|
{
|
|
return false;
|
|
}
|
|
base.bra = base.cursor;
|
|
if (!base.slice_from("t"))
|
|
{
|
|
return false;
|
|
}
|
|
break;
|
|
case 3:
|
|
if (!base.slice_from("ist"))
|
|
{
|
|
return false;
|
|
}
|
|
break;
|
|
}
|
|
B_standard_suffix_removed = true;
|
|
return true;
|
|
};
|
|
|
|
/** @return {boolean} */
|
|
function r_verb_suffix() {
|
|
var /** number */ among_var;
|
|
if (base.cursor < I_pV)
|
|
{
|
|
return false;
|
|
}
|
|
var /** number */ v_2 = base.limit_backward;
|
|
base.limit_backward = I_pV;
|
|
base.ket = base.cursor;
|
|
among_var = base.find_among_b(a_4);
|
|
if (among_var == 0)
|
|
{
|
|
base.limit_backward = v_2;
|
|
return false;
|
|
}
|
|
base.bra = base.cursor;
|
|
switch (among_var) {
|
|
case 1:
|
|
lab0: {
|
|
var /** number */ v_3 = base.limit - base.cursor;
|
|
lab1: {
|
|
if (!(base.out_grouping_b(g_v, 97, 259)))
|
|
{
|
|
break lab1;
|
|
}
|
|
break lab0;
|
|
}
|
|
base.cursor = base.limit - v_3;
|
|
if (!(base.eq_s_b("u")))
|
|
{
|
|
base.limit_backward = v_2;
|
|
return false;
|
|
}
|
|
}
|
|
if (!base.slice_del())
|
|
{
|
|
return false;
|
|
}
|
|
break;
|
|
case 2:
|
|
if (!base.slice_del())
|
|
{
|
|
return false;
|
|
}
|
|
break;
|
|
}
|
|
base.limit_backward = v_2;
|
|
return true;
|
|
};
|
|
|
|
/** @return {boolean} */
|
|
function r_vowel_suffix() {
|
|
base.ket = base.cursor;
|
|
if (base.find_among_b(a_5) == 0)
|
|
{
|
|
return false;
|
|
}
|
|
base.bra = base.cursor;
|
|
if (!r_RV())
|
|
{
|
|
return false;
|
|
}
|
|
if (!base.slice_del())
|
|
{
|
|
return false;
|
|
}
|
|
return true;
|
|
};
|
|
|
|
this.stem = /** @return {boolean} */ function() {
|
|
var /** number */ v_1 = base.cursor;
|
|
r_prelude();
|
|
base.cursor = v_1;
|
|
r_mark_regions();
|
|
base.limit_backward = base.cursor; base.cursor = base.limit;
|
|
var /** number */ v_3 = base.limit - base.cursor;
|
|
r_step_0();
|
|
base.cursor = base.limit - v_3;
|
|
var /** number */ v_4 = base.limit - base.cursor;
|
|
r_standard_suffix();
|
|
base.cursor = base.limit - v_4;
|
|
var /** number */ v_5 = base.limit - base.cursor;
|
|
lab0: {
|
|
lab1: {
|
|
var /** number */ v_6 = base.limit - base.cursor;
|
|
lab2: {
|
|
if (!B_standard_suffix_removed)
|
|
{
|
|
break lab2;
|
|
}
|
|
break lab1;
|
|
}
|
|
base.cursor = base.limit - v_6;
|
|
if (!r_verb_suffix())
|
|
{
|
|
break lab0;
|
|
}
|
|
}
|
|
}
|
|
base.cursor = base.limit - v_5;
|
|
var /** number */ v_7 = base.limit - base.cursor;
|
|
r_vowel_suffix();
|
|
base.cursor = base.limit - v_7;
|
|
base.cursor = base.limit_backward;
|
|
var /** number */ v_8 = base.cursor;
|
|
r_postlude();
|
|
base.cursor = v_8;
|
|
return true;
|
|
};
|
|
|
|
/**@return{string}*/
|
|
this['stemWord'] = function(/**string*/word) {
|
|
base.setCurrent(word);
|
|
this.stem();
|
|
return base.getCurrent();
|
|
};
|
|
};
|