Index: contrib/snowball/src/test/org/apache/lucene/analysis/snowball/TestSnowball.java =================================================================== --- contrib/snowball/src/test/org/apache/lucene/analysis/snowball/TestSnowball.java (revision 480218) +++ contrib/snowball/src/test/org/apache/lucene/analysis/snowball/TestSnowball.java (working copy) @@ -103,5 +103,13 @@ assertEquals("wrd", newtok.type()); assertEquals(3, newtok.getPositionIncrement()); } + + /** Test the Kraaij Pohlmann Dutch stemmer */ + public void testKp() throws Exception { + Analyzer a = new SnowballAnalyzer("Kp"); + assertAnalyzesTo(a, "spijsvertering", + new String[]{"spijsverteer"}); + } + } Index: contrib/snowball/src/java/net/sf/snowball/ext/PortugueseStemmer.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/PortugueseStemmer.java (revision 480218) +++ contrib/snowball/src/java/net/sf/snowball/ext/PortugueseStemmer.java (working copy) @@ -29,6 +29,7 @@ }; private Among a_3[] = { + new Among ( "ante", -1, 1, "", this), new Among ( "avel", -1, 1, "", this), new Among ( "\u00EDvel", -1, 1, "", this) }; @@ -41,6 +42,7 @@ private Among a_5[] = { new Among ( "ica", -1, 1, "", this), + new Among ( "\u00E2ncia", -1, 1, "", this), new Among ( "\u00EAncia", -1, 4, "", this), new Among ( "ira", -1, 9, "", this), new Among ( "adora", -1, 1, "", this), @@ -50,8 +52,9 @@ new Among ( "eza", -1, 1, "", this), new Among ( "log\u00EDa", -1, 2, "", this), new Among ( "idade", -1, 7, "", this), + new Among ( "ante", -1, 1, "", this), new Among ( "mente", -1, 6, "", this), - new Among ( "amente", 10, 5, "", this), + new Among ( "amente", 12, 5, "", this), new Among ( "\u00E1vel", -1, 1, "", this), new Among ( "\u00EDvel", -1, 1, "", this), new Among ( "uci\u00F3n", -1, 3, "", this), @@ -75,6 +78,7 @@ new Among ( "idades", -1, 7, "", this), new Among ( "uciones", -1, 3, "", this), new Among ( "adores", -1, 1, "", this), + new Among ( "antes", -1, 1, "", this), new Among ( "a\u00E7o~es", -1, 1, "", this), new Among ( "icos", -1, 1, "", this), new Among ( "ismos", -1, 1, "", this), @@ -574,7 +578,7 @@ // [, line 77 ket = cursor; // substring, line 77 - among_var = find_among_b(a_5, 42); + among_var = find_among_b(a_5, 45); if (among_var == 0) { return false; @@ -585,235 +589,235 @@ case 0: return false; case 1: - // (, line 91 - // call R2, line 92 + // (, line 92 + // call R2, line 93 if (!r_R2()) { return false; } - // delete, line 92 + // delete, line 93 slice_del(); break; case 2: - // (, line 96 - // call R2, line 97 + // (, line 97 + // call R2, line 98 if (!r_R2()) { return false; } - // <-, line 97 + // <-, line 98 slice_from("log"); break; case 3: - // (, line 100 - // call R2, line 101 + // (, line 101 + // call R2, line 102 if (!r_R2()) { return false; } - // <-, line 101 + // <-, line 102 slice_from("u"); break; case 4: - // (, line 104 - // call R2, line 105 + // (, line 105 + // call R2, line 106 if (!r_R2()) { return false; } - // <-, line 105 + // <-, line 106 slice_from("ente"); break; case 5: - // (, line 108 - // call R1, line 109 + // (, line 109 + // call R1, line 110 if (!r_R1()) { return false; } - // delete, line 109 + // delete, line 110 slice_del(); - // try, line 110 + // try, line 111 v_1 = limit - cursor; lab0: do { - // (, line 110 - // [, line 111 + // (, line 111 + // [, line 112 ket = cursor; - // substring, line 111 + // substring, line 112 among_var = find_among_b(a_2, 4); if (among_var == 0) { cursor = limit - v_1; break lab0; } - // ], line 111 + // ], line 112 bra = cursor; - // call R2, line 111 + // call R2, line 112 if (!r_R2()) { cursor = limit - v_1; break lab0; } - // delete, line 111 + // delete, line 112 slice_del(); switch(among_var) { case 0: cursor = limit - v_1; break lab0; case 1: - // (, line 112 - // [, line 112 + // (, line 113 + // [, line 113 ket = cursor; - // literal, line 112 + // literal, line 113 if (!(eq_s_b(2, "at"))) { cursor = limit - v_1; break lab0; } - // ], line 112 + // ], line 113 bra = cursor; - // call R2, line 112 + // call R2, line 113 if (!r_R2()) { cursor = limit - v_1; break lab0; } - // delete, line 112 + // delete, line 113 slice_del(); break; } } while (false); break; case 6: - // (, line 120 - // call R2, line 121 + // (, line 121 + // call R2, line 122 if (!r_R2()) { return false; } - // delete, line 121 + // delete, line 122 slice_del(); - // try, line 122 + // try, line 123 v_2 = limit - cursor; lab1: do { - // (, line 122 - // [, line 123 + // (, line 123 + // [, line 124 ket = cursor; - // substring, line 123 - among_var = find_among_b(a_3, 2); + // substring, line 124 + among_var = find_among_b(a_3, 3); if (among_var == 0) { cursor = limit - v_2; break lab1; } - // ], line 123 + // ], line 124 bra = cursor; switch(among_var) { case 0: cursor = limit - v_2; break lab1; case 1: - // (, line 125 - // call R2, line 125 + // (, line 127 + // call R2, line 127 if (!r_R2()) { cursor = limit - v_2; break lab1; } - // delete, line 125 + // delete, line 127 slice_del(); break; } } while (false); break; case 7: - // (, line 131 - // call R2, line 132 + // (, line 133 + // call R2, line 134 if (!r_R2()) { return false; } - // delete, line 132 + // delete, line 134 slice_del(); - // try, line 133 + // try, line 135 v_3 = limit - cursor; lab2: do { - // (, line 133 - // [, line 134 + // (, line 135 + // [, line 136 ket = cursor; - // substring, line 134 + // substring, line 136 among_var = find_among_b(a_4, 3); if (among_var == 0) { cursor = limit - v_3; break lab2; } - // ], line 134 + // ], line 136 bra = cursor; switch(among_var) { case 0: cursor = limit - v_3; break lab2; case 1: - // (, line 137 - // call R2, line 137 + // (, line 139 + // call R2, line 139 if (!r_R2()) { cursor = limit - v_3; break lab2; } - // delete, line 137 + // delete, line 139 slice_del(); break; } } while (false); break; case 8: - // (, line 143 - // call R2, line 144 + // (, line 145 + // call R2, line 146 if (!r_R2()) { return false; } - // delete, line 144 + // delete, line 146 slice_del(); - // try, line 145 + // try, line 147 v_4 = limit - cursor; lab3: do { - // (, line 145 - // [, line 146 + // (, line 147 + // [, line 148 ket = cursor; - // literal, line 146 + // literal, line 148 if (!(eq_s_b(2, "at"))) { cursor = limit - v_4; break lab3; } - // ], line 146 + // ], line 148 bra = cursor; - // call R2, line 146 + // call R2, line 148 if (!r_R2()) { cursor = limit - v_4; break lab3; } - // delete, line 146 + // delete, line 148 slice_del(); } while (false); break; case 9: - // (, line 150 - // call RV, line 151 + // (, line 152 + // call RV, line 153 if (!r_RV()) { return false; } - // literal, line 151 + // literal, line 153 if (!(eq_s_b(1, "e"))) { return false; } - // <-, line 152 + // <-, line 154 slice_from("ir"); break; } @@ -824,9 +828,9 @@ int among_var; int v_1; int v_2; - // setlimit, line 157 + // setlimit, line 159 v_1 = limit - cursor; - // tomark, line 157 + // tomark, line 159 if (cursor < I_pV) { return false; @@ -835,25 +839,25 @@ v_2 = limit_backward; limit_backward = cursor; cursor = limit - v_1; - // (, line 157 - // [, line 158 + // (, line 159 + // [, line 160 ket = cursor; - // substring, line 158 + // substring, line 160 among_var = find_among_b(a_6, 120); if (among_var == 0) { limit_backward = v_2; return false; } - // ], line 158 + // ], line 160 bra = cursor; switch(among_var) { case 0: limit_backward = v_2; return false; case 1: - // (, line 177 - // delete, line 177 + // (, line 179 + // delete, line 179 slice_del(); break; } @@ -863,28 +867,28 @@ private boolean r_residual_suffix() { int among_var; - // (, line 181 - // [, line 182 + // (, line 183 + // [, line 184 ket = cursor; - // substring, line 182 + // substring, line 184 among_var = find_among_b(a_7, 7); if (among_var == 0) { return false; } - // ], line 182 + // ], line 184 bra = cursor; switch(among_var) { case 0: return false; case 1: - // (, line 185 - // call RV, line 185 + // (, line 187 + // call RV, line 187 if (!r_RV()) { return false; } - // delete, line 185 + // delete, line 187 slice_del(); break; } @@ -896,46 +900,46 @@ int v_1; int v_2; int v_3; - // (, line 189 - // [, line 190 + // (, line 191 + // [, line 192 ket = cursor; - // substring, line 190 + // substring, line 192 among_var = find_among_b(a_8, 4); if (among_var == 0) { return false; } - // ], line 190 + // ], line 192 bra = cursor; switch(among_var) { case 0: return false; case 1: - // (, line 192 - // call RV, line 192 + // (, line 194 + // call RV, line 194 if (!r_RV()) { return false; } - // delete, line 192 + // delete, line 194 slice_del(); - // [, line 192 + // [, line 194 ket = cursor; - // or, line 192 + // or, line 194 lab0: do { v_1 = limit - cursor; lab1: do { - // (, line 192 - // literal, line 192 + // (, line 194 + // literal, line 194 if (!(eq_s_b(1, "u"))) { break lab1; } - // ], line 192 + // ], line 194 bra = cursor; - // test, line 192 + // test, line 194 v_2 = limit - cursor; - // literal, line 192 + // literal, line 194 if (!(eq_s_b(1, "g"))) { break lab1; @@ -944,34 +948,34 @@ break lab0; } while (false); cursor = limit - v_1; - // (, line 193 - // literal, line 193 + // (, line 195 + // literal, line 195 if (!(eq_s_b(1, "i"))) { return false; } - // ], line 193 + // ], line 195 bra = cursor; - // test, line 193 + // test, line 195 v_3 = limit - cursor; - // literal, line 193 + // literal, line 195 if (!(eq_s_b(1, "c"))) { return false; } cursor = limit - v_3; } while (false); - // call RV, line 193 + // call RV, line 195 if (!r_RV()) { return false; } - // delete, line 193 + // delete, line 195 slice_del(); break; case 2: - // (, line 194 - // <-, line 194 + // (, line 196 + // <-, line 196 slice_from("c"); break; } @@ -989,47 +993,47 @@ int v_8; int v_9; int v_10; - // (, line 199 - // do, line 200 + // (, line 201 + // do, line 202 v_1 = cursor; lab0: do { - // call prelude, line 200 + // call prelude, line 202 if (!r_prelude()) { break lab0; } } while (false); cursor = v_1; - // do, line 201 + // do, line 203 v_2 = cursor; lab1: do { - // call mark_regions, line 201 + // call mark_regions, line 203 if (!r_mark_regions()) { break lab1; } } while (false); cursor = v_2; - // backwards, line 202 + // backwards, line 204 limit_backward = cursor; cursor = limit; - // (, line 202 - // do, line 203 + // (, line 204 + // do, line 205 v_3 = limit - cursor; lab2: do { - // (, line 203 - // or, line 207 + // (, line 205 + // or, line 209 lab3: do { v_4 = limit - cursor; lab4: do { - // (, line 204 - // and, line 205 + // (, line 206 + // and, line 207 v_5 = limit - cursor; - // (, line 204 - // or, line 204 + // (, line 206 + // or, line 206 lab5: do { v_6 = limit - cursor; lab6: do { - // call standard_suffix, line 204 + // call standard_suffix, line 206 if (!r_standard_suffix()) { break lab6; @@ -1037,47 +1041,47 @@ break lab5; } while (false); cursor = limit - v_6; - // call verb_suffix, line 204 + // call verb_suffix, line 206 if (!r_verb_suffix()) { break lab4; } } while (false); cursor = limit - v_5; - // do, line 205 + // do, line 207 v_7 = limit - cursor; lab7: do { - // (, line 205 - // [, line 205 + // (, line 207 + // [, line 207 ket = cursor; - // literal, line 205 + // literal, line 207 if (!(eq_s_b(1, "i"))) { break lab7; } - // ], line 205 + // ], line 207 bra = cursor; - // test, line 205 + // test, line 207 v_8 = limit - cursor; - // literal, line 205 + // literal, line 207 if (!(eq_s_b(1, "c"))) { break lab7; } cursor = limit - v_8; - // call RV, line 205 + // call RV, line 207 if (!r_RV()) { break lab7; } - // delete, line 205 + // delete, line 207 slice_del(); } while (false); cursor = limit - v_7; break lab3; } while (false); cursor = limit - v_4; - // call residual_suffix, line 207 + // call residual_suffix, line 209 if (!r_residual_suffix()) { break lab2; @@ -1085,20 +1089,20 @@ } while (false); } while (false); cursor = limit - v_3; - // do, line 209 + // do, line 211 v_9 = limit - cursor; lab8: do { - // call residual_form, line 209 + // call residual_form, line 211 if (!r_residual_form()) { break lab8; } } while (false); cursor = limit - v_9; - cursor = limit_backward; // do, line 211 + cursor = limit_backward; // do, line 213 v_10 = cursor; lab9: do { - // call postlude, line 211 + // call postlude, line 213 if (!r_postlude()) { break lab9; Index: contrib/snowball/src/java/net/sf/snowball/ext/FrenchStemmer.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/FrenchStemmer.java (revision 480218) +++ contrib/snowball/src/java/net/sf/snowball/ext/FrenchStemmer.java (working copy) @@ -10,13 +10,19 @@ public class FrenchStemmer extends SnowballProgram { private Among a_0[] = { + new Among ( "col", -1, -1, "", this), + new Among ( "par", -1, -1, "", this), + new Among ( "tap", -1, -1, "", this) + }; + + private Among a_1[] = { new Among ( "", -1, 4, "", this), new Among ( "I", 0, 1, "", this), new Among ( "U", 0, 2, "", this), new Among ( "Y", 0, 3, "", this) }; - private Among a_1[] = { + private Among a_2[] = { new Among ( "iqU", -1, 3, "", this), new Among ( "abl", -1, 3, "", this), new Among ( "I\u00E8r", -1, 4, "", this), @@ -25,13 +31,13 @@ new Among ( "iv", -1, 1, "", this) }; - private Among a_2[] = { + private Among a_3[] = { new Among ( "ic", -1, 2, "", this), new Among ( "abil", -1, 1, "", this), new Among ( "iv", -1, 3, "", this) }; - private Among a_3[] = { + private Among a_4[] = { new Among ( "iqUe", -1, 1, "", this), new Among ( "atrice", -1, 2, "", this), new Among ( "ance", -1, 1, "", this), @@ -77,7 +83,7 @@ new Among ( "it\u00E9", -1, 7, "", this) }; - private Among a_4[] = { + private Among a_5[] = { new Among ( "ira", -1, 1, "", this), new Among ( "ie", -1, 1, "", this), new Among ( "isse", -1, 1, "", this), @@ -115,7 +121,7 @@ new Among ( "issez", -1, 1, "", this) }; - private Among a_5[] = { + private Among a_6[] = { new Among ( "a", -1, 3, "", this), new Among ( "era", 0, 2, "", this), new Among ( "asse", -1, 3, "", this), @@ -156,7 +162,7 @@ new Among ( "\u00E9", -1, 2, "", this) }; - private Among a_6[] = { + private Among a_7[] = { new Among ( "e", -1, 3, "", this), new Among ( "I\u00E8re", 0, 2, "", this), new Among ( "i\u00E8re", 0, 2, "", this), @@ -166,7 +172,7 @@ new Among ( "\u00EB", -1, 4, "", this) }; - private Among a_7[] = { + private Among a_8[] = { new Among ( "ell", -1, -1, "", this), new Among ( "eill", -1, -1, "", this), new Among ( "enn", -1, -1, "", this), @@ -337,7 +343,7 @@ v_1 = cursor; lab0: do { // (, line 56 - // or, line 57 + // or, line 58 lab1: do { v_2 = cursor; lab2: do { @@ -359,22 +365,31 @@ break lab1; } while (false); cursor = v_2; - // (, line 57 - // next, line 57 + lab3: do { + // among, line 59 + if (find_among(a_0, 3) == 0) + { + break lab3; + } + break lab1; + } while (false); + cursor = v_2; + // (, line 66 + // next, line 66 if (cursor >= limit) { break lab0; } cursor++; - // gopast, line 57 - golab3: while(true) + // gopast, line 66 + golab4: while(true) { - lab4: do { + lab5: do { if (!(in_grouping(g_v, 97, 251))) { - break lab4; + break lab5; } - break golab3; + break golab4; } while (false); if (cursor >= limit) { @@ -383,81 +398,81 @@ cursor++; } } while (false); - // setmark pV, line 58 + // setmark pV, line 67 I_pV = cursor; } while (false); cursor = v_1; - // do, line 60 + // do, line 69 v_4 = cursor; - lab5: do { - // (, line 60 - // gopast, line 61 - golab6: while(true) + lab6: do { + // (, line 69 + // gopast, line 70 + golab7: while(true) { - lab7: do { + lab8: do { if (!(in_grouping(g_v, 97, 251))) { - break lab7; + break lab8; } - break golab6; + break golab7; } while (false); if (cursor >= limit) { - break lab5; + break lab6; } cursor++; } - // gopast, line 61 - golab8: while(true) + // gopast, line 70 + golab9: while(true) { - lab9: do { + lab10: do { if (!(out_grouping(g_v, 97, 251))) { - break lab9; + break lab10; } - break golab8; + break golab9; } while (false); if (cursor >= limit) { - break lab5; + break lab6; } cursor++; } - // setmark p1, line 61 + // setmark p1, line 70 I_p1 = cursor; - // gopast, line 62 - golab10: while(true) + // gopast, line 71 + golab11: while(true) { - lab11: do { + lab12: do { if (!(in_grouping(g_v, 97, 251))) { - break lab11; + break lab12; } - break golab10; + break golab11; } while (false); if (cursor >= limit) { - break lab5; + break lab6; } cursor++; } - // gopast, line 62 - golab12: while(true) + // gopast, line 71 + golab13: while(true) { - lab13: do { + lab14: do { if (!(out_grouping(g_v, 97, 251))) { - break lab13; + break lab14; } - break golab12; + break golab13; } while (false); if (cursor >= limit) { - break lab5; + break lab6; } cursor++; } - // setmark p2, line 62 + // setmark p2, line 71 I_p2 = cursor; } while (false); cursor = v_4; @@ -467,43 +482,43 @@ private boolean r_postlude() { int among_var; int v_1; - // repeat, line 66 + // repeat, line 75 replab0: while(true) { v_1 = cursor; lab1: do { - // (, line 66 - // [, line 68 + // (, line 75 + // [, line 77 bra = cursor; - // substring, line 68 - among_var = find_among(a_0, 4); + // substring, line 77 + among_var = find_among(a_1, 4); if (among_var == 0) { break lab1; } - // ], line 68 + // ], line 77 ket = cursor; switch(among_var) { case 0: break lab1; case 1: - // (, line 69 - // <-, line 69 + // (, line 78 + // <-, line 78 slice_from("i"); break; case 2: - // (, line 70 - // <-, line 70 + // (, line 79 + // <-, line 79 slice_from("u"); break; case 3: - // (, line 71 - // <-, line 71 + // (, line 80 + // <-, line 80 slice_from("y"); break; case 4: - // (, line 72 - // next, line 72 + // (, line 81 + // next, line 81 if (cursor >= limit) { break lab1; @@ -556,403 +571,403 @@ int v_9; int v_10; int v_11; - // (, line 82 - // [, line 83 + // (, line 91 + // [, line 92 ket = cursor; - // substring, line 83 - among_var = find_among_b(a_3, 43); + // substring, line 92 + among_var = find_among_b(a_4, 43); if (among_var == 0) { return false; } - // ], line 83 + // ], line 92 bra = cursor; switch(among_var) { case 0: return false; case 1: - // (, line 87 - // call R2, line 87 + // (, line 96 + // call R2, line 96 if (!r_R2()) { return false; } - // delete, line 87 + // delete, line 96 slice_del(); break; case 2: - // (, line 90 - // call R2, line 90 + // (, line 99 + // call R2, line 99 if (!r_R2()) { return false; } - // delete, line 90 + // delete, line 99 slice_del(); - // try, line 91 + // try, line 100 v_1 = limit - cursor; lab0: do { - // (, line 91 - // [, line 91 + // (, line 100 + // [, line 100 ket = cursor; - // literal, line 91 + // literal, line 100 if (!(eq_s_b(2, "ic"))) { cursor = limit - v_1; break lab0; } - // ], line 91 + // ], line 100 bra = cursor; - // or, line 91 + // or, line 100 lab1: do { v_2 = limit - cursor; lab2: do { - // (, line 91 - // call R2, line 91 + // (, line 100 + // call R2, line 100 if (!r_R2()) { break lab2; } - // delete, line 91 + // delete, line 100 slice_del(); break lab1; } while (false); cursor = limit - v_2; - // <-, line 91 + // <-, line 100 slice_from("iqU"); } while (false); } while (false); break; case 3: - // (, line 95 - // call R2, line 95 + // (, line 104 + // call R2, line 104 if (!r_R2()) { return false; } - // <-, line 95 + // <-, line 104 slice_from("log"); break; case 4: - // (, line 98 - // call R2, line 98 + // (, line 107 + // call R2, line 107 if (!r_R2()) { return false; } - // <-, line 98 + // <-, line 107 slice_from("u"); break; case 5: - // (, line 101 - // call R2, line 101 + // (, line 110 + // call R2, line 110 if (!r_R2()) { return false; } - // <-, line 101 + // <-, line 110 slice_from("ent"); break; case 6: - // (, line 104 - // call RV, line 105 + // (, line 113 + // call RV, line 114 if (!r_RV()) { return false; } - // delete, line 105 + // delete, line 114 slice_del(); - // try, line 106 + // try, line 115 v_3 = limit - cursor; lab3: do { - // (, line 106 - // [, line 107 + // (, line 115 + // [, line 116 ket = cursor; - // substring, line 107 - among_var = find_among_b(a_1, 6); + // substring, line 116 + among_var = find_among_b(a_2, 6); if (among_var == 0) { cursor = limit - v_3; break lab3; } - // ], line 107 + // ], line 116 bra = cursor; switch(among_var) { case 0: cursor = limit - v_3; break lab3; case 1: - // (, line 108 - // call R2, line 108 + // (, line 117 + // call R2, line 117 if (!r_R2()) { cursor = limit - v_3; break lab3; } - // delete, line 108 + // delete, line 117 slice_del(); - // [, line 108 + // [, line 117 ket = cursor; - // literal, line 108 + // literal, line 117 if (!(eq_s_b(2, "at"))) { cursor = limit - v_3; break lab3; } - // ], line 108 + // ], line 117 bra = cursor; - // call R2, line 108 + // call R2, line 117 if (!r_R2()) { cursor = limit - v_3; break lab3; } - // delete, line 108 + // delete, line 117 slice_del(); break; case 2: - // (, line 109 - // or, line 109 + // (, line 118 + // or, line 118 lab4: do { v_4 = limit - cursor; lab5: do { - // (, line 109 - // call R2, line 109 + // (, line 118 + // call R2, line 118 if (!r_R2()) { break lab5; } - // delete, line 109 + // delete, line 118 slice_del(); break lab4; } while (false); cursor = limit - v_4; - // (, line 109 - // call R1, line 109 + // (, line 118 + // call R1, line 118 if (!r_R1()) { cursor = limit - v_3; break lab3; } - // <-, line 109 + // <-, line 118 slice_from("eux"); } while (false); break; case 3: - // (, line 111 - // call R2, line 111 + // (, line 120 + // call R2, line 120 if (!r_R2()) { cursor = limit - v_3; break lab3; } - // delete, line 111 + // delete, line 120 slice_del(); break; case 4: - // (, line 113 - // call RV, line 113 + // (, line 122 + // call RV, line 122 if (!r_RV()) { cursor = limit - v_3; break lab3; } - // <-, line 113 + // <-, line 122 slice_from("i"); break; } } while (false); break; case 7: - // (, line 119 - // call R2, line 120 + // (, line 128 + // call R2, line 129 if (!r_R2()) { return false; } - // delete, line 120 + // delete, line 129 slice_del(); - // try, line 121 + // try, line 130 v_5 = limit - cursor; lab6: do { - // (, line 121 - // [, line 122 + // (, line 130 + // [, line 131 ket = cursor; - // substring, line 122 - among_var = find_among_b(a_2, 3); + // substring, line 131 + among_var = find_among_b(a_3, 3); if (among_var == 0) { cursor = limit - v_5; break lab6; } - // ], line 122 + // ], line 131 bra = cursor; switch(among_var) { case 0: cursor = limit - v_5; break lab6; case 1: - // (, line 123 - // or, line 123 + // (, line 132 + // or, line 132 lab7: do { v_6 = limit - cursor; lab8: do { - // (, line 123 - // call R2, line 123 + // (, line 132 + // call R2, line 132 if (!r_R2()) { break lab8; } - // delete, line 123 + // delete, line 132 slice_del(); break lab7; } while (false); cursor = limit - v_6; - // <-, line 123 + // <-, line 132 slice_from("abl"); } while (false); break; case 2: - // (, line 124 - // or, line 124 + // (, line 133 + // or, line 133 lab9: do { v_7 = limit - cursor; lab10: do { - // (, line 124 - // call R2, line 124 + // (, line 133 + // call R2, line 133 if (!r_R2()) { break lab10; } - // delete, line 124 + // delete, line 133 slice_del(); break lab9; } while (false); cursor = limit - v_7; - // <-, line 124 + // <-, line 133 slice_from("iqU"); } while (false); break; case 3: - // (, line 125 - // call R2, line 125 + // (, line 134 + // call R2, line 134 if (!r_R2()) { cursor = limit - v_5; break lab6; } - // delete, line 125 + // delete, line 134 slice_del(); break; } } while (false); break; case 8: - // (, line 131 - // call R2, line 132 + // (, line 140 + // call R2, line 141 if (!r_R2()) { return false; } - // delete, line 132 + // delete, line 141 slice_del(); - // try, line 133 + // try, line 142 v_8 = limit - cursor; lab11: do { - // (, line 133 - // [, line 133 + // (, line 142 + // [, line 142 ket = cursor; - // literal, line 133 + // literal, line 142 if (!(eq_s_b(2, "at"))) { cursor = limit - v_8; break lab11; } - // ], line 133 + // ], line 142 bra = cursor; - // call R2, line 133 + // call R2, line 142 if (!r_R2()) { cursor = limit - v_8; break lab11; } - // delete, line 133 + // delete, line 142 slice_del(); - // [, line 133 + // [, line 142 ket = cursor; - // literal, line 133 + // literal, line 142 if (!(eq_s_b(2, "ic"))) { cursor = limit - v_8; break lab11; } - // ], line 133 + // ], line 142 bra = cursor; - // or, line 133 + // or, line 142 lab12: do { v_9 = limit - cursor; lab13: do { - // (, line 133 - // call R2, line 133 + // (, line 142 + // call R2, line 142 if (!r_R2()) { break lab13; } - // delete, line 133 + // delete, line 142 slice_del(); break lab12; } while (false); cursor = limit - v_9; - // <-, line 133 + // <-, line 142 slice_from("iqU"); } while (false); } while (false); break; case 9: - // (, line 135 - // <-, line 135 + // (, line 144 + // <-, line 144 slice_from("eau"); break; case 10: - // (, line 136 - // call R1, line 136 + // (, line 145 + // call R1, line 145 if (!r_R1()) { return false; } - // <-, line 136 + // <-, line 145 slice_from("al"); break; case 11: - // (, line 138 - // or, line 138 + // (, line 147 + // or, line 147 lab14: do { v_10 = limit - cursor; lab15: do { - // (, line 138 - // call R2, line 138 + // (, line 147 + // call R2, line 147 if (!r_R2()) { break lab15; } - // delete, line 138 + // delete, line 147 slice_del(); break lab14; } while (false); cursor = limit - v_10; - // (, line 138 - // call R1, line 138 + // (, line 147 + // call R1, line 147 if (!r_R1()) { return false; } - // <-, line 138 + // <-, line 147 slice_from("eux"); } while (false); break; case 12: - // (, line 141 - // call R1, line 141 + // (, line 150 + // call R1, line 150 if (!r_R1()) { return false; @@ -961,51 +976,51 @@ { return false; } - // delete, line 141 + // delete, line 150 slice_del(); break; case 13: - // (, line 146 - // call RV, line 146 + // (, line 155 + // call RV, line 155 if (!r_RV()) { return false; } - // fail, line 146 - // (, line 146 - // <-, line 146 + // fail, line 155 + // (, line 155 + // <-, line 155 slice_from("ant"); return false; case 14: - // (, line 147 - // call RV, line 147 + // (, line 156 + // call RV, line 156 if (!r_RV()) { return false; } - // fail, line 147 - // (, line 147 - // <-, line 147 + // fail, line 156 + // (, line 156 + // <-, line 156 slice_from("ent"); return false; case 15: - // (, line 149 - // test, line 149 + // (, line 158 + // test, line 158 v_11 = limit - cursor; - // (, line 149 + // (, line 158 if (!(in_grouping_b(g_v, 97, 251))) { return false; } - // call RV, line 149 + // call RV, line 158 if (!r_RV()) { return false; } cursor = limit - v_11; - // fail, line 149 - // (, line 149 - // delete, line 149 + // fail, line 158 + // (, line 158 + // delete, line 158 slice_del(); return false; } @@ -1016,9 +1031,9 @@ int among_var; int v_1; int v_2; - // setlimit, line 154 + // setlimit, line 163 v_1 = limit - cursor; - // tomark, line 154 + // tomark, line 163 if (cursor < I_pV) { return false; @@ -1027,30 +1042,30 @@ v_2 = limit_backward; limit_backward = cursor; cursor = limit - v_1; - // (, line 154 - // [, line 155 + // (, line 163 + // [, line 164 ket = cursor; - // substring, line 155 - among_var = find_among_b(a_4, 35); + // substring, line 164 + among_var = find_among_b(a_5, 35); if (among_var == 0) { limit_backward = v_2; return false; } - // ], line 155 + // ], line 164 bra = cursor; switch(among_var) { case 0: limit_backward = v_2; return false; case 1: - // (, line 161 + // (, line 170 if (!(out_grouping_b(g_v, 97, 251))) { limit_backward = v_2; return false; } - // delete, line 161 + // delete, line 170 slice_del(); break; } @@ -1063,9 +1078,9 @@ int v_1; int v_2; int v_3; - // setlimit, line 165 + // setlimit, line 174 v_1 = limit - cursor; - // tomark, line 165 + // tomark, line 174 if (cursor < I_pV) { return false; @@ -1074,57 +1089,57 @@ v_2 = limit_backward; limit_backward = cursor; cursor = limit - v_1; - // (, line 165 - // [, line 166 + // (, line 174 + // [, line 175 ket = cursor; - // substring, line 166 - among_var = find_among_b(a_5, 38); + // substring, line 175 + among_var = find_among_b(a_6, 38); if (among_var == 0) { limit_backward = v_2; return false; } - // ], line 166 + // ], line 175 bra = cursor; switch(among_var) { case 0: limit_backward = v_2; return false; case 1: - // (, line 168 - // call R2, line 168 + // (, line 177 + // call R2, line 177 if (!r_R2()) { limit_backward = v_2; return false; } - // delete, line 168 + // delete, line 177 slice_del(); break; case 2: - // (, line 176 - // delete, line 176 + // (, line 185 + // delete, line 185 slice_del(); break; case 3: - // (, line 181 - // delete, line 181 + // (, line 190 + // delete, line 190 slice_del(); - // try, line 182 + // try, line 191 v_3 = limit - cursor; lab0: do { - // (, line 182 - // [, line 182 + // (, line 191 + // [, line 191 ket = cursor; - // literal, line 182 + // literal, line 191 if (!(eq_s_b(1, "e"))) { cursor = limit - v_3; break lab0; } - // ], line 182 + // ], line 191 bra = cursor; - // delete, line 182 + // delete, line 191 slice_del(); } while (false); break; @@ -1140,22 +1155,22 @@ int v_3; int v_4; int v_5; - // (, line 189 - // try, line 190 + // (, line 198 + // try, line 199 v_1 = limit - cursor; lab0: do { - // (, line 190 - // [, line 190 + // (, line 199 + // [, line 199 ket = cursor; - // literal, line 190 + // literal, line 199 if (!(eq_s_b(1, "s"))) { cursor = limit - v_1; break lab0; } - // ], line 190 + // ], line 199 bra = cursor; - // test, line 190 + // test, line 199 v_2 = limit - cursor; if (!(out_grouping_b(g_keep_with_s, 97, 232))) { @@ -1163,12 +1178,12 @@ break lab0; } cursor = limit - v_2; - // delete, line 190 + // delete, line 199 slice_del(); } while (false); - // setlimit, line 191 + // setlimit, line 200 v_3 = limit - cursor; - // tomark, line 191 + // tomark, line 200 if (cursor < I_pV) { return false; @@ -1177,35 +1192,35 @@ v_4 = limit_backward; limit_backward = cursor; cursor = limit - v_3; - // (, line 191 - // [, line 192 + // (, line 200 + // [, line 201 ket = cursor; - // substring, line 192 - among_var = find_among_b(a_6, 7); + // substring, line 201 + among_var = find_among_b(a_7, 7); if (among_var == 0) { limit_backward = v_4; return false; } - // ], line 192 + // ], line 201 bra = cursor; switch(among_var) { case 0: limit_backward = v_4; return false; case 1: - // (, line 193 - // call R2, line 193 + // (, line 202 + // call R2, line 202 if (!r_R2()) { limit_backward = v_4; return false; } - // or, line 193 + // or, line 202 lab1: do { v_5 = limit - cursor; lab2: do { - // literal, line 193 + // literal, line 202 if (!(eq_s_b(1, "s"))) { break lab2; @@ -1213,35 +1228,35 @@ break lab1; } while (false); cursor = limit - v_5; - // literal, line 193 + // literal, line 202 if (!(eq_s_b(1, "t"))) { limit_backward = v_4; return false; } } while (false); - // delete, line 193 + // delete, line 202 slice_del(); break; case 2: - // (, line 195 - // <-, line 195 + // (, line 204 + // <-, line 204 slice_from("i"); break; case 3: - // (, line 196 - // delete, line 196 + // (, line 205 + // delete, line 205 slice_del(); break; case 4: - // (, line 197 - // literal, line 197 + // (, line 206 + // literal, line 206 if (!(eq_s_b(2, "gu"))) { limit_backward = v_4; return false; } - // delete, line 197 + // delete, line 206 slice_del(); break; } @@ -1251,37 +1266,37 @@ private boolean r_un_double() { int v_1; - // (, line 202 - // test, line 203 + // (, line 211 + // test, line 212 v_1 = limit - cursor; - // among, line 203 - if (find_among_b(a_7, 5) == 0) + // among, line 212 + if (find_among_b(a_8, 5) == 0) { return false; } cursor = limit - v_1; - // [, line 203 + // [, line 212 ket = cursor; - // next, line 203 + // next, line 212 if (cursor <= limit_backward) { return false; } cursor--; - // ], line 203 + // ], line 212 bra = cursor; - // delete, line 203 + // delete, line 212 slice_del(); return true; } private boolean r_un_accent() { int v_3; - // (, line 206 - // atleast, line 207 + // (, line 215 + // atleast, line 216 { int v_1 = 1; - // atleast, line 207 + // atleast, line 216 replab0: while(true) { lab1: do { @@ -1299,13 +1314,13 @@ return false; } } - // [, line 208 + // [, line 217 ket = cursor; - // or, line 208 + // or, line 217 lab2: do { v_3 = limit - cursor; lab3: do { - // literal, line 208 + // literal, line 217 if (!(eq_s_b(1, "\u00E9"))) { break lab3; @@ -1313,15 +1328,15 @@ break lab2; } while (false); cursor = limit - v_3; - // literal, line 208 + // literal, line 217 if (!(eq_s_b(1, "\u00E8"))) { return false; } } while (false); - // ], line 208 + // ], line 217 bra = cursor; - // <-, line 208 + // <-, line 217 slice_from("e"); return true; } @@ -1338,47 +1353,47 @@ int v_9; int v_10; int v_11; - // (, line 212 - // do, line 214 + // (, line 221 + // do, line 223 v_1 = cursor; lab0: do { - // call prelude, line 214 + // call prelude, line 223 if (!r_prelude()) { break lab0; } } while (false); cursor = v_1; - // do, line 215 + // do, line 224 v_2 = cursor; lab1: do { - // call mark_regions, line 215 + // call mark_regions, line 224 if (!r_mark_regions()) { break lab1; } } while (false); cursor = v_2; - // backwards, line 216 + // backwards, line 225 limit_backward = cursor; cursor = limit; - // (, line 216 - // do, line 218 + // (, line 225 + // do, line 227 v_3 = limit - cursor; lab2: do { - // (, line 218 - // or, line 228 + // (, line 227 + // or, line 237 lab3: do { v_4 = limit - cursor; lab4: do { - // (, line 219 - // and, line 224 + // (, line 228 + // and, line 233 v_5 = limit - cursor; - // (, line 220 - // or, line 220 + // (, line 229 + // or, line 229 lab5: do { v_6 = limit - cursor; lab6: do { - // call standard_suffix, line 220 + // call standard_suffix, line 229 if (!r_standard_suffix()) { break lab6; @@ -1387,7 +1402,7 @@ } while (false); cursor = limit - v_6; lab7: do { - // call i_verb_suffix, line 221 + // call i_verb_suffix, line 230 if (!r_i_verb_suffix()) { break lab7; @@ -1395,53 +1410,53 @@ break lab5; } while (false); cursor = limit - v_6; - // call verb_suffix, line 222 + // call verb_suffix, line 231 if (!r_verb_suffix()) { break lab4; } } while (false); cursor = limit - v_5; - // try, line 225 + // try, line 234 v_7 = limit - cursor; lab8: do { - // (, line 225 - // [, line 225 + // (, line 234 + // [, line 234 ket = cursor; - // or, line 225 + // or, line 234 lab9: do { v_8 = limit - cursor; lab10: do { - // (, line 225 - // literal, line 225 + // (, line 234 + // literal, line 234 if (!(eq_s_b(1, "Y"))) { break lab10; } - // ], line 225 + // ], line 234 bra = cursor; - // <-, line 225 + // <-, line 234 slice_from("i"); break lab9; } while (false); cursor = limit - v_8; - // (, line 226 - // literal, line 226 + // (, line 235 + // literal, line 235 if (!(eq_s_b(1, "\u00E7"))) { cursor = limit - v_7; break lab8; } - // ], line 226 + // ], line 235 bra = cursor; - // <-, line 226 + // <-, line 235 slice_from("c"); } while (false); } while (false); break lab3; } while (false); cursor = limit - v_4; - // call residual_suffix, line 229 + // call residual_suffix, line 238 if (!r_residual_suffix()) { break lab2; @@ -1449,30 +1464,30 @@ } while (false); } while (false); cursor = limit - v_3; - // do, line 234 + // do, line 243 v_9 = limit - cursor; lab11: do { - // call un_double, line 234 + // call un_double, line 243 if (!r_un_double()) { break lab11; } } while (false); cursor = limit - v_9; - // do, line 235 + // do, line 244 v_10 = limit - cursor; lab12: do { - // call un_accent, line 235 + // call un_accent, line 244 if (!r_un_accent()) { break lab12; } } while (false); cursor = limit - v_10; - cursor = limit_backward; // do, line 237 + cursor = limit_backward; // do, line 246 v_11 = cursor; lab13: do { - // call postlude, line 237 + // call postlude, line 246 if (!r_postlude()) { break lab13; Index: contrib/snowball/src/java/net/sf/snowball/ext/SpanishStemmer.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/SpanishStemmer.java (revision 480218) +++ contrib/snowball/src/java/net/sf/snowball/ext/SpanishStemmer.java (working copy) @@ -57,7 +57,8 @@ private Among a_4[] = { new Among ( "able", -1, 1, "", this), - new Among ( "ible", -1, 1, "", this) + new Among ( "ible", -1, 1, "", this), + new Among ( "ante", -1, 1, "", this) }; private Among a_5[] = { @@ -68,6 +69,7 @@ private Among a_6[] = { new Among ( "ica", -1, 1, "", this), + new Among ( "ancia", -1, 2, "", this), new Among ( "encia", -1, 5, "", this), new Among ( "adora", -1, 2, "", this), new Among ( "osa", -1, 1, "", this), @@ -78,8 +80,9 @@ new Among ( "idad", -1, 8, "", this), new Among ( "able", -1, 1, "", this), new Among ( "ible", -1, 1, "", this), + new Among ( "ante", -1, 2, "", this), new Among ( "mente", -1, 7, "", this), - new Among ( "amente", 11, 6, "", this), + new Among ( "amente", 13, 6, "", this), new Among ( "aci\u00F3n", -1, 2, "", this), new Among ( "uci\u00F3n", -1, 4, "", this), new Among ( "ico", -1, 1, "", this), @@ -90,6 +93,7 @@ new Among ( "ivo", -1, 9, "", this), new Among ( "ador", -1, 2, "", this), new Among ( "icas", -1, 1, "", this), + new Among ( "ancias", -1, 2, "", this), new Among ( "encias", -1, 5, "", this), new Among ( "adoras", -1, 2, "", this), new Among ( "osas", -1, 1, "", this), @@ -103,6 +107,7 @@ new Among ( "aciones", -1, 2, "", this), new Among ( "uciones", -1, 4, "", this), new Among ( "adores", -1, 2, "", this), + new Among ( "antes", -1, 2, "", this), new Among ( "icos", -1, 1, "", this), new Among ( "ismos", -1, 1, "", this), new Among ( "osos", -1, 1, "", this), @@ -632,7 +637,7 @@ // [, line 87 ket = cursor; // substring, line 87 - among_var = find_among_b(a_6, 42); + among_var = find_among_b(a_6, 46); if (among_var == 0) { return false; @@ -653,242 +658,242 @@ slice_del(); break; case 2: - // (, line 103 - // call R2, line 104 + // (, line 104 + // call R2, line 105 if (!r_R2()) { return false; } - // delete, line 104 + // delete, line 105 slice_del(); - // try, line 105 + // try, line 106 v_1 = limit - cursor; lab0: do { - // (, line 105 - // [, line 105 + // (, line 106 + // [, line 106 ket = cursor; - // literal, line 105 + // literal, line 106 if (!(eq_s_b(2, "ic"))) { cursor = limit - v_1; break lab0; } - // ], line 105 + // ], line 106 bra = cursor; - // call R2, line 105 + // call R2, line 106 if (!r_R2()) { cursor = limit - v_1; break lab0; } - // delete, line 105 + // delete, line 106 slice_del(); } while (false); break; case 3: - // (, line 109 - // call R2, line 110 + // (, line 110 + // call R2, line 111 if (!r_R2()) { return false; } - // <-, line 110 + // <-, line 111 slice_from("log"); break; case 4: - // (, line 113 - // call R2, line 114 + // (, line 114 + // call R2, line 115 if (!r_R2()) { return false; } - // <-, line 114 + // <-, line 115 slice_from("u"); break; case 5: - // (, line 117 - // call R2, line 118 + // (, line 118 + // call R2, line 119 if (!r_R2()) { return false; } - // <-, line 118 + // <-, line 119 slice_from("ente"); break; case 6: - // (, line 121 - // call R1, line 122 + // (, line 122 + // call R1, line 123 if (!r_R1()) { return false; } - // delete, line 122 + // delete, line 123 slice_del(); - // try, line 123 + // try, line 124 v_2 = limit - cursor; lab1: do { - // (, line 123 - // [, line 124 + // (, line 124 + // [, line 125 ket = cursor; - // substring, line 124 + // substring, line 125 among_var = find_among_b(a_3, 4); if (among_var == 0) { cursor = limit - v_2; break lab1; } - // ], line 124 + // ], line 125 bra = cursor; - // call R2, line 124 + // call R2, line 125 if (!r_R2()) { cursor = limit - v_2; break lab1; } - // delete, line 124 + // delete, line 125 slice_del(); switch(among_var) { case 0: cursor = limit - v_2; break lab1; case 1: - // (, line 125 - // [, line 125 + // (, line 126 + // [, line 126 ket = cursor; - // literal, line 125 + // literal, line 126 if (!(eq_s_b(2, "at"))) { cursor = limit - v_2; break lab1; } - // ], line 125 + // ], line 126 bra = cursor; - // call R2, line 125 + // call R2, line 126 if (!r_R2()) { cursor = limit - v_2; break lab1; } - // delete, line 125 + // delete, line 126 slice_del(); break; } } while (false); break; case 7: - // (, line 133 - // call R2, line 134 + // (, line 134 + // call R2, line 135 if (!r_R2()) { return false; } - // delete, line 134 + // delete, line 135 slice_del(); - // try, line 135 + // try, line 136 v_3 = limit - cursor; lab2: do { - // (, line 135 - // [, line 136 + // (, line 136 + // [, line 137 ket = cursor; - // substring, line 136 - among_var = find_among_b(a_4, 2); + // substring, line 137 + among_var = find_among_b(a_4, 3); if (among_var == 0) { cursor = limit - v_3; break lab2; } - // ], line 136 + // ], line 137 bra = cursor; switch(among_var) { case 0: cursor = limit - v_3; break lab2; case 1: - // (, line 138 - // call R2, line 138 + // (, line 140 + // call R2, line 140 if (!r_R2()) { cursor = limit - v_3; break lab2; } - // delete, line 138 + // delete, line 140 slice_del(); break; } } while (false); break; case 8: - // (, line 144 - // call R2, line 145 + // (, line 146 + // call R2, line 147 if (!r_R2()) { return false; } - // delete, line 145 + // delete, line 147 slice_del(); - // try, line 146 + // try, line 148 v_4 = limit - cursor; lab3: do { - // (, line 146 - // [, line 147 + // (, line 148 + // [, line 149 ket = cursor; - // substring, line 147 + // substring, line 149 among_var = find_among_b(a_5, 3); if (among_var == 0) { cursor = limit - v_4; break lab3; } - // ], line 147 + // ], line 149 bra = cursor; switch(among_var) { case 0: cursor = limit - v_4; break lab3; case 1: - // (, line 150 - // call R2, line 150 + // (, line 152 + // call R2, line 152 if (!r_R2()) { cursor = limit - v_4; break lab3; } - // delete, line 150 + // delete, line 152 slice_del(); break; } } while (false); break; case 9: - // (, line 156 - // call R2, line 157 + // (, line 158 + // call R2, line 159 if (!r_R2()) { return false; } - // delete, line 157 + // delete, line 159 slice_del(); - // try, line 158 + // try, line 160 v_5 = limit - cursor; lab4: do { - // (, line 158 - // [, line 159 + // (, line 160 + // [, line 161 ket = cursor; - // literal, line 159 + // literal, line 161 if (!(eq_s_b(2, "at"))) { cursor = limit - v_5; break lab4; } - // ], line 159 + // ], line 161 bra = cursor; - // call R2, line 159 + // call R2, line 161 if (!r_R2()) { cursor = limit - v_5; break lab4; } - // delete, line 159 + // delete, line 161 slice_del(); } while (false); break; @@ -900,10 +905,10 @@ int among_var; int v_1; int v_2; - // (, line 165 - // setlimit, line 166 + // (, line 167 + // setlimit, line 168 v_1 = limit - cursor; - // tomark, line 166 + // tomark, line 168 if (cursor < I_pV) { return false; @@ -912,30 +917,30 @@ v_2 = limit_backward; limit_backward = cursor; cursor = limit - v_1; - // (, line 166 - // [, line 166 + // (, line 168 + // [, line 168 ket = cursor; - // substring, line 166 + // substring, line 168 among_var = find_among_b(a_7, 12); if (among_var == 0) { limit_backward = v_2; return false; } - // ], line 166 + // ], line 168 bra = cursor; limit_backward = v_2; switch(among_var) { case 0: return false; case 1: - // (, line 169 - // literal, line 169 + // (, line 171 + // literal, line 171 if (!(eq_s_b(1, "u"))) { return false; } - // delete, line 169 + // delete, line 171 slice_del(); break; } @@ -948,10 +953,10 @@ int v_2; int v_3; int v_4; - // (, line 173 - // setlimit, line 174 + // (, line 175 + // setlimit, line 176 v_1 = limit - cursor; - // tomark, line 174 + // tomark, line 176 if (cursor < I_pV) { return false; @@ -960,37 +965,37 @@ v_2 = limit_backward; limit_backward = cursor; cursor = limit - v_1; - // (, line 174 - // [, line 174 + // (, line 176 + // [, line 176 ket = cursor; - // substring, line 174 + // substring, line 176 among_var = find_among_b(a_8, 96); if (among_var == 0) { limit_backward = v_2; return false; } - // ], line 174 + // ], line 176 bra = cursor; limit_backward = v_2; switch(among_var) { case 0: return false; case 1: - // (, line 177 - // try, line 177 + // (, line 179 + // try, line 179 v_3 = limit - cursor; lab0: do { - // (, line 177 - // literal, line 177 + // (, line 179 + // literal, line 179 if (!(eq_s_b(1, "u"))) { cursor = limit - v_3; break lab0; } - // test, line 177 + // test, line 179 v_4 = limit - cursor; - // literal, line 177 + // literal, line 179 if (!(eq_s_b(1, "g"))) { cursor = limit - v_3; @@ -998,14 +1003,14 @@ } cursor = limit - v_4; } while (false); - // ], line 177 + // ], line 179 bra = cursor; - // delete, line 177 + // delete, line 179 slice_del(); break; case 2: - // (, line 198 - // delete, line 198 + // (, line 200 + // delete, line 200 slice_del(); break; } @@ -1016,69 +1021,69 @@ int among_var; int v_1; int v_2; - // (, line 202 - // [, line 203 + // (, line 204 + // [, line 205 ket = cursor; - // substring, line 203 + // substring, line 205 among_var = find_among_b(a_9, 8); if (among_var == 0) { return false; } - // ], line 203 + // ], line 205 bra = cursor; switch(among_var) { case 0: return false; case 1: - // (, line 206 - // call RV, line 206 + // (, line 208 + // call RV, line 208 if (!r_RV()) { return false; } - // delete, line 206 + // delete, line 208 slice_del(); break; case 2: - // (, line 208 - // call RV, line 208 + // (, line 210 + // call RV, line 210 if (!r_RV()) { return false; } - // delete, line 208 + // delete, line 210 slice_del(); - // try, line 208 + // try, line 210 v_1 = limit - cursor; lab0: do { - // (, line 208 - // [, line 208 + // (, line 210 + // [, line 210 ket = cursor; - // literal, line 208 + // literal, line 210 if (!(eq_s_b(1, "u"))) { cursor = limit - v_1; break lab0; } - // ], line 208 + // ], line 210 bra = cursor; - // test, line 208 + // test, line 210 v_2 = limit - cursor; - // literal, line 208 + // literal, line 210 if (!(eq_s_b(1, "g"))) { cursor = limit - v_1; break lab0; } cursor = limit - v_2; - // call RV, line 208 + // call RV, line 210 if (!r_RV()) { cursor = limit - v_1; break lab0; } - // delete, line 208 + // delete, line 210 slice_del(); } while (false); break; @@ -1093,39 +1098,39 @@ int v_4; int v_5; int v_6; - // (, line 213 - // do, line 214 + // (, line 215 + // do, line 216 v_1 = cursor; lab0: do { - // call mark_regions, line 214 + // call mark_regions, line 216 if (!r_mark_regions()) { break lab0; } } while (false); cursor = v_1; - // backwards, line 215 + // backwards, line 217 limit_backward = cursor; cursor = limit; - // (, line 215 - // do, line 216 + // (, line 217 + // do, line 218 v_2 = limit - cursor; lab1: do { - // call attached_pronoun, line 216 + // call attached_pronoun, line 218 if (!r_attached_pronoun()) { break lab1; } } while (false); cursor = limit - v_2; - // do, line 217 + // do, line 219 v_3 = limit - cursor; lab2: do { - // (, line 217 - // or, line 217 + // (, line 219 + // or, line 219 lab3: do { v_4 = limit - cursor; lab4: do { - // call standard_suffix, line 217 + // call standard_suffix, line 219 if (!r_standard_suffix()) { break lab4; @@ -1134,7 +1139,7 @@ } while (false); cursor = limit - v_4; lab5: do { - // call y_verb_suffix, line 218 + // call y_verb_suffix, line 220 if (!r_y_verb_suffix()) { break lab5; @@ -1142,7 +1147,7 @@ break lab3; } while (false); cursor = limit - v_4; - // call verb_suffix, line 219 + // call verb_suffix, line 221 if (!r_verb_suffix()) { break lab2; @@ -1150,20 +1155,20 @@ } while (false); } while (false); cursor = limit - v_3; - // do, line 221 + // do, line 223 v_5 = limit - cursor; lab6: do { - // call residual_suffix, line 221 + // call residual_suffix, line 223 if (!r_residual_suffix()) { break lab6; } } while (false); cursor = limit - v_5; - cursor = limit_backward; // do, line 223 + cursor = limit_backward; // do, line 225 v_6 = cursor; lab7: do { - // call postlude, line 223 + // call postlude, line 225 if (!r_postlude()) { break lab7; Index: contrib/snowball/src/java/net/sf/snowball/ext/DanishStemmer.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/DanishStemmer.java (revision 480218) +++ contrib/snowball/src/java/net/sf/snowball/ext/DanishStemmer.java (working copy) @@ -63,10 +63,12 @@ private static final char g_s_ending[] = {239, 254, 42, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16 }; + private int I_x; private int I_p1; private StringBuffer S_ch = new StringBuffer(); private void copy_from(DanishStemmer other) { + I_x = other.I_x; I_p1 = other.I_p1; S_ch = other.S_ch; super.copy_from(other); @@ -74,28 +76,44 @@ private boolean r_mark_regions() { int v_1; + int v_2; // (, line 29 I_p1 = limit; - // goto, line 33 + // test, line 33 + v_1 = cursor; + // (, line 33 + // hop, line 33 + { + int c = cursor + 3; + if (0 > c || c > limit) + { + return false; + } + cursor = c; + } + // setmark x, line 33 + I_x = cursor; + cursor = v_1; + // goto, line 34 golab0: while(true) { - v_1 = cursor; + v_2 = cursor; lab1: do { if (!(in_grouping(g_v, 97, 248))) { break lab1; } - cursor = v_1; + cursor = v_2; break golab0; } while (false); - cursor = v_1; + cursor = v_2; if (cursor >= limit) { return false; } cursor++; } - // gopast, line 33 + // gopast, line 34 golab2: while(true) { lab3: do { @@ -111,16 +129,16 @@ } cursor++; } - // setmark p1, line 33 + // setmark p1, line 34 I_p1 = cursor; - // try, line 34 + // try, line 35 lab4: do { - // (, line 34 - if (!(I_p1 < 3)) + // (, line 35 + if (!(I_p1 < I_x)) { break lab4; } - I_p1 = 3; + I_p1 = I_x; } while (false); return true; } @@ -129,10 +147,10 @@ int among_var; int v_1; int v_2; - // (, line 39 - // setlimit, line 40 + // (, line 40 + // setlimit, line 41 v_1 = limit - cursor; - // tomark, line 40 + // tomark, line 41 if (cursor < I_p1) { return false; @@ -141,34 +159,34 @@ v_2 = limit_backward; limit_backward = cursor; cursor = limit - v_1; - // (, line 40 - // [, line 40 + // (, line 41 + // [, line 41 ket = cursor; - // substring, line 40 + // substring, line 41 among_var = find_among_b(a_0, 32); if (among_var == 0) { limit_backward = v_2; return false; } - // ], line 40 + // ], line 41 bra = cursor; limit_backward = v_2; switch(among_var) { case 0: return false; case 1: - // (, line 47 - // delete, line 47 + // (, line 48 + // delete, line 48 slice_del(); break; case 2: - // (, line 49 + // (, line 50 if (!(in_grouping_b(g_s_ending, 97, 229))) { return false; } - // delete, line 49 + // delete, line 50 slice_del(); break; } @@ -179,13 +197,13 @@ int v_1; int v_2; int v_3; - // (, line 53 - // test, line 54 + // (, line 54 + // test, line 55 v_1 = limit - cursor; - // (, line 54 - // setlimit, line 55 + // (, line 55 + // setlimit, line 56 v_2 = limit - cursor; - // tomark, line 55 + // tomark, line 56 if (cursor < I_p1) { return false; @@ -194,28 +212,28 @@ v_3 = limit_backward; limit_backward = cursor; cursor = limit - v_2; - // (, line 55 - // [, line 55 + // (, line 56 + // [, line 56 ket = cursor; - // substring, line 55 + // substring, line 56 if (find_among_b(a_1, 4) == 0) { limit_backward = v_3; return false; } - // ], line 55 + // ], line 56 bra = cursor; limit_backward = v_3; cursor = limit - v_1; - // next, line 61 + // next, line 62 if (cursor <= limit_backward) { return false; } cursor--; - // ], line 61 + // ], line 62 bra = cursor; - // delete, line 61 + // delete, line 62 slice_del(); return true; } @@ -226,32 +244,32 @@ int v_2; int v_3; int v_4; - // (, line 64 - // do, line 65 + // (, line 65 + // do, line 66 v_1 = limit - cursor; lab0: do { - // (, line 65 - // [, line 65 + // (, line 66 + // [, line 66 ket = cursor; - // literal, line 65 + // literal, line 66 if (!(eq_s_b(2, "st"))) { break lab0; } - // ], line 65 + // ], line 66 bra = cursor; - // literal, line 65 + // literal, line 66 if (!(eq_s_b(2, "ig"))) { break lab0; } - // delete, line 65 + // delete, line 66 slice_del(); } while (false); cursor = limit - v_1; - // setlimit, line 66 + // setlimit, line 67 v_2 = limit - cursor; - // tomark, line 66 + // tomark, line 67 if (cursor < I_p1) { return false; @@ -260,30 +278,30 @@ v_3 = limit_backward; limit_backward = cursor; cursor = limit - v_2; - // (, line 66 - // [, line 66 + // (, line 67 + // [, line 67 ket = cursor; - // substring, line 66 + // substring, line 67 among_var = find_among_b(a_2, 5); if (among_var == 0) { limit_backward = v_3; return false; } - // ], line 66 + // ], line 67 bra = cursor; limit_backward = v_3; switch(among_var) { case 0: return false; case 1: - // (, line 69 - // delete, line 69 + // (, line 70 + // delete, line 70 slice_del(); - // do, line 69 + // do, line 70 v_4 = limit - cursor; lab1: do { - // call consonant_pair, line 69 + // call consonant_pair, line 70 if (!r_consonant_pair()) { break lab1; @@ -292,8 +310,8 @@ cursor = limit - v_4; break; case 2: - // (, line 71 - // <-, line 71 + // (, line 72 + // <-, line 72 slice_from("l\u00F8s"); break; } @@ -303,10 +321,10 @@ private boolean r_undouble() { int v_1; int v_2; - // (, line 74 - // setlimit, line 75 + // (, line 75 + // setlimit, line 76 v_1 = limit - cursor; - // tomark, line 75 + // tomark, line 76 if (cursor < I_p1) { return false; @@ -315,25 +333,25 @@ v_2 = limit_backward; limit_backward = cursor; cursor = limit - v_1; - // (, line 75 - // [, line 75 + // (, line 76 + // [, line 76 ket = cursor; if (!(out_grouping_b(g_v, 97, 248))) { limit_backward = v_2; return false; } - // ], line 75 + // ], line 76 bra = cursor; - // -> ch, line 75 + // -> ch, line 76 S_ch = slice_to(S_ch); limit_backward = v_2; - // name ch, line 76 + // name ch, line 77 if (!(eq_v_b(S_ch))) { return false; } - // delete, line 77 + // delete, line 78 slice_del(); return true; } @@ -344,54 +362,54 @@ int v_3; int v_4; int v_5; - // (, line 81 - // do, line 83 + // (, line 82 + // do, line 84 v_1 = cursor; lab0: do { - // call mark_regions, line 83 + // call mark_regions, line 84 if (!r_mark_regions()) { break lab0; } } while (false); cursor = v_1; - // backwards, line 84 + // backwards, line 85 limit_backward = cursor; cursor = limit; - // (, line 84 - // do, line 85 + // (, line 85 + // do, line 86 v_2 = limit - cursor; lab1: do { - // call main_suffix, line 85 + // call main_suffix, line 86 if (!r_main_suffix()) { break lab1; } } while (false); cursor = limit - v_2; - // do, line 86 + // do, line 87 v_3 = limit - cursor; lab2: do { - // call consonant_pair, line 86 + // call consonant_pair, line 87 if (!r_consonant_pair()) { break lab2; } } while (false); cursor = limit - v_3; - // do, line 87 + // do, line 88 v_4 = limit - cursor; lab3: do { - // call other_suffix, line 87 + // call other_suffix, line 88 if (!r_other_suffix()) { break lab3; } } while (false); cursor = limit - v_4; - // do, line 88 + // do, line 89 v_5 = limit - cursor; lab4: do { - // call undouble, line 88 + // call undouble, line 89 if (!r_undouble()) { break lab4; Index: contrib/snowball/src/java/net/sf/snowball/ext/SwedishStemmer.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/SwedishStemmer.java (revision 480218) +++ contrib/snowball/src/java/net/sf/snowball/ext/SwedishStemmer.java (working copy) @@ -71,30 +71,48 @@ private static final char g_s_ending[] = {119, 127, 149 }; + private int I_x; private int I_p1; private void copy_from(SwedishStemmer other) { + I_x = other.I_x; I_p1 = other.I_p1; super.copy_from(other); } private boolean r_mark_regions() { int v_1; + int v_2; // (, line 26 I_p1 = limit; + // test, line 29 + v_1 = cursor; + // (, line 29 + // hop, line 29 + { + int c = cursor + 3; + if (0 > c || c > limit) + { + return false; + } + cursor = c; + } + // setmark x, line 29 + I_x = cursor; + cursor = v_1; // goto, line 30 golab0: while(true) { - v_1 = cursor; + v_2 = cursor; lab1: do { if (!(in_grouping(g_v, 97, 246))) { break lab1; } - cursor = v_1; + cursor = v_2; break golab0; } while (false); - cursor = v_1; + cursor = v_2; if (cursor >= limit) { return false; @@ -122,11 +140,11 @@ // try, line 31 lab4: do { // (, line 31 - if (!(I_p1 < 3)) + if (!(I_p1 < I_x)) { break lab4; } - I_p1 = 3; + I_p1 = I_x; } while (false); return true; } Index: contrib/snowball/src/java/net/sf/snowball/ext/GermanStemmer.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/GermanStemmer.java (revision 480218) +++ contrib/snowball/src/java/net/sf/snowball/ext/GermanStemmer.java (working copy) @@ -57,10 +57,12 @@ private static final char g_st_ending[] = {117, 30, 4 }; + private int I_x; private int I_p2; private int I_p1; private void copy_from(GermanStemmer other) { + I_x = other.I_x; I_p2 = other.I_p2; I_p1 = other.I_p1; super.copy_from(other); @@ -186,10 +188,26 @@ } private boolean r_mark_regions() { + int v_1; // (, line 42 I_p1 = limit; I_p2 = limit; - // gopast, line 47 + // test, line 47 + v_1 = cursor; + // (, line 47 + // hop, line 47 + { + int c = cursor + 3; + if (0 > c || c > limit) + { + return false; + } + cursor = c; + } + // setmark x, line 47 + I_x = cursor; + cursor = v_1; + // gopast, line 49 golab0: while(true) { lab1: do { @@ -205,7 +223,7 @@ } cursor++; } - // gopast, line 47 + // gopast, line 49 golab2: while(true) { lab3: do { @@ -221,18 +239,18 @@ } cursor++; } - // setmark p1, line 47 + // setmark p1, line 49 I_p1 = cursor; - // try, line 48 + // try, line 50 lab4: do { - // (, line 48 - if (!(I_p1 < 3)) + // (, line 50 + if (!(I_p1 < I_x)) { break lab4; } - I_p1 = 3; + I_p1 = I_x; } while (false); - // gopast, line 49 + // gopast, line 51 golab5: while(true) { lab6: do { @@ -248,7 +266,7 @@ } cursor++; } - // gopast, line 49 + // gopast, line 51 golab7: while(true) { lab8: do { @@ -264,7 +282,7 @@ } cursor++; } - // setmark p2, line 49 + // setmark p2, line 51 I_p2 = cursor; return true; } @@ -272,53 +290,53 @@ private boolean r_postlude() { int among_var; int v_1; - // repeat, line 53 + // repeat, line 55 replab0: while(true) { v_1 = cursor; lab1: do { - // (, line 53 - // [, line 55 + // (, line 55 + // [, line 57 bra = cursor; - // substring, line 55 + // substring, line 57 among_var = find_among(a_0, 6); if (among_var == 0) { break lab1; } - // ], line 55 + // ], line 57 ket = cursor; switch(among_var) { case 0: break lab1; case 1: - // (, line 56 - // <-, line 56 + // (, line 58 + // <-, line 58 slice_from("y"); break; case 2: - // (, line 57 - // <-, line 57 + // (, line 59 + // <-, line 59 slice_from("u"); break; case 3: - // (, line 58 - // <-, line 58 + // (, line 60 + // <-, line 60 slice_from("a"); break; case 4: - // (, line 59 - // <-, line 59 + // (, line 61 + // <-, line 61 slice_from("o"); break; case 5: - // (, line 60 - // <-, line 60 + // (, line 62 + // <-, line 62 slice_from("u"); break; case 6: - // (, line 61 - // next, line 61 + // (, line 63 + // next, line 63 if (cursor >= limit) { break lab1; @@ -361,22 +379,22 @@ int v_7; int v_8; int v_9; - // (, line 71 - // do, line 72 + // (, line 73 + // do, line 74 v_1 = limit - cursor; lab0: do { - // (, line 72 - // [, line 73 + // (, line 74 + // [, line 75 ket = cursor; - // substring, line 73 + // substring, line 75 among_var = find_among_b(a_1, 7); if (among_var == 0) { break lab0; } - // ], line 73 + // ], line 75 bra = cursor; - // call R1, line 73 + // call R1, line 75 if (!r_R1()) { break lab0; @@ -385,37 +403,37 @@ case 0: break lab0; case 1: - // (, line 75 - // delete, line 75 + // (, line 77 + // delete, line 77 slice_del(); break; case 2: - // (, line 78 + // (, line 80 if (!(in_grouping_b(g_s_ending, 98, 116))) { break lab0; } - // delete, line 78 + // delete, line 80 slice_del(); break; } } while (false); cursor = limit - v_1; - // do, line 82 + // do, line 84 v_2 = limit - cursor; lab1: do { - // (, line 82 - // [, line 83 + // (, line 84 + // [, line 85 ket = cursor; - // substring, line 83 + // substring, line 85 among_var = find_among_b(a_2, 4); if (among_var == 0) { break lab1; } - // ], line 83 + // ], line 85 bra = cursor; - // call R1, line 83 + // call R1, line 85 if (!r_R1()) { break lab1; @@ -424,17 +442,17 @@ case 0: break lab1; case 1: - // (, line 85 - // delete, line 85 + // (, line 87 + // delete, line 87 slice_del(); break; case 2: - // (, line 88 + // (, line 90 if (!(in_grouping_b(g_st_ending, 98, 116))) { break lab1; } - // hop, line 88 + // hop, line 90 { int c = cursor - 3; if (limit_backward > c || c > limit) @@ -443,27 +461,27 @@ } cursor = c; } - // delete, line 88 + // delete, line 90 slice_del(); break; } } while (false); cursor = limit - v_2; - // do, line 92 + // do, line 94 v_3 = limit - cursor; lab2: do { - // (, line 92 - // [, line 93 + // (, line 94 + // [, line 95 ket = cursor; - // substring, line 93 + // substring, line 95 among_var = find_among_b(a_4, 8); if (among_var == 0) { break lab2; } - // ], line 93 + // ], line 95 bra = cursor; - // call R2, line 93 + // call R2, line 95 if (!r_R2()) { break lab2; @@ -472,28 +490,28 @@ case 0: break lab2; case 1: - // (, line 95 - // delete, line 95 + // (, line 97 + // delete, line 97 slice_del(); - // try, line 96 + // try, line 98 v_4 = limit - cursor; lab3: do { - // (, line 96 - // [, line 96 + // (, line 98 + // [, line 98 ket = cursor; - // literal, line 96 + // literal, line 98 if (!(eq_s_b(2, "ig"))) { cursor = limit - v_4; break lab3; } - // ], line 96 + // ], line 98 bra = cursor; - // not, line 96 + // not, line 98 { v_5 = limit - cursor; lab4: do { - // literal, line 96 + // literal, line 98 if (!(eq_s_b(1, "e"))) { break lab4; @@ -503,23 +521,23 @@ } while (false); cursor = limit - v_5; } - // call R2, line 96 + // call R2, line 98 if (!r_R2()) { cursor = limit - v_4; break lab3; } - // delete, line 96 + // delete, line 98 slice_del(); } while (false); break; case 2: - // (, line 99 - // not, line 99 + // (, line 101 + // not, line 101 { v_6 = limit - cursor; lab5: do { - // literal, line 99 + // literal, line 101 if (!(eq_s_b(1, "e"))) { break lab5; @@ -528,24 +546,24 @@ } while (false); cursor = limit - v_6; } - // delete, line 99 + // delete, line 101 slice_del(); break; case 3: - // (, line 102 - // delete, line 102 + // (, line 104 + // delete, line 104 slice_del(); - // try, line 103 + // try, line 105 v_7 = limit - cursor; lab6: do { - // (, line 103 - // [, line 104 + // (, line 105 + // [, line 106 ket = cursor; - // or, line 104 + // or, line 106 lab7: do { v_8 = limit - cursor; lab8: do { - // literal, line 104 + // literal, line 106 if (!(eq_s_b(2, "er"))) { break lab8; @@ -553,45 +571,45 @@ break lab7; } while (false); cursor = limit - v_8; - // literal, line 104 + // literal, line 106 if (!(eq_s_b(2, "en"))) { cursor = limit - v_7; break lab6; } } while (false); - // ], line 104 + // ], line 106 bra = cursor; - // call R1, line 104 + // call R1, line 106 if (!r_R1()) { cursor = limit - v_7; break lab6; } - // delete, line 104 + // delete, line 106 slice_del(); } while (false); break; case 4: - // (, line 108 - // delete, line 108 + // (, line 110 + // delete, line 110 slice_del(); - // try, line 109 + // try, line 111 v_9 = limit - cursor; lab9: do { - // (, line 109 - // [, line 110 + // (, line 111 + // [, line 112 ket = cursor; - // substring, line 110 + // substring, line 112 among_var = find_among_b(a_3, 2); if (among_var == 0) { cursor = limit - v_9; break lab9; } - // ], line 110 + // ], line 112 bra = cursor; - // call R2, line 110 + // call R2, line 112 if (!r_R2()) { cursor = limit - v_9; @@ -602,8 +620,8 @@ cursor = limit - v_9; break lab9; case 1: - // (, line 112 - // delete, line 112 + // (, line 114 + // delete, line 114 slice_del(); break; } @@ -620,43 +638,43 @@ int v_2; int v_3; int v_4; - // (, line 122 - // do, line 123 + // (, line 124 + // do, line 125 v_1 = cursor; lab0: do { - // call prelude, line 123 + // call prelude, line 125 if (!r_prelude()) { break lab0; } } while (false); cursor = v_1; - // do, line 124 + // do, line 126 v_2 = cursor; lab1: do { - // call mark_regions, line 124 + // call mark_regions, line 126 if (!r_mark_regions()) { break lab1; } } while (false); cursor = v_2; - // backwards, line 125 + // backwards, line 127 limit_backward = cursor; cursor = limit; - // do, line 126 + // do, line 128 v_3 = limit - cursor; lab2: do { - // call standard_suffix, line 126 + // call standard_suffix, line 128 if (!r_standard_suffix()) { break lab2; } } while (false); cursor = limit - v_3; - cursor = limit_backward; // do, line 127 + cursor = limit_backward; // do, line 129 v_4 = cursor; lab3: do { - // call postlude, line 127 + // call postlude, line 129 if (!r_postlude()) { break lab3; Index: contrib/snowball/src/java/net/sf/snowball/ext/HungarianStemmer.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/HungarianStemmer.java (revision 0) +++ contrib/snowball/src/java/net/sf/snowball/ext/HungarianStemmer.java (revision 0) @@ -0,0 +1,1159 @@ +// This file was generated automatically by the Snowball to Java compiler + +package net.sf.snowball.ext; + +import net.sf.snowball.Among; +import net.sf.snowball.SnowballProgram; + +/** + * Generated class implementing code defined by a snowball script. + */ +public class HungarianStemmer extends SnowballProgram { + + private Among a_0[] = { + new Among ( "cs", -1, -1, "", this), + new Among ( "dzs", -1, -1, "", this), + new Among ( "gy", -1, -1, "", this), + new Among ( "ly", -1, -1, "", this), + new Among ( "ny", -1, -1, "", this), + new Among ( "sz", -1, -1, "", this), + new Among ( "ty", -1, -1, "", this), + new Among ( "zs", -1, -1, "", this) + }; + + private Among a_1[] = { + new Among ( "\u00E1", -1, 1, "", this), + new Among ( "\u00E9", -1, 2, "", this) + }; + + private Among a_2[] = { + new Among ( "bb", -1, -1, "", this), + new Among ( "cc", -1, -1, "", this), + new Among ( "dd", -1, -1, "", this), + new Among ( "ff", -1, -1, "", this), + new Among ( "gg", -1, -1, "", this), + new Among ( "jj", -1, -1, "", this), + new Among ( "kk", -1, -1, "", this), + new Among ( "ll", -1, -1, "", this), + new Among ( "mm", -1, -1, "", this), + new Among ( "nn", -1, -1, "", this), + new Among ( "pp", -1, -1, "", this), + new Among ( "rr", -1, -1, "", this), + new Among ( "ccs", -1, -1, "", this), + new Among ( "ss", -1, -1, "", this), + new Among ( "zzs", -1, -1, "", this), + new Among ( "tt", -1, -1, "", this), + new Among ( "vv", -1, -1, "", this), + new Among ( "ggy", -1, -1, "", this), + new Among ( "lly", -1, -1, "", this), + new Among ( "nny", -1, -1, "", this), + new Among ( "tty", -1, -1, "", this), + new Among ( "ssz", -1, -1, "", this), + new Among ( "zz", -1, -1, "", this) + }; + + private Among a_3[] = { + new Among ( "al", -1, 1, "", this), + new Among ( "el", -1, 2, "", this) + }; + + private Among a_4[] = { + new Among ( "ba", -1, -1, "", this), + new Among ( "ra", -1, -1, "", this), + new Among ( "be", -1, -1, "", this), + new Among ( "re", -1, -1, "", this), + new Among ( "ig", -1, -1, "", this), + new Among ( "nak", -1, -1, "", this), + new Among ( "nek", -1, -1, "", this), + new Among ( "val", -1, -1, "", this), + new Among ( "vel", -1, -1, "", this), + new Among ( "ul", -1, -1, "", this), + new Among ( "n\u00E1l", -1, -1, "", this), + new Among ( "n\u00E9l", -1, -1, "", this), + new Among ( "b\u00F3l", -1, -1, "", this), + new Among ( "r\u00F3l", -1, -1, "", this), + new Among ( "t\u00F3l", -1, -1, "", this), + new Among ( "b\u00F5l", -1, -1, "", this), + new Among ( "r\u00F5l", -1, -1, "", this), + new Among ( "t\u00F5l", -1, -1, "", this), + new Among ( "\u00FCl", -1, -1, "", this), + new Among ( "n", -1, -1, "", this), + new Among ( "an", 19, -1, "", this), + new Among ( "ban", 20, -1, "", this), + new Among ( "en", 19, -1, "", this), + new Among ( "ben", 22, -1, "", this), + new Among ( "k\u00E9ppen", 22, -1, "", this), + new Among ( "on", 19, -1, "", this), + new Among ( "\u00F6n", 19, -1, "", this), + new Among ( "k\u00E9pp", -1, -1, "", this), + new Among ( "kor", -1, -1, "", this), + new Among ( "t", -1, -1, "", this), + new Among ( "at", 29, -1, "", this), + new Among ( "et", 29, -1, "", this), + new Among ( "k\u00E9nt", 29, -1, "", this), + new Among ( "ank\u00E9nt", 32, -1, "", this), + new Among ( "enk\u00E9nt", 32, -1, "", this), + new Among ( "onk\u00E9nt", 32, -1, "", this), + new Among ( "ot", 29, -1, "", this), + new Among ( "\u00E9rt", 29, -1, "", this), + new Among ( "\u00F6t", 29, -1, "", this), + new Among ( "hez", -1, -1, "", this), + new Among ( "hoz", -1, -1, "", this), + new Among ( "h\u00F6z", -1, -1, "", this), + new Among ( "v\u00E1", -1, -1, "", this), + new Among ( "v\u00E9", -1, -1, "", this) + }; + + private Among a_5[] = { + new Among ( "\u00E1n", -1, 2, "", this), + new Among ( "\u00E9n", -1, 1, "", this), + new Among ( "\u00E1nk\u00E9nt", -1, 3, "", this) + }; + + private Among a_6[] = { + new Among ( "stul", -1, 2, "", this), + new Among ( "astul", 0, 1, "", this), + new Among ( "\u00E1stul", 0, 3, "", this), + new Among ( "st\u00FCl", -1, 2, "", this), + new Among ( "est\u00FCl", 3, 1, "", this), + new Among ( "\u00E9st\u00FCl", 3, 4, "", this) + }; + + private Among a_7[] = { + new Among ( "\u00E1", -1, 1, "", this), + new Among ( "\u00E9", -1, 2, "", this) + }; + + private Among a_8[] = { + new Among ( "k", -1, 7, "", this), + new Among ( "ak", 0, 4, "", this), + new Among ( "ek", 0, 6, "", this), + new Among ( "ok", 0, 5, "", this), + new Among ( "\u00E1k", 0, 1, "", this), + new Among ( "\u00E9k", 0, 2, "", this), + new Among ( "\u00F6k", 0, 3, "", this) + }; + + private Among a_9[] = { + new Among ( "\u00E9i", -1, 7, "", this), + new Among ( "\u00E1\u00E9i", 0, 6, "", this), + new Among ( "\u00E9\u00E9i", 0, 5, "", this), + new Among ( "\u00E9", -1, 9, "", this), + new Among ( "k\u00E9", 3, 4, "", this), + new Among ( "ak\u00E9", 4, 1, "", this), + new Among ( "ek\u00E9", 4, 1, "", this), + new Among ( "ok\u00E9", 4, 1, "", this), + new Among ( "\u00E1k\u00E9", 4, 3, "", this), + new Among ( "\u00E9k\u00E9", 4, 2, "", this), + new Among ( "\u00F6k\u00E9", 4, 1, "", this), + new Among ( "\u00E9\u00E9", 3, 8, "", this) + }; + + private Among a_10[] = { + new Among ( "a", -1, 18, "", this), + new Among ( "ja", 0, 17, "", this), + new Among ( "d", -1, 16, "", this), + new Among ( "ad", 2, 13, "", this), + new Among ( "ed", 2, 13, "", this), + new Among ( "od", 2, 13, "", this), + new Among ( "\u00E1d", 2, 14, "", this), + new Among ( "\u00E9d", 2, 15, "", this), + new Among ( "\u00F6d", 2, 13, "", this), + new Among ( "e", -1, 18, "", this), + new Among ( "je", 9, 17, "", this), + new Among ( "nk", -1, 4, "", this), + new Among ( "unk", 11, 1, "", this), + new Among ( "\u00E1nk", 11, 2, "", this), + new Among ( "\u00E9nk", 11, 3, "", this), + new Among ( "\u00FCnk", 11, 1, "", this), + new Among ( "uk", -1, 8, "", this), + new Among ( "juk", 16, 7, "", this), + new Among ( "\u00E1juk", 17, 5, "", this), + new Among ( "\u00FCk", -1, 8, "", this), + new Among ( "j\u00FCk", 19, 7, "", this), + new Among ( "\u00E9j\u00FCk", 20, 6, "", this), + new Among ( "m", -1, 12, "", this), + new Among ( "am", 22, 9, "", this), + new Among ( "em", 22, 9, "", this), + new Among ( "om", 22, 9, "", this), + new Among ( "\u00E1m", 22, 10, "", this), + new Among ( "\u00E9m", 22, 11, "", this), + new Among ( "o", -1, 18, "", this), + new Among ( "\u00E1", -1, 19, "", this), + new Among ( "\u00E9", -1, 20, "", this) + }; + + private Among a_11[] = { + new Among ( "id", -1, 10, "", this), + new Among ( "aid", 0, 9, "", this), + new Among ( "jaid", 1, 6, "", this), + new Among ( "eid", 0, 9, "", this), + new Among ( "jeid", 3, 6, "", this), + new Among ( "\u00E1id", 0, 7, "", this), + new Among ( "\u00E9id", 0, 8, "", this), + new Among ( "i", -1, 15, "", this), + new Among ( "ai", 7, 14, "", this), + new Among ( "jai", 8, 11, "", this), + new Among ( "ei", 7, 14, "", this), + new Among ( "jei", 10, 11, "", this), + new Among ( "\u00E1i", 7, 12, "", this), + new Among ( "\u00E9i", 7, 13, "", this), + new Among ( "itek", -1, 24, "", this), + new Among ( "eitek", 14, 21, "", this), + new Among ( "jeitek", 15, 20, "", this), + new Among ( "\u00E9itek", 14, 23, "", this), + new Among ( "ik", -1, 29, "", this), + new Among ( "aik", 18, 26, "", this), + new Among ( "jaik", 19, 25, "", this), + new Among ( "eik", 18, 26, "", this), + new Among ( "jeik", 21, 25, "", this), + new Among ( "\u00E1ik", 18, 27, "", this), + new Among ( "\u00E9ik", 18, 28, "", this), + new Among ( "ink", -1, 20, "", this), + new Among ( "aink", 25, 17, "", this), + new Among ( "jaink", 26, 16, "", this), + new Among ( "eink", 25, 17, "", this), + new Among ( "jeink", 28, 16, "", this), + new Among ( "\u00E1ink", 25, 18, "", this), + new Among ( "\u00E9ink", 25, 19, "", this), + new Among ( "aitok", -1, 21, "", this), + new Among ( "jaitok", 32, 20, "", this), + new Among ( "\u00E1itok", -1, 22, "", this), + new Among ( "im", -1, 5, "", this), + new Among ( "aim", 35, 4, "", this), + new Among ( "jaim", 36, 1, "", this), + new Among ( "eim", 35, 4, "", this), + new Among ( "jeim", 38, 1, "", this), + new Among ( "\u00E1im", 35, 2, "", this), + new Among ( "\u00E9im", 35, 3, "", this) + }; + + private static final char g_v[] = {17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 52, 14 }; + + private int I_p1; + + private void copy_from(HungarianStemmer other) { + I_p1 = other.I_p1; + super.copy_from(other); + } + + private boolean r_mark_regions() { + int v_1; + int v_2; + int v_3; + // (, line 44 + I_p1 = limit; + // or, line 51 + lab0: do { + v_1 = cursor; + lab1: do { + // (, line 48 + if (!(in_grouping(g_v, 97, 252))) + { + break lab1; + } + // goto, line 48 + golab2: while(true) + { + v_2 = cursor; + lab3: do { + if (!(out_grouping(g_v, 97, 252))) + { + break lab3; + } + cursor = v_2; + break golab2; + } while (false); + cursor = v_2; + if (cursor >= limit) + { + break lab1; + } + cursor++; + } + // or, line 49 + lab4: do { + v_3 = cursor; + lab5: do { + // among, line 49 + if (find_among(a_0, 8) == 0) + { + break lab5; + } + break lab4; + } while (false); + cursor = v_3; + // next, line 49 + if (cursor >= limit) + { + break lab1; + } + cursor++; + } while (false); + // setmark p1, line 50 + I_p1 = cursor; + break lab0; + } while (false); + cursor = v_1; + // (, line 53 + if (!(out_grouping(g_v, 97, 252))) + { + return false; + } + // gopast, line 53 + golab6: while(true) + { + lab7: do { + if (!(in_grouping(g_v, 97, 252))) + { + break lab7; + } + break golab6; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // setmark p1, line 53 + I_p1 = cursor; + } while (false); + return true; + } + + private boolean r_R1() { + if (!(I_p1 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_v_ending() { + int among_var; + // (, line 60 + // [, line 61 + ket = cursor; + // substring, line 61 + among_var = find_among_b(a_1, 2); + if (among_var == 0) + { + return false; + } + // ], line 61 + bra = cursor; + // call R1, line 61 + if (!r_R1()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 62 + // <-, line 62 + slice_from("a"); + break; + case 2: + // (, line 63 + // <-, line 63 + slice_from("e"); + break; + } + return true; + } + + private boolean r_double() { + int v_1; + // (, line 67 + // test, line 68 + v_1 = limit - cursor; + // among, line 68 + if (find_among_b(a_2, 23) == 0) + { + return false; + } + cursor = limit - v_1; + return true; + } + + private boolean r_undouble() { + // (, line 72 + // next, line 73 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // [, line 73 + ket = cursor; + // hop, line 73 + { + int c = cursor - 1; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + // ], line 73 + bra = cursor; + // delete, line 73 + slice_del(); + return true; + } + + private boolean r_instrum() { + int among_var; + // (, line 76 + // [, line 77 + ket = cursor; + // substring, line 77 + among_var = find_among_b(a_3, 2); + if (among_var == 0) + { + return false; + } + // ], line 77 + bra = cursor; + // call R1, line 77 + if (!r_R1()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 78 + // call double, line 78 + if (!r_double()) + { + return false; + } + break; + case 2: + // (, line 79 + // call double, line 79 + if (!r_double()) + { + return false; + } + break; + } + // delete, line 81 + slice_del(); + // call undouble, line 82 + if (!r_undouble()) + { + return false; + } + return true; + } + + private boolean r_case() { + // (, line 86 + // [, line 87 + ket = cursor; + // substring, line 87 + if (find_among_b(a_4, 44) == 0) + { + return false; + } + // ], line 87 + bra = cursor; + // call R1, line 87 + if (!r_R1()) + { + return false; + } + // delete, line 111 + slice_del(); + // call v_ending, line 112 + if (!r_v_ending()) + { + return false; + } + return true; + } + + private boolean r_case_special() { + int among_var; + // (, line 115 + // [, line 116 + ket = cursor; + // substring, line 116 + among_var = find_among_b(a_5, 3); + if (among_var == 0) + { + return false; + } + // ], line 116 + bra = cursor; + // call R1, line 116 + if (!r_R1()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 117 + // <-, line 117 + slice_from("e"); + break; + case 2: + // (, line 118 + // <-, line 118 + slice_from("a"); + break; + case 3: + // (, line 119 + // <-, line 119 + slice_from("a"); + break; + } + return true; + } + + private boolean r_case_other() { + int among_var; + // (, line 123 + // [, line 124 + ket = cursor; + // substring, line 124 + among_var = find_among_b(a_6, 6); + if (among_var == 0) + { + return false; + } + // ], line 124 + bra = cursor; + // call R1, line 124 + if (!r_R1()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 125 + // delete, line 125 + slice_del(); + break; + case 2: + // (, line 126 + // delete, line 126 + slice_del(); + break; + case 3: + // (, line 127 + // <-, line 127 + slice_from("a"); + break; + case 4: + // (, line 128 + // <-, line 128 + slice_from("e"); + break; + } + return true; + } + + private boolean r_factive() { + int among_var; + // (, line 132 + // [, line 133 + ket = cursor; + // substring, line 133 + among_var = find_among_b(a_7, 2); + if (among_var == 0) + { + return false; + } + // ], line 133 + bra = cursor; + // call R1, line 133 + if (!r_R1()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 134 + // call double, line 134 + if (!r_double()) + { + return false; + } + break; + case 2: + // (, line 135 + // call double, line 135 + if (!r_double()) + { + return false; + } + break; + } + // delete, line 137 + slice_del(); + // call undouble, line 138 + if (!r_undouble()) + { + return false; + } + return true; + } + + private boolean r_plural() { + int among_var; + // (, line 141 + // [, line 142 + ket = cursor; + // substring, line 142 + among_var = find_among_b(a_8, 7); + if (among_var == 0) + { + return false; + } + // ], line 142 + bra = cursor; + // call R1, line 142 + if (!r_R1()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 143 + // <-, line 143 + slice_from("a"); + break; + case 2: + // (, line 144 + // <-, line 144 + slice_from("e"); + break; + case 3: + // (, line 145 + // delete, line 145 + slice_del(); + break; + case 4: + // (, line 146 + // delete, line 146 + slice_del(); + break; + case 5: + // (, line 147 + // delete, line 147 + slice_del(); + break; + case 6: + // (, line 148 + // delete, line 148 + slice_del(); + break; + case 7: + // (, line 149 + // delete, line 149 + slice_del(); + break; + } + return true; + } + + private boolean r_owned() { + int among_var; + // (, line 153 + // [, line 154 + ket = cursor; + // substring, line 154 + among_var = find_among_b(a_9, 12); + if (among_var == 0) + { + return false; + } + // ], line 154 + bra = cursor; + // call R1, line 154 + if (!r_R1()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 155 + // delete, line 155 + slice_del(); + break; + case 2: + // (, line 156 + // <-, line 156 + slice_from("e"); + break; + case 3: + // (, line 157 + // <-, line 157 + slice_from("a"); + break; + case 4: + // (, line 158 + // delete, line 158 + slice_del(); + break; + case 5: + // (, line 159 + // <-, line 159 + slice_from("e"); + break; + case 6: + // (, line 160 + // <-, line 160 + slice_from("a"); + break; + case 7: + // (, line 161 + // delete, line 161 + slice_del(); + break; + case 8: + // (, line 162 + // <-, line 162 + slice_from("e"); + break; + case 9: + // (, line 163 + // delete, line 163 + slice_del(); + break; + } + return true; + } + + private boolean r_sing_owner() { + int among_var; + // (, line 167 + // [, line 168 + ket = cursor; + // substring, line 168 + among_var = find_among_b(a_10, 31); + if (among_var == 0) + { + return false; + } + // ], line 168 + bra = cursor; + // call R1, line 168 + if (!r_R1()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 169 + // delete, line 169 + slice_del(); + break; + case 2: + // (, line 170 + // <-, line 170 + slice_from("a"); + break; + case 3: + // (, line 171 + // <-, line 171 + slice_from("e"); + break; + case 4: + // (, line 172 + // delete, line 172 + slice_del(); + break; + case 5: + // (, line 173 + // <-, line 173 + slice_from("a"); + break; + case 6: + // (, line 174 + // <-, line 174 + slice_from("e"); + break; + case 7: + // (, line 175 + // delete, line 175 + slice_del(); + break; + case 8: + // (, line 176 + // delete, line 176 + slice_del(); + break; + case 9: + // (, line 177 + // delete, line 177 + slice_del(); + break; + case 10: + // (, line 178 + // <-, line 178 + slice_from("a"); + break; + case 11: + // (, line 179 + // <-, line 179 + slice_from("e"); + break; + case 12: + // (, line 180 + // delete, line 180 + slice_del(); + break; + case 13: + // (, line 181 + // delete, line 181 + slice_del(); + break; + case 14: + // (, line 182 + // <-, line 182 + slice_from("a"); + break; + case 15: + // (, line 183 + // <-, line 183 + slice_from("e"); + break; + case 16: + // (, line 184 + // delete, line 184 + slice_del(); + break; + case 17: + // (, line 185 + // delete, line 185 + slice_del(); + break; + case 18: + // (, line 186 + // delete, line 186 + slice_del(); + break; + case 19: + // (, line 187 + // <-, line 187 + slice_from("a"); + break; + case 20: + // (, line 188 + // <-, line 188 + slice_from("e"); + break; + } + return true; + } + + private boolean r_plur_owner() { + int among_var; + // (, line 192 + // [, line 193 + ket = cursor; + // substring, line 193 + among_var = find_among_b(a_11, 42); + if (among_var == 0) + { + return false; + } + // ], line 193 + bra = cursor; + // call R1, line 193 + if (!r_R1()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 194 + // delete, line 194 + slice_del(); + break; + case 2: + // (, line 195 + // <-, line 195 + slice_from("a"); + break; + case 3: + // (, line 196 + // <-, line 196 + slice_from("e"); + break; + case 4: + // (, line 197 + // delete, line 197 + slice_del(); + break; + case 5: + // (, line 198 + // delete, line 198 + slice_del(); + break; + case 6: + // (, line 199 + // delete, line 199 + slice_del(); + break; + case 7: + // (, line 200 + // <-, line 200 + slice_from("a"); + break; + case 8: + // (, line 201 + // <-, line 201 + slice_from("e"); + break; + case 9: + // (, line 202 + // delete, line 202 + slice_del(); + break; + case 10: + // (, line 203 + // delete, line 203 + slice_del(); + break; + case 11: + // (, line 204 + // delete, line 204 + slice_del(); + break; + case 12: + // (, line 205 + // <-, line 205 + slice_from("a"); + break; + case 13: + // (, line 206 + // <-, line 206 + slice_from("e"); + break; + case 14: + // (, line 207 + // delete, line 207 + slice_del(); + break; + case 15: + // (, line 208 + // delete, line 208 + slice_del(); + break; + case 16: + // (, line 209 + // delete, line 209 + slice_del(); + break; + case 17: + // (, line 210 + // delete, line 210 + slice_del(); + break; + case 18: + // (, line 211 + // <-, line 211 + slice_from("a"); + break; + case 19: + // (, line 212 + // <-, line 212 + slice_from("e"); + break; + case 20: + // (, line 214 + // delete, line 214 + slice_del(); + break; + case 21: + // (, line 215 + // delete, line 215 + slice_del(); + break; + case 22: + // (, line 216 + // <-, line 216 + slice_from("a"); + break; + case 23: + // (, line 217 + // <-, line 217 + slice_from("e"); + break; + case 24: + // (, line 218 + // delete, line 218 + slice_del(); + break; + case 25: + // (, line 219 + // delete, line 219 + slice_del(); + break; + case 26: + // (, line 220 + // delete, line 220 + slice_del(); + break; + case 27: + // (, line 221 + // <-, line 221 + slice_from("a"); + break; + case 28: + // (, line 222 + // <-, line 222 + slice_from("e"); + break; + case 29: + // (, line 223 + // delete, line 223 + slice_del(); + break; + } + return true; + } + + public boolean stem() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + int v_7; + int v_8; + int v_9; + int v_10; + // (, line 228 + // do, line 229 + v_1 = cursor; + lab0: do { + // call mark_regions, line 229 + if (!r_mark_regions()) + { + break lab0; + } + } while (false); + cursor = v_1; + // backwards, line 230 + limit_backward = cursor; cursor = limit; + // (, line 230 + // do, line 231 + v_2 = limit - cursor; + lab1: do { + // call instrum, line 231 + if (!r_instrum()) + { + break lab1; + } + } while (false); + cursor = limit - v_2; + // do, line 232 + v_3 = limit - cursor; + lab2: do { + // call case, line 232 + if (!r_case()) + { + break lab2; + } + } while (false); + cursor = limit - v_3; + // do, line 233 + v_4 = limit - cursor; + lab3: do { + // call case_special, line 233 + if (!r_case_special()) + { + break lab3; + } + } while (false); + cursor = limit - v_4; + // do, line 234 + v_5 = limit - cursor; + lab4: do { + // call case_other, line 234 + if (!r_case_other()) + { + break lab4; + } + } while (false); + cursor = limit - v_5; + // do, line 235 + v_6 = limit - cursor; + lab5: do { + // call factive, line 235 + if (!r_factive()) + { + break lab5; + } + } while (false); + cursor = limit - v_6; + // do, line 236 + v_7 = limit - cursor; + lab6: do { + // call owned, line 236 + if (!r_owned()) + { + break lab6; + } + } while (false); + cursor = limit - v_7; + // do, line 237 + v_8 = limit - cursor; + lab7: do { + // call sing_owner, line 237 + if (!r_sing_owner()) + { + break lab7; + } + } while (false); + cursor = limit - v_8; + // do, line 238 + v_9 = limit - cursor; + lab8: do { + // call plur_owner, line 238 + if (!r_plur_owner()) + { + break lab8; + } + } while (false); + cursor = limit - v_9; + // do, line 239 + v_10 = limit - cursor; + lab9: do { + // call plural, line 239 + if (!r_plural()) + { + break lab9; + } + } while (false); + cursor = limit - v_10; + cursor = limit_backward; return true; + } + +} + Property changes on: contrib/snowball/src/java/net/sf/snowball/ext/HungarianStemmer.java ___________________________________________________________________ Name: svn:executable + * Index: contrib/snowball/src/java/net/sf/snowball/ext/ItalianStemmer.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/ItalianStemmer.java (revision 480218) +++ contrib/snowball/src/java/net/sf/snowball/ext/ItalianStemmer.java (working copy) @@ -105,14 +105,15 @@ new Among ( "uzione", -1, 4, "", this), new Among ( "atore", -1, 2, "", this), new Among ( "ose", -1, 1, "", this), + new Among ( "ante", -1, 1, "", this), new Among ( "mente", -1, 1, "", this), - new Among ( "amente", 18, 7, "", this), + new Among ( "amente", 19, 7, "", this), new Among ( "iste", -1, 1, "", this), new Among ( "ive", -1, 9, "", this), new Among ( "anze", -1, 1, "", this), new Among ( "enze", -1, 5, "", this), new Among ( "ici", -1, 1, "", this), - new Among ( "atrici", 24, 1, "", this), + new Among ( "atrici", 25, 1, "", this), new Among ( "ichi", -1, 1, "", this), new Among ( "abili", -1, 1, "", this), new Among ( "ibili", -1, 1, "", this), @@ -122,6 +123,7 @@ new Among ( "uzioni", -1, 4, "", this), new Among ( "atori", -1, 2, "", this), new Among ( "osi", -1, 1, "", this), + new Among ( "anti", -1, 1, "", this), new Among ( "amenti", -1, 6, "", this), new Among ( "imenti", -1, 6, "", this), new Among ( "isti", -1, 1, "", this), @@ -719,7 +721,7 @@ // [, line 104 ket = cursor; // substring, line 104 - among_var = find_among_b(a_6, 49); + among_var = find_among_b(a_6, 51); if (among_var == 0) { return false; @@ -730,238 +732,238 @@ case 0: return false; case 1: - // (, line 110 - // call R2, line 110 + // (, line 111 + // call R2, line 111 if (!r_R2()) { return false; } - // delete, line 110 + // delete, line 111 slice_del(); break; case 2: - // (, line 112 - // call R2, line 112 + // (, line 113 + // call R2, line 113 if (!r_R2()) { return false; } - // delete, line 112 + // delete, line 113 slice_del(); - // try, line 113 + // try, line 114 v_1 = limit - cursor; lab0: do { - // (, line 113 - // [, line 113 + // (, line 114 + // [, line 114 ket = cursor; - // literal, line 113 + // literal, line 114 if (!(eq_s_b(2, "ic"))) { cursor = limit - v_1; break lab0; } - // ], line 113 + // ], line 114 bra = cursor; - // call R2, line 113 + // call R2, line 114 if (!r_R2()) { cursor = limit - v_1; break lab0; } - // delete, line 113 + // delete, line 114 slice_del(); } while (false); break; case 3: - // (, line 116 - // call R2, line 116 + // (, line 117 + // call R2, line 117 if (!r_R2()) { return false; } - // <-, line 116 + // <-, line 117 slice_from("log"); break; case 4: - // (, line 118 - // call R2, line 118 + // (, line 119 + // call R2, line 119 if (!r_R2()) { return false; } - // <-, line 118 + // <-, line 119 slice_from("u"); break; case 5: - // (, line 120 - // call R2, line 120 + // (, line 121 + // call R2, line 121 if (!r_R2()) { return false; } - // <-, line 120 + // <-, line 121 slice_from("ente"); break; case 6: - // (, line 122 - // call RV, line 122 + // (, line 123 + // call RV, line 123 if (!r_RV()) { return false; } - // delete, line 122 + // delete, line 123 slice_del(); break; case 7: - // (, line 123 - // call R1, line 124 + // (, line 124 + // call R1, line 125 if (!r_R1()) { return false; } - // delete, line 124 + // delete, line 125 slice_del(); - // try, line 125 + // try, line 126 v_2 = limit - cursor; lab1: do { - // (, line 125 - // [, line 126 + // (, line 126 + // [, line 127 ket = cursor; - // substring, line 126 + // substring, line 127 among_var = find_among_b(a_4, 4); if (among_var == 0) { cursor = limit - v_2; break lab1; } - // ], line 126 + // ], line 127 bra = cursor; - // call R2, line 126 + // call R2, line 127 if (!r_R2()) { cursor = limit - v_2; break lab1; } - // delete, line 126 + // delete, line 127 slice_del(); switch(among_var) { case 0: cursor = limit - v_2; break lab1; case 1: - // (, line 127 - // [, line 127 + // (, line 128 + // [, line 128 ket = cursor; - // literal, line 127 + // literal, line 128 if (!(eq_s_b(2, "at"))) { cursor = limit - v_2; break lab1; } - // ], line 127 + // ], line 128 bra = cursor; - // call R2, line 127 + // call R2, line 128 if (!r_R2()) { cursor = limit - v_2; break lab1; } - // delete, line 127 + // delete, line 128 slice_del(); break; } } while (false); break; case 8: - // (, line 132 - // call R2, line 133 + // (, line 133 + // call R2, line 134 if (!r_R2()) { return false; } - // delete, line 133 + // delete, line 134 slice_del(); - // try, line 134 + // try, line 135 v_3 = limit - cursor; lab2: do { - // (, line 134 - // [, line 135 + // (, line 135 + // [, line 136 ket = cursor; - // substring, line 135 + // substring, line 136 among_var = find_among_b(a_5, 3); if (among_var == 0) { cursor = limit - v_3; break lab2; } - // ], line 135 + // ], line 136 bra = cursor; switch(among_var) { case 0: cursor = limit - v_3; break lab2; case 1: - // (, line 136 - // call R2, line 136 + // (, line 137 + // call R2, line 137 if (!r_R2()) { cursor = limit - v_3; break lab2; } - // delete, line 136 + // delete, line 137 slice_del(); break; } } while (false); break; case 9: - // (, line 140 - // call R2, line 141 + // (, line 141 + // call R2, line 142 if (!r_R2()) { return false; } - // delete, line 141 + // delete, line 142 slice_del(); - // try, line 142 + // try, line 143 v_4 = limit - cursor; lab3: do { - // (, line 142 - // [, line 142 + // (, line 143 + // [, line 143 ket = cursor; - // literal, line 142 + // literal, line 143 if (!(eq_s_b(2, "at"))) { cursor = limit - v_4; break lab3; } - // ], line 142 + // ], line 143 bra = cursor; - // call R2, line 142 + // call R2, line 143 if (!r_R2()) { cursor = limit - v_4; break lab3; } - // delete, line 142 + // delete, line 143 slice_del(); - // [, line 142 + // [, line 143 ket = cursor; - // literal, line 142 + // literal, line 143 if (!(eq_s_b(2, "ic"))) { cursor = limit - v_4; break lab3; } - // ], line 142 + // ], line 143 bra = cursor; - // call R2, line 142 + // call R2, line 143 if (!r_R2()) { cursor = limit - v_4; break lab3; } - // delete, line 142 + // delete, line 143 slice_del(); } while (false); break; @@ -973,9 +975,9 @@ int among_var; int v_1; int v_2; - // setlimit, line 147 + // setlimit, line 148 v_1 = limit - cursor; - // tomark, line 147 + // tomark, line 148 if (cursor < I_pV) { return false; @@ -984,25 +986,25 @@ v_2 = limit_backward; limit_backward = cursor; cursor = limit - v_1; - // (, line 147 - // [, line 148 + // (, line 148 + // [, line 149 ket = cursor; - // substring, line 148 + // substring, line 149 among_var = find_among_b(a_7, 87); if (among_var == 0) { limit_backward = v_2; return false; } - // ], line 148 + // ], line 149 bra = cursor; switch(among_var) { case 0: limit_backward = v_2; return false; case 1: - // (, line 162 - // delete, line 162 + // (, line 163 + // delete, line 163 slice_del(); break; } @@ -1013,73 +1015,73 @@ private boolean r_vowel_suffix() { int v_1; int v_2; - // (, line 169 - // try, line 170 + // (, line 170 + // try, line 171 v_1 = limit - cursor; lab0: do { - // (, line 170 - // [, line 171 + // (, line 171 + // [, line 172 ket = cursor; if (!(in_grouping_b(g_AEIO, 97, 242))) { cursor = limit - v_1; break lab0; } - // ], line 171 + // ], line 172 bra = cursor; - // call RV, line 171 + // call RV, line 172 if (!r_RV()) { cursor = limit - v_1; break lab0; } - // delete, line 171 + // delete, line 172 slice_del(); - // [, line 172 + // [, line 173 ket = cursor; - // literal, line 172 + // literal, line 173 if (!(eq_s_b(1, "i"))) { cursor = limit - v_1; break lab0; } - // ], line 172 + // ], line 173 bra = cursor; - // call RV, line 172 + // call RV, line 173 if (!r_RV()) { cursor = limit - v_1; break lab0; } - // delete, line 172 + // delete, line 173 slice_del(); } while (false); - // try, line 174 + // try, line 175 v_2 = limit - cursor; lab1: do { - // (, line 174 - // [, line 175 + // (, line 175 + // [, line 176 ket = cursor; - // literal, line 175 + // literal, line 176 if (!(eq_s_b(1, "h"))) { cursor = limit - v_2; break lab1; } - // ], line 175 + // ], line 176 bra = cursor; if (!(in_grouping_b(g_CG, 99, 103))) { cursor = limit - v_2; break lab1; } - // call RV, line 175 + // call RV, line 176 if (!r_RV()) { cursor = limit - v_2; break lab1; } - // delete, line 175 + // delete, line 176 slice_del(); } while (false); return true; @@ -1093,49 +1095,49 @@ int v_5; int v_6; int v_7; - // (, line 180 - // do, line 181 + // (, line 181 + // do, line 182 v_1 = cursor; lab0: do { - // call prelude, line 181 + // call prelude, line 182 if (!r_prelude()) { break lab0; } } while (false); cursor = v_1; - // do, line 182 + // do, line 183 v_2 = cursor; lab1: do { - // call mark_regions, line 182 + // call mark_regions, line 183 if (!r_mark_regions()) { break lab1; } } while (false); cursor = v_2; - // backwards, line 183 + // backwards, line 184 limit_backward = cursor; cursor = limit; - // (, line 183 - // do, line 184 + // (, line 184 + // do, line 185 v_3 = limit - cursor; lab2: do { - // call attached_pronoun, line 184 + // call attached_pronoun, line 185 if (!r_attached_pronoun()) { break lab2; } } while (false); cursor = limit - v_3; - // do, line 185 + // do, line 186 v_4 = limit - cursor; lab3: do { - // (, line 185 - // or, line 185 + // (, line 186 + // or, line 186 lab4: do { v_5 = limit - cursor; lab5: do { - // call standard_suffix, line 185 + // call standard_suffix, line 186 if (!r_standard_suffix()) { break lab5; @@ -1143,7 +1145,7 @@ break lab4; } while (false); cursor = limit - v_5; - // call verb_suffix, line 185 + // call verb_suffix, line 186 if (!r_verb_suffix()) { break lab3; @@ -1151,20 +1153,20 @@ } while (false); } while (false); cursor = limit - v_4; - // do, line 186 + // do, line 187 v_6 = limit - cursor; lab6: do { - // call vowel_suffix, line 186 + // call vowel_suffix, line 187 if (!r_vowel_suffix()) { break lab6; } } while (false); cursor = limit - v_6; - cursor = limit_backward; // do, line 188 + cursor = limit_backward; // do, line 189 v_7 = cursor; lab7: do { - // call postlude, line 188 + // call postlude, line 189 if (!r_postlude()) { break lab7; Index: contrib/snowball/src/java/net/sf/snowball/ext/RussianStemmer.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/RussianStemmer.java (revision 480218) +++ contrib/snowball/src/java/net/sf/snowball/ext/RussianStemmer.java (working copy) @@ -10,163 +10,163 @@ public class RussianStemmer extends SnowballProgram { private Among a_0[] = { - new Among ( "\u00D7\u00DB\u00C9", -1, 1, "", this), - new Among ( "\u00C9\u00D7\u00DB\u00C9", 0, 2, "", this), - new Among ( "\u00D9\u00D7\u00DB\u00C9", 0, 2, "", this), - new Among ( "\u00D7", -1, 1, "", this), - new Among ( "\u00C9\u00D7", 3, 2, "", this), - new Among ( "\u00D9\u00D7", 3, 2, "", this), - new Among ( "\u00D7\u00DB\u00C9\u00D3\u00D8", -1, 1, "", this), - new Among ( "\u00C9\u00D7\u00DB\u00C9\u00D3\u00D8", 6, 2, "", this), - new Among ( "\u00D9\u00D7\u00DB\u00C9\u00D3\u00D8", 6, 2, "", this) + new Among ( "\u0432", -1, 1, "", this), + new Among ( "\u0438\u0432", 0, 2, "", this), + new Among ( "\u044B\u0432", 0, 2, "", this), + new Among ( "\u0432\u0448\u0438", -1, 1, "", this), + new Among ( "\u0438\u0432\u0448\u0438", 3, 2, "", this), + new Among ( "\u044B\u0432\u0448\u0438", 3, 2, "", this), + new Among ( "\u0432\u0448\u0438\u0441\u044C", -1, 1, "", this), + new Among ( "\u0438\u0432\u0448\u0438\u0441\u044C", 6, 2, "", this), + new Among ( "\u044B\u0432\u0448\u0438\u0441\u044C", 6, 2, "", this) }; private Among a_1[] = { - new Among ( "\u00C0\u00C0", -1, 1, "", this), - new Among ( "\u00C5\u00C0", -1, 1, "", this), - new Among ( "\u00CF\u00C0", -1, 1, "", this), - new Among ( "\u00D5\u00C0", -1, 1, "", this), - new Among ( "\u00C5\u00C5", -1, 1, "", this), - new Among ( "\u00C9\u00C5", -1, 1, "", this), - new Among ( "\u00CF\u00C5", -1, 1, "", this), - new Among ( "\u00D9\u00C5", -1, 1, "", this), - new Among ( "\u00C9\u00C8", -1, 1, "", this), - new Among ( "\u00D9\u00C8", -1, 1, "", this), - new Among ( "\u00C9\u00CD\u00C9", -1, 1, "", this), - new Among ( "\u00D9\u00CD\u00C9", -1, 1, "", this), - new Among ( "\u00C5\u00CA", -1, 1, "", this), - new Among ( "\u00C9\u00CA", -1, 1, "", this), - new Among ( "\u00CF\u00CA", -1, 1, "", this), - new Among ( "\u00D9\u00CA", -1, 1, "", this), - new Among ( "\u00C5\u00CD", -1, 1, "", this), - new Among ( "\u00C9\u00CD", -1, 1, "", this), - new Among ( "\u00CF\u00CD", -1, 1, "", this), - new Among ( "\u00D9\u00CD", -1, 1, "", this), - new Among ( "\u00C5\u00C7\u00CF", -1, 1, "", this), - new Among ( "\u00CF\u00C7\u00CF", -1, 1, "", this), - new Among ( "\u00C1\u00D1", -1, 1, "", this), - new Among ( "\u00D1\u00D1", -1, 1, "", this), - new Among ( "\u00C5\u00CD\u00D5", -1, 1, "", this), - new Among ( "\u00CF\u00CD\u00D5", -1, 1, "", this) + new Among ( "\u0435\u0435", -1, 1, "", this), + new Among ( "\u0438\u0435", -1, 1, "", this), + new Among ( "\u043E\u0435", -1, 1, "", this), + new Among ( "\u044B\u0435", -1, 1, "", this), + new Among ( "\u0438\u043C\u0438", -1, 1, "", this), + new Among ( "\u044B\u043C\u0438", -1, 1, "", this), + new Among ( "\u0435\u0439", -1, 1, "", this), + new Among ( "\u0438\u0439", -1, 1, "", this), + new Among ( "\u043E\u0439", -1, 1, "", this), + new Among ( "\u044B\u0439", -1, 1, "", this), + new Among ( "\u0435\u043C", -1, 1, "", this), + new Among ( "\u0438\u043C", -1, 1, "", this), + new Among ( "\u043E\u043C", -1, 1, "", this), + new Among ( "\u044B\u043C", -1, 1, "", this), + new Among ( "\u0435\u0433\u043E", -1, 1, "", this), + new Among ( "\u043E\u0433\u043E", -1, 1, "", this), + new Among ( "\u0435\u043C\u0443", -1, 1, "", this), + new Among ( "\u043E\u043C\u0443", -1, 1, "", this), + new Among ( "\u0438\u0445", -1, 1, "", this), + new Among ( "\u044B\u0445", -1, 1, "", this), + new Among ( "\u0435\u044E", -1, 1, "", this), + new Among ( "\u043E\u044E", -1, 1, "", this), + new Among ( "\u0443\u044E", -1, 1, "", this), + new Among ( "\u044E\u044E", -1, 1, "", this), + new Among ( "\u0430\u044F", -1, 1, "", this), + new Among ( "\u044F\u044F", -1, 1, "", this) }; private Among a_2[] = { - new Among ( "\u00C5\u00CD", -1, 1, "", this), - new Among ( "\u00CE\u00CE", -1, 1, "", this), - new Among ( "\u00D7\u00DB", -1, 1, "", this), - new Among ( "\u00C9\u00D7\u00DB", 2, 2, "", this), - new Among ( "\u00D9\u00D7\u00DB", 2, 2, "", this), - new Among ( "\u00DD", -1, 1, "", this), - new Among ( "\u00C0\u00DD", 5, 1, "", this), - new Among ( "\u00D5\u00C0\u00DD", 6, 2, "", this) + new Among ( "\u0435\u043C", -1, 1, "", this), + new Among ( "\u043D\u043D", -1, 1, "", this), + new Among ( "\u0432\u0448", -1, 1, "", this), + new Among ( "\u0438\u0432\u0448", 2, 2, "", this), + new Among ( "\u044B\u0432\u0448", 2, 2, "", this), + new Among ( "\u0449", -1, 1, "", this), + new Among ( "\u044E\u0449", 5, 1, "", this), + new Among ( "\u0443\u044E\u0449", 6, 2, "", this) }; private Among a_3[] = { - new Among ( "\u00D3\u00D1", -1, 1, "", this), - new Among ( "\u00D3\u00D8", -1, 1, "", this) + new Among ( "\u0441\u044C", -1, 1, "", this), + new Among ( "\u0441\u044F", -1, 1, "", this) }; private Among a_4[] = { - new Among ( "\u00C0", -1, 2, "", this), - new Among ( "\u00D5\u00C0", 0, 2, "", this), - new Among ( "\u00CC\u00C1", -1, 1, "", this), - new Among ( "\u00C9\u00CC\u00C1", 2, 2, "", this), - new Among ( "\u00D9\u00CC\u00C1", 2, 2, "", this), - new Among ( "\u00CE\u00C1", -1, 1, "", this), - new Among ( "\u00C5\u00CE\u00C1", 5, 2, "", this), - new Among ( "\u00C5\u00D4\u00C5", -1, 1, "", this), - new Among ( "\u00C9\u00D4\u00C5", -1, 2, "", this), - new Among ( "\u00CA\u00D4\u00C5", -1, 1, "", this), - new Among ( "\u00C5\u00CA\u00D4\u00C5", 9, 2, "", this), - new Among ( "\u00D5\u00CA\u00D4\u00C5", 9, 2, "", this), - new Among ( "\u00CC\u00C9", -1, 1, "", this), - new Among ( "\u00C9\u00CC\u00C9", 12, 2, "", this), - new Among ( "\u00D9\u00CC\u00C9", 12, 2, "", this), - new Among ( "\u00CA", -1, 1, "", this), - new Among ( "\u00C5\u00CA", 15, 2, "", this), - new Among ( "\u00D5\u00CA", 15, 2, "", this), - new Among ( "\u00CC", -1, 1, "", this), - new Among ( "\u00C9\u00CC", 18, 2, "", this), - new Among ( "\u00D9\u00CC", 18, 2, "", this), - new Among ( "\u00C5\u00CD", -1, 1, "", this), - new Among ( "\u00C9\u00CD", -1, 2, "", this), - new Among ( "\u00D9\u00CD", -1, 2, "", this), - new Among ( "\u00CE", -1, 1, "", this), - new Among ( "\u00C5\u00CE", 24, 2, "", this), - new Among ( "\u00CC\u00CF", -1, 1, "", this), - new Among ( "\u00C9\u00CC\u00CF", 26, 2, "", this), - new Among ( "\u00D9\u00CC\u00CF", 26, 2, "", this), - new Among ( "\u00CE\u00CF", -1, 1, "", this), - new Among ( "\u00C5\u00CE\u00CF", 29, 2, "", this), - new Among ( "\u00CE\u00CE\u00CF", 29, 1, "", this), - new Among ( "\u00C0\u00D4", -1, 1, "", this), - new Among ( "\u00D5\u00C0\u00D4", 32, 2, "", this), - new Among ( "\u00C5\u00D4", -1, 1, "", this), - new Among ( "\u00D5\u00C5\u00D4", 34, 2, "", this), - new Among ( "\u00C9\u00D4", -1, 2, "", this), - new Among ( "\u00D1\u00D4", -1, 2, "", this), - new Among ( "\u00D9\u00D4", -1, 2, "", this), - new Among ( "\u00D4\u00D8", -1, 1, "", this), - new Among ( "\u00C9\u00D4\u00D8", 39, 2, "", this), - new Among ( "\u00D9\u00D4\u00D8", 39, 2, "", this), - new Among ( "\u00C5\u00DB\u00D8", -1, 1, "", this), - new Among ( "\u00C9\u00DB\u00D8", -1, 2, "", this), - new Among ( "\u00CE\u00D9", -1, 1, "", this), - new Among ( "\u00C5\u00CE\u00D9", 44, 2, "", this) + new Among ( "\u043B\u0430", -1, 1, "", this), + new Among ( "\u0438\u043B\u0430", 0, 2, "", this), + new Among ( "\u044B\u043B\u0430", 0, 2, "", this), + new Among ( "\u043D\u0430", -1, 1, "", this), + new Among ( "\u0435\u043D\u0430", 3, 2, "", this), + new Among ( "\u0435\u0442\u0435", -1, 1, "", this), + new Among ( "\u0438\u0442\u0435", -1, 2, "", this), + new Among ( "\u0439\u0442\u0435", -1, 1, "", this), + new Among ( "\u0435\u0439\u0442\u0435", 7, 2, "", this), + new Among ( "\u0443\u0439\u0442\u0435", 7, 2, "", this), + new Among ( "\u043B\u0438", -1, 1, "", this), + new Among ( "\u0438\u043B\u0438", 10, 2, "", this), + new Among ( "\u044B\u043B\u0438", 10, 2, "", this), + new Among ( "\u0439", -1, 1, "", this), + new Among ( "\u0435\u0439", 13, 2, "", this), + new Among ( "\u0443\u0439", 13, 2, "", this), + new Among ( "\u043B", -1, 1, "", this), + new Among ( "\u0438\u043B", 16, 2, "", this), + new Among ( "\u044B\u043B", 16, 2, "", this), + new Among ( "\u0435\u043C", -1, 1, "", this), + new Among ( "\u0438\u043C", -1, 2, "", this), + new Among ( "\u044B\u043C", -1, 2, "", this), + new Among ( "\u043D", -1, 1, "", this), + new Among ( "\u0435\u043D", 22, 2, "", this), + new Among ( "\u043B\u043E", -1, 1, "", this), + new Among ( "\u0438\u043B\u043E", 24, 2, "", this), + new Among ( "\u044B\u043B\u043E", 24, 2, "", this), + new Among ( "\u043D\u043E", -1, 1, "", this), + new Among ( "\u0435\u043D\u043E", 27, 2, "", this), + new Among ( "\u043D\u043D\u043E", 27, 1, "", this), + new Among ( "\u0435\u0442", -1, 1, "", this), + new Among ( "\u0443\u0435\u0442", 30, 2, "", this), + new Among ( "\u0438\u0442", -1, 2, "", this), + new Among ( "\u044B\u0442", -1, 2, "", this), + new Among ( "\u044E\u0442", -1, 1, "", this), + new Among ( "\u0443\u044E\u0442", 34, 2, "", this), + new Among ( "\u044F\u0442", -1, 2, "", this), + new Among ( "\u043D\u044B", -1, 1, "", this), + new Among ( "\u0435\u043D\u044B", 37, 2, "", this), + new Among ( "\u0442\u044C", -1, 1, "", this), + new Among ( "\u0438\u0442\u044C", 39, 2, "", this), + new Among ( "\u044B\u0442\u044C", 39, 2, "", this), + new Among ( "\u0435\u0448\u044C", -1, 1, "", this), + new Among ( "\u0438\u0448\u044C", -1, 2, "", this), + new Among ( "\u044E", -1, 2, "", this), + new Among ( "\u0443\u044E", 44, 2, "", this) }; private Among a_5[] = { - new Among ( "\u00C0", -1, 1, "", this), - new Among ( "\u00C9\u00C0", 0, 1, "", this), - new Among ( "\u00D8\u00C0", 0, 1, "", this), - new Among ( "\u00C1", -1, 1, "", this), - new Among ( "\u00C5", -1, 1, "", this), - new Among ( "\u00C9\u00C5", 4, 1, "", this), - new Among ( "\u00D8\u00C5", 4, 1, "", this), - new Among ( "\u00C1\u00C8", -1, 1, "", this), - new Among ( "\u00D1\u00C8", -1, 1, "", this), - new Among ( "\u00C9\u00D1\u00C8", 8, 1, "", this), - new Among ( "\u00C9", -1, 1, "", this), - new Among ( "\u00C5\u00C9", 10, 1, "", this), - new Among ( "\u00C9\u00C9", 10, 1, "", this), - new Among ( "\u00C1\u00CD\u00C9", 10, 1, "", this), - new Among ( "\u00D1\u00CD\u00C9", 10, 1, "", this), - new Among ( "\u00C9\u00D1\u00CD\u00C9", 14, 1, "", this), - new Among ( "\u00CA", -1, 1, "", this), - new Among ( "\u00C5\u00CA", 16, 1, "", this), - new Among ( "\u00C9\u00C5\u00CA", 17, 1, "", this), - new Among ( "\u00C9\u00CA", 16, 1, "", this), - new Among ( "\u00CF\u00CA", 16, 1, "", this), - new Among ( "\u00C1\u00CD", -1, 1, "", this), - new Among ( "\u00C5\u00CD", -1, 1, "", this), - new Among ( "\u00C9\u00C5\u00CD", 22, 1, "", this), - new Among ( "\u00CF\u00CD", -1, 1, "", this), - new Among ( "\u00D1\u00CD", -1, 1, "", this), - new Among ( "\u00C9\u00D1\u00CD", 25, 1, "", this), - new Among ( "\u00CF", -1, 1, "", this), - new Among ( "\u00D1", -1, 1, "", this), - new Among ( "\u00C9\u00D1", 28, 1, "", this), - new Among ( "\u00D8\u00D1", 28, 1, "", this), - new Among ( "\u00D5", -1, 1, "", this), - new Among ( "\u00C5\u00D7", -1, 1, "", this), - new Among ( "\u00CF\u00D7", -1, 1, "", this), - new Among ( "\u00D8", -1, 1, "", this), - new Among ( "\u00D9", -1, 1, "", this) + new Among ( "\u0430", -1, 1, "", this), + new Among ( "\u0435\u0432", -1, 1, "", this), + new Among ( "\u043E\u0432", -1, 1, "", this), + new Among ( "\u0435", -1, 1, "", this), + new Among ( "\u0438\u0435", 3, 1, "", this), + new Among ( "\u044C\u0435", 3, 1, "", this), + new Among ( "\u0438", -1, 1, "", this), + new Among ( "\u0435\u0438", 6, 1, "", this), + new Among ( "\u0438\u0438", 6, 1, "", this), + new Among ( "\u0430\u043C\u0438", 6, 1, "", this), + new Among ( "\u044F\u043C\u0438", 6, 1, "", this), + new Among ( "\u0438\u044F\u043C\u0438", 10, 1, "", this), + new Among ( "\u0439", -1, 1, "", this), + new Among ( "\u0435\u0439", 12, 1, "", this), + new Among ( "\u0438\u0435\u0439", 13, 1, "", this), + new Among ( "\u0438\u0439", 12, 1, "", this), + new Among ( "\u043E\u0439", 12, 1, "", this), + new Among ( "\u0430\u043C", -1, 1, "", this), + new Among ( "\u0435\u043C", -1, 1, "", this), + new Among ( "\u0438\u0435\u043C", 18, 1, "", this), + new Among ( "\u043E\u043C", -1, 1, "", this), + new Among ( "\u044F\u043C", -1, 1, "", this), + new Among ( "\u0438\u044F\u043C", 21, 1, "", this), + new Among ( "\u043E", -1, 1, "", this), + new Among ( "\u0443", -1, 1, "", this), + new Among ( "\u0430\u0445", -1, 1, "", this), + new Among ( "\u044F\u0445", -1, 1, "", this), + new Among ( "\u0438\u044F\u0445", 26, 1, "", this), + new Among ( "\u044B", -1, 1, "", this), + new Among ( "\u044C", -1, 1, "", this), + new Among ( "\u044E", -1, 1, "", this), + new Among ( "\u0438\u044E", 30, 1, "", this), + new Among ( "\u044C\u044E", 30, 1, "", this), + new Among ( "\u044F", -1, 1, "", this), + new Among ( "\u0438\u044F", 33, 1, "", this), + new Among ( "\u044C\u044F", 33, 1, "", this) }; private Among a_6[] = { - new Among ( "\u00CF\u00D3\u00D4", -1, 1, "", this), - new Among ( "\u00CF\u00D3\u00D4\u00D8", -1, 1, "", this) + new Among ( "\u043E\u0441\u0442", -1, 1, "", this), + new Among ( "\u043E\u0441\u0442\u044C", -1, 1, "", this) }; private Among a_7[] = { - new Among ( "\u00C5\u00CA\u00DB\u00C5", -1, 1, "", this), - new Among ( "\u00CE", -1, 2, "", this), - new Among ( "\u00D8", -1, 3, "", this), - new Among ( "\u00C5\u00CA\u00DB", -1, 1, "", this) + new Among ( "\u0435\u0439\u0448\u0435", -1, 1, "", this), + new Among ( "\u043D", -1, 2, "", this), + new Among ( "\u0435\u0439\u0448", -1, 1, "", this), + new Among ( "\u044C", -1, 3, "", this) }; - private static final char g_v[] = {35, 130, 34, 18 }; + private static final char g_v[] = {33, 65, 8, 232 }; private int I_p2; private int I_pV; @@ -179,18 +179,18 @@ private boolean r_mark_regions() { int v_1; - // (, line 96 + // (, line 57 I_pV = limit; I_p2 = limit; - // do, line 100 + // do, line 61 v_1 = cursor; lab0: do { - // (, line 100 - // gopast, line 101 + // (, line 61 + // gopast, line 62 golab1: while(true) { lab2: do { - if (!(in_grouping(g_v, 192, 220))) + if (!(in_grouping(g_v, 1072, 1103))) { break lab2; } @@ -202,13 +202,13 @@ } cursor++; } - // setmark pV, line 101 + // setmark pV, line 62 I_pV = cursor; - // gopast, line 101 + // gopast, line 62 golab3: while(true) { lab4: do { - if (!(out_grouping(g_v, 192, 220))) + if (!(out_grouping(g_v, 1072, 1103))) { break lab4; } @@ -220,11 +220,11 @@ } cursor++; } - // gopast, line 102 + // gopast, line 63 golab5: while(true) { lab6: do { - if (!(in_grouping(g_v, 192, 220))) + if (!(in_grouping(g_v, 1072, 1103))) { break lab6; } @@ -236,11 +236,11 @@ } cursor++; } - // gopast, line 102 + // gopast, line 63 golab7: while(true) { lab8: do { - if (!(out_grouping(g_v, 192, 220))) + if (!(out_grouping(g_v, 1072, 1103))) { break lab8; } @@ -252,7 +252,7 @@ } cursor++; } - // setmark p2, line 102 + // setmark p2, line 63 I_p2 = cursor; } while (false); cursor = v_1; @@ -270,46 +270,46 @@ private boolean r_perfective_gerund() { int among_var; int v_1; - // (, line 110 - // [, line 111 + // (, line 71 + // [, line 72 ket = cursor; - // substring, line 111 + // substring, line 72 among_var = find_among_b(a_0, 9); if (among_var == 0) { return false; } - // ], line 111 + // ], line 72 bra = cursor; switch(among_var) { case 0: return false; case 1: - // (, line 115 - // or, line 115 + // (, line 76 + // or, line 76 lab0: do { v_1 = limit - cursor; lab1: do { - // literal, line 115 - if (!(eq_s_b(1, "\u00C1"))) + // literal, line 76 + if (!(eq_s_b(1, "\u0430"))) { break lab1; } break lab0; } while (false); cursor = limit - v_1; - // literal, line 115 - if (!(eq_s_b(1, "\u00D1"))) + // literal, line 76 + if (!(eq_s_b(1, "\u044F"))) { return false; } } while (false); - // delete, line 115 + // delete, line 76 slice_del(); break; case 2: - // (, line 122 - // delete, line 122 + // (, line 83 + // delete, line 83 slice_del(); break; } @@ -318,23 +318,23 @@ private boolean r_adjective() { int among_var; - // (, line 126 - // [, line 127 + // (, line 87 + // [, line 88 ket = cursor; - // substring, line 127 + // substring, line 88 among_var = find_among_b(a_1, 26); if (among_var == 0) { return false; } - // ], line 127 + // ], line 88 bra = cursor; switch(among_var) { case 0: return false; case 1: - // (, line 136 - // delete, line 136 + // (, line 97 + // delete, line 97 slice_del(); break; } @@ -345,58 +345,58 @@ int among_var; int v_1; int v_2; - // (, line 140 - // call adjective, line 141 + // (, line 101 + // call adjective, line 102 if (!r_adjective()) { return false; } - // try, line 148 + // try, line 109 v_1 = limit - cursor; lab0: do { - // (, line 148 - // [, line 149 + // (, line 109 + // [, line 110 ket = cursor; - // substring, line 149 + // substring, line 110 among_var = find_among_b(a_2, 8); if (among_var == 0) { cursor = limit - v_1; break lab0; } - // ], line 149 + // ], line 110 bra = cursor; switch(among_var) { case 0: cursor = limit - v_1; break lab0; case 1: - // (, line 154 - // or, line 154 + // (, line 115 + // or, line 115 lab1: do { v_2 = limit - cursor; lab2: do { - // literal, line 154 - if (!(eq_s_b(1, "\u00C1"))) + // literal, line 115 + if (!(eq_s_b(1, "\u0430"))) { break lab2; } break lab1; } while (false); cursor = limit - v_2; - // literal, line 154 - if (!(eq_s_b(1, "\u00D1"))) + // literal, line 115 + if (!(eq_s_b(1, "\u044F"))) { cursor = limit - v_1; break lab0; } } while (false); - // delete, line 154 + // delete, line 115 slice_del(); break; case 2: - // (, line 161 - // delete, line 161 + // (, line 122 + // delete, line 122 slice_del(); break; } @@ -406,23 +406,23 @@ private boolean r_reflexive() { int among_var; - // (, line 167 - // [, line 168 + // (, line 128 + // [, line 129 ket = cursor; - // substring, line 168 + // substring, line 129 among_var = find_among_b(a_3, 2); if (among_var == 0) { return false; } - // ], line 168 + // ], line 129 bra = cursor; switch(among_var) { case 0: return false; case 1: - // (, line 171 - // delete, line 171 + // (, line 132 + // delete, line 132 slice_del(); break; } @@ -432,46 +432,46 @@ private boolean r_verb() { int among_var; int v_1; - // (, line 175 - // [, line 176 + // (, line 136 + // [, line 137 ket = cursor; - // substring, line 176 + // substring, line 137 among_var = find_among_b(a_4, 46); if (among_var == 0) { return false; } - // ], line 176 + // ], line 137 bra = cursor; switch(among_var) { case 0: return false; case 1: - // (, line 182 - // or, line 182 + // (, line 143 + // or, line 143 lab0: do { v_1 = limit - cursor; lab1: do { - // literal, line 182 - if (!(eq_s_b(1, "\u00C1"))) + // literal, line 143 + if (!(eq_s_b(1, "\u0430"))) { break lab1; } break lab0; } while (false); cursor = limit - v_1; - // literal, line 182 - if (!(eq_s_b(1, "\u00D1"))) + // literal, line 143 + if (!(eq_s_b(1, "\u044F"))) { return false; } } while (false); - // delete, line 182 + // delete, line 143 slice_del(); break; case 2: - // (, line 190 - // delete, line 190 + // (, line 151 + // delete, line 151 slice_del(); break; } @@ -480,23 +480,23 @@ private boolean r_noun() { int among_var; - // (, line 198 - // [, line 199 + // (, line 159 + // [, line 160 ket = cursor; - // substring, line 199 + // substring, line 160 among_var = find_among_b(a_5, 36); if (among_var == 0) { return false; } - // ], line 199 + // ], line 160 bra = cursor; switch(among_var) { case 0: return false; case 1: - // (, line 206 - // delete, line 206 + // (, line 167 + // delete, line 167 slice_del(); break; } @@ -505,18 +505,18 @@ private boolean r_derivational() { int among_var; - // (, line 214 - // [, line 215 + // (, line 175 + // [, line 176 ket = cursor; - // substring, line 215 + // substring, line 176 among_var = find_among_b(a_6, 2); if (among_var == 0) { return false; } - // ], line 215 + // ], line 176 bra = cursor; - // call R2, line 215 + // call R2, line 176 if (!r_R2()) { return false; @@ -525,8 +525,8 @@ case 0: return false; case 1: - // (, line 218 - // delete, line 218 + // (, line 179 + // delete, line 179 slice_del(); break; } @@ -535,54 +535,54 @@ private boolean r_tidy_up() { int among_var; - // (, line 222 - // [, line 223 + // (, line 183 + // [, line 184 ket = cursor; - // substring, line 223 + // substring, line 184 among_var = find_among_b(a_7, 4); if (among_var == 0) { return false; } - // ], line 223 + // ], line 184 bra = cursor; switch(among_var) { case 0: return false; case 1: - // (, line 227 - // delete, line 227 + // (, line 188 + // delete, line 188 slice_del(); - // [, line 228 + // [, line 189 ket = cursor; - // literal, line 228 - if (!(eq_s_b(1, "\u00CE"))) + // literal, line 189 + if (!(eq_s_b(1, "\u043D"))) { return false; } - // ], line 228 + // ], line 189 bra = cursor; - // literal, line 228 - if (!(eq_s_b(1, "\u00CE"))) + // literal, line 189 + if (!(eq_s_b(1, "\u043D"))) { return false; } - // delete, line 228 + // delete, line 189 slice_del(); break; case 2: - // (, line 231 - // literal, line 231 - if (!(eq_s_b(1, "\u00CE"))) + // (, line 192 + // literal, line 192 + if (!(eq_s_b(1, "\u043D"))) { return false; } - // delete, line 231 + // delete, line 192 slice_del(); break; case 3: - // (, line 233 - // delete, line 233 + // (, line 194 + // delete, line 194 slice_del(); break; } @@ -600,22 +600,22 @@ int v_8; int v_9; int v_10; - // (, line 238 - // do, line 240 + // (, line 199 + // do, line 201 v_1 = cursor; lab0: do { - // call mark_regions, line 240 + // call mark_regions, line 201 if (!r_mark_regions()) { break lab0; } } while (false); cursor = v_1; - // backwards, line 241 + // backwards, line 202 limit_backward = cursor; cursor = limit; - // setlimit, line 241 + // setlimit, line 202 v_2 = limit - cursor; - // tomark, line 241 + // tomark, line 202 if (cursor < I_pV) { return false; @@ -624,16 +624,16 @@ v_3 = limit_backward; limit_backward = cursor; cursor = limit - v_2; - // (, line 241 - // do, line 242 + // (, line 202 + // do, line 203 v_4 = limit - cursor; lab1: do { - // (, line 242 - // or, line 243 + // (, line 203 + // or, line 204 lab2: do { v_5 = limit - cursor; lab3: do { - // call perfective_gerund, line 243 + // call perfective_gerund, line 204 if (!r_perfective_gerund()) { break lab3; @@ -641,22 +641,22 @@ break lab2; } while (false); cursor = limit - v_5; - // (, line 244 - // try, line 244 + // (, line 205 + // try, line 205 v_6 = limit - cursor; lab4: do { - // call reflexive, line 244 + // call reflexive, line 205 if (!r_reflexive()) { cursor = limit - v_6; break lab4; } } while (false); - // or, line 245 + // or, line 206 lab5: do { v_7 = limit - cursor; lab6: do { - // call adjectival, line 245 + // call adjectival, line 206 if (!r_adjectival()) { break lab6; @@ -665,7 +665,7 @@ } while (false); cursor = limit - v_7; lab7: do { - // call verb, line 245 + // call verb, line 206 if (!r_verb()) { break lab7; @@ -673,7 +673,7 @@ break lab5; } while (false); cursor = limit - v_7; - // call noun, line 245 + // call noun, line 206 if (!r_noun()) { break lab1; @@ -682,37 +682,37 @@ } while (false); } while (false); cursor = limit - v_4; - // try, line 248 + // try, line 209 v_8 = limit - cursor; lab8: do { - // (, line 248 - // [, line 248 + // (, line 209 + // [, line 209 ket = cursor; - // literal, line 248 - if (!(eq_s_b(1, "\u00C9"))) + // literal, line 209 + if (!(eq_s_b(1, "\u0438"))) { cursor = limit - v_8; break lab8; } - // ], line 248 + // ], line 209 bra = cursor; - // delete, line 248 + // delete, line 209 slice_del(); } while (false); - // do, line 251 + // do, line 212 v_9 = limit - cursor; lab9: do { - // call derivational, line 251 + // call derivational, line 212 if (!r_derivational()) { break lab9; } } while (false); cursor = limit - v_9; - // do, line 252 + // do, line 213 v_10 = limit - cursor; lab10: do { - // call tidy_up, line 252 + // call tidy_up, line 213 if (!r_tidy_up()) { break lab10; Index: contrib/snowball/src/java/net/sf/snowball/ext/NorwegianStemmer.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/NorwegianStemmer.java (revision 480218) +++ contrib/snowball/src/java/net/sf/snowball/ext/NorwegianStemmer.java (working copy) @@ -62,39 +62,57 @@ private static final char g_v[] = {17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 128 }; - private static final char g_s_ending[] = {119, 127, 149, 1 }; + private static final char g_s_ending[] = {119, 125, 149, 1 }; + private int I_x; private int I_p1; private void copy_from(NorwegianStemmer other) { + I_x = other.I_x; I_p1 = other.I_p1; super.copy_from(other); } private boolean r_mark_regions() { int v_1; + int v_2; // (, line 26 I_p1 = limit; - // goto, line 30 + // test, line 30 + v_1 = cursor; + // (, line 30 + // hop, line 30 + { + int c = cursor + 3; + if (0 > c || c > limit) + { + return false; + } + cursor = c; + } + // setmark x, line 30 + I_x = cursor; + cursor = v_1; + // goto, line 31 golab0: while(true) { - v_1 = cursor; + v_2 = cursor; lab1: do { if (!(in_grouping(g_v, 97, 248))) { break lab1; } - cursor = v_1; + cursor = v_2; break golab0; } while (false); - cursor = v_1; + cursor = v_2; if (cursor >= limit) { return false; } cursor++; } - // gopast, line 30 + // gopast, line 31 golab2: while(true) { lab3: do { @@ -110,16 +128,16 @@ } cursor++; } - // setmark p1, line 30 + // setmark p1, line 31 I_p1 = cursor; - // try, line 31 + // try, line 32 lab4: do { - // (, line 31 - if (!(I_p1 < 3)) + // (, line 32 + if (!(I_p1 < I_x)) { break lab4; } - I_p1 = 3; + I_p1 = I_x; } while (false); return true; } @@ -128,10 +146,11 @@ int among_var; int v_1; int v_2; - // (, line 36 - // setlimit, line 37 + int v_3; + // (, line 37 + // setlimit, line 38 v_1 = limit - cursor; - // tomark, line 37 + // tomark, line 38 if (cursor < I_p1) { return false; @@ -140,39 +159,57 @@ v_2 = limit_backward; limit_backward = cursor; cursor = limit - v_1; - // (, line 37 - // [, line 37 + // (, line 38 + // [, line 38 ket = cursor; - // substring, line 37 + // substring, line 38 among_var = find_among_b(a_0, 29); if (among_var == 0) { limit_backward = v_2; return false; } - // ], line 37 + // ], line 38 bra = cursor; limit_backward = v_2; switch(among_var) { case 0: return false; case 1: - // (, line 43 - // delete, line 43 + // (, line 44 + // delete, line 44 slice_del(); break; case 2: - // (, line 45 - if (!(in_grouping_b(g_s_ending, 98, 122))) - { - return false; - } - // delete, line 45 + // (, line 46 + // or, line 46 + lab0: do { + v_3 = limit - cursor; + lab1: do { + if (!(in_grouping_b(g_s_ending, 98, 122))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_3; + // (, line 46 + // literal, line 46 + if (!(eq_s_b(1, "k"))) + { + return false; + } + if (!(out_grouping_b(g_v, 97, 248))) + { + return false; + } + } while (false); + // delete, line 46 slice_del(); break; case 3: - // (, line 47 - // <-, line 47 + // (, line 48 + // <-, line 48 slice_from("er"); break; } @@ -183,13 +220,13 @@ int v_1; int v_2; int v_3; - // (, line 51 - // test, line 52 + // (, line 52 + // test, line 53 v_1 = limit - cursor; - // (, line 52 - // setlimit, line 53 + // (, line 53 + // setlimit, line 54 v_2 = limit - cursor; - // tomark, line 53 + // tomark, line 54 if (cursor < I_p1) { return false; @@ -198,28 +235,28 @@ v_3 = limit_backward; limit_backward = cursor; cursor = limit - v_2; - // (, line 53 - // [, line 53 + // (, line 54 + // [, line 54 ket = cursor; - // substring, line 53 + // substring, line 54 if (find_among_b(a_1, 2) == 0) { limit_backward = v_3; return false; } - // ], line 53 + // ], line 54 bra = cursor; limit_backward = v_3; cursor = limit - v_1; - // next, line 58 + // next, line 59 if (cursor <= limit_backward) { return false; } cursor--; - // ], line 58 + // ], line 59 bra = cursor; - // delete, line 58 + // delete, line 59 slice_del(); return true; } @@ -228,10 +265,10 @@ int among_var; int v_1; int v_2; - // (, line 61 - // setlimit, line 62 + // (, line 62 + // setlimit, line 63 v_1 = limit - cursor; - // tomark, line 62 + // tomark, line 63 if (cursor < I_p1) { return false; @@ -240,25 +277,25 @@ v_2 = limit_backward; limit_backward = cursor; cursor = limit - v_1; - // (, line 62 - // [, line 62 + // (, line 63 + // [, line 63 ket = cursor; - // substring, line 62 + // substring, line 63 among_var = find_among_b(a_2, 11); if (among_var == 0) { limit_backward = v_2; return false; } - // ], line 62 + // ], line 63 bra = cursor; limit_backward = v_2; switch(among_var) { case 0: return false; case 1: - // (, line 66 - // delete, line 66 + // (, line 67 + // delete, line 67 slice_del(); break; } @@ -270,44 +307,44 @@ int v_2; int v_3; int v_4; - // (, line 71 - // do, line 73 + // (, line 72 + // do, line 74 v_1 = cursor; lab0: do { - // call mark_regions, line 73 + // call mark_regions, line 74 if (!r_mark_regions()) { break lab0; } } while (false); cursor = v_1; - // backwards, line 74 + // backwards, line 75 limit_backward = cursor; cursor = limit; - // (, line 74 - // do, line 75 + // (, line 75 + // do, line 76 v_2 = limit - cursor; lab1: do { - // call main_suffix, line 75 + // call main_suffix, line 76 if (!r_main_suffix()) { break lab1; } } while (false); cursor = limit - v_2; - // do, line 76 + // do, line 77 v_3 = limit - cursor; lab2: do { - // call consonant_pair, line 76 + // call consonant_pair, line 77 if (!r_consonant_pair()) { break lab2; } } while (false); cursor = limit - v_3; - // do, line 77 + // do, line 78 v_4 = limit - cursor; lab3: do { - // call other_suffix, line 77 + // call other_suffix, line 78 if (!r_other_suffix()) { break lab3; Index: contrib/snowball/src/java/net/sf/snowball/ext/EnglishStemmer.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/EnglishStemmer.java (revision 480218) +++ contrib/snowball/src/java/net/sf/snowball/ext/EnglishStemmer.java (working copy) @@ -10,10 +10,18 @@ public class EnglishStemmer extends SnowballProgram { private Among a_0[] = { + new Among ( "arsen", -1, -1, "", this), + new Among ( "commun", -1, -1, "", this), new Among ( "gener", -1, -1, "", this) }; private Among a_1[] = { + new Among ( "'", -1, 1, "", this), + new Among ( "'s'", 0, 1, "", this), + new Among ( "'s", -1, 1, "", this) + }; + + private Among a_2[] = { new Among ( "ied", -1, 2, "", this), new Among ( "s", -1, 3, "", this), new Among ( "ies", 1, 2, "", this), @@ -22,7 +30,7 @@ new Among ( "us", 1, -1, "", this) }; - private Among a_2[] = { + private Among a_3[] = { new Among ( "", -1, 3, "", this), new Among ( "bb", 0, 2, "", this), new Among ( "dd", 0, 2, "", this), @@ -38,7 +46,7 @@ new Among ( "iz", 0, 1, "", this) }; - private Among a_3[] = { + private Among a_4[] = { new Among ( "ed", -1, 2, "", this), new Among ( "eed", 0, 1, "", this), new Among ( "ing", -1, 2, "", this), @@ -47,7 +55,7 @@ new Among ( "ingly", -1, 2, "", this) }; - private Among a_4[] = { + private Among a_5[] = { new Among ( "anci", -1, 3, "", this), new Among ( "enci", -1, 2, "", this), new Among ( "ogi", -1, 13, "", this), @@ -74,7 +82,7 @@ new Among ( "ousness", -1, 10, "", this) }; - private Among a_5[] = { + private Among a_6[] = { new Among ( "icate", -1, 4, "", this), new Among ( "ative", -1, 6, "", this), new Among ( "alize", -1, 3, "", this), @@ -86,7 +94,7 @@ new Among ( "ness", -1, 5, "", this) }; - private Among a_6[] = { + private Among a_7[] = { new Among ( "ic", -1, 1, "", this), new Among ( "ance", -1, 1, "", this), new Among ( "ence", -1, 1, "", this), @@ -107,12 +115,12 @@ new Among ( "ement", 16, 1, "", this) }; - private Among a_7[] = { + private Among a_8[] = { new Among ( "e", -1, 1, "", this), new Among ( "l", -1, 2, "", this) }; - private Among a_8[] = { + private Among a_9[] = { new Among ( "succeed", -1, -1, "", this), new Among ( "proceed", -1, -1, "", this), new Among ( "exceed", -1, -1, "", this), @@ -123,7 +131,7 @@ new Among ( "outing", -1, -1, "", this) }; - private Among a_9[] = { + private Among a_10[] = { new Among ( "andes", -1, -1, "", this), new Among ( "atlas", -1, -1, "", this), new Among ( "bias", -1, -1, "", this), @@ -166,108 +174,122 @@ int v_2; int v_3; int v_4; - // (, line 23 - // unset Y_found, line 24 + int v_5; + // (, line 25 + // unset Y_found, line 26 B_Y_found = false; - // do, line 25 + // do, line 27 v_1 = cursor; lab0: do { - // (, line 25 - // [, line 25 + // (, line 27 + // [, line 27 bra = cursor; - // literal, line 25 - if (!(eq_s(1, "y"))) + // literal, line 27 + if (!(eq_s(1, "'"))) { break lab0; } - // ], line 25 + // ], line 27 ket = cursor; - if (!(in_grouping(g_v, 97, 121))) + // delete, line 27 + slice_del(); + } while (false); + cursor = v_1; + // do, line 28 + v_2 = cursor; + lab1: do { + // (, line 28 + // [, line 28 + bra = cursor; + // literal, line 28 + if (!(eq_s(1, "y"))) { - break lab0; + break lab1; } - // <-, line 25 + // ], line 28 + ket = cursor; + // <-, line 28 slice_from("Y"); - // set Y_found, line 25 + // set Y_found, line 28 B_Y_found = true; } while (false); - cursor = v_1; - // do, line 26 - v_2 = cursor; - lab1: do { - // repeat, line 26 - replab2: while(true) + cursor = v_2; + // do, line 29 + v_3 = cursor; + lab2: do { + // repeat, line 29 + replab3: while(true) { - v_3 = cursor; - lab3: do { - // (, line 26 - // goto, line 26 - golab4: while(true) + v_4 = cursor; + lab4: do { + // (, line 29 + // goto, line 29 + golab5: while(true) { - v_4 = cursor; - lab5: do { - // (, line 26 + v_5 = cursor; + lab6: do { + // (, line 29 if (!(in_grouping(g_v, 97, 121))) { - break lab5; + break lab6; } - // [, line 26 + // [, line 29 bra = cursor; - // literal, line 26 + // literal, line 29 if (!(eq_s(1, "y"))) { - break lab5; + break lab6; } - // ], line 26 + // ], line 29 ket = cursor; - cursor = v_4; - break golab4; + cursor = v_5; + break golab5; } while (false); - cursor = v_4; + cursor = v_5; if (cursor >= limit) { - break lab3; + break lab4; } cursor++; } - // <-, line 26 + // <-, line 29 slice_from("Y"); - // set Y_found, line 26 + // set Y_found, line 29 B_Y_found = true; - continue replab2; + continue replab3; } while (false); - cursor = v_3; - break replab2; + cursor = v_4; + break replab3; } } while (false); - cursor = v_2; + cursor = v_3; return true; } private boolean r_mark_regions() { int v_1; int v_2; - // (, line 29 + // (, line 32 I_p1 = limit; I_p2 = limit; - // do, line 32 + // do, line 35 v_1 = cursor; lab0: do { - // (, line 32 - // or, line 36 + // (, line 35 + // or, line 41 lab1: do { v_2 = cursor; lab2: do { - // among, line 33 - if (find_among(a_0, 1) == 0) + // among, line 36 + if (find_among(a_0, 3) == 0) { break lab2; } break lab1; } while (false); cursor = v_2; - // (, line 36 - // gopast, line 36 + // (, line 41 + // gopast, line 41 golab3: while(true) { lab4: do { @@ -283,7 +305,7 @@ } cursor++; } - // gopast, line 36 + // gopast, line 41 golab5: while(true) { lab6: do { @@ -300,9 +322,9 @@ cursor++; } } while (false); - // setmark p1, line 37 + // setmark p1, line 42 I_p1 = cursor; - // gopast, line 38 + // gopast, line 43 golab7: while(true) { lab8: do { @@ -318,7 +340,7 @@ } cursor++; } - // gopast, line 38 + // gopast, line 43 golab9: while(true) { lab10: do { @@ -334,7 +356,7 @@ } cursor++; } - // setmark p2, line 38 + // setmark p2, line 43 I_p2 = cursor; } while (false); cursor = v_1; @@ -343,12 +365,12 @@ private boolean r_shortv() { int v_1; - // (, line 44 - // or, line 46 + // (, line 49 + // or, line 51 lab0: do { v_1 = limit - cursor; lab1: do { - // (, line 45 + // (, line 50 if (!(out_grouping_b(g_v_WXY, 89, 121))) { break lab1; @@ -364,7 +386,7 @@ break lab0; } while (false); cursor = limit - v_1; - // (, line 47 + // (, line 52 if (!(out_grouping_b(g_v, 97, 121))) { return false; @@ -373,7 +395,7 @@ { return false; } - // atlimit, line 47 + // atlimit, line 52 if (cursor > limit_backward) { return false; @@ -401,69 +423,94 @@ private boolean r_Step_1a() { int among_var; int v_1; - // (, line 53 - // [, line 54 + int v_2; + // (, line 58 + // try, line 59 + v_1 = limit - cursor; + lab0: do { + // (, line 59 + // [, line 60 + ket = cursor; + // substring, line 60 + among_var = find_among_b(a_1, 3); + if (among_var == 0) + { + cursor = limit - v_1; + break lab0; + } + // ], line 60 + bra = cursor; + switch(among_var) { + case 0: + cursor = limit - v_1; + break lab0; + case 1: + // (, line 62 + // delete, line 62 + slice_del(); + break; + } + } while (false); + // [, line 65 ket = cursor; - // substring, line 54 - among_var = find_among_b(a_1, 6); + // substring, line 65 + among_var = find_among_b(a_2, 6); if (among_var == 0) { return false; } - // ], line 54 + // ], line 65 bra = cursor; switch(among_var) { case 0: return false; case 1: - // (, line 55 - // <-, line 55 + // (, line 66 + // <-, line 66 slice_from("ss"); break; case 2: - // (, line 57 - // or, line 57 - lab0: do { - v_1 = limit - cursor; - lab1: do { - // (, line 57 - // next, line 57 - if (cursor <= limit_backward) + // (, line 68 + // or, line 68 + lab1: do { + v_2 = limit - cursor; + lab2: do { + // (, line 68 + // hop, line 68 { - break lab1; + int c = cursor - 2; + if (limit_backward > c || c > limit) + { + break lab2; + } + cursor = c; } - cursor--; - // atlimit, line 57 - if (cursor > limit_backward) - { - break lab1; - } - // <-, line 57 - slice_from("ie"); - break lab0; + // <-, line 68 + slice_from("i"); + break lab1; } while (false); - cursor = limit - v_1; - // <-, line 57 - slice_from("i"); + cursor = limit - v_2; + // <-, line 68 + slice_from("ie"); } while (false); break; case 3: - // (, line 58 - // next, line 58 + // (, line 69 + // next, line 69 if (cursor <= limit_backward) { return false; } cursor--; - // gopast, line 58 - golab2: while(true) + // gopast, line 69 + golab3: while(true) { - lab3: do { + lab4: do { if (!(in_grouping_b(g_v, 97, 121))) { - break lab3; + break lab4; } - break golab2; + break golab3; } while (false); if (cursor <= limit_backward) { @@ -471,7 +518,7 @@ } cursor--; } - // delete, line 58 + // delete, line 69 slice_del(); break; } @@ -483,35 +530,35 @@ int v_1; int v_3; int v_4; - // (, line 63 - // [, line 64 + // (, line 74 + // [, line 75 ket = cursor; - // substring, line 64 - among_var = find_among_b(a_3, 6); + // substring, line 75 + among_var = find_among_b(a_4, 6); if (among_var == 0) { return false; } - // ], line 64 + // ], line 75 bra = cursor; switch(among_var) { case 0: return false; case 1: - // (, line 66 - // call R1, line 66 + // (, line 77 + // call R1, line 77 if (!r_R1()) { return false; } - // <-, line 66 + // <-, line 77 slice_from("ee"); break; case 2: - // (, line 68 - // test, line 69 + // (, line 79 + // test, line 80 v_1 = limit - cursor; - // gopast, line 69 + // gopast, line 80 golab0: while(true) { lab1: do { @@ -528,12 +575,12 @@ cursor--; } cursor = limit - v_1; - // delete, line 69 + // delete, line 80 slice_del(); - // test, line 70 + // test, line 81 v_3 = limit - cursor; - // substring, line 70 - among_var = find_among_b(a_2, 13); + // substring, line 81 + among_var = find_among_b(a_3, 13); if (among_var == 0) { return false; @@ -543,8 +590,8 @@ case 0: return false; case 1: - // (, line 72 - // <+, line 72 + // (, line 83 + // <+, line 83 { int c = cursor; insert(cursor, cursor, "e"); @@ -552,36 +599,36 @@ } break; case 2: - // (, line 75 - // [, line 75 + // (, line 86 + // [, line 86 ket = cursor; - // next, line 75 + // next, line 86 if (cursor <= limit_backward) { return false; } cursor--; - // ], line 75 + // ], line 86 bra = cursor; - // delete, line 75 + // delete, line 86 slice_del(); break; case 3: - // (, line 76 - // atmark, line 76 + // (, line 87 + // atmark, line 87 if (cursor != I_p1) { return false; } - // test, line 76 + // test, line 87 v_4 = limit - cursor; - // call shortv, line 76 + // call shortv, line 87 if (!r_shortv()) { return false; } cursor = limit - v_4; - // <+, line 76 + // <+, line 87 { int c = cursor; insert(cursor, cursor, "e"); @@ -597,14 +644,14 @@ private boolean r_Step_1c() { int v_1; int v_2; - // (, line 82 - // [, line 83 + // (, line 93 + // [, line 94 ket = cursor; - // or, line 83 + // or, line 94 lab0: do { v_1 = limit - cursor; lab1: do { - // literal, line 83 + // literal, line 94 if (!(eq_s_b(1, "y"))) { break lab1; @@ -612,23 +659,23 @@ break lab0; } while (false); cursor = limit - v_1; - // literal, line 83 + // literal, line 94 if (!(eq_s_b(1, "Y"))) { return false; } } while (false); - // ], line 83 + // ], line 94 bra = cursor; if (!(out_grouping_b(g_v, 97, 121))) { return false; } - // not, line 84 + // not, line 95 { v_2 = limit - cursor; lab2: do { - // atlimit, line 84 + // atlimit, line 95 if (cursor > limit_backward) { break lab2; @@ -637,25 +684,25 @@ } while (false); cursor = limit - v_2; } - // <-, line 85 + // <-, line 96 slice_from("i"); return true; } private boolean r_Step_2() { int among_var; - // (, line 88 - // [, line 89 + // (, line 99 + // [, line 100 ket = cursor; - // substring, line 89 - among_var = find_among_b(a_4, 24); + // substring, line 100 + among_var = find_among_b(a_5, 24); if (among_var == 0) { return false; } - // ], line 89 + // ], line 100 bra = cursor; - // call R1, line 89 + // call R1, line 100 if (!r_R1()) { return false; @@ -664,92 +711,92 @@ case 0: return false; case 1: - // (, line 90 - // <-, line 90 + // (, line 101 + // <-, line 101 slice_from("tion"); break; case 2: - // (, line 91 - // <-, line 91 + // (, line 102 + // <-, line 102 slice_from("ence"); break; case 3: - // (, line 92 - // <-, line 92 + // (, line 103 + // <-, line 103 slice_from("ance"); break; case 4: - // (, line 93 - // <-, line 93 + // (, line 104 + // <-, line 104 slice_from("able"); break; case 5: - // (, line 94 - // <-, line 94 + // (, line 105 + // <-, line 105 slice_from("ent"); break; case 6: - // (, line 96 - // <-, line 96 + // (, line 107 + // <-, line 107 slice_from("ize"); break; case 7: - // (, line 98 - // <-, line 98 + // (, line 109 + // <-, line 109 slice_from("ate"); break; case 8: - // (, line 100 - // <-, line 100 + // (, line 111 + // <-, line 111 slice_from("al"); break; case 9: - // (, line 101 - // <-, line 101 + // (, line 112 + // <-, line 112 slice_from("ful"); break; case 10: - // (, line 103 - // <-, line 103 + // (, line 114 + // <-, line 114 slice_from("ous"); break; case 11: - // (, line 105 - // <-, line 105 + // (, line 116 + // <-, line 116 slice_from("ive"); break; case 12: - // (, line 107 - // <-, line 107 + // (, line 118 + // <-, line 118 slice_from("ble"); break; case 13: - // (, line 108 - // literal, line 108 + // (, line 119 + // literal, line 119 if (!(eq_s_b(1, "l"))) { return false; } - // <-, line 108 + // <-, line 119 slice_from("og"); break; case 14: - // (, line 109 - // <-, line 109 + // (, line 120 + // <-, line 120 slice_from("ful"); break; case 15: - // (, line 110 - // <-, line 110 + // (, line 121 + // <-, line 121 slice_from("less"); break; case 16: - // (, line 111 + // (, line 122 if (!(in_grouping_b(g_valid_LI, 99, 116))) { return false; } - // delete, line 111 + // delete, line 122 slice_del(); break; } @@ -758,18 +805,18 @@ private boolean r_Step_3() { int among_var; - // (, line 115 - // [, line 116 + // (, line 126 + // [, line 127 ket = cursor; - // substring, line 116 - among_var = find_among_b(a_5, 9); + // substring, line 127 + among_var = find_among_b(a_6, 9); if (among_var == 0) { return false; } - // ], line 116 + // ], line 127 bra = cursor; - // call R1, line 116 + // call R1, line 127 if (!r_R1()) { return false; @@ -778,38 +825,38 @@ case 0: return false; case 1: - // (, line 117 - // <-, line 117 + // (, line 128 + // <-, line 128 slice_from("tion"); break; case 2: - // (, line 118 - // <-, line 118 + // (, line 129 + // <-, line 129 slice_from("ate"); break; case 3: - // (, line 119 - // <-, line 119 + // (, line 130 + // <-, line 130 slice_from("al"); break; case 4: - // (, line 121 - // <-, line 121 + // (, line 132 + // <-, line 132 slice_from("ic"); break; case 5: - // (, line 123 - // delete, line 123 + // (, line 134 + // delete, line 134 slice_del(); break; case 6: - // (, line 125 - // call R2, line 125 + // (, line 136 + // call R2, line 136 if (!r_R2()) { return false; } - // delete, line 125 + // delete, line 136 slice_del(); break; } @@ -819,18 +866,18 @@ private boolean r_Step_4() { int among_var; int v_1; - // (, line 129 - // [, line 130 + // (, line 140 + // [, line 141 ket = cursor; - // substring, line 130 - among_var = find_among_b(a_6, 18); + // substring, line 141 + among_var = find_among_b(a_7, 18); if (among_var == 0) { return false; } - // ], line 130 + // ], line 141 bra = cursor; - // call R2, line 130 + // call R2, line 141 if (!r_R2()) { return false; @@ -839,17 +886,17 @@ case 0: return false; case 1: - // (, line 133 - // delete, line 133 + // (, line 144 + // delete, line 144 slice_del(); break; case 2: - // (, line 134 - // or, line 134 + // (, line 145 + // or, line 145 lab0: do { v_1 = limit - cursor; lab1: do { - // literal, line 134 + // literal, line 145 if (!(eq_s_b(1, "s"))) { break lab1; @@ -857,13 +904,13 @@ break lab0; } while (false); cursor = limit - v_1; - // literal, line 134 + // literal, line 145 if (!(eq_s_b(1, "t"))) { return false; } } while (false); - // delete, line 134 + // delete, line 145 slice_del(); break; } @@ -874,27 +921,27 @@ int among_var; int v_1; int v_2; - // (, line 138 - // [, line 139 + // (, line 149 + // [, line 150 ket = cursor; - // substring, line 139 - among_var = find_among_b(a_7, 2); + // substring, line 150 + among_var = find_among_b(a_8, 2); if (among_var == 0) { return false; } - // ], line 139 + // ], line 150 bra = cursor; switch(among_var) { case 0: return false; case 1: - // (, line 140 - // or, line 140 + // (, line 151 + // or, line 151 lab0: do { v_1 = limit - cursor; lab1: do { - // call R2, line 140 + // call R2, line 151 if (!r_R2()) { break lab1; @@ -902,17 +949,17 @@ break lab0; } while (false); cursor = limit - v_1; - // (, line 140 - // call R1, line 140 + // (, line 151 + // call R1, line 151 if (!r_R1()) { return false; } - // not, line 140 + // not, line 151 { v_2 = limit - cursor; lab2: do { - // call shortv, line 140 + // call shortv, line 151 if (!r_shortv()) { break lab2; @@ -922,22 +969,22 @@ cursor = limit - v_2; } } while (false); - // delete, line 140 + // delete, line 151 slice_del(); break; case 2: - // (, line 141 - // call R2, line 141 + // (, line 152 + // call R2, line 152 if (!r_R2()) { return false; } - // literal, line 141 + // literal, line 152 if (!(eq_s_b(1, "l"))) { return false; } - // delete, line 141 + // delete, line 152 slice_del(); break; } @@ -945,17 +992,17 @@ } private boolean r_exception2() { - // (, line 145 - // [, line 147 + // (, line 156 + // [, line 158 ket = cursor; - // substring, line 147 - if (find_among_b(a_8, 8) == 0) + // substring, line 158 + if (find_among_b(a_9, 8) == 0) { return false; } - // ], line 147 + // ], line 158 bra = cursor; - // atlimit, line 147 + // atlimit, line 158 if (cursor > limit_backward) { return false; @@ -965,18 +1012,18 @@ private boolean r_exception1() { int among_var; - // (, line 157 - // [, line 159 + // (, line 168 + // [, line 170 bra = cursor; - // substring, line 159 - among_var = find_among(a_9, 18); + // substring, line 170 + among_var = find_among(a_10, 18); if (among_var == 0) { return false; } - // ], line 159 + // ], line 170 ket = cursor; - // atlimit, line 159 + // atlimit, line 170 if (cursor < limit) { return false; @@ -985,58 +1032,58 @@ case 0: return false; case 1: - // (, line 163 - // <-, line 163 + // (, line 174 + // <-, line 174 slice_from("ski"); break; case 2: - // (, line 164 - // <-, line 164 + // (, line 175 + // <-, line 175 slice_from("sky"); break; case 3: - // (, line 165 - // <-, line 165 + // (, line 176 + // <-, line 176 slice_from("die"); break; case 4: - // (, line 166 - // <-, line 166 + // (, line 177 + // <-, line 177 slice_from("lie"); break; case 5: - // (, line 167 - // <-, line 167 + // (, line 178 + // <-, line 178 slice_from("tie"); break; case 6: - // (, line 171 - // <-, line 171 + // (, line 182 + // <-, line 182 slice_from("idl"); break; case 7: - // (, line 172 - // <-, line 172 + // (, line 183 + // <-, line 183 slice_from("gentl"); break; case 8: - // (, line 173 - // <-, line 173 + // (, line 184 + // <-, line 184 slice_from("ugli"); break; case 9: - // (, line 174 - // <-, line 174 + // (, line 185 + // <-, line 185 slice_from("earli"); break; case 10: - // (, line 175 - // <-, line 175 + // (, line 186 + // <-, line 186 slice_from("onli"); break; case 11: - // (, line 176 - // <-, line 176 + // (, line 187 + // <-, line 187 slice_from("singl"); break; } @@ -1046,32 +1093,32 @@ private boolean r_postlude() { int v_1; int v_2; - // (, line 192 - // Boolean test Y_found, line 192 + // (, line 203 + // Boolean test Y_found, line 203 if (!(B_Y_found)) { return false; } - // repeat, line 192 + // repeat, line 203 replab0: while(true) { v_1 = cursor; lab1: do { - // (, line 192 - // goto, line 192 + // (, line 203 + // goto, line 203 golab2: while(true) { v_2 = cursor; lab3: do { - // (, line 192 - // [, line 192 + // (, line 203 + // [, line 203 bra = cursor; - // literal, line 192 + // literal, line 203 if (!(eq_s(1, "Y"))) { break lab3; } - // ], line 192 + // ], line 203 ket = cursor; cursor = v_2; break golab2; @@ -1083,7 +1130,7 @@ } cursor++; } - // <-, line 192 + // <-, line 203 slice_from("y"); continue replab0; } while (false); @@ -1107,12 +1154,12 @@ int v_11; int v_12; int v_13; - // (, line 194 - // or, line 196 + // (, line 205 + // or, line 207 lab0: do { v_1 = cursor; lab1: do { - // call exception1, line 196 + // call exception1, line 207 if (!r_exception1()) { break lab1; @@ -1120,133 +1167,142 @@ break lab0; } while (false); cursor = v_1; - // (, line 196 - // test, line 198 - v_2 = cursor; - // hop, line 198 - { - int c = cursor + 3; - if (0 > c || c > limit) + lab2: do { + // not, line 208 { - return false; + v_2 = cursor; + lab3: do { + // hop, line 208 + { + int c = cursor + 3; + if (0 > c || c > limit) + { + break lab3; + } + cursor = c; + } + break lab2; + } while (false); + cursor = v_2; } - cursor = c; - } - cursor = v_2; - // do, line 199 + break lab0; + } while (false); + cursor = v_1; + // (, line 208 + // do, line 209 v_3 = cursor; - lab2: do { - // call prelude, line 199 + lab4: do { + // call prelude, line 209 if (!r_prelude()) { - break lab2; + break lab4; } } while (false); cursor = v_3; - // do, line 200 + // do, line 210 v_4 = cursor; - lab3: do { - // call mark_regions, line 200 + lab5: do { + // call mark_regions, line 210 if (!r_mark_regions()) { - break lab3; + break lab5; } } while (false); cursor = v_4; - // backwards, line 201 + // backwards, line 211 limit_backward = cursor; cursor = limit; - // (, line 201 - // do, line 203 + // (, line 211 + // do, line 213 v_5 = limit - cursor; - lab4: do { - // call Step_1a, line 203 + lab6: do { + // call Step_1a, line 213 if (!r_Step_1a()) { - break lab4; + break lab6; } } while (false); cursor = limit - v_5; - // or, line 205 - lab5: do { + // or, line 215 + lab7: do { v_6 = limit - cursor; - lab6: do { - // call exception2, line 205 + lab8: do { + // call exception2, line 215 if (!r_exception2()) { - break lab6; + break lab8; } - break lab5; + break lab7; } while (false); cursor = limit - v_6; - // (, line 205 - // do, line 207 + // (, line 215 + // do, line 217 v_7 = limit - cursor; - lab7: do { - // call Step_1b, line 207 + lab9: do { + // call Step_1b, line 217 if (!r_Step_1b()) { - break lab7; + break lab9; } } while (false); cursor = limit - v_7; - // do, line 208 + // do, line 218 v_8 = limit - cursor; - lab8: do { - // call Step_1c, line 208 + lab10: do { + // call Step_1c, line 218 if (!r_Step_1c()) { - break lab8; + break lab10; } } while (false); cursor = limit - v_8; - // do, line 210 + // do, line 220 v_9 = limit - cursor; - lab9: do { - // call Step_2, line 210 + lab11: do { + // call Step_2, line 220 if (!r_Step_2()) { - break lab9; + break lab11; } } while (false); cursor = limit - v_9; - // do, line 211 + // do, line 221 v_10 = limit - cursor; - lab10: do { - // call Step_3, line 211 + lab12: do { + // call Step_3, line 221 if (!r_Step_3()) { - break lab10; + break lab12; } } while (false); cursor = limit - v_10; - // do, line 212 + // do, line 222 v_11 = limit - cursor; - lab11: do { - // call Step_4, line 212 + lab13: do { + // call Step_4, line 222 if (!r_Step_4()) { - break lab11; + break lab13; } } while (false); cursor = limit - v_11; - // do, line 214 + // do, line 224 v_12 = limit - cursor; - lab12: do { - // call Step_5, line 214 + lab14: do { + // call Step_5, line 224 if (!r_Step_5()) { - break lab12; + break lab14; } } while (false); cursor = limit - v_12; } while (false); - cursor = limit_backward; // do, line 217 + cursor = limit_backward; // do, line 227 v_13 = cursor; - lab13: do { - // call postlude, line 217 + lab15: do { + // call postlude, line 227 if (!r_postlude()) { - break lab13; + break lab15; } } while (false); cursor = v_13; Index: contrib/snowball/src/java/net/sf/snowball/ext/FinnishStemmer.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/FinnishStemmer.java (revision 480218) +++ contrib/snowball/src/java/net/sf/snowball/ext/FinnishStemmer.java (working copy) @@ -129,9 +129,9 @@ private static final char g_AEI[] = {17, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8 }; - private static final char g_v[] = {17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 }; + private static final char g_V1[] = {17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 }; - private static final char g_V[] = {17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 }; + private static final char g_V2[] = {17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 }; private static final char g_particle_end[] = {17, 97, 24, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 }; @@ -159,7 +159,7 @@ { v_1 = cursor; lab1: do { - if (!(in_grouping(g_v, 97, 246))) + if (!(in_grouping(g_V1, 97, 246))) { break lab1; } @@ -177,7 +177,7 @@ golab2: while(true) { lab3: do { - if (!(out_grouping(g_v, 97, 246))) + if (!(out_grouping(g_V1, 97, 246))) { break lab3; } @@ -196,7 +196,7 @@ { v_3 = cursor; lab5: do { - if (!(in_grouping(g_v, 97, 246))) + if (!(in_grouping(g_V1, 97, 246))) { break lab5; } @@ -214,7 +214,7 @@ golab6: while(true) { lab7: do { - if (!(out_grouping(g_v, 97, 246))) + if (!(out_grouping(g_V1, 97, 246))) { break lab7; } @@ -414,14 +414,14 @@ { return false; } - if (!(in_grouping_b(g_V, 97, 246))) + if (!(in_grouping_b(g_V2, 97, 246))) { return false; } return true; } - private boolean r_case() { + private boolean r_case_ending() { int among_var; int v_1; int v_2; @@ -545,11 +545,11 @@ break; case 8: // (, line 119 - if (!(in_grouping_b(g_v, 97, 246))) + if (!(in_grouping_b(g_V1, 97, 246))) { return false; } - if (!(out_grouping_b(g_v, 97, 246))) + if (!(out_grouping_b(g_V1, 97, 246))) { return false; } @@ -690,7 +690,7 @@ bra = cursor; // test, line 162 v_3 = limit - cursor; - if (!(in_grouping_b(g_v, 97, 246))) + if (!(in_grouping_b(g_V1, 97, 246))) { limit_backward = v_2; return false; @@ -810,7 +810,7 @@ } // ], line 175 bra = cursor; - if (!(out_grouping_b(g_v, 97, 246))) + if (!(out_grouping_b(g_V1, 97, 246))) { break lab1; } @@ -881,7 +881,7 @@ { v_9 = limit - cursor; lab7: do { - if (!(out_grouping_b(g_v, 97, 246))) + if (!(out_grouping_b(g_V1, 97, 246))) { break lab7; } @@ -966,8 +966,8 @@ // do, line 190 v_4 = limit - cursor; lab3: do { - // call case, line 190 - if (!r_case()) + // call case_ending, line 190 + if (!r_case_ending()) { break lab3; } Index: contrib/snowball/src/java/net/sf/snowball/SnowballProgram.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/SnowballProgram.java (revision 480218) +++ contrib/snowball/src/java/net/sf/snowball/SnowballProgram.java (working copy) @@ -27,7 +27,15 @@ */ public String getCurrent() { - return current.toString(); + String result = current.toString(); + // Make a new StringBuffer. If we reuse the old one, and a user of + // the library keeps a reference to the buffer returned (for example, + // by converting it to a String in a way which doesn't force a copy), + // the buffer size will not decrease, and we will risk wasting a large + // amount of memory. + // Thanks to Wolfram Esser for spotting this problem. + current = new StringBuffer(); + return result; } // current string @@ -317,7 +325,7 @@ protected int replace_s(int c_bra, int c_ket, String s) { int adjustment = s.length() - (c_ket - c_bra); - current.replace(bra, ket, s); + current.replace(c_bra, c_ket, s); limit += adjustment; if (cursor >= c_ket) cursor += adjustment; else if (cursor > c_bra) cursor = c_bra;