// Generated by Snowball 2.1.0 - https://snowballstem.org/ /**@constructor*/ HungarianStemmer = function() { var base = new BaseStemmer(); /** @const */ var a_0 = [ ["cs", -1, -1], ["dzs", -1, -1], ["gy", -1, -1], ["ly", -1, -1], ["ny", -1, -1], ["sz", -1, -1], ["ty", -1, -1], ["zs", -1, -1] ]; /** @const */ var a_1 = [ ["\u00E1", -1, 1], ["\u00E9", -1, 2] ]; /** @const */ var a_2 = [ ["bb", -1, -1], ["cc", -1, -1], ["dd", -1, -1], ["ff", -1, -1], ["gg", -1, -1], ["jj", -1, -1], ["kk", -1, -1], ["ll", -1, -1], ["mm", -1, -1], ["nn", -1, -1], ["pp", -1, -1], ["rr", -1, -1], ["ccs", -1, -1], ["ss", -1, -1], ["zzs", -1, -1], ["tt", -1, -1], ["vv", -1, -1], ["ggy", -1, -1], ["lly", -1, -1], ["nny", -1, -1], ["tty", -1, -1], ["ssz", -1, -1], ["zz", -1, -1] ]; /** @const */ var a_3 = [ ["al", -1, 1], ["el", -1, 1] ]; /** @const */ var a_4 = [ ["ba", -1, -1], ["ra", -1, -1], ["be", -1, -1], ["re", -1, -1], ["ig", -1, -1], ["nak", -1, -1], ["nek", -1, -1], ["val", -1, -1], ["vel", -1, -1], ["ul", -1, -1], ["n\u00E1l", -1, -1], ["n\u00E9l", -1, -1], ["b\u00F3l", -1, -1], ["r\u00F3l", -1, -1], ["t\u00F3l", -1, -1], ["\u00FCl", -1, -1], ["b\u0151l", -1, -1], ["r\u0151l", -1, -1], ["t\u0151l", -1, -1], ["n", -1, -1], ["an", 19, -1], ["ban", 20, -1], ["en", 19, -1], ["ben", 22, -1], ["k\u00E9ppen", 22, -1], ["on", 19, -1], ["\u00F6n", 19, -1], ["k\u00E9pp", -1, -1], ["kor", -1, -1], ["t", -1, -1], ["at", 29, -1], ["et", 29, -1], ["k\u00E9nt", 29, -1], ["ank\u00E9nt", 32, -1], ["enk\u00E9nt", 32, -1], ["onk\u00E9nt", 32, -1], ["ot", 29, -1], ["\u00E9rt", 29, -1], ["\u00F6t", 29, -1], ["hez", -1, -1], ["hoz", -1, -1], ["h\u00F6z", -1, -1], ["v\u00E1", -1, -1], ["v\u00E9", -1, -1] ]; /** @const */ var a_5 = [ ["\u00E1n", -1, 2], ["\u00E9n", -1, 1], ["\u00E1nk\u00E9nt", -1, 2] ]; /** @const */ var a_6 = [ ["stul", -1, 1], ["astul", 0, 1], ["\u00E1stul", 0, 2], ["st\u00FCl", -1, 1], ["est\u00FCl", 3, 1], ["\u00E9st\u00FCl", 3, 3] ]; /** @const */ var a_7 = [ ["\u00E1", -1, 1], ["\u00E9", -1, 1] ]; /** @const */ var a_8 = [ ["k", -1, 3], ["ak", 0, 3], ["ek", 0, 3], ["ok", 0, 3], ["\u00E1k", 0, 1], ["\u00E9k", 0, 2], ["\u00F6k", 0, 3] ]; /** @const */ var a_9 = [ ["\u00E9i", -1, 1], ["\u00E1\u00E9i", 0, 3], ["\u00E9\u00E9i", 0, 2], ["\u00E9", -1, 1], ["k\u00E9", 3, 1], ["ak\u00E9", 4, 1], ["ek\u00E9", 4, 1], ["ok\u00E9", 4, 1], ["\u00E1k\u00E9", 4, 3], ["\u00E9k\u00E9", 4, 2], ["\u00F6k\u00E9", 4, 1], ["\u00E9\u00E9", 3, 2] ]; /** @const */ var a_10 = [ ["a", -1, 1], ["ja", 0, 1], ["d", -1, 1], ["ad", 2, 1], ["ed", 2, 1], ["od", 2, 1], ["\u00E1d", 2, 2], ["\u00E9d", 2, 3], ["\u00F6d", 2, 1], ["e", -1, 1], ["je", 9, 1], ["nk", -1, 1], ["unk", 11, 1], ["\u00E1nk", 11, 2], ["\u00E9nk", 11, 3], ["\u00FCnk", 11, 1], ["uk", -1, 1], ["juk", 16, 1], ["\u00E1juk", 17, 2], ["\u00FCk", -1, 1], ["j\u00FCk", 19, 1], ["\u00E9j\u00FCk", 20, 3], ["m", -1, 1], ["am", 22, 1], ["em", 22, 1], ["om", 22, 1], ["\u00E1m", 22, 2], ["\u00E9m", 22, 3], ["o", -1, 1], ["\u00E1", -1, 2], ["\u00E9", -1, 3] ]; /** @const */ var a_11 = [ ["id", -1, 1], ["aid", 0, 1], ["jaid", 1, 1], ["eid", 0, 1], ["jeid", 3, 1], ["\u00E1id", 0, 2], ["\u00E9id", 0, 3], ["i", -1, 1], ["ai", 7, 1], ["jai", 8, 1], ["ei", 7, 1], ["jei", 10, 1], ["\u00E1i", 7, 2], ["\u00E9i", 7, 3], ["itek", -1, 1], ["eitek", 14, 1], ["jeitek", 15, 1], ["\u00E9itek", 14, 3], ["ik", -1, 1], ["aik", 18, 1], ["jaik", 19, 1], ["eik", 18, 1], ["jeik", 21, 1], ["\u00E1ik", 18, 2], ["\u00E9ik", 18, 3], ["ink", -1, 1], ["aink", 25, 1], ["jaink", 26, 1], ["eink", 25, 1], ["jeink", 28, 1], ["\u00E1ink", 25, 2], ["\u00E9ink", 25, 3], ["aitok", -1, 1], ["jaitok", 32, 1], ["\u00E1itok", -1, 2], ["im", -1, 1], ["aim", 35, 1], ["jaim", 36, 1], ["eim", 35, 1], ["jeim", 38, 1], ["\u00E1im", 35, 2], ["\u00E9im", 35, 3] ]; /** @const */ var /** Array */ g_v = [17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 36, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1]; var /** number */ I_p1 = 0; /** @return {boolean} */ function r_mark_regions() { I_p1 = base.limit; lab0: { var /** number */ v_1 = base.cursor; lab1: { if (!(base.in_grouping(g_v, 97, 369))) { break lab1; } golab2: while(true) { var /** number */ v_2 = base.cursor; lab3: { if (!(base.out_grouping(g_v, 97, 369))) { break lab3; } base.cursor = v_2; break golab2; } base.cursor = v_2; if (base.cursor >= base.limit) { break lab1; } base.cursor++; } lab4: { var /** number */ v_3 = base.cursor; lab5: { if (base.find_among(a_0) == 0) { break lab5; } break lab4; } base.cursor = v_3; if (base.cursor >= base.limit) { break lab1; } base.cursor++; } I_p1 = base.cursor; break lab0; } base.cursor = v_1; if (!(base.out_grouping(g_v, 97, 369))) { return false; } golab6: while(true) { lab7: { if (!(base.in_grouping(g_v, 97, 369))) { break lab7; } break golab6; } if (base.cursor >= base.limit) { return false; } base.cursor++; } I_p1 = base.cursor; } return true; }; /** @return {boolean} */ function r_R1() { if (!(I_p1 <= base.cursor)) { return false; } return true; }; /** @return {boolean} */ function r_v_ending() { 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_from("a")) { return false; } break; case 2: if (!base.slice_from("e")) { return false; } break; } return true; }; /** @return {boolean} */ function r_double() { var /** number */ v_1 = base.limit - base.cursor; if (base.find_among_b(a_2) == 0) { return false; } base.cursor = base.limit - v_1; return true; }; /** @return {boolean} */ function r_undouble() { if (base.cursor <= base.limit_backward) { return false; } base.cursor--; base.ket = base.cursor; { var /** number */ c1 = base.cursor - 1; if (c1 < base.limit_backward) { return false; } base.cursor = c1; } base.bra = base.cursor; if (!base.slice_del()) { return false; } return true; }; /** @return {boolean} */ function r_instrum() { base.ket = base.cursor; if (base.find_among_b(a_3) == 0) { return false; } base.bra = base.cursor; if (!r_R1()) { return false; } if (!r_double()) { return false; } if (!base.slice_del()) { return false; } if (!r_undouble()) { return false; } return true; }; /** @return {boolean} */ function r_case() { base.ket = base.cursor; if (base.find_among_b(a_4) == 0) { return false; } base.bra = base.cursor; if (!r_R1()) { return false; } if (!base.slice_del()) { return false; } if (!r_v_ending()) { return false; } return true; }; /** @return {boolean} */ function r_case_special() { var /** number */ among_var; base.ket = base.cursor; among_var = base.find_among_b(a_5); if (among_var == 0) { return false; } base.bra = base.cursor; if (!r_R1()) { return false; } switch (among_var) { case 1: if (!base.slice_from("e")) { return false; } break; case 2: if (!base.slice_from("a")) { return false; } break; } return true; }; /** @return {boolean} */ function r_case_other() { var /** number */ among_var; base.ket = base.cursor; among_var = base.find_among_b(a_6); 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; } return true; }; /** @return {boolean} */ function r_factive() { base.ket = base.cursor; if (base.find_among_b(a_7) == 0) { return false; } base.bra = base.cursor; if (!r_R1()) { return false; } if (!r_double()) { return false; } if (!base.slice_del()) { return false; } if (!r_undouble()) { return false; } return true; }; /** @return {boolean} */ function r_plural() { var /** number */ among_var; base.ket = base.cursor; among_var = base.find_among_b(a_8); if (among_var == 0) { return false; } base.bra = base.cursor; if (!r_R1()) { return false; } switch (among_var) { case 1: if (!base.slice_from("a")) { return false; } break; case 2: if (!base.slice_from("e")) { return false; } break; case 3: if (!base.slice_del()) { return false; } break; } return true; }; /** @return {boolean} */ function r_owned() { var /** number */ among_var; base.ket = base.cursor; among_var = base.find_among_b(a_9); 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("e")) { return false; } break; case 3: if (!base.slice_from("a")) { return false; } break; } return true; }; /** @return {boolean} */ function r_sing_owner() { var /** number */ among_var; base.ket = base.cursor; among_var = base.find_among_b(a_10); 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; } return true; }; /** @return {boolean} */ function r_plur_owner() { var /** number */ among_var; base.ket = base.cursor; among_var = base.find_among_b(a_11); 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; } return true; }; this.stem = /** @return {boolean} */ function() { var /** number */ v_1 = base.cursor; r_mark_regions(); base.cursor = v_1; base.limit_backward = base.cursor; base.cursor = base.limit; var /** number */ v_2 = base.limit - base.cursor; r_instrum(); base.cursor = base.limit - v_2; var /** number */ v_3 = base.limit - base.cursor; r_case(); base.cursor = base.limit - v_3; var /** number */ v_4 = base.limit - base.cursor; r_case_special(); base.cursor = base.limit - v_4; var /** number */ v_5 = base.limit - base.cursor; r_case_other(); base.cursor = base.limit - v_5; var /** number */ v_6 = base.limit - base.cursor; r_factive(); base.cursor = base.limit - v_6; var /** number */ v_7 = base.limit - base.cursor; r_owned(); base.cursor = base.limit - v_7; var /** number */ v_8 = base.limit - base.cursor; r_sing_owner(); base.cursor = base.limit - v_8; var /** number */ v_9 = base.limit - base.cursor; r_plur_owner(); base.cursor = base.limit - v_9; var /** number */ v_10 = base.limit - base.cursor; r_plural(); base.cursor = base.limit - v_10; base.cursor = base.limit_backward; return true; }; /**@return{string}*/ this['stemWord'] = function(/**string*/word) { base.setCurrent(word); this.stem(); return base.getCurrent(); }; };