Index: contrib/snowball/src/java/net/sf/snowball/TestApp.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/TestApp.java (revision 613440) +++ contrib/snowball/src/java/net/sf/snowball/TestApp.java (working copy) @@ -1,90 +0,0 @@ -package net.sf.snowball; - -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import java.lang.reflect.Method; -import java.io.Reader; -import java.io.Writer; -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.FileInputStream; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; -import java.io.OutputStream; -import java.io.FileOutputStream; - -public class TestApp { - public static void main(String[] args) throws Throwable { - - if (args.length < 2) { - exitWithUsage(); - } - - Class stemClass = Class.forName("net.sf.snowball.ext." + - args[0] + "Stemmer"); - SnowballProgram stemmer = (SnowballProgram) stemClass.newInstance(); - Method stemMethod = stemClass.getMethod("stem", new Class[0]); - - Reader reader; - reader = new InputStreamReader(new FileInputStream(args[1])); - reader = new BufferedReader(reader); - - StringBuffer input = new StringBuffer(); - - OutputStream outstream = System.out; - - if (args.length > 2 && args[2].equals("-o")) { - outstream = new FileOutputStream(args[3]); - } else if (args.length > 2) { - exitWithUsage(); - } - - Writer output = new OutputStreamWriter(outstream); - output = new BufferedWriter(output); - - int repeat = 1; - if (args.length > 4) { - repeat = Integer.parseInt(args[4]); - } - - Object[] emptyArgs = new Object[0]; - int character; - while ((character = reader.read()) != -1) { - char ch = (char) character; - if (Character.isWhitespace(ch)) { - if (input.length() > 0) { - stemmer.setCurrent(input.toString()); - for (int i = repeat; i != 0; i--) { - stemMethod.invoke(stemmer, emptyArgs); - } - output.write(stemmer.getCurrent()); - output.write('\n'); - input.delete(0, input.length()); - } - } else { - input.append(Character.toLowerCase(ch)); - } - } - output.flush(); - } - - private static void exitWithUsage() { - System.err.println("Usage: TestApp [-o ]"); - System.exit(1); - } -} Index: contrib/snowball/src/java/net/sf/snowball/ext/PortugueseStemmer.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/PortugueseStemmer.java (revision 613440) +++ contrib/snowball/src/java/net/sf/snowball/ext/PortugueseStemmer.java (working copy) @@ -1,1112 +0,0 @@ -// This file was generated automatically by the Snowball to Java compiler - -package net.sf.snowball.ext; -import net.sf.snowball.SnowballProgram; -import net.sf.snowball.Among; - -/** - * Generated class implementing code defined by a snowball script. - */ -public class PortugueseStemmer extends SnowballProgram { - - private Among a_0[] = { - new Among ( "", -1, 3, "", this), - new Among ( "\u00E3", 0, 1, "", this), - new Among ( "\u00F5", 0, 2, "", this) - }; - - private Among a_1[] = { - new Among ( "", -1, 3, "", this), - new Among ( "a~", 0, 1, "", this), - new Among ( "o~", 0, 2, "", this) - }; - - private Among a_2[] = { - new Among ( "ic", -1, -1, "", this), - new Among ( "ad", -1, -1, "", this), - new Among ( "os", -1, -1, "", this), - new Among ( "iv", -1, 1, "", this) - }; - - private Among a_3[] = { - new Among ( "avel", -1, 1, "", this), - new Among ( "\u00EDvel", -1, 1, "", this) - }; - - private Among a_4[] = { - new Among ( "ic", -1, 1, "", this), - new Among ( "abil", -1, 1, "", this), - new Among ( "iv", -1, 1, "", this) - }; - - private Among a_5[] = { - new Among ( "ica", -1, 1, "", this), - new Among ( "\u00EAncia", -1, 4, "", this), - new Among ( "ira", -1, 9, "", this), - new Among ( "adora", -1, 1, "", this), - new Among ( "osa", -1, 1, "", this), - new Among ( "ista", -1, 1, "", this), - new Among ( "iva", -1, 8, "", this), - new Among ( "eza", -1, 1, "", this), - new Among ( "log\u00EDa", -1, 2, "", this), - new Among ( "idade", -1, 7, "", this), - new Among ( "mente", -1, 6, "", this), - new Among ( "amente", 10, 5, "", this), - new Among ( "\u00E1vel", -1, 1, "", this), - new Among ( "\u00EDvel", -1, 1, "", this), - new Among ( "uci\u00F3n", -1, 3, "", this), - new Among ( "ico", -1, 1, "", this), - new Among ( "ismo", -1, 1, "", this), - new Among ( "oso", -1, 1, "", this), - new Among ( "amento", -1, 1, "", this), - new Among ( "imento", -1, 1, "", this), - new Among ( "ivo", -1, 8, "", this), - new Among ( "a\u00E7a~o", -1, 1, "", this), - new Among ( "ador", -1, 1, "", this), - new Among ( "icas", -1, 1, "", this), - new Among ( "\u00EAncias", -1, 4, "", this), - new Among ( "iras", -1, 9, "", this), - new Among ( "adoras", -1, 1, "", this), - new Among ( "osas", -1, 1, "", this), - new Among ( "istas", -1, 1, "", this), - new Among ( "ivas", -1, 8, "", this), - new Among ( "ezas", -1, 1, "", this), - new Among ( "log\u00EDas", -1, 2, "", this), - new Among ( "idades", -1, 7, "", this), - new Among ( "uciones", -1, 3, "", this), - new Among ( "adores", -1, 1, "", this), - new Among ( "a\u00E7o~es", -1, 1, "", this), - new Among ( "icos", -1, 1, "", this), - new Among ( "ismos", -1, 1, "", this), - new Among ( "osos", -1, 1, "", this), - new Among ( "amentos", -1, 1, "", this), - new Among ( "imentos", -1, 1, "", this), - new Among ( "ivos", -1, 8, "", this) - }; - - private Among a_6[] = { - new Among ( "ada", -1, 1, "", this), - new Among ( "ida", -1, 1, "", this), - new Among ( "ia", -1, 1, "", this), - new Among ( "aria", 2, 1, "", this), - new Among ( "eria", 2, 1, "", this), - new Among ( "iria", 2, 1, "", this), - new Among ( "ara", -1, 1, "", this), - new Among ( "era", -1, 1, "", this), - new Among ( "ira", -1, 1, "", this), - new Among ( "ava", -1, 1, "", this), - new Among ( "asse", -1, 1, "", this), - new Among ( "esse", -1, 1, "", this), - new Among ( "isse", -1, 1, "", this), - new Among ( "aste", -1, 1, "", this), - new Among ( "este", -1, 1, "", this), - new Among ( "iste", -1, 1, "", this), - new Among ( "ei", -1, 1, "", this), - new Among ( "arei", 16, 1, "", this), - new Among ( "erei", 16, 1, "", this), - new Among ( "irei", 16, 1, "", this), - new Among ( "am", -1, 1, "", this), - new Among ( "iam", 20, 1, "", this), - new Among ( "ariam", 21, 1, "", this), - new Among ( "eriam", 21, 1, "", this), - new Among ( "iriam", 21, 1, "", this), - new Among ( "aram", 20, 1, "", this), - new Among ( "eram", 20, 1, "", this), - new Among ( "iram", 20, 1, "", this), - new Among ( "avam", 20, 1, "", this), - new Among ( "em", -1, 1, "", this), - new Among ( "arem", 29, 1, "", this), - new Among ( "erem", 29, 1, "", this), - new Among ( "irem", 29, 1, "", this), - new Among ( "assem", 29, 1, "", this), - new Among ( "essem", 29, 1, "", this), - new Among ( "issem", 29, 1, "", this), - new Among ( "ado", -1, 1, "", this), - new Among ( "ido", -1, 1, "", this), - new Among ( "ando", -1, 1, "", this), - new Among ( "endo", -1, 1, "", this), - new Among ( "indo", -1, 1, "", this), - new Among ( "ara~o", -1, 1, "", this), - new Among ( "era~o", -1, 1, "", this), - new Among ( "ira~o", -1, 1, "", this), - new Among ( "ar", -1, 1, "", this), - new Among ( "er", -1, 1, "", this), - new Among ( "ir", -1, 1, "", this), - new Among ( "as", -1, 1, "", this), - new Among ( "adas", 47, 1, "", this), - new Among ( "idas", 47, 1, "", this), - new Among ( "ias", 47, 1, "", this), - new Among ( "arias", 50, 1, "", this), - new Among ( "erias", 50, 1, "", this), - new Among ( "irias", 50, 1, "", this), - new Among ( "aras", 47, 1, "", this), - new Among ( "eras", 47, 1, "", this), - new Among ( "iras", 47, 1, "", this), - new Among ( "avas", 47, 1, "", this), - new Among ( "es", -1, 1, "", this), - new Among ( "ardes", 58, 1, "", this), - new Among ( "erdes", 58, 1, "", this), - new Among ( "irdes", 58, 1, "", this), - new Among ( "ares", 58, 1, "", this), - new Among ( "eres", 58, 1, "", this), - new Among ( "ires", 58, 1, "", this), - new Among ( "asses", 58, 1, "", this), - new Among ( "esses", 58, 1, "", this), - new Among ( "isses", 58, 1, "", this), - new Among ( "astes", 58, 1, "", this), - new Among ( "estes", 58, 1, "", this), - new Among ( "istes", 58, 1, "", this), - new Among ( "is", -1, 1, "", this), - new Among ( "ais", 71, 1, "", this), - new Among ( "eis", 71, 1, "", this), - new Among ( "areis", 73, 1, "", this), - new Among ( "ereis", 73, 1, "", this), - new Among ( "ireis", 73, 1, "", this), - new Among ( "\u00E1reis", 73, 1, "", this), - new Among ( "\u00E9reis", 73, 1, "", this), - new Among ( "\u00EDreis", 73, 1, "", this), - new Among ( "\u00E1sseis", 73, 1, "", this), - new Among ( "\u00E9sseis", 73, 1, "", this), - new Among ( "\u00EDsseis", 73, 1, "", this), - new Among ( "\u00E1veis", 73, 1, "", this), - new Among ( "\u00EDeis", 73, 1, "", this), - new Among ( "ar\u00EDeis", 84, 1, "", this), - new Among ( "er\u00EDeis", 84, 1, "", this), - new Among ( "ir\u00EDeis", 84, 1, "", this), - new Among ( "ados", -1, 1, "", this), - new Among ( "idos", -1, 1, "", this), - new Among ( "amos", -1, 1, "", this), - new Among ( "\u00E1ramos", 90, 1, "", this), - new Among ( "\u00E9ramos", 90, 1, "", this), - new Among ( "\u00EDramos", 90, 1, "", this), - new Among ( "\u00E1vamos", 90, 1, "", this), - new Among ( "\u00EDamos", 90, 1, "", this), - new Among ( "ar\u00EDamos", 95, 1, "", this), - new Among ( "er\u00EDamos", 95, 1, "", this), - new Among ( "ir\u00EDamos", 95, 1, "", this), - new Among ( "emos", -1, 1, "", this), - new Among ( "aremos", 99, 1, "", this), - new Among ( "eremos", 99, 1, "", this), - new Among ( "iremos", 99, 1, "", this), - new Among ( "\u00E1ssemos", 99, 1, "", this), - new Among ( "\u00EAssemos", 99, 1, "", this), - new Among ( "\u00EDssemos", 99, 1, "", this), - new Among ( "imos", -1, 1, "", this), - new Among ( "armos", -1, 1, "", this), - new Among ( "ermos", -1, 1, "", this), - new Among ( "irmos", -1, 1, "", this), - new Among ( "\u00E1mos", -1, 1, "", this), - new Among ( "ar\u00E1s", -1, 1, "", this), - new Among ( "er\u00E1s", -1, 1, "", this), - new Among ( "ir\u00E1s", -1, 1, "", this), - new Among ( "eu", -1, 1, "", this), - new Among ( "iu", -1, 1, "", this), - new Among ( "ou", -1, 1, "", this), - new Among ( "ar\u00E1", -1, 1, "", this), - new Among ( "er\u00E1", -1, 1, "", this), - new Among ( "ir\u00E1", -1, 1, "", this) - }; - - private Among a_7[] = { - new Among ( "a", -1, 1, "", this), - new Among ( "i", -1, 1, "", this), - new Among ( "o", -1, 1, "", this), - new Among ( "os", -1, 1, "", this), - new Among ( "\u00E1", -1, 1, "", this), - new Among ( "\u00ED", -1, 1, "", this), - new Among ( "\u00F3", -1, 1, "", this) - }; - - private Among a_8[] = { - new Among ( "e", -1, 1, "", this), - new Among ( "\u00E7", -1, 2, "", this), - new Among ( "\u00E9", -1, 1, "", this), - new Among ( "\u00EA", -1, 1, "", this) - }; - - private static final char g_v[] = {17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 12, 2 }; - - private int I_p2; - private int I_p1; - private int I_pV; - - private void copy_from(PortugueseStemmer other) { - I_p2 = other.I_p2; - I_p1 = other.I_p1; - I_pV = other.I_pV; - super.copy_from(other); - } - - private boolean r_prelude() { - int among_var; - int v_1; - // repeat, line 36 - replab0: while(true) - { - v_1 = cursor; - lab1: do { - // (, line 36 - // [, line 37 - bra = cursor; - // substring, line 37 - among_var = find_among(a_0, 3); - if (among_var == 0) - { - break lab1; - } - // ], line 37 - ket = cursor; - switch(among_var) { - case 0: - break lab1; - case 1: - // (, line 38 - // <-, line 38 - slice_from("a~"); - break; - case 2: - // (, line 39 - // <-, line 39 - slice_from("o~"); - break; - case 3: - // (, line 40 - // next, line 40 - if (cursor >= limit) - { - break lab1; - } - cursor++; - break; - } - continue replab0; - } while (false); - cursor = v_1; - break replab0; - } - return true; - } - - private boolean r_mark_regions() { - int v_1; - int v_2; - int v_3; - int v_6; - int v_8; - // (, line 44 - I_pV = limit; - I_p1 = limit; - I_p2 = limit; - // do, line 50 - v_1 = cursor; - lab0: do { - // (, line 50 - // or, line 52 - lab1: do { - v_2 = cursor; - lab2: do { - // (, line 51 - if (!(in_grouping(g_v, 97, 250))) - { - break lab2; - } - // or, line 51 - lab3: do { - v_3 = cursor; - lab4: do { - // (, line 51 - if (!(out_grouping(g_v, 97, 250))) - { - break lab4; - } - // gopast, line 51 - golab5: while(true) - { - lab6: do { - if (!(in_grouping(g_v, 97, 250))) - { - break lab6; - } - break golab5; - } while (false); - if (cursor >= limit) - { - break lab4; - } - cursor++; - } - break lab3; - } while (false); - cursor = v_3; - // (, line 51 - if (!(in_grouping(g_v, 97, 250))) - { - break lab2; - } - // gopast, line 51 - golab7: while(true) - { - lab8: do { - if (!(out_grouping(g_v, 97, 250))) - { - break lab8; - } - break golab7; - } while (false); - if (cursor >= limit) - { - break lab2; - } - cursor++; - } - } while (false); - break lab1; - } while (false); - cursor = v_2; - // (, line 53 - if (!(out_grouping(g_v, 97, 250))) - { - break lab0; - } - // or, line 53 - lab9: do { - v_6 = cursor; - lab10: do { - // (, line 53 - if (!(out_grouping(g_v, 97, 250))) - { - break lab10; - } - // gopast, line 53 - golab11: while(true) - { - lab12: do { - if (!(in_grouping(g_v, 97, 250))) - { - break lab12; - } - break golab11; - } while (false); - if (cursor >= limit) - { - break lab10; - } - cursor++; - } - break lab9; - } while (false); - cursor = v_6; - // (, line 53 - if (!(in_grouping(g_v, 97, 250))) - { - break lab0; - } - // next, line 53 - if (cursor >= limit) - { - break lab0; - } - cursor++; - } while (false); - } while (false); - // setmark pV, line 54 - I_pV = cursor; - } while (false); - cursor = v_1; - // do, line 56 - v_8 = cursor; - lab13: do { - // (, line 56 - // gopast, line 57 - golab14: while(true) - { - lab15: do { - if (!(in_grouping(g_v, 97, 250))) - { - break lab15; - } - break golab14; - } while (false); - if (cursor >= limit) - { - break lab13; - } - cursor++; - } - // gopast, line 57 - golab16: while(true) - { - lab17: do { - if (!(out_grouping(g_v, 97, 250))) - { - break lab17; - } - break golab16; - } while (false); - if (cursor >= limit) - { - break lab13; - } - cursor++; - } - // setmark p1, line 57 - I_p1 = cursor; - // gopast, line 58 - golab18: while(true) - { - lab19: do { - if (!(in_grouping(g_v, 97, 250))) - { - break lab19; - } - break golab18; - } while (false); - if (cursor >= limit) - { - break lab13; - } - cursor++; - } - // gopast, line 58 - golab20: while(true) - { - lab21: do { - if (!(out_grouping(g_v, 97, 250))) - { - break lab21; - } - break golab20; - } while (false); - if (cursor >= limit) - { - break lab13; - } - cursor++; - } - // setmark p2, line 58 - I_p2 = cursor; - } while (false); - cursor = v_8; - return true; - } - - private boolean r_postlude() { - int among_var; - int v_1; - // repeat, line 62 - replab0: while(true) - { - v_1 = cursor; - lab1: do { - // (, line 62 - // [, line 63 - bra = cursor; - // substring, line 63 - among_var = find_among(a_1, 3); - if (among_var == 0) - { - break lab1; - } - // ], line 63 - ket = cursor; - switch(among_var) { - case 0: - break lab1; - case 1: - // (, line 64 - // <-, line 64 - slice_from("\u00E3"); - break; - case 2: - // (, line 65 - // <-, line 65 - slice_from("\u00F5"); - break; - case 3: - // (, line 66 - // next, line 66 - if (cursor >= limit) - { - break lab1; - } - cursor++; - break; - } - continue replab0; - } while (false); - cursor = v_1; - break replab0; - } - return true; - } - - private boolean r_RV() { - if (!(I_pV <= cursor)) - { - return false; - } - return true; - } - - private boolean r_R1() { - if (!(I_p1 <= cursor)) - { - return false; - } - return true; - } - - private boolean r_R2() { - if (!(I_p2 <= cursor)) - { - return false; - } - return true; - } - - private boolean r_standard_suffix() { - int among_var; - int v_1; - int v_2; - int v_3; - int v_4; - // (, line 76 - // [, line 77 - ket = cursor; - // substring, line 77 - among_var = find_among_b(a_5, 42); - if (among_var == 0) - { - return false; - } - // ], line 77 - bra = cursor; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 91 - // call R2, line 92 - if (!r_R2()) - { - return false; - } - // delete, line 92 - slice_del(); - break; - case 2: - // (, line 96 - // call R2, line 97 - if (!r_R2()) - { - return false; - } - // <-, line 97 - slice_from("log"); - break; - case 3: - // (, line 100 - // call R2, line 101 - if (!r_R2()) - { - return false; - } - // <-, line 101 - slice_from("u"); - break; - case 4: - // (, line 104 - // call R2, line 105 - if (!r_R2()) - { - return false; - } - // <-, line 105 - slice_from("ente"); - break; - case 5: - // (, line 108 - // call R1, line 109 - if (!r_R1()) - { - return false; - } - // delete, line 109 - slice_del(); - // try, line 110 - v_1 = limit - cursor; - lab0: do { - // (, line 110 - // [, line 111 - ket = cursor; - // substring, line 111 - among_var = find_among_b(a_2, 4); - if (among_var == 0) - { - cursor = limit - v_1; - break lab0; - } - // ], line 111 - bra = cursor; - // call R2, line 111 - if (!r_R2()) - { - cursor = limit - v_1; - break lab0; - } - // delete, line 111 - slice_del(); - switch(among_var) { - case 0: - cursor = limit - v_1; - break lab0; - case 1: - // (, line 112 - // [, line 112 - ket = cursor; - // literal, line 112 - if (!(eq_s_b(2, "at"))) - { - cursor = limit - v_1; - break lab0; - } - // ], line 112 - bra = cursor; - // call R2, line 112 - if (!r_R2()) - { - cursor = limit - v_1; - break lab0; - } - // delete, line 112 - slice_del(); - break; - } - } while (false); - break; - case 6: - // (, line 120 - // call R2, line 121 - if (!r_R2()) - { - return false; - } - // delete, line 121 - slice_del(); - // try, line 122 - v_2 = limit - cursor; - lab1: do { - // (, line 122 - // [, line 123 - ket = cursor; - // substring, line 123 - among_var = find_among_b(a_3, 2); - if (among_var == 0) - { - cursor = limit - v_2; - break lab1; - } - // ], line 123 - bra = cursor; - switch(among_var) { - case 0: - cursor = limit - v_2; - break lab1; - case 1: - // (, line 125 - // call R2, line 125 - if (!r_R2()) - { - cursor = limit - v_2; - break lab1; - } - // delete, line 125 - slice_del(); - break; - } - } while (false); - break; - case 7: - // (, line 131 - // call R2, line 132 - if (!r_R2()) - { - return false; - } - // delete, line 132 - slice_del(); - // try, line 133 - v_3 = limit - cursor; - lab2: do { - // (, line 133 - // [, line 134 - ket = cursor; - // substring, line 134 - among_var = find_among_b(a_4, 3); - if (among_var == 0) - { - cursor = limit - v_3; - break lab2; - } - // ], line 134 - bra = cursor; - switch(among_var) { - case 0: - cursor = limit - v_3; - break lab2; - case 1: - // (, line 137 - // call R2, line 137 - if (!r_R2()) - { - cursor = limit - v_3; - break lab2; - } - // delete, line 137 - slice_del(); - break; - } - } while (false); - break; - case 8: - // (, line 143 - // call R2, line 144 - if (!r_R2()) - { - return false; - } - // delete, line 144 - slice_del(); - // try, line 145 - v_4 = limit - cursor; - lab3: do { - // (, line 145 - // [, line 146 - ket = cursor; - // literal, line 146 - if (!(eq_s_b(2, "at"))) - { - cursor = limit - v_4; - break lab3; - } - // ], line 146 - bra = cursor; - // call R2, line 146 - if (!r_R2()) - { - cursor = limit - v_4; - break lab3; - } - // delete, line 146 - slice_del(); - } while (false); - break; - case 9: - // (, line 150 - // call RV, line 151 - if (!r_RV()) - { - return false; - } - // literal, line 151 - if (!(eq_s_b(1, "e"))) - { - return false; - } - // <-, line 152 - slice_from("ir"); - break; - } - return true; - } - - private boolean r_verb_suffix() { - int among_var; - int v_1; - int v_2; - // setlimit, line 157 - v_1 = limit - cursor; - // tomark, line 157 - if (cursor < I_pV) - { - return false; - } - cursor = I_pV; - v_2 = limit_backward; - limit_backward = cursor; - cursor = limit - v_1; - // (, line 157 - // [, line 158 - ket = cursor; - // substring, line 158 - among_var = find_among_b(a_6, 120); - if (among_var == 0) - { - limit_backward = v_2; - return false; - } - // ], line 158 - bra = cursor; - switch(among_var) { - case 0: - limit_backward = v_2; - return false; - case 1: - // (, line 177 - // delete, line 177 - slice_del(); - break; - } - limit_backward = v_2; - return true; - } - - private boolean r_residual_suffix() { - int among_var; - // (, line 181 - // [, line 182 - ket = cursor; - // substring, line 182 - among_var = find_among_b(a_7, 7); - if (among_var == 0) - { - return false; - } - // ], line 182 - bra = cursor; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 185 - // call RV, line 185 - if (!r_RV()) - { - return false; - } - // delete, line 185 - slice_del(); - break; - } - return true; - } - - private boolean r_residual_form() { - int among_var; - int v_1; - int v_2; - int v_3; - // (, line 189 - // [, line 190 - ket = cursor; - // substring, line 190 - among_var = find_among_b(a_8, 4); - if (among_var == 0) - { - return false; - } - // ], line 190 - bra = cursor; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 192 - // call RV, line 192 - if (!r_RV()) - { - return false; - } - // delete, line 192 - slice_del(); - // [, line 192 - ket = cursor; - // or, line 192 - lab0: do { - v_1 = limit - cursor; - lab1: do { - // (, line 192 - // literal, line 192 - if (!(eq_s_b(1, "u"))) - { - break lab1; - } - // ], line 192 - bra = cursor; - // test, line 192 - v_2 = limit - cursor; - // literal, line 192 - if (!(eq_s_b(1, "g"))) - { - break lab1; - } - cursor = limit - v_2; - break lab0; - } while (false); - cursor = limit - v_1; - // (, line 193 - // literal, line 193 - if (!(eq_s_b(1, "i"))) - { - return false; - } - // ], line 193 - bra = cursor; - // test, line 193 - v_3 = limit - cursor; - // literal, line 193 - if (!(eq_s_b(1, "c"))) - { - return false; - } - cursor = limit - v_3; - } while (false); - // call RV, line 193 - if (!r_RV()) - { - return false; - } - // delete, line 193 - slice_del(); - break; - case 2: - // (, line 194 - // <-, line 194 - slice_from("c"); - 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 199 - // do, line 200 - v_1 = cursor; - lab0: do { - // call prelude, line 200 - if (!r_prelude()) - { - break lab0; - } - } while (false); - cursor = v_1; - // do, line 201 - v_2 = cursor; - lab1: do { - // call mark_regions, line 201 - if (!r_mark_regions()) - { - break lab1; - } - } while (false); - cursor = v_2; - // backwards, line 202 - limit_backward = cursor; cursor = limit; - // (, line 202 - // do, line 203 - v_3 = limit - cursor; - lab2: do { - // (, line 203 - // or, line 207 - lab3: do { - v_4 = limit - cursor; - lab4: do { - // (, line 204 - // and, line 205 - v_5 = limit - cursor; - // (, line 204 - // or, line 204 - lab5: do { - v_6 = limit - cursor; - lab6: do { - // call standard_suffix, line 204 - if (!r_standard_suffix()) - { - break lab6; - } - break lab5; - } while (false); - cursor = limit - v_6; - // call verb_suffix, line 204 - if (!r_verb_suffix()) - { - break lab4; - } - } while (false); - cursor = limit - v_5; - // do, line 205 - v_7 = limit - cursor; - lab7: do { - // (, line 205 - // [, line 205 - ket = cursor; - // literal, line 205 - if (!(eq_s_b(1, "i"))) - { - break lab7; - } - // ], line 205 - bra = cursor; - // test, line 205 - v_8 = limit - cursor; - // literal, line 205 - if (!(eq_s_b(1, "c"))) - { - break lab7; - } - cursor = limit - v_8; - // call RV, line 205 - if (!r_RV()) - { - break lab7; - } - // delete, line 205 - slice_del(); - } while (false); - cursor = limit - v_7; - break lab3; - } while (false); - cursor = limit - v_4; - // call residual_suffix, line 207 - if (!r_residual_suffix()) - { - break lab2; - } - } while (false); - } while (false); - cursor = limit - v_3; - // do, line 209 - v_9 = limit - cursor; - lab8: do { - // call residual_form, line 209 - if (!r_residual_form()) - { - break lab8; - } - } while (false); - cursor = limit - v_9; - cursor = limit_backward; // do, line 211 - v_10 = cursor; - lab9: do { - // call postlude, line 211 - if (!r_postlude()) - { - break lab9; - } - } while (false); - cursor = v_10; - return true; - } - -} - Index: contrib/snowball/src/java/net/sf/snowball/ext/FrenchStemmer.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/FrenchStemmer.java (revision 613440) +++ contrib/snowball/src/java/net/sf/snowball/ext/FrenchStemmer.java (working copy) @@ -1,1486 +0,0 @@ -// This file was generated automatically by the Snowball to Java compiler - -package net.sf.snowball.ext; -import net.sf.snowball.SnowballProgram; -import net.sf.snowball.Among; - -/** - * Generated class implementing code defined by a snowball script. - */ -public class FrenchStemmer extends SnowballProgram { - - private Among a_0[] = { - 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[] = { - new Among ( "iqU", -1, 3, "", this), - new Among ( "abl", -1, 3, "", this), - new Among ( "I\u00E8r", -1, 4, "", this), - new Among ( "i\u00E8r", -1, 4, "", this), - new Among ( "eus", -1, 2, "", this), - new Among ( "iv", -1, 1, "", this) - }; - - private Among a_2[] = { - new Among ( "ic", -1, 2, "", this), - new Among ( "abil", -1, 1, "", this), - new Among ( "iv", -1, 3, "", this) - }; - - private Among a_3[] = { - new Among ( "iqUe", -1, 1, "", this), - new Among ( "atrice", -1, 2, "", this), - new Among ( "ance", -1, 1, "", this), - new Among ( "ence", -1, 5, "", this), - new Among ( "logie", -1, 3, "", this), - new Among ( "able", -1, 1, "", this), - new Among ( "isme", -1, 1, "", this), - new Among ( "euse", -1, 11, "", this), - new Among ( "iste", -1, 1, "", this), - new Among ( "ive", -1, 8, "", this), - new Among ( "if", -1, 8, "", this), - new Among ( "usion", -1, 4, "", this), - new Among ( "ation", -1, 2, "", this), - new Among ( "ution", -1, 4, "", this), - new Among ( "ateur", -1, 2, "", this), - new Among ( "iqUes", -1, 1, "", this), - new Among ( "atrices", -1, 2, "", this), - new Among ( "ances", -1, 1, "", this), - new Among ( "ences", -1, 5, "", this), - new Among ( "logies", -1, 3, "", this), - new Among ( "ables", -1, 1, "", this), - new Among ( "ismes", -1, 1, "", this), - new Among ( "euses", -1, 11, "", this), - new Among ( "istes", -1, 1, "", this), - new Among ( "ives", -1, 8, "", this), - new Among ( "ifs", -1, 8, "", this), - new Among ( "usions", -1, 4, "", this), - new Among ( "ations", -1, 2, "", this), - new Among ( "utions", -1, 4, "", this), - new Among ( "ateurs", -1, 2, "", this), - new Among ( "ments", -1, 15, "", this), - new Among ( "ements", 30, 6, "", this), - new Among ( "issements", 31, 12, "", this), - new Among ( "it\u00E9s", -1, 7, "", this), - new Among ( "ment", -1, 15, "", this), - new Among ( "ement", 34, 6, "", this), - new Among ( "issement", 35, 12, "", this), - new Among ( "amment", 34, 13, "", this), - new Among ( "emment", 34, 14, "", this), - new Among ( "aux", -1, 10, "", this), - new Among ( "eaux", 39, 9, "", this), - new Among ( "eux", -1, 1, "", this), - new Among ( "it\u00E9", -1, 7, "", this) - }; - - private Among a_4[] = { - new Among ( "ira", -1, 1, "", this), - new Among ( "ie", -1, 1, "", this), - new Among ( "isse", -1, 1, "", this), - new Among ( "issante", -1, 1, "", this), - new Among ( "i", -1, 1, "", this), - new Among ( "irai", 4, 1, "", this), - new Among ( "ir", -1, 1, "", this), - new Among ( "iras", -1, 1, "", this), - new Among ( "ies", -1, 1, "", this), - new Among ( "\u00EEmes", -1, 1, "", this), - new Among ( "isses", -1, 1, "", this), - new Among ( "issantes", -1, 1, "", this), - new Among ( "\u00EEtes", -1, 1, "", this), - new Among ( "is", -1, 1, "", this), - new Among ( "irais", 13, 1, "", this), - new Among ( "issais", 13, 1, "", this), - new Among ( "irions", -1, 1, "", this), - new Among ( "issions", -1, 1, "", this), - new Among ( "irons", -1, 1, "", this), - new Among ( "issons", -1, 1, "", this), - new Among ( "issants", -1, 1, "", this), - new Among ( "it", -1, 1, "", this), - new Among ( "irait", 21, 1, "", this), - new Among ( "issait", 21, 1, "", this), - new Among ( "issant", -1, 1, "", this), - new Among ( "iraIent", -1, 1, "", this), - new Among ( "issaIent", -1, 1, "", this), - new Among ( "irent", -1, 1, "", this), - new Among ( "issent", -1, 1, "", this), - new Among ( "iront", -1, 1, "", this), - new Among ( "\u00EEt", -1, 1, "", this), - new Among ( "iriez", -1, 1, "", this), - new Among ( "issiez", -1, 1, "", this), - new Among ( "irez", -1, 1, "", this), - new Among ( "issez", -1, 1, "", this) - }; - - private Among a_5[] = { - new Among ( "a", -1, 3, "", this), - new Among ( "era", 0, 2, "", this), - new Among ( "asse", -1, 3, "", this), - new Among ( "ante", -1, 3, "", this), - new Among ( "\u00E9e", -1, 2, "", this), - new Among ( "ai", -1, 3, "", this), - new Among ( "erai", 5, 2, "", this), - new Among ( "er", -1, 2, "", this), - new Among ( "as", -1, 3, "", this), - new Among ( "eras", 8, 2, "", this), - new Among ( "\u00E2mes", -1, 3, "", this), - new Among ( "asses", -1, 3, "", this), - new Among ( "antes", -1, 3, "", this), - new Among ( "\u00E2tes", -1, 3, "", this), - new Among ( "\u00E9es", -1, 2, "", this), - new Among ( "ais", -1, 3, "", this), - new Among ( "erais", 15, 2, "", this), - new Among ( "ions", -1, 1, "", this), - new Among ( "erions", 17, 2, "", this), - new Among ( "assions", 17, 3, "", this), - new Among ( "erons", -1, 2, "", this), - new Among ( "ants", -1, 3, "", this), - new Among ( "\u00E9s", -1, 2, "", this), - new Among ( "ait", -1, 3, "", this), - new Among ( "erait", 23, 2, "", this), - new Among ( "ant", -1, 3, "", this), - new Among ( "aIent", -1, 3, "", this), - new Among ( "eraIent", 26, 2, "", this), - new Among ( "\u00E8rent", -1, 2, "", this), - new Among ( "assent", -1, 3, "", this), - new Among ( "eront", -1, 2, "", this), - new Among ( "\u00E2t", -1, 3, "", this), - new Among ( "ez", -1, 2, "", this), - new Among ( "iez", 32, 2, "", this), - new Among ( "eriez", 33, 2, "", this), - new Among ( "assiez", 33, 3, "", this), - new Among ( "erez", 32, 2, "", this), - new Among ( "\u00E9", -1, 2, "", this) - }; - - private Among a_6[] = { - new Among ( "e", -1, 3, "", this), - new Among ( "I\u00E8re", 0, 2, "", this), - new Among ( "i\u00E8re", 0, 2, "", this), - new Among ( "ion", -1, 1, "", this), - new Among ( "Ier", -1, 2, "", this), - new Among ( "ier", -1, 2, "", this), - new Among ( "\u00EB", -1, 4, "", this) - }; - - private Among a_7[] = { - new Among ( "ell", -1, -1, "", this), - new Among ( "eill", -1, -1, "", this), - new Among ( "enn", -1, -1, "", this), - new Among ( "onn", -1, -1, "", this), - new Among ( "ett", -1, -1, "", this) - }; - - private static final char g_v[] = {17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 130, 103, 8, 5 }; - - private static final char g_keep_with_s[] = {1, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 }; - - private int I_p2; - private int I_p1; - private int I_pV; - - private void copy_from(FrenchStemmer other) { - I_p2 = other.I_p2; - I_p1 = other.I_p1; - I_pV = other.I_pV; - super.copy_from(other); - } - - private boolean r_prelude() { - int v_1; - int v_2; - int v_3; - int v_4; - // repeat, line 38 - replab0: while(true) - { - v_1 = cursor; - lab1: do { - // goto, line 38 - golab2: while(true) - { - v_2 = cursor; - lab3: do { - // (, line 38 - // or, line 44 - lab4: do { - v_3 = cursor; - lab5: do { - // (, line 40 - if (!(in_grouping(g_v, 97, 251))) - { - break lab5; - } - // [, line 40 - bra = cursor; - // or, line 40 - lab6: do { - v_4 = cursor; - lab7: do { - // (, line 40 - // literal, line 40 - if (!(eq_s(1, "u"))) - { - break lab7; - } - // ], line 40 - ket = cursor; - if (!(in_grouping(g_v, 97, 251))) - { - break lab7; - } - // <-, line 40 - slice_from("U"); - break lab6; - } while (false); - cursor = v_4; - lab8: do { - // (, line 41 - // literal, line 41 - if (!(eq_s(1, "i"))) - { - break lab8; - } - // ], line 41 - ket = cursor; - if (!(in_grouping(g_v, 97, 251))) - { - break lab8; - } - // <-, line 41 - slice_from("I"); - break lab6; - } while (false); - cursor = v_4; - // (, line 42 - // literal, line 42 - if (!(eq_s(1, "y"))) - { - break lab5; - } - // ], line 42 - ket = cursor; - // <-, line 42 - slice_from("Y"); - } while (false); - break lab4; - } while (false); - cursor = v_3; - lab9: do { - // (, line 45 - // [, line 45 - bra = cursor; - // literal, line 45 - if (!(eq_s(1, "y"))) - { - break lab9; - } - // ], line 45 - ket = cursor; - if (!(in_grouping(g_v, 97, 251))) - { - break lab9; - } - // <-, line 45 - slice_from("Y"); - break lab4; - } while (false); - cursor = v_3; - // (, line 47 - // literal, line 47 - if (!(eq_s(1, "q"))) - { - break lab3; - } - // [, line 47 - bra = cursor; - // literal, line 47 - if (!(eq_s(1, "u"))) - { - break lab3; - } - // ], line 47 - ket = cursor; - // <-, line 47 - slice_from("U"); - } while (false); - cursor = v_2; - break golab2; - } while (false); - cursor = v_2; - if (cursor >= limit) - { - break lab1; - } - cursor++; - } - continue replab0; - } while (false); - cursor = v_1; - break replab0; - } - return true; - } - - private boolean r_mark_regions() { - int v_1; - int v_2; - int v_4; - // (, line 50 - I_pV = limit; - I_p1 = limit; - I_p2 = limit; - // do, line 56 - v_1 = cursor; - lab0: do { - // (, line 56 - // or, line 57 - lab1: do { - v_2 = cursor; - lab2: do { - // (, line 57 - if (!(in_grouping(g_v, 97, 251))) - { - break lab2; - } - if (!(in_grouping(g_v, 97, 251))) - { - break lab2; - } - // next, line 57 - if (cursor >= limit) - { - break lab2; - } - cursor++; - break lab1; - } while (false); - cursor = v_2; - // (, line 57 - // next, line 57 - if (cursor >= limit) - { - break lab0; - } - cursor++; - // gopast, line 57 - golab3: while(true) - { - lab4: do { - if (!(in_grouping(g_v, 97, 251))) - { - break lab4; - } - break golab3; - } while (false); - if (cursor >= limit) - { - break lab0; - } - cursor++; - } - } while (false); - // setmark pV, line 58 - I_pV = cursor; - } while (false); - cursor = v_1; - // do, line 60 - v_4 = cursor; - lab5: do { - // (, line 60 - // gopast, line 61 - golab6: while(true) - { - lab7: do { - if (!(in_grouping(g_v, 97, 251))) - { - break lab7; - } - break golab6; - } while (false); - if (cursor >= limit) - { - break lab5; - } - cursor++; - } - // gopast, line 61 - golab8: while(true) - { - lab9: do { - if (!(out_grouping(g_v, 97, 251))) - { - break lab9; - } - break golab8; - } while (false); - if (cursor >= limit) - { - break lab5; - } - cursor++; - } - // setmark p1, line 61 - I_p1 = cursor; - // gopast, line 62 - golab10: while(true) - { - lab11: do { - if (!(in_grouping(g_v, 97, 251))) - { - break lab11; - } - break golab10; - } while (false); - if (cursor >= limit) - { - break lab5; - } - cursor++; - } - // gopast, line 62 - golab12: while(true) - { - lab13: do { - if (!(out_grouping(g_v, 97, 251))) - { - break lab13; - } - break golab12; - } while (false); - if (cursor >= limit) - { - break lab5; - } - cursor++; - } - // setmark p2, line 62 - I_p2 = cursor; - } while (false); - cursor = v_4; - return true; - } - - private boolean r_postlude() { - int among_var; - int v_1; - // repeat, line 66 - replab0: while(true) - { - v_1 = cursor; - lab1: do { - // (, line 66 - // [, line 68 - bra = cursor; - // substring, line 68 - among_var = find_among(a_0, 4); - if (among_var == 0) - { - break lab1; - } - // ], line 68 - ket = cursor; - switch(among_var) { - case 0: - break lab1; - case 1: - // (, line 69 - // <-, line 69 - slice_from("i"); - break; - case 2: - // (, line 70 - // <-, line 70 - slice_from("u"); - break; - case 3: - // (, line 71 - // <-, line 71 - slice_from("y"); - break; - case 4: - // (, line 72 - // next, line 72 - if (cursor >= limit) - { - break lab1; - } - cursor++; - break; - } - continue replab0; - } while (false); - cursor = v_1; - break replab0; - } - return true; - } - - private boolean r_RV() { - if (!(I_pV <= cursor)) - { - return false; - } - return true; - } - - private boolean r_R1() { - if (!(I_p1 <= cursor)) - { - return false; - } - return true; - } - - private boolean r_R2() { - if (!(I_p2 <= cursor)) - { - return false; - } - return true; - } - - private boolean r_standard_suffix() { - int among_var; - 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; - int v_11; - // (, line 82 - // [, line 83 - ket = cursor; - // substring, line 83 - among_var = find_among_b(a_3, 43); - if (among_var == 0) - { - return false; - } - // ], line 83 - bra = cursor; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 87 - // call R2, line 87 - if (!r_R2()) - { - return false; - } - // delete, line 87 - slice_del(); - break; - case 2: - // (, line 90 - // call R2, line 90 - if (!r_R2()) - { - return false; - } - // delete, line 90 - slice_del(); - // try, line 91 - v_1 = limit - cursor; - lab0: do { - // (, line 91 - // [, line 91 - ket = cursor; - // literal, line 91 - if (!(eq_s_b(2, "ic"))) - { - cursor = limit - v_1; - break lab0; - } - // ], line 91 - bra = cursor; - // or, line 91 - lab1: do { - v_2 = limit - cursor; - lab2: do { - // (, line 91 - // call R2, line 91 - if (!r_R2()) - { - break lab2; - } - // delete, line 91 - slice_del(); - break lab1; - } while (false); - cursor = limit - v_2; - // <-, line 91 - slice_from("iqU"); - } while (false); - } while (false); - break; - case 3: - // (, line 95 - // call R2, line 95 - if (!r_R2()) - { - return false; - } - // <-, line 95 - slice_from("log"); - break; - case 4: - // (, line 98 - // call R2, line 98 - if (!r_R2()) - { - return false; - } - // <-, line 98 - slice_from("u"); - break; - case 5: - // (, line 101 - // call R2, line 101 - if (!r_R2()) - { - return false; - } - // <-, line 101 - slice_from("ent"); - break; - case 6: - // (, line 104 - // call RV, line 105 - if (!r_RV()) - { - return false; - } - // delete, line 105 - slice_del(); - // try, line 106 - v_3 = limit - cursor; - lab3: do { - // (, line 106 - // [, line 107 - ket = cursor; - // substring, line 107 - among_var = find_among_b(a_1, 6); - if (among_var == 0) - { - cursor = limit - v_3; - break lab3; - } - // ], line 107 - bra = cursor; - switch(among_var) { - case 0: - cursor = limit - v_3; - break lab3; - case 1: - // (, line 108 - // call R2, line 108 - if (!r_R2()) - { - cursor = limit - v_3; - break lab3; - } - // delete, line 108 - slice_del(); - // [, line 108 - ket = cursor; - // literal, line 108 - if (!(eq_s_b(2, "at"))) - { - cursor = limit - v_3; - break lab3; - } - // ], line 108 - bra = cursor; - // call R2, line 108 - if (!r_R2()) - { - cursor = limit - v_3; - break lab3; - } - // delete, line 108 - slice_del(); - break; - case 2: - // (, line 109 - // or, line 109 - lab4: do { - v_4 = limit - cursor; - lab5: do { - // (, line 109 - // call R2, line 109 - if (!r_R2()) - { - break lab5; - } - // delete, line 109 - slice_del(); - break lab4; - } while (false); - cursor = limit - v_4; - // (, line 109 - // call R1, line 109 - if (!r_R1()) - { - cursor = limit - v_3; - break lab3; - } - // <-, line 109 - slice_from("eux"); - } while (false); - break; - case 3: - // (, line 111 - // call R2, line 111 - if (!r_R2()) - { - cursor = limit - v_3; - break lab3; - } - // delete, line 111 - slice_del(); - break; - case 4: - // (, line 113 - // call RV, line 113 - if (!r_RV()) - { - cursor = limit - v_3; - break lab3; - } - // <-, line 113 - slice_from("i"); - break; - } - } while (false); - break; - case 7: - // (, line 119 - // call R2, line 120 - if (!r_R2()) - { - return false; - } - // delete, line 120 - slice_del(); - // try, line 121 - v_5 = limit - cursor; - lab6: do { - // (, line 121 - // [, line 122 - ket = cursor; - // substring, line 122 - among_var = find_among_b(a_2, 3); - if (among_var == 0) - { - cursor = limit - v_5; - break lab6; - } - // ], line 122 - bra = cursor; - switch(among_var) { - case 0: - cursor = limit - v_5; - break lab6; - case 1: - // (, line 123 - // or, line 123 - lab7: do { - v_6 = limit - cursor; - lab8: do { - // (, line 123 - // call R2, line 123 - if (!r_R2()) - { - break lab8; - } - // delete, line 123 - slice_del(); - break lab7; - } while (false); - cursor = limit - v_6; - // <-, line 123 - slice_from("abl"); - } while (false); - break; - case 2: - // (, line 124 - // or, line 124 - lab9: do { - v_7 = limit - cursor; - lab10: do { - // (, line 124 - // call R2, line 124 - if (!r_R2()) - { - break lab10; - } - // delete, line 124 - slice_del(); - break lab9; - } while (false); - cursor = limit - v_7; - // <-, line 124 - slice_from("iqU"); - } while (false); - break; - case 3: - // (, line 125 - // call R2, line 125 - if (!r_R2()) - { - cursor = limit - v_5; - break lab6; - } - // delete, line 125 - slice_del(); - break; - } - } while (false); - break; - case 8: - // (, line 131 - // call R2, line 132 - if (!r_R2()) - { - return false; - } - // delete, line 132 - slice_del(); - // try, line 133 - v_8 = limit - cursor; - lab11: do { - // (, line 133 - // [, line 133 - ket = cursor; - // literal, line 133 - if (!(eq_s_b(2, "at"))) - { - cursor = limit - v_8; - break lab11; - } - // ], line 133 - bra = cursor; - // call R2, line 133 - if (!r_R2()) - { - cursor = limit - v_8; - break lab11; - } - // delete, line 133 - slice_del(); - // [, line 133 - ket = cursor; - // literal, line 133 - if (!(eq_s_b(2, "ic"))) - { - cursor = limit - v_8; - break lab11; - } - // ], line 133 - bra = cursor; - // or, line 133 - lab12: do { - v_9 = limit - cursor; - lab13: do { - // (, line 133 - // call R2, line 133 - if (!r_R2()) - { - break lab13; - } - // delete, line 133 - slice_del(); - break lab12; - } while (false); - cursor = limit - v_9; - // <-, line 133 - slice_from("iqU"); - } while (false); - } while (false); - break; - case 9: - // (, line 135 - // <-, line 135 - slice_from("eau"); - break; - case 10: - // (, line 136 - // call R1, line 136 - if (!r_R1()) - { - return false; - } - // <-, line 136 - slice_from("al"); - break; - case 11: - // (, line 138 - // or, line 138 - lab14: do { - v_10 = limit - cursor; - lab15: do { - // (, line 138 - // call R2, line 138 - if (!r_R2()) - { - break lab15; - } - // delete, line 138 - slice_del(); - break lab14; - } while (false); - cursor = limit - v_10; - // (, line 138 - // call R1, line 138 - if (!r_R1()) - { - return false; - } - // <-, line 138 - slice_from("eux"); - } while (false); - break; - case 12: - // (, line 141 - // call R1, line 141 - if (!r_R1()) - { - return false; - } - if (!(out_grouping_b(g_v, 97, 251))) - { - return false; - } - // delete, line 141 - slice_del(); - break; - case 13: - // (, line 146 - // call RV, line 146 - if (!r_RV()) - { - return false; - } - // fail, line 146 - // (, line 146 - // <-, line 146 - slice_from("ant"); - return false; - case 14: - // (, line 147 - // call RV, line 147 - if (!r_RV()) - { - return false; - } - // fail, line 147 - // (, line 147 - // <-, line 147 - slice_from("ent"); - return false; - case 15: - // (, line 149 - // test, line 149 - v_11 = limit - cursor; - // (, line 149 - if (!(in_grouping_b(g_v, 97, 251))) - { - return false; - } - // call RV, line 149 - if (!r_RV()) - { - return false; - } - cursor = limit - v_11; - // fail, line 149 - // (, line 149 - // delete, line 149 - slice_del(); - return false; - } - return true; - } - - private boolean r_i_verb_suffix() { - int among_var; - int v_1; - int v_2; - // setlimit, line 154 - v_1 = limit - cursor; - // tomark, line 154 - if (cursor < I_pV) - { - return false; - } - cursor = I_pV; - v_2 = limit_backward; - limit_backward = cursor; - cursor = limit - v_1; - // (, line 154 - // [, line 155 - ket = cursor; - // substring, line 155 - among_var = find_among_b(a_4, 35); - if (among_var == 0) - { - limit_backward = v_2; - return false; - } - // ], line 155 - bra = cursor; - switch(among_var) { - case 0: - limit_backward = v_2; - return false; - case 1: - // (, line 161 - if (!(out_grouping_b(g_v, 97, 251))) - { - limit_backward = v_2; - return false; - } - // delete, line 161 - slice_del(); - break; - } - limit_backward = v_2; - return true; - } - - private boolean r_verb_suffix() { - int among_var; - int v_1; - int v_2; - int v_3; - // setlimit, line 165 - v_1 = limit - cursor; - // tomark, line 165 - if (cursor < I_pV) - { - return false; - } - cursor = I_pV; - v_2 = limit_backward; - limit_backward = cursor; - cursor = limit - v_1; - // (, line 165 - // [, line 166 - ket = cursor; - // substring, line 166 - among_var = find_among_b(a_5, 38); - if (among_var == 0) - { - limit_backward = v_2; - return false; - } - // ], line 166 - bra = cursor; - switch(among_var) { - case 0: - limit_backward = v_2; - return false; - case 1: - // (, line 168 - // call R2, line 168 - if (!r_R2()) - { - limit_backward = v_2; - return false; - } - // delete, line 168 - slice_del(); - break; - case 2: - // (, line 176 - // delete, line 176 - slice_del(); - break; - case 3: - // (, line 181 - // delete, line 181 - slice_del(); - // try, line 182 - v_3 = limit - cursor; - lab0: do { - // (, line 182 - // [, line 182 - ket = cursor; - // literal, line 182 - if (!(eq_s_b(1, "e"))) - { - cursor = limit - v_3; - break lab0; - } - // ], line 182 - bra = cursor; - // delete, line 182 - slice_del(); - } while (false); - break; - } - limit_backward = v_2; - return true; - } - - private boolean r_residual_suffix() { - int among_var; - int v_1; - int v_2; - int v_3; - int v_4; - int v_5; - // (, line 189 - // try, line 190 - v_1 = limit - cursor; - lab0: do { - // (, line 190 - // [, line 190 - ket = cursor; - // literal, line 190 - if (!(eq_s_b(1, "s"))) - { - cursor = limit - v_1; - break lab0; - } - // ], line 190 - bra = cursor; - // test, line 190 - v_2 = limit - cursor; - if (!(out_grouping_b(g_keep_with_s, 97, 232))) - { - cursor = limit - v_1; - break lab0; - } - cursor = limit - v_2; - // delete, line 190 - slice_del(); - } while (false); - // setlimit, line 191 - v_3 = limit - cursor; - // tomark, line 191 - if (cursor < I_pV) - { - return false; - } - cursor = I_pV; - v_4 = limit_backward; - limit_backward = cursor; - cursor = limit - v_3; - // (, line 191 - // [, line 192 - ket = cursor; - // substring, line 192 - among_var = find_among_b(a_6, 7); - if (among_var == 0) - { - limit_backward = v_4; - return false; - } - // ], line 192 - bra = cursor; - switch(among_var) { - case 0: - limit_backward = v_4; - return false; - case 1: - // (, line 193 - // call R2, line 193 - if (!r_R2()) - { - limit_backward = v_4; - return false; - } - // or, line 193 - lab1: do { - v_5 = limit - cursor; - lab2: do { - // literal, line 193 - if (!(eq_s_b(1, "s"))) - { - break lab2; - } - break lab1; - } while (false); - cursor = limit - v_5; - // literal, line 193 - if (!(eq_s_b(1, "t"))) - { - limit_backward = v_4; - return false; - } - } while (false); - // delete, line 193 - slice_del(); - break; - case 2: - // (, line 195 - // <-, line 195 - slice_from("i"); - break; - case 3: - // (, line 196 - // delete, line 196 - slice_del(); - break; - case 4: - // (, line 197 - // literal, line 197 - if (!(eq_s_b(2, "gu"))) - { - limit_backward = v_4; - return false; - } - // delete, line 197 - slice_del(); - break; - } - limit_backward = v_4; - return true; - } - - private boolean r_un_double() { - int v_1; - // (, line 202 - // test, line 203 - v_1 = limit - cursor; - // among, line 203 - if (find_among_b(a_7, 5) == 0) - { - return false; - } - cursor = limit - v_1; - // [, line 203 - ket = cursor; - // next, line 203 - if (cursor <= limit_backward) - { - return false; - } - cursor--; - // ], line 203 - bra = cursor; - // delete, line 203 - slice_del(); - return true; - } - - private boolean r_un_accent() { - int v_3; - // (, line 206 - // atleast, line 207 - { - int v_1 = 1; - // atleast, line 207 - replab0: while(true) - { - lab1: do { - if (!(out_grouping_b(g_v, 97, 251))) - { - break lab1; - } - v_1--; - continue replab0; - } while (false); - break replab0; - } - if (v_1 > 0) - { - return false; - } - } - // [, line 208 - ket = cursor; - // or, line 208 - lab2: do { - v_3 = limit - cursor; - lab3: do { - // literal, line 208 - if (!(eq_s_b(1, "\u00E9"))) - { - break lab3; - } - break lab2; - } while (false); - cursor = limit - v_3; - // literal, line 208 - if (!(eq_s_b(1, "\u00E8"))) - { - return false; - } - } while (false); - // ], line 208 - bra = cursor; - // <-, line 208 - slice_from("e"); - 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; - int v_11; - // (, line 212 - // do, line 214 - v_1 = cursor; - lab0: do { - // call prelude, line 214 - if (!r_prelude()) - { - break lab0; - } - } while (false); - cursor = v_1; - // do, line 215 - v_2 = cursor; - lab1: do { - // call mark_regions, line 215 - if (!r_mark_regions()) - { - break lab1; - } - } while (false); - cursor = v_2; - // backwards, line 216 - limit_backward = cursor; cursor = limit; - // (, line 216 - // do, line 218 - v_3 = limit - cursor; - lab2: do { - // (, line 218 - // or, line 228 - lab3: do { - v_4 = limit - cursor; - lab4: do { - // (, line 219 - // and, line 224 - v_5 = limit - cursor; - // (, line 220 - // or, line 220 - lab5: do { - v_6 = limit - cursor; - lab6: do { - // call standard_suffix, line 220 - if (!r_standard_suffix()) - { - break lab6; - } - break lab5; - } while (false); - cursor = limit - v_6; - lab7: do { - // call i_verb_suffix, line 221 - if (!r_i_verb_suffix()) - { - break lab7; - } - break lab5; - } while (false); - cursor = limit - v_6; - // call verb_suffix, line 222 - if (!r_verb_suffix()) - { - break lab4; - } - } while (false); - cursor = limit - v_5; - // try, line 225 - v_7 = limit - cursor; - lab8: do { - // (, line 225 - // [, line 225 - ket = cursor; - // or, line 225 - lab9: do { - v_8 = limit - cursor; - lab10: do { - // (, line 225 - // literal, line 225 - if (!(eq_s_b(1, "Y"))) - { - break lab10; - } - // ], line 225 - bra = cursor; - // <-, line 225 - slice_from("i"); - break lab9; - } while (false); - cursor = limit - v_8; - // (, line 226 - // literal, line 226 - if (!(eq_s_b(1, "\u00E7"))) - { - cursor = limit - v_7; - break lab8; - } - // ], line 226 - bra = cursor; - // <-, line 226 - slice_from("c"); - } while (false); - } while (false); - break lab3; - } while (false); - cursor = limit - v_4; - // call residual_suffix, line 229 - if (!r_residual_suffix()) - { - break lab2; - } - } while (false); - } while (false); - cursor = limit - v_3; - // do, line 234 - v_9 = limit - cursor; - lab11: do { - // call un_double, line 234 - if (!r_un_double()) - { - break lab11; - } - } while (false); - cursor = limit - v_9; - // do, line 235 - v_10 = limit - cursor; - lab12: do { - // call un_accent, line 235 - if (!r_un_accent()) - { - break lab12; - } - } while (false); - cursor = limit - v_10; - cursor = limit_backward; // do, line 237 - v_11 = cursor; - lab13: do { - // call postlude, line 237 - if (!r_postlude()) - { - break lab13; - } - } while (false); - cursor = v_11; - return true; - } - -} - Index: contrib/snowball/src/java/net/sf/snowball/ext/SpanishStemmer.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/SpanishStemmer.java (revision 613440) +++ contrib/snowball/src/java/net/sf/snowball/ext/SpanishStemmer.java (working copy) @@ -1,1177 +0,0 @@ -// This file was generated automatically by the Snowball to Java compiler - -package net.sf.snowball.ext; -import net.sf.snowball.SnowballProgram; -import net.sf.snowball.Among; - -/** - * Generated class implementing code defined by a snowball script. - */ -public class SpanishStemmer extends SnowballProgram { - - private Among a_0[] = { - new Among ( "", -1, 6, "", this), - new Among ( "\u00E1", 0, 1, "", this), - new Among ( "\u00E9", 0, 2, "", this), - new Among ( "\u00ED", 0, 3, "", this), - new Among ( "\u00F3", 0, 4, "", this), - new Among ( "\u00FA", 0, 5, "", this) - }; - - private Among a_1[] = { - new Among ( "la", -1, -1, "", this), - new Among ( "sela", 0, -1, "", this), - new Among ( "le", -1, -1, "", this), - new Among ( "me", -1, -1, "", this), - new Among ( "se", -1, -1, "", this), - new Among ( "lo", -1, -1, "", this), - new Among ( "selo", 5, -1, "", this), - new Among ( "las", -1, -1, "", this), - new Among ( "selas", 7, -1, "", this), - new Among ( "les", -1, -1, "", this), - new Among ( "los", -1, -1, "", this), - new Among ( "selos", 10, -1, "", this), - new Among ( "nos", -1, -1, "", this) - }; - - private Among a_2[] = { - new Among ( "ando", -1, 6, "", this), - new Among ( "iendo", -1, 6, "", this), - new Among ( "yendo", -1, 7, "", this), - new Among ( "\u00E1ndo", -1, 2, "", this), - new Among ( "i\u00E9ndo", -1, 1, "", this), - new Among ( "ar", -1, 6, "", this), - new Among ( "er", -1, 6, "", this), - new Among ( "ir", -1, 6, "", this), - new Among ( "\u00E1r", -1, 3, "", this), - new Among ( "\u00E9r", -1, 4, "", this), - new Among ( "\u00EDr", -1, 5, "", this) - }; - - private Among a_3[] = { - new Among ( "ic", -1, -1, "", this), - new Among ( "ad", -1, -1, "", this), - new Among ( "os", -1, -1, "", this), - new Among ( "iv", -1, 1, "", this) - }; - - private Among a_4[] = { - new Among ( "able", -1, 1, "", this), - new Among ( "ible", -1, 1, "", this) - }; - - private Among a_5[] = { - new Among ( "ic", -1, 1, "", this), - new Among ( "abil", -1, 1, "", this), - new Among ( "iv", -1, 1, "", this) - }; - - private Among a_6[] = { - new Among ( "ica", -1, 1, "", this), - new Among ( "encia", -1, 5, "", this), - new Among ( "adora", -1, 2, "", this), - new Among ( "osa", -1, 1, "", this), - new Among ( "ista", -1, 1, "", this), - new Among ( "iva", -1, 9, "", this), - new Among ( "anza", -1, 1, "", this), - new Among ( "log\u00EDa", -1, 3, "", this), - new Among ( "idad", -1, 8, "", this), - new Among ( "able", -1, 1, "", this), - new Among ( "ible", -1, 1, "", this), - new Among ( "mente", -1, 7, "", this), - new Among ( "amente", 11, 6, "", this), - new Among ( "aci\u00F3n", -1, 2, "", this), - new Among ( "uci\u00F3n", -1, 4, "", this), - new Among ( "ico", -1, 1, "", this), - new Among ( "ismo", -1, 1, "", this), - new Among ( "oso", -1, 1, "", this), - new Among ( "amiento", -1, 1, "", this), - new Among ( "imiento", -1, 1, "", this), - new Among ( "ivo", -1, 9, "", this), - new Among ( "ador", -1, 2, "", this), - new Among ( "icas", -1, 1, "", this), - new Among ( "encias", -1, 5, "", this), - new Among ( "adoras", -1, 2, "", this), - new Among ( "osas", -1, 1, "", this), - new Among ( "istas", -1, 1, "", this), - new Among ( "ivas", -1, 9, "", this), - new Among ( "anzas", -1, 1, "", this), - new Among ( "log\u00EDas", -1, 3, "", this), - new Among ( "idades", -1, 8, "", this), - new Among ( "ables", -1, 1, "", this), - new Among ( "ibles", -1, 1, "", this), - new Among ( "aciones", -1, 2, "", this), - new Among ( "uciones", -1, 4, "", this), - new Among ( "adores", -1, 2, "", this), - new Among ( "icos", -1, 1, "", this), - new Among ( "ismos", -1, 1, "", this), - new Among ( "osos", -1, 1, "", this), - new Among ( "amientos", -1, 1, "", this), - new Among ( "imientos", -1, 1, "", this), - new Among ( "ivos", -1, 9, "", this) - }; - - private Among a_7[] = { - new Among ( "ya", -1, 1, "", this), - new Among ( "ye", -1, 1, "", this), - new Among ( "yan", -1, 1, "", this), - new Among ( "yen", -1, 1, "", this), - new Among ( "yeron", -1, 1, "", this), - new Among ( "yendo", -1, 1, "", this), - new Among ( "yo", -1, 1, "", this), - new Among ( "yas", -1, 1, "", this), - new Among ( "yes", -1, 1, "", this), - new Among ( "yais", -1, 1, "", this), - new Among ( "yamos", -1, 1, "", this), - new Among ( "y\u00F3", -1, 1, "", this) - }; - - private Among a_8[] = { - new Among ( "aba", -1, 2, "", this), - new Among ( "ada", -1, 2, "", this), - new Among ( "ida", -1, 2, "", this), - new Among ( "ara", -1, 2, "", this), - new Among ( "iera", -1, 2, "", this), - new Among ( "\u00EDa", -1, 2, "", this), - new Among ( "ar\u00EDa", 5, 2, "", this), - new Among ( "er\u00EDa", 5, 2, "", this), - new Among ( "ir\u00EDa", 5, 2, "", this), - new Among ( "ad", -1, 2, "", this), - new Among ( "ed", -1, 2, "", this), - new Among ( "id", -1, 2, "", this), - new Among ( "ase", -1, 2, "", this), - new Among ( "iese", -1, 2, "", this), - new Among ( "aste", -1, 2, "", this), - new Among ( "iste", -1, 2, "", this), - new Among ( "an", -1, 2, "", this), - new Among ( "aban", 16, 2, "", this), - new Among ( "aran", 16, 2, "", this), - new Among ( "ieran", 16, 2, "", this), - new Among ( "\u00EDan", 16, 2, "", this), - new Among ( "ar\u00EDan", 20, 2, "", this), - new Among ( "er\u00EDan", 20, 2, "", this), - new Among ( "ir\u00EDan", 20, 2, "", this), - new Among ( "en", -1, 1, "", this), - new Among ( "asen", 24, 2, "", this), - new Among ( "iesen", 24, 2, "", this), - new Among ( "aron", -1, 2, "", this), - new Among ( "ieron", -1, 2, "", this), - new Among ( "ar\u00E1n", -1, 2, "", this), - new Among ( "er\u00E1n", -1, 2, "", this), - new Among ( "ir\u00E1n", -1, 2, "", this), - new Among ( "ado", -1, 2, "", this), - new Among ( "ido", -1, 2, "", this), - new Among ( "ando", -1, 2, "", this), - new Among ( "iendo", -1, 2, "", this), - new Among ( "ar", -1, 2, "", this), - new Among ( "er", -1, 2, "", this), - new Among ( "ir", -1, 2, "", this), - new Among ( "as", -1, 2, "", this), - new Among ( "abas", 39, 2, "", this), - new Among ( "adas", 39, 2, "", this), - new Among ( "idas", 39, 2, "", this), - new Among ( "aras", 39, 2, "", this), - new Among ( "ieras", 39, 2, "", this), - new Among ( "\u00EDas", 39, 2, "", this), - new Among ( "ar\u00EDas", 45, 2, "", this), - new Among ( "er\u00EDas", 45, 2, "", this), - new Among ( "ir\u00EDas", 45, 2, "", this), - new Among ( "es", -1, 1, "", this), - new Among ( "ases", 49, 2, "", this), - new Among ( "ieses", 49, 2, "", this), - new Among ( "abais", -1, 2, "", this), - new Among ( "arais", -1, 2, "", this), - new Among ( "ierais", -1, 2, "", this), - new Among ( "\u00EDais", -1, 2, "", this), - new Among ( "ar\u00EDais", 55, 2, "", this), - new Among ( "er\u00EDais", 55, 2, "", this), - new Among ( "ir\u00EDais", 55, 2, "", this), - new Among ( "aseis", -1, 2, "", this), - new Among ( "ieseis", -1, 2, "", this), - new Among ( "asteis", -1, 2, "", this), - new Among ( "isteis", -1, 2, "", this), - new Among ( "\u00E1is", -1, 2, "", this), - new Among ( "\u00E9is", -1, 1, "", this), - new Among ( "ar\u00E9is", 64, 2, "", this), - new Among ( "er\u00E9is", 64, 2, "", this), - new Among ( "ir\u00E9is", 64, 2, "", this), - new Among ( "ados", -1, 2, "", this), - new Among ( "idos", -1, 2, "", this), - new Among ( "amos", -1, 2, "", this), - new Among ( "\u00E1bamos", 70, 2, "", this), - new Among ( "\u00E1ramos", 70, 2, "", this), - new Among ( "i\u00E9ramos", 70, 2, "", this), - new Among ( "\u00EDamos", 70, 2, "", this), - new Among ( "ar\u00EDamos", 74, 2, "", this), - new Among ( "er\u00EDamos", 74, 2, "", this), - new Among ( "ir\u00EDamos", 74, 2, "", this), - new Among ( "emos", -1, 1, "", this), - new Among ( "aremos", 78, 2, "", this), - new Among ( "eremos", 78, 2, "", this), - new Among ( "iremos", 78, 2, "", this), - new Among ( "\u00E1semos", 78, 2, "", this), - new Among ( "i\u00E9semos", 78, 2, "", this), - new Among ( "imos", -1, 2, "", this), - new Among ( "ar\u00E1s", -1, 2, "", this), - new Among ( "er\u00E1s", -1, 2, "", this), - new Among ( "ir\u00E1s", -1, 2, "", this), - new Among ( "\u00EDs", -1, 2, "", this), - new Among ( "ar\u00E1", -1, 2, "", this), - new Among ( "er\u00E1", -1, 2, "", this), - new Among ( "ir\u00E1", -1, 2, "", this), - new Among ( "ar\u00E9", -1, 2, "", this), - new Among ( "er\u00E9", -1, 2, "", this), - new Among ( "ir\u00E9", -1, 2, "", this), - new Among ( "i\u00F3", -1, 2, "", this) - }; - - private Among a_9[] = { - new Among ( "a", -1, 1, "", this), - new Among ( "e", -1, 2, "", this), - new Among ( "o", -1, 1, "", this), - new Among ( "os", -1, 1, "", this), - new Among ( "\u00E1", -1, 1, "", this), - new Among ( "\u00E9", -1, 2, "", this), - new Among ( "\u00ED", -1, 1, "", this), - new Among ( "\u00F3", -1, 1, "", 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, 4, 10 }; - - private int I_p2; - private int I_p1; - private int I_pV; - - private void copy_from(SpanishStemmer other) { - I_p2 = other.I_p2; - I_p1 = other.I_p1; - I_pV = other.I_pV; - super.copy_from(other); - } - - private boolean r_mark_regions() { - int v_1; - int v_2; - int v_3; - int v_6; - int v_8; - // (, line 31 - I_pV = limit; - I_p1 = limit; - I_p2 = limit; - // do, line 37 - v_1 = cursor; - lab0: do { - // (, line 37 - // or, line 39 - lab1: do { - v_2 = cursor; - lab2: do { - // (, line 38 - if (!(in_grouping(g_v, 97, 252))) - { - break lab2; - } - // or, line 38 - lab3: do { - v_3 = cursor; - lab4: do { - // (, line 38 - if (!(out_grouping(g_v, 97, 252))) - { - break lab4; - } - // gopast, line 38 - golab5: while(true) - { - lab6: do { - if (!(in_grouping(g_v, 97, 252))) - { - break lab6; - } - break golab5; - } while (false); - if (cursor >= limit) - { - break lab4; - } - cursor++; - } - break lab3; - } while (false); - cursor = v_3; - // (, line 38 - if (!(in_grouping(g_v, 97, 252))) - { - break lab2; - } - // gopast, line 38 - golab7: while(true) - { - lab8: do { - if (!(out_grouping(g_v, 97, 252))) - { - break lab8; - } - break golab7; - } while (false); - if (cursor >= limit) - { - break lab2; - } - cursor++; - } - } while (false); - break lab1; - } while (false); - cursor = v_2; - // (, line 40 - if (!(out_grouping(g_v, 97, 252))) - { - break lab0; - } - // or, line 40 - lab9: do { - v_6 = cursor; - lab10: do { - // (, line 40 - if (!(out_grouping(g_v, 97, 252))) - { - break lab10; - } - // gopast, line 40 - golab11: while(true) - { - lab12: do { - if (!(in_grouping(g_v, 97, 252))) - { - break lab12; - } - break golab11; - } while (false); - if (cursor >= limit) - { - break lab10; - } - cursor++; - } - break lab9; - } while (false); - cursor = v_6; - // (, line 40 - if (!(in_grouping(g_v, 97, 252))) - { - break lab0; - } - // next, line 40 - if (cursor >= limit) - { - break lab0; - } - cursor++; - } while (false); - } while (false); - // setmark pV, line 41 - I_pV = cursor; - } while (false); - cursor = v_1; - // do, line 43 - v_8 = cursor; - lab13: do { - // (, line 43 - // gopast, line 44 - golab14: while(true) - { - lab15: do { - if (!(in_grouping(g_v, 97, 252))) - { - break lab15; - } - break golab14; - } while (false); - if (cursor >= limit) - { - break lab13; - } - cursor++; - } - // gopast, line 44 - golab16: while(true) - { - lab17: do { - if (!(out_grouping(g_v, 97, 252))) - { - break lab17; - } - break golab16; - } while (false); - if (cursor >= limit) - { - break lab13; - } - cursor++; - } - // setmark p1, line 44 - I_p1 = cursor; - // gopast, line 45 - golab18: while(true) - { - lab19: do { - if (!(in_grouping(g_v, 97, 252))) - { - break lab19; - } - break golab18; - } while (false); - if (cursor >= limit) - { - break lab13; - } - cursor++; - } - // gopast, line 45 - golab20: while(true) - { - lab21: do { - if (!(out_grouping(g_v, 97, 252))) - { - break lab21; - } - break golab20; - } while (false); - if (cursor >= limit) - { - break lab13; - } - cursor++; - } - // setmark p2, line 45 - I_p2 = cursor; - } while (false); - cursor = v_8; - return true; - } - - private boolean r_postlude() { - int among_var; - int v_1; - // repeat, line 49 - replab0: while(true) - { - v_1 = cursor; - lab1: do { - // (, line 49 - // [, line 50 - bra = cursor; - // substring, line 50 - among_var = find_among(a_0, 6); - if (among_var == 0) - { - break lab1; - } - // ], line 50 - ket = cursor; - switch(among_var) { - case 0: - break lab1; - case 1: - // (, line 51 - // <-, line 51 - slice_from("a"); - break; - case 2: - // (, line 52 - // <-, line 52 - slice_from("e"); - break; - case 3: - // (, line 53 - // <-, line 53 - slice_from("i"); - break; - case 4: - // (, line 54 - // <-, line 54 - slice_from("o"); - break; - case 5: - // (, line 55 - // <-, line 55 - slice_from("u"); - break; - case 6: - // (, line 57 - // next, line 57 - if (cursor >= limit) - { - break lab1; - } - cursor++; - break; - } - continue replab0; - } while (false); - cursor = v_1; - break replab0; - } - return true; - } - - private boolean r_RV() { - if (!(I_pV <= cursor)) - { - return false; - } - return true; - } - - private boolean r_R1() { - if (!(I_p1 <= cursor)) - { - return false; - } - return true; - } - - private boolean r_R2() { - if (!(I_p2 <= cursor)) - { - return false; - } - return true; - } - - private boolean r_attached_pronoun() { - int among_var; - // (, line 67 - // [, line 68 - ket = cursor; - // substring, line 68 - if (find_among_b(a_1, 13) == 0) - { - return false; - } - // ], line 68 - bra = cursor; - // substring, line 72 - among_var = find_among_b(a_2, 11); - if (among_var == 0) - { - return false; - } - // call RV, line 72 - if (!r_RV()) - { - return false; - } - switch(among_var) { - case 0: - return false; - case 1: - // (, line 73 - // ], line 73 - bra = cursor; - // <-, line 73 - slice_from("iendo"); - break; - case 2: - // (, line 74 - // ], line 74 - bra = cursor; - // <-, line 74 - slice_from("ando"); - break; - case 3: - // (, line 75 - // ], line 75 - bra = cursor; - // <-, line 75 - slice_from("ar"); - break; - case 4: - // (, line 76 - // ], line 76 - bra = cursor; - // <-, line 76 - slice_from("er"); - break; - case 5: - // (, line 77 - // ], line 77 - bra = cursor; - // <-, line 77 - slice_from("ir"); - break; - case 6: - // (, line 81 - // delete, line 81 - slice_del(); - break; - case 7: - // (, line 82 - // literal, line 82 - if (!(eq_s_b(1, "u"))) - { - return false; - } - // delete, line 82 - slice_del(); - break; - } - return true; - } - - private boolean r_standard_suffix() { - int among_var; - int v_1; - int v_2; - int v_3; - int v_4; - int v_5; - // (, line 86 - // [, line 87 - ket = cursor; - // substring, line 87 - among_var = find_among_b(a_6, 42); - if (among_var == 0) - { - return false; - } - // ], line 87 - bra = cursor; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 98 - // call R2, line 99 - if (!r_R2()) - { - return false; - } - // delete, line 99 - slice_del(); - break; - case 2: - // (, line 103 - // call R2, line 104 - if (!r_R2()) - { - return false; - } - // delete, line 104 - slice_del(); - // try, line 105 - v_1 = limit - cursor; - lab0: do { - // (, line 105 - // [, line 105 - ket = cursor; - // literal, line 105 - if (!(eq_s_b(2, "ic"))) - { - cursor = limit - v_1; - break lab0; - } - // ], line 105 - bra = cursor; - // call R2, line 105 - if (!r_R2()) - { - cursor = limit - v_1; - break lab0; - } - // delete, line 105 - slice_del(); - } while (false); - break; - case 3: - // (, line 109 - // call R2, line 110 - if (!r_R2()) - { - return false; - } - // <-, line 110 - slice_from("log"); - break; - case 4: - // (, line 113 - // call R2, line 114 - if (!r_R2()) - { - return false; - } - // <-, line 114 - slice_from("u"); - break; - case 5: - // (, line 117 - // call R2, line 118 - if (!r_R2()) - { - return false; - } - // <-, line 118 - slice_from("ente"); - break; - case 6: - // (, line 121 - // call R1, line 122 - if (!r_R1()) - { - return false; - } - // delete, line 122 - slice_del(); - // try, line 123 - v_2 = limit - cursor; - lab1: do { - // (, line 123 - // [, line 124 - ket = cursor; - // substring, line 124 - among_var = find_among_b(a_3, 4); - if (among_var == 0) - { - cursor = limit - v_2; - break lab1; - } - // ], line 124 - bra = cursor; - // call R2, line 124 - if (!r_R2()) - { - cursor = limit - v_2; - break lab1; - } - // delete, line 124 - slice_del(); - switch(among_var) { - case 0: - cursor = limit - v_2; - break lab1; - case 1: - // (, line 125 - // [, line 125 - ket = cursor; - // literal, line 125 - if (!(eq_s_b(2, "at"))) - { - cursor = limit - v_2; - break lab1; - } - // ], line 125 - bra = cursor; - // call R2, line 125 - if (!r_R2()) - { - cursor = limit - v_2; - break lab1; - } - // delete, line 125 - slice_del(); - break; - } - } while (false); - break; - case 7: - // (, line 133 - // call R2, line 134 - if (!r_R2()) - { - return false; - } - // delete, line 134 - slice_del(); - // try, line 135 - v_3 = limit - cursor; - lab2: do { - // (, line 135 - // [, line 136 - ket = cursor; - // substring, line 136 - among_var = find_among_b(a_4, 2); - if (among_var == 0) - { - cursor = limit - v_3; - break lab2; - } - // ], line 136 - bra = cursor; - switch(among_var) { - case 0: - cursor = limit - v_3; - break lab2; - case 1: - // (, line 138 - // call R2, line 138 - if (!r_R2()) - { - cursor = limit - v_3; - break lab2; - } - // delete, line 138 - slice_del(); - break; - } - } while (false); - break; - case 8: - // (, line 144 - // call R2, line 145 - if (!r_R2()) - { - return false; - } - // delete, line 145 - slice_del(); - // try, line 146 - v_4 = limit - cursor; - lab3: do { - // (, line 146 - // [, line 147 - ket = cursor; - // substring, line 147 - among_var = find_among_b(a_5, 3); - if (among_var == 0) - { - cursor = limit - v_4; - break lab3; - } - // ], line 147 - bra = cursor; - switch(among_var) { - case 0: - cursor = limit - v_4; - break lab3; - case 1: - // (, line 150 - // call R2, line 150 - if (!r_R2()) - { - cursor = limit - v_4; - break lab3; - } - // delete, line 150 - slice_del(); - break; - } - } while (false); - break; - case 9: - // (, line 156 - // call R2, line 157 - if (!r_R2()) - { - return false; - } - // delete, line 157 - slice_del(); - // try, line 158 - v_5 = limit - cursor; - lab4: do { - // (, line 158 - // [, line 159 - ket = cursor; - // literal, line 159 - if (!(eq_s_b(2, "at"))) - { - cursor = limit - v_5; - break lab4; - } - // ], line 159 - bra = cursor; - // call R2, line 159 - if (!r_R2()) - { - cursor = limit - v_5; - break lab4; - } - // delete, line 159 - slice_del(); - } while (false); - break; - } - return true; - } - - private boolean r_y_verb_suffix() { - int among_var; - int v_1; - int v_2; - // (, line 165 - // setlimit, line 166 - v_1 = limit - cursor; - // tomark, line 166 - if (cursor < I_pV) - { - return false; - } - cursor = I_pV; - v_2 = limit_backward; - limit_backward = cursor; - cursor = limit - v_1; - // (, line 166 - // [, line 166 - ket = cursor; - // substring, line 166 - among_var = find_among_b(a_7, 12); - if (among_var == 0) - { - limit_backward = v_2; - return false; - } - // ], line 166 - bra = cursor; - limit_backward = v_2; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 169 - // literal, line 169 - if (!(eq_s_b(1, "u"))) - { - return false; - } - // delete, line 169 - slice_del(); - break; - } - return true; - } - - private boolean r_verb_suffix() { - int among_var; - int v_1; - int v_2; - int v_3; - int v_4; - // (, line 173 - // setlimit, line 174 - v_1 = limit - cursor; - // tomark, line 174 - if (cursor < I_pV) - { - return false; - } - cursor = I_pV; - v_2 = limit_backward; - limit_backward = cursor; - cursor = limit - v_1; - // (, line 174 - // [, line 174 - ket = cursor; - // substring, line 174 - among_var = find_among_b(a_8, 96); - if (among_var == 0) - { - limit_backward = v_2; - return false; - } - // ], line 174 - bra = cursor; - limit_backward = v_2; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 177 - // try, line 177 - v_3 = limit - cursor; - lab0: do { - // (, line 177 - // literal, line 177 - if (!(eq_s_b(1, "u"))) - { - cursor = limit - v_3; - break lab0; - } - // test, line 177 - v_4 = limit - cursor; - // literal, line 177 - if (!(eq_s_b(1, "g"))) - { - cursor = limit - v_3; - break lab0; - } - cursor = limit - v_4; - } while (false); - // ], line 177 - bra = cursor; - // delete, line 177 - slice_del(); - break; - case 2: - // (, line 198 - // delete, line 198 - slice_del(); - break; - } - return true; - } - - private boolean r_residual_suffix() { - int among_var; - int v_1; - int v_2; - // (, line 202 - // [, line 203 - ket = cursor; - // substring, line 203 - among_var = find_among_b(a_9, 8); - if (among_var == 0) - { - return false; - } - // ], line 203 - bra = cursor; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 206 - // call RV, line 206 - if (!r_RV()) - { - return false; - } - // delete, line 206 - slice_del(); - break; - case 2: - // (, line 208 - // call RV, line 208 - if (!r_RV()) - { - return false; - } - // delete, line 208 - slice_del(); - // try, line 208 - v_1 = limit - cursor; - lab0: do { - // (, line 208 - // [, line 208 - ket = cursor; - // literal, line 208 - if (!(eq_s_b(1, "u"))) - { - cursor = limit - v_1; - break lab0; - } - // ], line 208 - bra = cursor; - // test, line 208 - v_2 = limit - cursor; - // literal, line 208 - if (!(eq_s_b(1, "g"))) - { - cursor = limit - v_1; - break lab0; - } - cursor = limit - v_2; - // call RV, line 208 - if (!r_RV()) - { - cursor = limit - v_1; - break lab0; - } - // delete, line 208 - slice_del(); - } while (false); - break; - } - return true; - } - - public boolean stem() { - int v_1; - int v_2; - int v_3; - int v_4; - int v_5; - int v_6; - // (, line 213 - // do, line 214 - v_1 = cursor; - lab0: do { - // call mark_regions, line 214 - if (!r_mark_regions()) - { - break lab0; - } - } while (false); - cursor = v_1; - // backwards, line 215 - limit_backward = cursor; cursor = limit; - // (, line 215 - // do, line 216 - v_2 = limit - cursor; - lab1: do { - // call attached_pronoun, line 216 - if (!r_attached_pronoun()) - { - break lab1; - } - } while (false); - cursor = limit - v_2; - // do, line 217 - v_3 = limit - cursor; - lab2: do { - // (, line 217 - // or, line 217 - lab3: do { - v_4 = limit - cursor; - lab4: do { - // call standard_suffix, line 217 - if (!r_standard_suffix()) - { - break lab4; - } - break lab3; - } while (false); - cursor = limit - v_4; - lab5: do { - // call y_verb_suffix, line 218 - if (!r_y_verb_suffix()) - { - break lab5; - } - break lab3; - } while (false); - cursor = limit - v_4; - // call verb_suffix, line 219 - if (!r_verb_suffix()) - { - break lab2; - } - } while (false); - } while (false); - cursor = limit - v_3; - // do, line 221 - v_5 = limit - cursor; - lab6: do { - // call residual_suffix, line 221 - if (!r_residual_suffix()) - { - break lab6; - } - } while (false); - cursor = limit - v_5; - cursor = limit_backward; // do, line 223 - v_6 = cursor; - lab7: do { - // call postlude, line 223 - if (!r_postlude()) - { - break lab7; - } - } while (false); - cursor = v_6; - return true; - } - -} - Index: contrib/snowball/src/java/net/sf/snowball/ext/SwedishStemmer.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/SwedishStemmer.java (revision 613440) +++ contrib/snowball/src/java/net/sf/snowball/ext/SwedishStemmer.java (working copy) @@ -1,331 +0,0 @@ -// This file was generated automatically by the Snowball to Java compiler - -package net.sf.snowball.ext; -import net.sf.snowball.SnowballProgram; -import net.sf.snowball.Among; - -/** - * Generated class implementing code defined by a snowball script. - */ -public class SwedishStemmer extends SnowballProgram { - - private Among a_0[] = { - new Among ( "a", -1, 1, "", this), - new Among ( "arna", 0, 1, "", this), - new Among ( "erna", 0, 1, "", this), - new Among ( "heterna", 2, 1, "", this), - new Among ( "orna", 0, 1, "", this), - new Among ( "ad", -1, 1, "", this), - new Among ( "e", -1, 1, "", this), - new Among ( "ade", 6, 1, "", this), - new Among ( "ande", 6, 1, "", this), - new Among ( "arne", 6, 1, "", this), - new Among ( "are", 6, 1, "", this), - new Among ( "aste", 6, 1, "", this), - new Among ( "en", -1, 1, "", this), - new Among ( "anden", 12, 1, "", this), - new Among ( "aren", 12, 1, "", this), - new Among ( "heten", 12, 1, "", this), - new Among ( "ern", -1, 1, "", this), - new Among ( "ar", -1, 1, "", this), - new Among ( "er", -1, 1, "", this), - new Among ( "heter", 18, 1, "", this), - new Among ( "or", -1, 1, "", this), - new Among ( "s", -1, 2, "", this), - new Among ( "as", 21, 1, "", this), - new Among ( "arnas", 22, 1, "", this), - new Among ( "ernas", 22, 1, "", this), - new Among ( "ornas", 22, 1, "", this), - new Among ( "es", 21, 1, "", this), - new Among ( "ades", 26, 1, "", this), - new Among ( "andes", 26, 1, "", this), - new Among ( "ens", 21, 1, "", this), - new Among ( "arens", 29, 1, "", this), - new Among ( "hetens", 29, 1, "", this), - new Among ( "erns", 21, 1, "", this), - new Among ( "at", -1, 1, "", this), - new Among ( "andet", -1, 1, "", this), - new Among ( "het", -1, 1, "", this), - new Among ( "ast", -1, 1, "", this) - }; - - private Among a_1[] = { - new Among ( "dd", -1, -1, "", this), - new Among ( "gd", -1, -1, "", this), - new Among ( "nn", -1, -1, "", this), - new Among ( "dt", -1, -1, "", this), - new Among ( "gt", -1, -1, "", this), - new Among ( "kt", -1, -1, "", this), - new Among ( "tt", -1, -1, "", this) - }; - - private Among a_2[] = { - new Among ( "ig", -1, 1, "", this), - new Among ( "lig", 0, 1, "", this), - new Among ( "els", -1, 1, "", this), - new Among ( "fullt", -1, 3, "", this), - new Among ( "l\u00F6st", -1, 2, "", this) - }; - - private static final char g_v[] = {17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 32 }; - - private static final char g_s_ending[] = {119, 127, 149 }; - - private int I_p1; - - private void copy_from(SwedishStemmer other) { - I_p1 = other.I_p1; - super.copy_from(other); - } - - private boolean r_mark_regions() { - int v_1; - // (, line 26 - I_p1 = limit; - // goto, line 30 - golab0: while(true) - { - v_1 = cursor; - lab1: do { - if (!(in_grouping(g_v, 97, 246))) - { - break lab1; - } - cursor = v_1; - break golab0; - } while (false); - cursor = v_1; - if (cursor >= limit) - { - return false; - } - cursor++; - } - // gopast, line 30 - golab2: while(true) - { - lab3: do { - if (!(out_grouping(g_v, 97, 246))) - { - break lab3; - } - break golab2; - } while (false); - if (cursor >= limit) - { - return false; - } - cursor++; - } - // setmark p1, line 30 - I_p1 = cursor; - // try, line 31 - lab4: do { - // (, line 31 - if (!(I_p1 < 3)) - { - break lab4; - } - I_p1 = 3; - } while (false); - return true; - } - - private boolean r_main_suffix() { - int among_var; - int v_1; - int v_2; - // (, line 36 - // setlimit, line 37 - v_1 = limit - cursor; - // tomark, line 37 - if (cursor < I_p1) - { - return false; - } - cursor = I_p1; - v_2 = limit_backward; - limit_backward = cursor; - cursor = limit - v_1; - // (, line 37 - // [, line 37 - ket = cursor; - // substring, line 37 - among_var = find_among_b(a_0, 37); - if (among_var == 0) - { - limit_backward = v_2; - return false; - } - // ], line 37 - bra = cursor; - limit_backward = v_2; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 44 - // delete, line 44 - slice_del(); - break; - case 2: - // (, line 46 - if (!(in_grouping_b(g_s_ending, 98, 121))) - { - return false; - } - // delete, line 46 - slice_del(); - break; - } - return true; - } - - private boolean r_consonant_pair() { - int v_1; - int v_2; - int v_3; - // setlimit, line 50 - v_1 = limit - cursor; - // tomark, line 50 - if (cursor < I_p1) - { - return false; - } - cursor = I_p1; - v_2 = limit_backward; - limit_backward = cursor; - cursor = limit - v_1; - // (, line 50 - // and, line 52 - v_3 = limit - cursor; - // among, line 51 - if (find_among_b(a_1, 7) == 0) - { - limit_backward = v_2; - return false; - } - cursor = limit - v_3; - // (, line 52 - // [, line 52 - ket = cursor; - // next, line 52 - if (cursor <= limit_backward) - { - limit_backward = v_2; - return false; - } - cursor--; - // ], line 52 - bra = cursor; - // delete, line 52 - slice_del(); - limit_backward = v_2; - return true; - } - - private boolean r_other_suffix() { - int among_var; - int v_1; - int v_2; - // setlimit, line 55 - v_1 = limit - cursor; - // tomark, line 55 - if (cursor < I_p1) - { - return false; - } - cursor = I_p1; - v_2 = limit_backward; - limit_backward = cursor; - cursor = limit - v_1; - // (, line 55 - // [, line 56 - ket = cursor; - // substring, line 56 - among_var = find_among_b(a_2, 5); - if (among_var == 0) - { - limit_backward = v_2; - return false; - } - // ], line 56 - bra = cursor; - switch(among_var) { - case 0: - limit_backward = v_2; - return false; - case 1: - // (, line 57 - // delete, line 57 - slice_del(); - break; - case 2: - // (, line 58 - // <-, line 58 - slice_from("l\u00F6s"); - break; - case 3: - // (, line 59 - // <-, line 59 - slice_from("full"); - break; - } - limit_backward = v_2; - return true; - } - - public boolean stem() { - int v_1; - int v_2; - int v_3; - int v_4; - // (, line 64 - // do, line 66 - v_1 = cursor; - lab0: do { - // call mark_regions, line 66 - if (!r_mark_regions()) - { - break lab0; - } - } while (false); - cursor = v_1; - // backwards, line 67 - limit_backward = cursor; cursor = limit; - // (, line 67 - // do, line 68 - v_2 = limit - cursor; - lab1: do { - // call main_suffix, line 68 - if (!r_main_suffix()) - { - break lab1; - } - } while (false); - cursor = limit - v_2; - // do, line 69 - v_3 = limit - cursor; - lab2: do { - // call consonant_pair, line 69 - if (!r_consonant_pair()) - { - break lab2; - } - } while (false); - cursor = limit - v_3; - // do, line 70 - v_4 = limit - cursor; - lab3: do { - // call other_suffix, line 70 - if (!r_other_suffix()) - { - break lab3; - } - } while (false); - cursor = limit - v_4; - cursor = limit_backward; return true; - } - -} - Index: contrib/snowball/src/java/net/sf/snowball/ext/DanishStemmer.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/DanishStemmer.java (revision 613440) +++ contrib/snowball/src/java/net/sf/snowball/ext/DanishStemmer.java (working copy) @@ -1,405 +0,0 @@ -// This file was generated automatically by the Snowball to Java compiler - -package net.sf.snowball.ext; -import net.sf.snowball.SnowballProgram; -import net.sf.snowball.Among; - -/** - * Generated class implementing code defined by a snowball script. - */ -public class DanishStemmer extends SnowballProgram { - - private Among a_0[] = { - new Among ( "hed", -1, 1, "", this), - new Among ( "ethed", 0, 1, "", this), - new Among ( "ered", -1, 1, "", this), - new Among ( "e", -1, 1, "", this), - new Among ( "erede", 3, 1, "", this), - new Among ( "ende", 3, 1, "", this), - new Among ( "erende", 5, 1, "", this), - new Among ( "ene", 3, 1, "", this), - new Among ( "erne", 3, 1, "", this), - new Among ( "ere", 3, 1, "", this), - new Among ( "en", -1, 1, "", this), - new Among ( "heden", 10, 1, "", this), - new Among ( "eren", 10, 1, "", this), - new Among ( "er", -1, 1, "", this), - new Among ( "heder", 13, 1, "", this), - new Among ( "erer", 13, 1, "", this), - new Among ( "s", -1, 2, "", this), - new Among ( "heds", 16, 1, "", this), - new Among ( "es", 16, 1, "", this), - new Among ( "endes", 18, 1, "", this), - new Among ( "erendes", 19, 1, "", this), - new Among ( "enes", 18, 1, "", this), - new Among ( "ernes", 18, 1, "", this), - new Among ( "eres", 18, 1, "", this), - new Among ( "ens", 16, 1, "", this), - new Among ( "hedens", 24, 1, "", this), - new Among ( "erens", 24, 1, "", this), - new Among ( "ers", 16, 1, "", this), - new Among ( "ets", 16, 1, "", this), - new Among ( "erets", 28, 1, "", this), - new Among ( "et", -1, 1, "", this), - new Among ( "eret", 30, 1, "", this) - }; - - private Among a_1[] = { - new Among ( "gd", -1, -1, "", this), - new Among ( "dt", -1, -1, "", this), - new Among ( "gt", -1, -1, "", this), - new Among ( "kt", -1, -1, "", this) - }; - - private Among a_2[] = { - new Among ( "ig", -1, 1, "", this), - new Among ( "lig", 0, 1, "", this), - new Among ( "elig", 1, 1, "", this), - new Among ( "els", -1, 1, "", this), - new Among ( "l\u00F8st", -1, 2, "", this) - }; - - 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[] = {239, 254, 42, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16 }; - - private int I_p1; - private StringBuffer S_ch = new StringBuffer(); - - private void copy_from(DanishStemmer other) { - I_p1 = other.I_p1; - S_ch = other.S_ch; - super.copy_from(other); - } - - private boolean r_mark_regions() { - int v_1; - // (, line 29 - I_p1 = limit; - // goto, line 33 - golab0: while(true) - { - v_1 = cursor; - lab1: do { - if (!(in_grouping(g_v, 97, 248))) - { - break lab1; - } - cursor = v_1; - break golab0; - } while (false); - cursor = v_1; - if (cursor >= limit) - { - return false; - } - cursor++; - } - // gopast, line 33 - golab2: while(true) - { - lab3: do { - if (!(out_grouping(g_v, 97, 248))) - { - break lab3; - } - break golab2; - } while (false); - if (cursor >= limit) - { - return false; - } - cursor++; - } - // setmark p1, line 33 - I_p1 = cursor; - // try, line 34 - lab4: do { - // (, line 34 - if (!(I_p1 < 3)) - { - break lab4; - } - I_p1 = 3; - } while (false); - return true; - } - - private boolean r_main_suffix() { - int among_var; - int v_1; - int v_2; - // (, line 39 - // setlimit, line 40 - v_1 = limit - cursor; - // tomark, line 40 - if (cursor < I_p1) - { - return false; - } - cursor = I_p1; - v_2 = limit_backward; - limit_backward = cursor; - cursor = limit - v_1; - // (, line 40 - // [, line 40 - ket = cursor; - // substring, line 40 - among_var = find_among_b(a_0, 32); - if (among_var == 0) - { - limit_backward = v_2; - return false; - } - // ], line 40 - bra = cursor; - limit_backward = v_2; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 47 - // delete, line 47 - slice_del(); - break; - case 2: - // (, line 49 - if (!(in_grouping_b(g_s_ending, 97, 229))) - { - return false; - } - // delete, line 49 - slice_del(); - break; - } - return true; - } - - private boolean r_consonant_pair() { - int v_1; - int v_2; - int v_3; - // (, line 53 - // test, line 54 - v_1 = limit - cursor; - // (, line 54 - // setlimit, line 55 - v_2 = limit - cursor; - // tomark, line 55 - if (cursor < I_p1) - { - return false; - } - cursor = I_p1; - v_3 = limit_backward; - limit_backward = cursor; - cursor = limit - v_2; - // (, line 55 - // [, line 55 - ket = cursor; - // substring, line 55 - if (find_among_b(a_1, 4) == 0) - { - limit_backward = v_3; - return false; - } - // ], line 55 - bra = cursor; - limit_backward = v_3; - cursor = limit - v_1; - // next, line 61 - if (cursor <= limit_backward) - { - return false; - } - cursor--; - // ], line 61 - bra = cursor; - // delete, line 61 - slice_del(); - return true; - } - - private boolean r_other_suffix() { - int among_var; - int v_1; - int v_2; - int v_3; - int v_4; - // (, line 64 - // do, line 65 - v_1 = limit - cursor; - lab0: do { - // (, line 65 - // [, line 65 - ket = cursor; - // literal, line 65 - if (!(eq_s_b(2, "st"))) - { - break lab0; - } - // ], line 65 - bra = cursor; - // literal, line 65 - if (!(eq_s_b(2, "ig"))) - { - break lab0; - } - // delete, line 65 - slice_del(); - } while (false); - cursor = limit - v_1; - // setlimit, line 66 - v_2 = limit - cursor; - // tomark, line 66 - if (cursor < I_p1) - { - return false; - } - cursor = I_p1; - v_3 = limit_backward; - limit_backward = cursor; - cursor = limit - v_2; - // (, line 66 - // [, line 66 - ket = cursor; - // substring, line 66 - among_var = find_among_b(a_2, 5); - if (among_var == 0) - { - limit_backward = v_3; - return false; - } - // ], line 66 - bra = cursor; - limit_backward = v_3; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 69 - // delete, line 69 - slice_del(); - // do, line 69 - v_4 = limit - cursor; - lab1: do { - // call consonant_pair, line 69 - if (!r_consonant_pair()) - { - break lab1; - } - } while (false); - cursor = limit - v_4; - break; - case 2: - // (, line 71 - // <-, line 71 - slice_from("l\u00F8s"); - break; - } - return true; - } - - private boolean r_undouble() { - int v_1; - int v_2; - // (, line 74 - // setlimit, line 75 - v_1 = limit - cursor; - // tomark, line 75 - if (cursor < I_p1) - { - return false; - } - cursor = I_p1; - v_2 = limit_backward; - limit_backward = cursor; - cursor = limit - v_1; - // (, line 75 - // [, line 75 - ket = cursor; - if (!(out_grouping_b(g_v, 97, 248))) - { - limit_backward = v_2; - return false; - } - // ], line 75 - bra = cursor; - // -> ch, line 75 - S_ch = slice_to(S_ch); - limit_backward = v_2; - // name ch, line 76 - if (!(eq_v_b(S_ch))) - { - return false; - } - // delete, line 77 - slice_del(); - return true; - } - - public boolean stem() { - int v_1; - int v_2; - int v_3; - int v_4; - int v_5; - // (, line 81 - // do, line 83 - v_1 = cursor; - lab0: do { - // call mark_regions, line 83 - if (!r_mark_regions()) - { - break lab0; - } - } while (false); - cursor = v_1; - // backwards, line 84 - limit_backward = cursor; cursor = limit; - // (, line 84 - // do, line 85 - v_2 = limit - cursor; - lab1: do { - // call main_suffix, line 85 - if (!r_main_suffix()) - { - break lab1; - } - } while (false); - cursor = limit - v_2; - // do, line 86 - v_3 = limit - cursor; - lab2: do { - // call consonant_pair, line 86 - if (!r_consonant_pair()) - { - break lab2; - } - } while (false); - cursor = limit - v_3; - // do, line 87 - v_4 = limit - cursor; - lab3: do { - // call other_suffix, line 87 - if (!r_other_suffix()) - { - break lab3; - } - } while (false); - cursor = limit - v_4; - // do, line 88 - v_5 = limit - cursor; - lab4: do { - // call undouble, line 88 - if (!r_undouble()) - { - break lab4; - } - } while (false); - cursor = limit - v_5; - cursor = limit_backward; return true; - } - -} - Index: contrib/snowball/src/java/net/sf/snowball/ext/DutchStemmer.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/DutchStemmer.java (revision 613440) +++ contrib/snowball/src/java/net/sf/snowball/ext/DutchStemmer.java (working copy) @@ -1,837 +0,0 @@ -// This file was generated automatically by the Snowball to Java compiler - -package net.sf.snowball.ext; -import net.sf.snowball.SnowballProgram; -import net.sf.snowball.Among; - -/** - * Generated class implementing code defined by a snowball script. - */ -public class DutchStemmer extends SnowballProgram { - - private Among a_0[] = { - new Among ( "", -1, 6, "", this), - new Among ( "\u00E1", 0, 1, "", this), - new Among ( "\u00E4", 0, 1, "", this), - new Among ( "\u00E9", 0, 2, "", this), - new Among ( "\u00EB", 0, 2, "", this), - new Among ( "\u00ED", 0, 3, "", this), - new Among ( "\u00EF", 0, 3, "", this), - new Among ( "\u00F3", 0, 4, "", this), - new Among ( "\u00F6", 0, 4, "", this), - new Among ( "\u00FA", 0, 5, "", this), - new Among ( "\u00FC", 0, 5, "", this) - }; - - private Among a_1[] = { - new Among ( "", -1, 3, "", this), - new Among ( "I", 0, 2, "", this), - new Among ( "Y", 0, 1, "", this) - }; - - private Among a_2[] = { - new Among ( "dd", -1, -1, "", this), - new Among ( "kk", -1, -1, "", this), - new Among ( "tt", -1, -1, "", this) - }; - - private Among a_3[] = { - new Among ( "ene", -1, 2, "", this), - new Among ( "se", -1, 3, "", this), - new Among ( "en", -1, 2, "", this), - new Among ( "heden", 2, 1, "", this), - new Among ( "s", -1, 3, "", this) - }; - - private Among a_4[] = { - new Among ( "end", -1, 1, "", this), - new Among ( "ig", -1, 2, "", this), - new Among ( "ing", -1, 1, "", this), - new Among ( "lijk", -1, 3, "", this), - new Among ( "baar", -1, 4, "", this), - new Among ( "bar", -1, 5, "", this) - }; - - private Among a_5[] = { - new Among ( "aa", -1, -1, "", this), - new Among ( "ee", -1, -1, "", this), - new Among ( "oo", -1, -1, "", this), - new Among ( "uu", -1, -1, "", this) - }; - - private static final char g_v[] = {17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 }; - - private static final char g_v_I[] = {1, 0, 0, 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 }; - - private static final char g_v_j[] = {17, 67, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 }; - - private int I_p2; - private int I_p1; - private boolean B_e_found; - - private void copy_from(DutchStemmer other) { - I_p2 = other.I_p2; - I_p1 = other.I_p1; - B_e_found = other.B_e_found; - super.copy_from(other); - } - - private boolean r_prelude() { - int among_var; - int v_1; - int v_2; - int v_3; - int v_4; - int v_5; - int v_6; - // (, line 41 - // test, line 42 - v_1 = cursor; - // repeat, line 42 - replab0: while(true) - { - v_2 = cursor; - lab1: do { - // (, line 42 - // [, line 43 - bra = cursor; - // substring, line 43 - among_var = find_among(a_0, 11); - if (among_var == 0) - { - break lab1; - } - // ], line 43 - ket = cursor; - switch(among_var) { - case 0: - break lab1; - case 1: - // (, line 45 - // <-, line 45 - slice_from("a"); - break; - case 2: - // (, line 47 - // <-, line 47 - slice_from("e"); - break; - case 3: - // (, line 49 - // <-, line 49 - slice_from("i"); - break; - case 4: - // (, line 51 - // <-, line 51 - slice_from("o"); - break; - case 5: - // (, line 53 - // <-, line 53 - slice_from("u"); - break; - case 6: - // (, line 54 - // next, line 54 - if (cursor >= limit) - { - break lab1; - } - cursor++; - break; - } - continue replab0; - } while (false); - cursor = v_2; - break replab0; - } - cursor = v_1; - // try, line 57 - v_3 = cursor; - lab2: do { - // (, line 57 - // [, line 57 - bra = cursor; - // literal, line 57 - if (!(eq_s(1, "y"))) - { - cursor = v_3; - break lab2; - } - // ], line 57 - ket = cursor; - // <-, line 57 - slice_from("Y"); - } while (false); - // repeat, line 58 - replab3: while(true) - { - v_4 = cursor; - lab4: do { - // goto, line 58 - golab5: while(true) - { - v_5 = cursor; - lab6: do { - // (, line 58 - if (!(in_grouping(g_v, 97, 232))) - { - break lab6; - } - // [, line 59 - bra = cursor; - // or, line 59 - lab7: do { - v_6 = cursor; - lab8: do { - // (, line 59 - // literal, line 59 - if (!(eq_s(1, "i"))) - { - break lab8; - } - // ], line 59 - ket = cursor; - if (!(in_grouping(g_v, 97, 232))) - { - break lab8; - } - // <-, line 59 - slice_from("I"); - break lab7; - } while (false); - cursor = v_6; - // (, line 60 - // literal, line 60 - if (!(eq_s(1, "y"))) - { - break lab6; - } - // ], line 60 - ket = cursor; - // <-, line 60 - slice_from("Y"); - } while (false); - cursor = v_5; - break golab5; - } while (false); - cursor = v_5; - if (cursor >= limit) - { - break lab4; - } - cursor++; - } - continue replab3; - } while (false); - cursor = v_4; - break replab3; - } - return true; - } - - private boolean r_mark_regions() { - // (, line 64 - I_p1 = limit; - I_p2 = limit; - // gopast, line 69 - golab0: while(true) - { - lab1: do { - if (!(in_grouping(g_v, 97, 232))) - { - break lab1; - } - break golab0; - } while (false); - if (cursor >= limit) - { - return false; - } - cursor++; - } - // gopast, line 69 - golab2: while(true) - { - lab3: do { - if (!(out_grouping(g_v, 97, 232))) - { - break lab3; - } - break golab2; - } while (false); - if (cursor >= limit) - { - return false; - } - cursor++; - } - // setmark p1, line 69 - I_p1 = cursor; - // try, line 70 - lab4: do { - // (, line 70 - if (!(I_p1 < 3)) - { - break lab4; - } - I_p1 = 3; - } while (false); - // gopast, line 71 - golab5: while(true) - { - lab6: do { - if (!(in_grouping(g_v, 97, 232))) - { - break lab6; - } - break golab5; - } while (false); - if (cursor >= limit) - { - return false; - } - cursor++; - } - // gopast, line 71 - golab7: while(true) - { - lab8: do { - if (!(out_grouping(g_v, 97, 232))) - { - break lab8; - } - break golab7; - } while (false); - if (cursor >= limit) - { - return false; - } - cursor++; - } - // setmark p2, line 71 - I_p2 = cursor; - return true; - } - - private boolean r_postlude() { - int among_var; - int v_1; - // repeat, line 75 - replab0: while(true) - { - v_1 = cursor; - lab1: do { - // (, line 75 - // [, line 77 - bra = cursor; - // substring, line 77 - among_var = find_among(a_1, 3); - if (among_var == 0) - { - break lab1; - } - // ], line 77 - ket = cursor; - switch(among_var) { - case 0: - break lab1; - case 1: - // (, line 78 - // <-, line 78 - slice_from("y"); - break; - case 2: - // (, line 79 - // <-, line 79 - slice_from("i"); - break; - case 3: - // (, line 80 - // next, line 80 - if (cursor >= limit) - { - break lab1; - } - cursor++; - break; - } - continue replab0; - } while (false); - cursor = v_1; - break replab0; - } - return true; - } - - private boolean r_R1() { - if (!(I_p1 <= cursor)) - { - return false; - } - return true; - } - - private boolean r_R2() { - if (!(I_p2 <= cursor)) - { - return false; - } - return true; - } - - private boolean r_undouble() { - int v_1; - // (, line 90 - // test, line 91 - v_1 = limit - cursor; - // among, line 91 - if (find_among_b(a_2, 3) == 0) - { - return false; - } - cursor = limit - v_1; - // [, line 91 - ket = cursor; - // next, line 91 - if (cursor <= limit_backward) - { - return false; - } - cursor--; - // ], line 91 - bra = cursor; - // delete, line 91 - slice_del(); - return true; - } - - private boolean r_e_ending() { - int v_1; - // (, line 94 - // unset e_found, line 95 - B_e_found = false; - // [, line 96 - ket = cursor; - // literal, line 96 - if (!(eq_s_b(1, "e"))) - { - return false; - } - // ], line 96 - bra = cursor; - // call R1, line 96 - if (!r_R1()) - { - return false; - } - // test, line 96 - v_1 = limit - cursor; - if (!(out_grouping_b(g_v, 97, 232))) - { - return false; - } - cursor = limit - v_1; - // delete, line 96 - slice_del(); - // set e_found, line 97 - B_e_found = true; - // call undouble, line 98 - if (!r_undouble()) - { - return false; - } - return true; - } - - private boolean r_en_ending() { - int v_1; - int v_2; - // (, line 101 - // call R1, line 102 - if (!r_R1()) - { - return false; - } - // and, line 102 - v_1 = limit - cursor; - if (!(out_grouping_b(g_v, 97, 232))) - { - return false; - } - cursor = limit - v_1; - // not, line 102 - { - v_2 = limit - cursor; - lab0: do { - // literal, line 102 - if (!(eq_s_b(3, "gem"))) - { - break lab0; - } - return false; - } while (false); - cursor = limit - v_2; - } - // delete, line 102 - slice_del(); - // call undouble, line 103 - if (!r_undouble()) - { - return false; - } - return true; - } - - private boolean r_standard_suffix() { - int among_var; - 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 106 - // do, line 107 - v_1 = limit - cursor; - lab0: do { - // (, line 107 - // [, line 108 - ket = cursor; - // substring, line 108 - among_var = find_among_b(a_3, 5); - if (among_var == 0) - { - break lab0; - } - // ], line 108 - bra = cursor; - switch(among_var) { - case 0: - break lab0; - case 1: - // (, line 110 - // call R1, line 110 - if (!r_R1()) - { - break lab0; - } - // <-, line 110 - slice_from("heid"); - break; - case 2: - // (, line 113 - // call en_ending, line 113 - if (!r_en_ending()) - { - break lab0; - } - break; - case 3: - // (, line 116 - // call R1, line 116 - if (!r_R1()) - { - break lab0; - } - if (!(out_grouping_b(g_v_j, 97, 232))) - { - break lab0; - } - // delete, line 116 - slice_del(); - break; - } - } while (false); - cursor = limit - v_1; - // do, line 120 - v_2 = limit - cursor; - lab1: do { - // call e_ending, line 120 - if (!r_e_ending()) - { - break lab1; - } - } while (false); - cursor = limit - v_2; - // do, line 122 - v_3 = limit - cursor; - lab2: do { - // (, line 122 - // [, line 122 - ket = cursor; - // literal, line 122 - if (!(eq_s_b(4, "heid"))) - { - break lab2; - } - // ], line 122 - bra = cursor; - // call R2, line 122 - if (!r_R2()) - { - break lab2; - } - // not, line 122 - { - v_4 = limit - cursor; - lab3: do { - // literal, line 122 - if (!(eq_s_b(1, "c"))) - { - break lab3; - } - break lab2; - } while (false); - cursor = limit - v_4; - } - // delete, line 122 - slice_del(); - // [, line 123 - ket = cursor; - // literal, line 123 - if (!(eq_s_b(2, "en"))) - { - break lab2; - } - // ], line 123 - bra = cursor; - // call en_ending, line 123 - if (!r_en_ending()) - { - break lab2; - } - } while (false); - cursor = limit - v_3; - // do, line 126 - v_5 = limit - cursor; - lab4: do { - // (, line 126 - // [, line 127 - ket = cursor; - // substring, line 127 - among_var = find_among_b(a_4, 6); - if (among_var == 0) - { - break lab4; - } - // ], line 127 - bra = cursor; - switch(among_var) { - case 0: - break lab4; - case 1: - // (, line 129 - // call R2, line 129 - if (!r_R2()) - { - break lab4; - } - // delete, line 129 - slice_del(); - // or, line 130 - lab5: do { - v_6 = limit - cursor; - lab6: do { - // (, line 130 - // [, line 130 - ket = cursor; - // literal, line 130 - if (!(eq_s_b(2, "ig"))) - { - break lab6; - } - // ], line 130 - bra = cursor; - // call R2, line 130 - if (!r_R2()) - { - break lab6; - } - // not, line 130 - { - v_7 = limit - cursor; - lab7: do { - // literal, line 130 - if (!(eq_s_b(1, "e"))) - { - break lab7; - } - break lab6; - } while (false); - cursor = limit - v_7; - } - // delete, line 130 - slice_del(); - break lab5; - } while (false); - cursor = limit - v_6; - // call undouble, line 130 - if (!r_undouble()) - { - break lab4; - } - } while (false); - break; - case 2: - // (, line 133 - // call R2, line 133 - if (!r_R2()) - { - break lab4; - } - // not, line 133 - { - v_8 = limit - cursor; - lab8: do { - // literal, line 133 - if (!(eq_s_b(1, "e"))) - { - break lab8; - } - break lab4; - } while (false); - cursor = limit - v_8; - } - // delete, line 133 - slice_del(); - break; - case 3: - // (, line 136 - // call R2, line 136 - if (!r_R2()) - { - break lab4; - } - // delete, line 136 - slice_del(); - // call e_ending, line 136 - if (!r_e_ending()) - { - break lab4; - } - break; - case 4: - // (, line 139 - // call R2, line 139 - if (!r_R2()) - { - break lab4; - } - // delete, line 139 - slice_del(); - break; - case 5: - // (, line 142 - // call R2, line 142 - if (!r_R2()) - { - break lab4; - } - // Boolean test e_found, line 142 - if (!(B_e_found)) - { - break lab4; - } - // delete, line 142 - slice_del(); - break; - } - } while (false); - cursor = limit - v_5; - // do, line 146 - v_9 = limit - cursor; - lab9: do { - // (, line 146 - if (!(out_grouping_b(g_v_I, 73, 232))) - { - break lab9; - } - // test, line 148 - v_10 = limit - cursor; - // (, line 148 - // among, line 149 - if (find_among_b(a_5, 4) == 0) - { - break lab9; - } - if (!(out_grouping_b(g_v, 97, 232))) - { - break lab9; - } - cursor = limit - v_10; - // [, line 152 - ket = cursor; - // next, line 152 - if (cursor <= limit_backward) - { - break lab9; - } - cursor--; - // ], line 152 - bra = cursor; - // delete, line 152 - slice_del(); - } while (false); - cursor = limit - v_9; - return true; - } - - public boolean stem() { - int v_1; - int v_2; - int v_3; - int v_4; - // (, line 157 - // do, line 159 - v_1 = cursor; - lab0: do { - // call prelude, line 159 - if (!r_prelude()) - { - break lab0; - } - } while (false); - cursor = v_1; - // do, line 160 - v_2 = cursor; - lab1: do { - // call mark_regions, line 160 - if (!r_mark_regions()) - { - break lab1; - } - } while (false); - cursor = v_2; - // backwards, line 161 - limit_backward = cursor; cursor = limit; - // do, line 162 - v_3 = limit - cursor; - lab2: do { - // call standard_suffix, line 162 - if (!r_standard_suffix()) - { - break lab2; - } - } while (false); - cursor = limit - v_3; - cursor = limit_backward; // do, line 163 - v_4 = cursor; - lab3: do { - // call postlude, line 163 - if (!r_postlude()) - { - break lab3; - } - } while (false); - cursor = v_4; - return true; - } - -} - Index: contrib/snowball/src/java/net/sf/snowball/ext/GermanStemmer.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/GermanStemmer.java (revision 613440) +++ contrib/snowball/src/java/net/sf/snowball/ext/GermanStemmer.java (working copy) @@ -1,670 +0,0 @@ -// This file was generated automatically by the Snowball to Java compiler - -package net.sf.snowball.ext; -import net.sf.snowball.SnowballProgram; -import net.sf.snowball.Among; - -/** - * Generated class implementing code defined by a snowball script. - */ -public class GermanStemmer extends SnowballProgram { - - private Among a_0[] = { - new Among ( "", -1, 6, "", this), - new Among ( "U", 0, 2, "", this), - new Among ( "Y", 0, 1, "", this), - new Among ( "\u00E4", 0, 3, "", this), - new Among ( "\u00F6", 0, 4, "", this), - new Among ( "\u00FC", 0, 5, "", this) - }; - - private Among a_1[] = { - new Among ( "e", -1, 1, "", this), - new Among ( "em", -1, 1, "", this), - new Among ( "en", -1, 1, "", this), - new Among ( "ern", -1, 1, "", this), - new Among ( "er", -1, 1, "", this), - new Among ( "s", -1, 2, "", this), - new Among ( "es", 5, 1, "", this) - }; - - private Among a_2[] = { - new Among ( "en", -1, 1, "", this), - new Among ( "er", -1, 1, "", this), - new Among ( "st", -1, 2, "", this), - new Among ( "est", 2, 1, "", this) - }; - - private Among a_3[] = { - new Among ( "ig", -1, 1, "", this), - new Among ( "lich", -1, 1, "", this) - }; - - private Among a_4[] = { - new Among ( "end", -1, 1, "", this), - new Among ( "ig", -1, 2, "", this), - new Among ( "ung", -1, 1, "", this), - new Among ( "lich", -1, 3, "", this), - new Among ( "isch", -1, 2, "", this), - new Among ( "ik", -1, 2, "", this), - new Among ( "heit", -1, 3, "", this), - new Among ( "keit", -1, 4, "", this) - }; - - 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, 8 }; - - private static final char g_s_ending[] = {117, 30, 5 }; - - private static final char g_st_ending[] = {117, 30, 4 }; - - private int I_p2; - private int I_p1; - - private void copy_from(GermanStemmer other) { - I_p2 = other.I_p2; - I_p1 = other.I_p1; - super.copy_from(other); - } - - private boolean r_prelude() { - int v_1; - int v_2; - int v_3; - int v_4; - int v_5; - int v_6; - // (, line 28 - // test, line 30 - v_1 = cursor; - // repeat, line 30 - replab0: while(true) - { - v_2 = cursor; - lab1: do { - // (, line 30 - // or, line 33 - lab2: do { - v_3 = cursor; - lab3: do { - // (, line 31 - // [, line 32 - bra = cursor; - // literal, line 32 - if (!(eq_s(1, "\u00DF"))) - { - break lab3; - } - // ], line 32 - ket = cursor; - // <-, line 32 - slice_from("ss"); - break lab2; - } while (false); - cursor = v_3; - // next, line 33 - if (cursor >= limit) - { - break lab1; - } - cursor++; - } while (false); - continue replab0; - } while (false); - cursor = v_2; - break replab0; - } - cursor = v_1; - // repeat, line 36 - replab4: while(true) - { - v_4 = cursor; - lab5: do { - // goto, line 36 - golab6: while(true) - { - v_5 = cursor; - lab7: do { - // (, line 36 - if (!(in_grouping(g_v, 97, 252))) - { - break lab7; - } - // [, line 37 - bra = cursor; - // or, line 37 - lab8: do { - v_6 = cursor; - lab9: do { - // (, line 37 - // literal, line 37 - if (!(eq_s(1, "u"))) - { - break lab9; - } - // ], line 37 - ket = cursor; - if (!(in_grouping(g_v, 97, 252))) - { - break lab9; - } - // <-, line 37 - slice_from("U"); - break lab8; - } while (false); - cursor = v_6; - // (, line 38 - // literal, line 38 - if (!(eq_s(1, "y"))) - { - break lab7; - } - // ], line 38 - ket = cursor; - if (!(in_grouping(g_v, 97, 252))) - { - break lab7; - } - // <-, line 38 - slice_from("Y"); - } while (false); - cursor = v_5; - break golab6; - } while (false); - cursor = v_5; - if (cursor >= limit) - { - break lab5; - } - cursor++; - } - continue replab4; - } while (false); - cursor = v_4; - break replab4; - } - return true; - } - - private boolean r_mark_regions() { - // (, line 42 - I_p1 = limit; - I_p2 = limit; - // gopast, line 47 - golab0: while(true) - { - lab1: do { - if (!(in_grouping(g_v, 97, 252))) - { - break lab1; - } - break golab0; - } while (false); - if (cursor >= limit) - { - return false; - } - cursor++; - } - // gopast, line 47 - golab2: while(true) - { - lab3: do { - if (!(out_grouping(g_v, 97, 252))) - { - break lab3; - } - break golab2; - } while (false); - if (cursor >= limit) - { - return false; - } - cursor++; - } - // setmark p1, line 47 - I_p1 = cursor; - // try, line 48 - lab4: do { - // (, line 48 - if (!(I_p1 < 3)) - { - break lab4; - } - I_p1 = 3; - } while (false); - // gopast, line 49 - golab5: while(true) - { - lab6: do { - if (!(in_grouping(g_v, 97, 252))) - { - break lab6; - } - break golab5; - } while (false); - if (cursor >= limit) - { - return false; - } - cursor++; - } - // gopast, line 49 - golab7: while(true) - { - lab8: do { - if (!(out_grouping(g_v, 97, 252))) - { - break lab8; - } - break golab7; - } while (false); - if (cursor >= limit) - { - return false; - } - cursor++; - } - // setmark p2, line 49 - I_p2 = cursor; - return true; - } - - private boolean r_postlude() { - int among_var; - int v_1; - // repeat, line 53 - replab0: while(true) - { - v_1 = cursor; - lab1: do { - // (, line 53 - // [, line 55 - bra = cursor; - // substring, line 55 - among_var = find_among(a_0, 6); - if (among_var == 0) - { - break lab1; - } - // ], line 55 - ket = cursor; - switch(among_var) { - case 0: - break lab1; - case 1: - // (, line 56 - // <-, line 56 - slice_from("y"); - break; - case 2: - // (, line 57 - // <-, line 57 - slice_from("u"); - break; - case 3: - // (, line 58 - // <-, line 58 - slice_from("a"); - break; - case 4: - // (, line 59 - // <-, line 59 - slice_from("o"); - break; - case 5: - // (, line 60 - // <-, line 60 - slice_from("u"); - break; - case 6: - // (, line 61 - // next, line 61 - if (cursor >= limit) - { - break lab1; - } - cursor++; - break; - } - continue replab0; - } while (false); - cursor = v_1; - break replab0; - } - return true; - } - - private boolean r_R1() { - if (!(I_p1 <= cursor)) - { - return false; - } - return true; - } - - private boolean r_R2() { - if (!(I_p2 <= cursor)) - { - return false; - } - return true; - } - - private boolean r_standard_suffix() { - int among_var; - 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; - // (, line 71 - // do, line 72 - v_1 = limit - cursor; - lab0: do { - // (, line 72 - // [, line 73 - ket = cursor; - // substring, line 73 - among_var = find_among_b(a_1, 7); - if (among_var == 0) - { - break lab0; - } - // ], line 73 - bra = cursor; - // call R1, line 73 - if (!r_R1()) - { - break lab0; - } - switch(among_var) { - case 0: - break lab0; - case 1: - // (, line 75 - // delete, line 75 - slice_del(); - break; - case 2: - // (, line 78 - if (!(in_grouping_b(g_s_ending, 98, 116))) - { - break lab0; - } - // delete, line 78 - slice_del(); - break; - } - } while (false); - cursor = limit - v_1; - // do, line 82 - v_2 = limit - cursor; - lab1: do { - // (, line 82 - // [, line 83 - ket = cursor; - // substring, line 83 - among_var = find_among_b(a_2, 4); - if (among_var == 0) - { - break lab1; - } - // ], line 83 - bra = cursor; - // call R1, line 83 - if (!r_R1()) - { - break lab1; - } - switch(among_var) { - case 0: - break lab1; - case 1: - // (, line 85 - // delete, line 85 - slice_del(); - break; - case 2: - // (, line 88 - if (!(in_grouping_b(g_st_ending, 98, 116))) - { - break lab1; - } - // hop, line 88 - { - int c = cursor - 3; - if (limit_backward > c || c > limit) - { - break lab1; - } - cursor = c; - } - // delete, line 88 - slice_del(); - break; - } - } while (false); - cursor = limit - v_2; - // do, line 92 - v_3 = limit - cursor; - lab2: do { - // (, line 92 - // [, line 93 - ket = cursor; - // substring, line 93 - among_var = find_among_b(a_4, 8); - if (among_var == 0) - { - break lab2; - } - // ], line 93 - bra = cursor; - // call R2, line 93 - if (!r_R2()) - { - break lab2; - } - switch(among_var) { - case 0: - break lab2; - case 1: - // (, line 95 - // delete, line 95 - slice_del(); - // try, line 96 - v_4 = limit - cursor; - lab3: do { - // (, line 96 - // [, line 96 - ket = cursor; - // literal, line 96 - if (!(eq_s_b(2, "ig"))) - { - cursor = limit - v_4; - break lab3; - } - // ], line 96 - bra = cursor; - // not, line 96 - { - v_5 = limit - cursor; - lab4: do { - // literal, line 96 - if (!(eq_s_b(1, "e"))) - { - break lab4; - } - cursor = limit - v_4; - break lab3; - } while (false); - cursor = limit - v_5; - } - // call R2, line 96 - if (!r_R2()) - { - cursor = limit - v_4; - break lab3; - } - // delete, line 96 - slice_del(); - } while (false); - break; - case 2: - // (, line 99 - // not, line 99 - { - v_6 = limit - cursor; - lab5: do { - // literal, line 99 - if (!(eq_s_b(1, "e"))) - { - break lab5; - } - break lab2; - } while (false); - cursor = limit - v_6; - } - // delete, line 99 - slice_del(); - break; - case 3: - // (, line 102 - // delete, line 102 - slice_del(); - // try, line 103 - v_7 = limit - cursor; - lab6: do { - // (, line 103 - // [, line 104 - ket = cursor; - // or, line 104 - lab7: do { - v_8 = limit - cursor; - lab8: do { - // literal, line 104 - if (!(eq_s_b(2, "er"))) - { - break lab8; - } - break lab7; - } while (false); - cursor = limit - v_8; - // literal, line 104 - if (!(eq_s_b(2, "en"))) - { - cursor = limit - v_7; - break lab6; - } - } while (false); - // ], line 104 - bra = cursor; - // call R1, line 104 - if (!r_R1()) - { - cursor = limit - v_7; - break lab6; - } - // delete, line 104 - slice_del(); - } while (false); - break; - case 4: - // (, line 108 - // delete, line 108 - slice_del(); - // try, line 109 - v_9 = limit - cursor; - lab9: do { - // (, line 109 - // [, line 110 - ket = cursor; - // substring, line 110 - among_var = find_among_b(a_3, 2); - if (among_var == 0) - { - cursor = limit - v_9; - break lab9; - } - // ], line 110 - bra = cursor; - // call R2, line 110 - if (!r_R2()) - { - cursor = limit - v_9; - break lab9; - } - switch(among_var) { - case 0: - cursor = limit - v_9; - break lab9; - case 1: - // (, line 112 - // delete, line 112 - slice_del(); - break; - } - } while (false); - break; - } - } while (false); - cursor = limit - v_3; - return true; - } - - public boolean stem() { - int v_1; - int v_2; - int v_3; - int v_4; - // (, line 122 - // do, line 123 - v_1 = cursor; - lab0: do { - // call prelude, line 123 - if (!r_prelude()) - { - break lab0; - } - } while (false); - cursor = v_1; - // do, line 124 - v_2 = cursor; - lab1: do { - // call mark_regions, line 124 - if (!r_mark_regions()) - { - break lab1; - } - } while (false); - cursor = v_2; - // backwards, line 125 - limit_backward = cursor; cursor = limit; - // do, line 126 - v_3 = limit - cursor; - lab2: do { - // call standard_suffix, line 126 - if (!r_standard_suffix()) - { - break lab2; - } - } while (false); - cursor = limit - v_3; - cursor = limit_backward; // do, line 127 - v_4 = cursor; - lab3: do { - // call postlude, line 127 - if (!r_postlude()) - { - break lab3; - } - } while (false); - cursor = v_4; - return true; - } - -} - Index: contrib/snowball/src/java/net/sf/snowball/ext/KpStemmer.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/KpStemmer.java (revision 613440) +++ contrib/snowball/src/java/net/sf/snowball/ext/KpStemmer.java (working copy) @@ -1,2181 +0,0 @@ -// This file was generated automatically by the Snowball to Java compiler - -package net.sf.snowball.ext; -import net.sf.snowball.SnowballProgram; -import net.sf.snowball.Among; - -/** - * Generated class implementing code defined by a snowball script. - */ -public class KpStemmer extends SnowballProgram { - - private Among a_0[] = { - new Among ( "nde", -1, 7, "", this), - new Among ( "en", -1, 6, "", this), - new Among ( "s", -1, 2, "", this), - new Among ( "'s", 2, 1, "", this), - new Among ( "es", 2, 4, "", this), - new Among ( "ies", 4, 3, "", this), - new Among ( "aus", 2, 5, "", this) - }; - - private Among a_1[] = { - new Among ( "de", -1, 5, "", this), - new Among ( "ge", -1, 2, "", this), - new Among ( "ische", -1, 4, "", this), - new Among ( "je", -1, 1, "", this), - new Among ( "lijke", -1, 3, "", this), - new Among ( "le", -1, 9, "", this), - new Among ( "ene", -1, 10, "", this), - new Among ( "re", -1, 8, "", this), - new Among ( "se", -1, 7, "", this), - new Among ( "te", -1, 6, "", this), - new Among ( "ieve", -1, 11, "", this) - }; - - private Among a_2[] = { - new Among ( "heid", -1, 3, "", this), - new Among ( "fie", -1, 7, "", this), - new Among ( "gie", -1, 8, "", this), - new Among ( "atie", -1, 1, "", this), - new Among ( "isme", -1, 5, "", this), - new Among ( "ing", -1, 5, "", this), - new Among ( "arij", -1, 6, "", this), - new Among ( "erij", -1, 5, "", this), - new Among ( "sel", -1, 3, "", this), - new Among ( "rder", -1, 4, "", this), - new Among ( "ster", -1, 3, "", this), - new Among ( "iteit", -1, 2, "", this), - new Among ( "dst", -1, 10, "", this), - new Among ( "tst", -1, 9, "", this) - }; - - private Among a_3[] = { - new Among ( "end", -1, 10, "", this), - new Among ( "atief", -1, 2, "", this), - new Among ( "erig", -1, 10, "", this), - new Among ( "achtig", -1, 9, "", this), - new Among ( "ioneel", -1, 1, "", this), - new Among ( "baar", -1, 3, "", this), - new Among ( "laar", -1, 5, "", this), - new Among ( "naar", -1, 4, "", this), - new Among ( "raar", -1, 6, "", this), - new Among ( "eriger", -1, 10, "", this), - new Among ( "achtiger", -1, 9, "", this), - new Among ( "lijker", -1, 8, "", this), - new Among ( "tant", -1, 7, "", this), - new Among ( "erigst", -1, 10, "", this), - new Among ( "achtigst", -1, 9, "", this), - new Among ( "lijkst", -1, 8, "", this) - }; - - private Among a_4[] = { - new Among ( "ig", -1, 1, "", this), - new Among ( "iger", -1, 1, "", this), - new Among ( "igst", -1, 1, "", this) - }; - - private Among a_5[] = { - new Among ( "ft", -1, 2, "", this), - new Among ( "kt", -1, 1, "", this), - new Among ( "pt", -1, 3, "", this) - }; - - private Among a_6[] = { - new Among ( "bb", -1, 1, "", this), - new Among ( "cc", -1, 2, "", this), - new Among ( "dd", -1, 3, "", this), - new Among ( "ff", -1, 4, "", this), - new Among ( "gg", -1, 5, "", this), - new Among ( "hh", -1, 6, "", this), - new Among ( "jj", -1, 7, "", this), - new Among ( "kk", -1, 8, "", this), - new Among ( "ll", -1, 9, "", this), - new Among ( "mm", -1, 10, "", this), - new Among ( "nn", -1, 11, "", this), - new Among ( "pp", -1, 12, "", this), - new Among ( "qq", -1, 13, "", this), - new Among ( "rr", -1, 14, "", this), - new Among ( "ss", -1, 15, "", this), - new Among ( "tt", -1, 16, "", this), - new Among ( "v", -1, 21, "", this), - new Among ( "vv", 16, 17, "", this), - new Among ( "ww", -1, 18, "", this), - new Among ( "xx", -1, 19, "", this), - new Among ( "z", -1, 22, "", this), - new Among ( "zz", 20, 20, "", this) - }; - - private Among a_7[] = { - new Among ( "d", -1, 1, "", this), - new Among ( "t", -1, 2, "", this) - }; - - private static final char g_v[] = {17, 65, 16, 1 }; - - private static final char g_v_WX[] = {17, 65, 208, 1 }; - - private static final char g_AOU[] = {1, 64, 16 }; - - private static final char g_AIOU[] = {1, 65, 16 }; - - private boolean B_GE_removed; - private boolean B_stemmed; - private boolean B_Y_found; - private int I_p2; - private int I_p1; - private int I_x; - private StringBuffer S_ch = new StringBuffer(); - - private void copy_from(KpStemmer other) { - B_GE_removed = other.B_GE_removed; - B_stemmed = other.B_stemmed; - B_Y_found = other.B_Y_found; - I_p2 = other.I_p2; - I_p1 = other.I_p1; - I_x = other.I_x; - S_ch = other.S_ch; - super.copy_from(other); - } - - private boolean r_R1() { - // (, line 32 - // setmark x, line 32 - I_x = cursor; - if (!(I_x >= I_p1)) - { - return false; - } - return true; - } - - private boolean r_R2() { - // (, line 33 - // setmark x, line 33 - I_x = cursor; - if (!(I_x >= I_p2)) - { - return false; - } - return true; - } - - private boolean r_V() { - int v_1; - int v_2; - // test, line 35 - v_1 = limit - cursor; - // (, line 35 - // or, line 35 - lab0: do { - v_2 = limit - cursor; - lab1: do { - if (!(in_grouping_b(g_v, 97, 121))) - { - break lab1; - } - break lab0; - } while (false); - cursor = limit - v_2; - // literal, line 35 - if (!(eq_s_b(2, "ij"))) - { - return false; - } - } while (false); - cursor = limit - v_1; - return true; - } - - private boolean r_VX() { - int v_1; - int v_2; - // test, line 36 - v_1 = limit - cursor; - // (, line 36 - // next, line 36 - if (cursor <= limit_backward) - { - return false; - } - cursor--; - // or, line 36 - lab0: do { - v_2 = limit - cursor; - lab1: do { - if (!(in_grouping_b(g_v, 97, 121))) - { - break lab1; - } - break lab0; - } while (false); - cursor = limit - v_2; - // literal, line 36 - if (!(eq_s_b(2, "ij"))) - { - return false; - } - } while (false); - cursor = limit - v_1; - return true; - } - - private boolean r_C() { - int v_1; - int v_2; - // test, line 37 - v_1 = limit - cursor; - // (, line 37 - // not, line 37 - { - v_2 = limit - cursor; - lab0: do { - // literal, line 37 - if (!(eq_s_b(2, "ij"))) - { - break lab0; - } - return false; - } while (false); - cursor = limit - v_2; - } - if (!(out_grouping_b(g_v, 97, 121))) - { - return false; - } - cursor = limit - v_1; - return true; - } - - private boolean r_lengthen_V() { - int v_1; - int v_2; - int v_3; - int v_4; - int v_5; - int v_6; - int v_7; - int v_8; - // do, line 39 - v_1 = limit - cursor; - lab0: do { - // (, line 39 - if (!(out_grouping_b(g_v_WX, 97, 121))) - { - break lab0; - } - // [, line 40 - ket = cursor; - // or, line 40 - lab1: do { - v_2 = limit - cursor; - lab2: do { - // (, line 40 - if (!(in_grouping_b(g_AOU, 97, 117))) - { - break lab2; - } - // ], line 40 - bra = cursor; - // test, line 40 - v_3 = limit - cursor; - // (, line 40 - // or, line 40 - lab3: do { - v_4 = limit - cursor; - lab4: do { - if (!(out_grouping_b(g_v, 97, 121))) - { - break lab4; - } - break lab3; - } while (false); - cursor = limit - v_4; - // atlimit, line 40 - if (cursor > limit_backward) - { - break lab2; - } - } while (false); - cursor = limit - v_3; - break lab1; - } while (false); - cursor = limit - v_2; - // (, line 41 - // literal, line 41 - if (!(eq_s_b(1, "e"))) - { - break lab0; - } - // ], line 41 - bra = cursor; - // test, line 41 - v_5 = limit - cursor; - // (, line 41 - // or, line 41 - lab5: do { - v_6 = limit - cursor; - lab6: do { - if (!(out_grouping_b(g_v, 97, 121))) - { - break lab6; - } - break lab5; - } while (false); - cursor = limit - v_6; - // atlimit, line 41 - if (cursor > limit_backward) - { - break lab0; - } - } while (false); - // not, line 42 - { - v_7 = limit - cursor; - lab7: do { - if (!(in_grouping_b(g_AIOU, 97, 117))) - { - break lab7; - } - break lab0; - } while (false); - cursor = limit - v_7; - } - // not, line 43 - { - v_8 = limit - cursor; - lab8: do { - // (, line 43 - // next, line 43 - if (cursor <= limit_backward) - { - break lab8; - } - cursor--; - if (!(in_grouping_b(g_AIOU, 97, 117))) - { - break lab8; - } - if (!(out_grouping_b(g_v, 97, 121))) - { - break lab8; - } - break lab0; - } while (false); - cursor = limit - v_8; - } - cursor = limit - v_5; - } while (false); - // -> ch, line 44 - S_ch = slice_to(S_ch); - // <+ ch, line 44 - { - int c = cursor; - insert(cursor, cursor, S_ch); - cursor = c; - } - } while (false); - cursor = limit - v_1; - return true; - } - - private boolean r_Step_1() { - int among_var; - int v_1; - int v_2; - int v_3; - int v_4; - // (, line 48 - // [, line 49 - ket = cursor; - // among, line 49 - among_var = find_among_b(a_0, 7); - if (among_var == 0) - { - return false; - } - // (, line 49 - // ], line 49 - bra = cursor; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 51 - // delete, line 51 - slice_del(); - break; - case 2: - // (, line 52 - // call R1, line 52 - if (!r_R1()) - { - return false; - } - // not, line 52 - { - v_1 = limit - cursor; - lab0: do { - // (, line 52 - // literal, line 52 - if (!(eq_s_b(1, "t"))) - { - break lab0; - } - // call R1, line 52 - if (!r_R1()) - { - break lab0; - } - return false; - } while (false); - cursor = limit - v_1; - } - // call C, line 52 - if (!r_C()) - { - return false; - } - // delete, line 52 - slice_del(); - break; - case 3: - // (, line 53 - // call R1, line 53 - if (!r_R1()) - { - return false; - } - // <-, line 53 - slice_from("ie"); - break; - case 4: - // (, line 55 - // or, line 55 - lab1: do { - v_2 = limit - cursor; - lab2: do { - // (, line 55 - // literal, line 55 - if (!(eq_s_b(2, "ar"))) - { - break lab2; - } - // call R1, line 55 - if (!r_R1()) - { - break lab2; - } - // call C, line 55 - if (!r_C()) - { - break lab2; - } - // ], line 55 - bra = cursor; - // delete, line 55 - slice_del(); - // call lengthen_V, line 55 - if (!r_lengthen_V()) - { - break lab2; - } - break lab1; - } while (false); - cursor = limit - v_2; - lab3: do { - // (, line 56 - // literal, line 56 - if (!(eq_s_b(2, "er"))) - { - break lab3; - } - // call R1, line 56 - if (!r_R1()) - { - break lab3; - } - // call C, line 56 - if (!r_C()) - { - break lab3; - } - // ], line 56 - bra = cursor; - // delete, line 56 - slice_del(); - break lab1; - } while (false); - cursor = limit - v_2; - // (, line 57 - // call R1, line 57 - if (!r_R1()) - { - return false; - } - // call C, line 57 - if (!r_C()) - { - return false; - } - // <-, line 57 - slice_from("e"); - } while (false); - break; - case 5: - // (, line 59 - // call R1, line 59 - if (!r_R1()) - { - return false; - } - // call V, line 59 - if (!r_V()) - { - return false; - } - // <-, line 59 - slice_from("au"); - break; - case 6: - // (, line 60 - // or, line 60 - lab4: do { - v_3 = limit - cursor; - lab5: do { - // (, line 60 - // literal, line 60 - if (!(eq_s_b(3, "hed"))) - { - break lab5; - } - // call R1, line 60 - if (!r_R1()) - { - break lab5; - } - // ], line 60 - bra = cursor; - // <-, line 60 - slice_from("heid"); - break lab4; - } while (false); - cursor = limit - v_3; - lab6: do { - // (, line 61 - // literal, line 61 - if (!(eq_s_b(2, "nd"))) - { - break lab6; - } - // delete, line 61 - slice_del(); - break lab4; - } while (false); - cursor = limit - v_3; - lab7: do { - // (, line 62 - // literal, line 62 - if (!(eq_s_b(1, "d"))) - { - break lab7; - } - // call R1, line 62 - if (!r_R1()) - { - break lab7; - } - // call C, line 62 - if (!r_C()) - { - break lab7; - } - // ], line 62 - bra = cursor; - // delete, line 62 - slice_del(); - break lab4; - } while (false); - cursor = limit - v_3; - lab8: do { - // (, line 63 - // or, line 63 - lab9: do { - v_4 = limit - cursor; - lab10: do { - // literal, line 63 - if (!(eq_s_b(1, "i"))) - { - break lab10; - } - break lab9; - } while (false); - cursor = limit - v_4; - // literal, line 63 - if (!(eq_s_b(1, "j"))) - { - break lab8; - } - } while (false); - // call V, line 63 - if (!r_V()) - { - break lab8; - } - // delete, line 63 - slice_del(); - break lab4; - } while (false); - cursor = limit - v_3; - // (, line 64 - // call R1, line 64 - if (!r_R1()) - { - return false; - } - // call C, line 64 - if (!r_C()) - { - return false; - } - // delete, line 64 - slice_del(); - // call lengthen_V, line 64 - if (!r_lengthen_V()) - { - return false; - } - } while (false); - break; - case 7: - // (, line 65 - // <-, line 65 - slice_from("nd"); - break; - } - return true; - } - - private boolean r_Step_2() { - int among_var; - int v_1; - // (, line 70 - // [, line 71 - ket = cursor; - // among, line 71 - among_var = find_among_b(a_1, 11); - if (among_var == 0) - { - return false; - } - // (, line 71 - // ], line 71 - bra = cursor; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 72 - // or, line 72 - lab0: do { - v_1 = limit - cursor; - lab1: do { - // (, line 72 - // literal, line 72 - if (!(eq_s_b(2, "'t"))) - { - break lab1; - } - // ], line 72 - bra = cursor; - // delete, line 72 - slice_del(); - break lab0; - } while (false); - cursor = limit - v_1; - lab2: do { - // (, line 73 - // literal, line 73 - if (!(eq_s_b(2, "et"))) - { - break lab2; - } - // ], line 73 - bra = cursor; - // call R1, line 73 - if (!r_R1()) - { - break lab2; - } - // call C, line 73 - if (!r_C()) - { - break lab2; - } - // delete, line 73 - slice_del(); - break lab0; - } while (false); - cursor = limit - v_1; - lab3: do { - // (, line 74 - // literal, line 74 - if (!(eq_s_b(3, "rnt"))) - { - break lab3; - } - // ], line 74 - bra = cursor; - // <-, line 74 - slice_from("rn"); - break lab0; - } while (false); - cursor = limit - v_1; - lab4: do { - // (, line 75 - // literal, line 75 - if (!(eq_s_b(1, "t"))) - { - break lab4; - } - // ], line 75 - bra = cursor; - // call R1, line 75 - if (!r_R1()) - { - break lab4; - } - // call VX, line 75 - if (!r_VX()) - { - break lab4; - } - // delete, line 75 - slice_del(); - break lab0; - } while (false); - cursor = limit - v_1; - lab5: do { - // (, line 76 - // literal, line 76 - if (!(eq_s_b(3, "ink"))) - { - break lab5; - } - // ], line 76 - bra = cursor; - // <-, line 76 - slice_from("ing"); - break lab0; - } while (false); - cursor = limit - v_1; - lab6: do { - // (, line 77 - // literal, line 77 - if (!(eq_s_b(2, "mp"))) - { - break lab6; - } - // ], line 77 - bra = cursor; - // <-, line 77 - slice_from("m"); - break lab0; - } while (false); - cursor = limit - v_1; - lab7: do { - // (, line 78 - // literal, line 78 - if (!(eq_s_b(1, "'"))) - { - break lab7; - } - // ], line 78 - bra = cursor; - // call R1, line 78 - if (!r_R1()) - { - break lab7; - } - // delete, line 78 - slice_del(); - break lab0; - } while (false); - cursor = limit - v_1; - // (, line 79 - // ], line 79 - bra = cursor; - // call R1, line 79 - if (!r_R1()) - { - return false; - } - // call C, line 79 - if (!r_C()) - { - return false; - } - // delete, line 79 - slice_del(); - } while (false); - break; - case 2: - // (, line 80 - // call R1, line 80 - if (!r_R1()) - { - return false; - } - // <-, line 80 - slice_from("g"); - break; - case 3: - // (, line 81 - // call R1, line 81 - if (!r_R1()) - { - return false; - } - // <-, line 81 - slice_from("lijk"); - break; - case 4: - // (, line 82 - // call R1, line 82 - if (!r_R1()) - { - return false; - } - // <-, line 82 - slice_from("isch"); - break; - case 5: - // (, line 83 - // call R1, line 83 - if (!r_R1()) - { - return false; - } - // call C, line 83 - if (!r_C()) - { - return false; - } - // delete, line 83 - slice_del(); - break; - case 6: - // (, line 84 - // call R1, line 84 - if (!r_R1()) - { - return false; - } - // <-, line 84 - slice_from("t"); - break; - case 7: - // (, line 85 - // call R1, line 85 - if (!r_R1()) - { - return false; - } - // <-, line 85 - slice_from("s"); - break; - case 8: - // (, line 86 - // call R1, line 86 - if (!r_R1()) - { - return false; - } - // <-, line 86 - slice_from("r"); - break; - case 9: - // (, line 87 - // call R1, line 87 - if (!r_R1()) - { - return false; - } - // delete, line 87 - slice_del(); - // attach, line 87 - insert(cursor, cursor, "l"); - // call lengthen_V, line 87 - if (!r_lengthen_V()) - { - return false; - } - break; - case 10: - // (, line 88 - // call R1, line 88 - if (!r_R1()) - { - return false; - } - // call C, line 88 - if (!r_C()) - { - return false; - } - // delete, line 88 - slice_del(); - // attach, line 88 - insert(cursor, cursor, "en"); - // call lengthen_V, line 88 - if (!r_lengthen_V()) - { - return false; - } - break; - case 11: - // (, line 89 - // call R1, line 89 - if (!r_R1()) - { - return false; - } - // call C, line 89 - if (!r_C()) - { - return false; - } - // <-, line 89 - slice_from("ief"); - break; - } - return true; - } - - private boolean r_Step_3() { - int among_var; - // (, line 94 - // [, line 95 - ket = cursor; - // among, line 95 - among_var = find_among_b(a_2, 14); - if (among_var == 0) - { - return false; - } - // (, line 95 - // ], line 95 - bra = cursor; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 96 - // call R1, line 96 - if (!r_R1()) - { - return false; - } - // <-, line 96 - slice_from("eer"); - break; - case 2: - // (, line 97 - // call R1, line 97 - if (!r_R1()) - { - return false; - } - // delete, line 97 - slice_del(); - // call lengthen_V, line 97 - if (!r_lengthen_V()) - { - return false; - } - break; - case 3: - // (, line 100 - // call R1, line 100 - if (!r_R1()) - { - return false; - } - // delete, line 100 - slice_del(); - break; - case 4: - // (, line 101 - // <-, line 101 - slice_from("r"); - break; - case 5: - // (, line 104 - // call R1, line 104 - if (!r_R1()) - { - return false; - } - // delete, line 104 - slice_del(); - // call lengthen_V, line 104 - if (!r_lengthen_V()) - { - return false; - } - break; - case 6: - // (, line 105 - // call R1, line 105 - if (!r_R1()) - { - return false; - } - // call C, line 105 - if (!r_C()) - { - return false; - } - // <-, line 105 - slice_from("aar"); - break; - case 7: - // (, line 106 - // call R2, line 106 - if (!r_R2()) - { - return false; - } - // delete, line 106 - slice_del(); - // attach, line 106 - insert(cursor, cursor, "f"); - // call lengthen_V, line 106 - if (!r_lengthen_V()) - { - return false; - } - break; - case 8: - // (, line 107 - // call R2, line 107 - if (!r_R2()) - { - return false; - } - // delete, line 107 - slice_del(); - // attach, line 107 - insert(cursor, cursor, "g"); - // call lengthen_V, line 107 - if (!r_lengthen_V()) - { - return false; - } - break; - case 9: - // (, line 108 - // call R1, line 108 - if (!r_R1()) - { - return false; - } - // call C, line 108 - if (!r_C()) - { - return false; - } - // <-, line 108 - slice_from("t"); - break; - case 10: - // (, line 109 - // call R1, line 109 - if (!r_R1()) - { - return false; - } - // call C, line 109 - if (!r_C()) - { - return false; - } - // <-, line 109 - slice_from("d"); - break; - } - return true; - } - - private boolean r_Step_4() { - int among_var; - int v_1; - // (, line 114 - // or, line 134 - lab0: do { - v_1 = limit - cursor; - lab1: do { - // (, line 115 - // [, line 115 - ket = cursor; - // among, line 115 - among_var = find_among_b(a_3, 16); - if (among_var == 0) - { - break lab1; - } - // (, line 115 - // ], line 115 - bra = cursor; - switch(among_var) { - case 0: - break lab1; - case 1: - // (, line 116 - // call R1, line 116 - if (!r_R1()) - { - break lab1; - } - // <-, line 116 - slice_from("ie"); - break; - case 2: - // (, line 117 - // call R1, line 117 - if (!r_R1()) - { - break lab1; - } - // <-, line 117 - slice_from("eer"); - break; - case 3: - // (, line 118 - // call R1, line 118 - if (!r_R1()) - { - break lab1; - } - // delete, line 118 - slice_del(); - break; - case 4: - // (, line 119 - // call R1, line 119 - if (!r_R1()) - { - break lab1; - } - // call V, line 119 - if (!r_V()) - { - break lab1; - } - // <-, line 119 - slice_from("n"); - break; - case 5: - // (, line 120 - // call R1, line 120 - if (!r_R1()) - { - break lab1; - } - // call V, line 120 - if (!r_V()) - { - break lab1; - } - // <-, line 120 - slice_from("l"); - break; - case 6: - // (, line 121 - // call R1, line 121 - if (!r_R1()) - { - break lab1; - } - // call V, line 121 - if (!r_V()) - { - break lab1; - } - // <-, line 121 - slice_from("r"); - break; - case 7: - // (, line 122 - // call R1, line 122 - if (!r_R1()) - { - break lab1; - } - // <-, line 122 - slice_from("teer"); - break; - case 8: - // (, line 124 - // call R1, line 124 - if (!r_R1()) - { - break lab1; - } - // <-, line 124 - slice_from("lijk"); - break; - case 9: - // (, line 127 - // call R1, line 127 - if (!r_R1()) - { - break lab1; - } - // delete, line 127 - slice_del(); - break; - case 10: - // (, line 131 - // call R1, line 131 - if (!r_R1()) - { - break lab1; - } - // call C, line 131 - if (!r_C()) - { - break lab1; - } - // delete, line 131 - slice_del(); - // call lengthen_V, line 131 - if (!r_lengthen_V()) - { - break lab1; - } - break; - } - break lab0; - } while (false); - cursor = limit - v_1; - // (, line 135 - // [, line 135 - ket = cursor; - // among, line 135 - among_var = find_among_b(a_4, 3); - if (among_var == 0) - { - return false; - } - // (, line 135 - // ], line 135 - bra = cursor; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 138 - // call R1, line 138 - if (!r_R1()) - { - return false; - } - // call C, line 138 - if (!r_C()) - { - return false; - } - // delete, line 138 - slice_del(); - // call lengthen_V, line 138 - if (!r_lengthen_V()) - { - return false; - } - break; - } - } while (false); - return true; - } - - private boolean r_Step_7() { - int among_var; - // (, line 144 - // [, line 145 - ket = cursor; - // among, line 145 - among_var = find_among_b(a_5, 3); - if (among_var == 0) - { - return false; - } - // (, line 145 - // ], line 145 - bra = cursor; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 146 - // <-, line 146 - slice_from("k"); - break; - case 2: - // (, line 147 - // <-, line 147 - slice_from("f"); - break; - case 3: - // (, line 148 - // <-, line 148 - slice_from("p"); - break; - } - return true; - } - - private boolean r_Step_6() { - int among_var; - // (, line 153 - // [, line 154 - ket = cursor; - // among, line 154 - among_var = find_among_b(a_6, 22); - if (among_var == 0) - { - return false; - } - // (, line 154 - // ], line 154 - bra = cursor; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 155 - // <-, line 155 - slice_from("b"); - break; - case 2: - // (, line 156 - // <-, line 156 - slice_from("c"); - break; - case 3: - // (, line 157 - // <-, line 157 - slice_from("d"); - break; - case 4: - // (, line 158 - // <-, line 158 - slice_from("f"); - break; - case 5: - // (, line 159 - // <-, line 159 - slice_from("g"); - break; - case 6: - // (, line 160 - // <-, line 160 - slice_from("h"); - break; - case 7: - // (, line 161 - // <-, line 161 - slice_from("j"); - break; - case 8: - // (, line 162 - // <-, line 162 - slice_from("k"); - break; - case 9: - // (, line 163 - // <-, line 163 - slice_from("l"); - break; - case 10: - // (, line 164 - // <-, line 164 - slice_from("m"); - break; - case 11: - // (, line 165 - // <-, line 165 - slice_from("n"); - break; - case 12: - // (, line 166 - // <-, line 166 - slice_from("p"); - break; - case 13: - // (, line 167 - // <-, line 167 - slice_from("q"); - break; - case 14: - // (, line 168 - // <-, line 168 - slice_from("r"); - break; - case 15: - // (, line 169 - // <-, line 169 - slice_from("s"); - break; - case 16: - // (, line 170 - // <-, line 170 - slice_from("t"); - break; - case 17: - // (, line 171 - // <-, line 171 - slice_from("v"); - break; - case 18: - // (, line 172 - // <-, line 172 - slice_from("w"); - break; - case 19: - // (, line 173 - // <-, line 173 - slice_from("x"); - break; - case 20: - // (, line 174 - // <-, line 174 - slice_from("z"); - break; - case 21: - // (, line 175 - // <-, line 175 - slice_from("f"); - break; - case 22: - // (, line 176 - // <-, line 176 - slice_from("s"); - break; - } - return true; - } - - private boolean r_Step_1c() { - int among_var; - int v_1; - int v_2; - // (, line 181 - // [, line 182 - ket = cursor; - // among, line 182 - among_var = find_among_b(a_7, 2); - if (among_var == 0) - { - return false; - } - // (, line 182 - // ], line 182 - bra = cursor; - // call R1, line 182 - if (!r_R1()) - { - return false; - } - // call C, line 182 - if (!r_C()) - { - return false; - } - switch(among_var) { - case 0: - return false; - case 1: - // (, line 183 - // not, line 183 - { - v_1 = limit - cursor; - lab0: do { - // (, line 183 - // literal, line 183 - if (!(eq_s_b(1, "n"))) - { - break lab0; - } - // call R1, line 183 - if (!r_R1()) - { - break lab0; - } - return false; - } while (false); - cursor = limit - v_1; - } - // delete, line 183 - slice_del(); - break; - case 2: - // (, line 184 - // not, line 184 - { - v_2 = limit - cursor; - lab1: do { - // (, line 184 - // literal, line 184 - if (!(eq_s_b(1, "h"))) - { - break lab1; - } - // call R1, line 184 - if (!r_R1()) - { - break lab1; - } - return false; - } while (false); - cursor = limit - v_2; - } - // delete, line 184 - slice_del(); - break; - } - return true; - } - - private boolean r_Lose_prefix() { - int v_1; - int v_2; - int v_3; - // (, line 189 - // [, line 190 - bra = cursor; - // literal, line 190 - if (!(eq_s(2, "ge"))) - { - return false; - } - // ], line 190 - ket = cursor; - // test, line 190 - v_1 = cursor; - // hop, line 190 - { - int c = cursor + 3; - if (0 > c || c > limit) - { - return false; - } - cursor = c; - } - cursor = v_1; - // (, line 190 - // goto, line 190 - golab0: while(true) - { - v_2 = cursor; - lab1: do { - if (!(in_grouping(g_v, 97, 121))) - { - break lab1; - } - cursor = v_2; - break golab0; - } while (false); - cursor = v_2; - if (cursor >= limit) - { - return false; - } - cursor++; - } - // goto, line 190 - golab2: while(true) - { - v_3 = cursor; - lab3: do { - if (!(out_grouping(g_v, 97, 121))) - { - break lab3; - } - cursor = v_3; - break golab2; - } while (false); - cursor = v_3; - if (cursor >= limit) - { - return false; - } - cursor++; - } - // set GE_removed, line 191 - B_GE_removed = true; - // delete, line 192 - slice_del(); - return true; - } - - private boolean r_Lose_infix() { - int v_2; - int v_3; - int v_4; - // (, line 195 - // next, line 196 - if (cursor >= limit) - { - return false; - } - cursor++; - // gopast, line 197 - golab0: while(true) - { - lab1: do { - // (, line 197 - // [, line 197 - bra = cursor; - // literal, line 197 - if (!(eq_s(2, "ge"))) - { - break lab1; - } - // ], line 197 - ket = cursor; - break golab0; - } while (false); - if (cursor >= limit) - { - return false; - } - cursor++; - } - // test, line 197 - v_2 = cursor; - // hop, line 197 - { - int c = cursor + 3; - if (0 > c || c > limit) - { - return false; - } - cursor = c; - } - cursor = v_2; - // (, line 197 - // goto, line 197 - golab2: while(true) - { - v_3 = cursor; - lab3: do { - if (!(in_grouping(g_v, 97, 121))) - { - break lab3; - } - cursor = v_3; - break golab2; - } while (false); - cursor = v_3; - if (cursor >= limit) - { - return false; - } - cursor++; - } - // goto, line 197 - golab4: while(true) - { - v_4 = cursor; - lab5: do { - if (!(out_grouping(g_v, 97, 121))) - { - break lab5; - } - cursor = v_4; - break golab4; - } while (false); - cursor = v_4; - if (cursor >= limit) - { - return false; - } - cursor++; - } - // set GE_removed, line 198 - B_GE_removed = true; - // delete, line 199 - slice_del(); - return true; - } - - private boolean r_measure() { - int v_1; - int v_2; - int v_5; - int v_6; - int v_9; - int v_10; - // (, line 202 - // do, line 203 - v_1 = cursor; - lab0: do { - // (, line 203 - // tolimit, line 204 - cursor = limit; - // setmark p1, line 205 - I_p1 = cursor; - // setmark p2, line 206 - I_p2 = cursor; - } while (false); - cursor = v_1; - // do, line 208 - v_2 = cursor; - lab1: do { - // (, line 208 - // repeat, line 209 - replab2: while(true) - { - lab3: do { - if (!(out_grouping(g_v, 97, 121))) - { - break lab3; - } - continue replab2; - } while (false); - break replab2; - } - // atleast, line 209 - { - int v_4 = 1; - // atleast, line 209 - replab4: while(true) - { - v_5 = cursor; - lab5: do { - // (, line 209 - // or, line 209 - lab6: do { - v_6 = cursor; - lab7: do { - // literal, line 209 - if (!(eq_s(2, "ij"))) - { - break lab7; - } - break lab6; - } while (false); - cursor = v_6; - if (!(in_grouping(g_v, 97, 121))) - { - break lab5; - } - } while (false); - v_4--; - continue replab4; - } while (false); - cursor = v_5; - break replab4; - } - if (v_4 > 0) - { - break lab1; - } - } - if (!(out_grouping(g_v, 97, 121))) - { - break lab1; - } - // setmark p1, line 209 - I_p1 = cursor; - // repeat, line 210 - replab8: while(true) - { - lab9: do { - if (!(out_grouping(g_v, 97, 121))) - { - break lab9; - } - continue replab8; - } while (false); - break replab8; - } - // atleast, line 210 - { - int v_8 = 1; - // atleast, line 210 - replab10: while(true) - { - v_9 = cursor; - lab11: do { - // (, line 210 - // or, line 210 - lab12: do { - v_10 = cursor; - lab13: do { - // literal, line 210 - if (!(eq_s(2, "ij"))) - { - break lab13; - } - break lab12; - } while (false); - cursor = v_10; - if (!(in_grouping(g_v, 97, 121))) - { - break lab11; - } - } while (false); - v_8--; - continue replab10; - } while (false); - cursor = v_9; - break replab10; - } - if (v_8 > 0) - { - break lab1; - } - } - if (!(out_grouping(g_v, 97, 121))) - { - break lab1; - } - // setmark p2, line 210 - I_p2 = cursor; - } while (false); - cursor = v_2; - 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; - int v_11; - int v_12; - int v_13; - int v_14; - int v_15; - int v_16; - int v_18; - int v_19; - int v_20; - // (, line 214 - // unset Y_found, line 216 - B_Y_found = false; - // unset stemmed, line 217 - B_stemmed = false; - // do, line 218 - v_1 = cursor; - lab0: do { - // (, line 218 - // [, line 218 - bra = cursor; - // literal, line 218 - if (!(eq_s(1, "y"))) - { - break lab0; - } - // ], line 218 - ket = cursor; - // <-, line 218 - slice_from("Y"); - // set Y_found, line 218 - B_Y_found = true; - } while (false); - cursor = v_1; - // do, line 219 - v_2 = cursor; - lab1: do { - // repeat, line 219 - replab2: while(true) - { - v_3 = cursor; - lab3: do { - // (, line 219 - // goto, line 219 - golab4: while(true) - { - v_4 = cursor; - lab5: do { - // (, line 219 - if (!(in_grouping(g_v, 97, 121))) - { - break lab5; - } - // [, line 219 - bra = cursor; - // literal, line 219 - if (!(eq_s(1, "y"))) - { - break lab5; - } - // ], line 219 - ket = cursor; - cursor = v_4; - break golab4; - } while (false); - cursor = v_4; - if (cursor >= limit) - { - break lab3; - } - cursor++; - } - // <-, line 219 - slice_from("Y"); - // set Y_found, line 219 - B_Y_found = true; - continue replab2; - } while (false); - cursor = v_3; - break replab2; - } - } while (false); - cursor = v_2; - // call measure, line 221 - if (!r_measure()) - { - return false; - } - // backwards, line 223 - limit_backward = cursor; cursor = limit; - // (, line 223 - // do, line 224 - v_5 = limit - cursor; - lab6: do { - // (, line 224 - // call Step_1, line 224 - if (!r_Step_1()) - { - break lab6; - } - // set stemmed, line 224 - B_stemmed = true; - } while (false); - cursor = limit - v_5; - // do, line 225 - v_6 = limit - cursor; - lab7: do { - // (, line 225 - // call Step_2, line 225 - if (!r_Step_2()) - { - break lab7; - } - // set stemmed, line 225 - B_stemmed = true; - } while (false); - cursor = limit - v_6; - // do, line 226 - v_7 = limit - cursor; - lab8: do { - // (, line 226 - // call Step_3, line 226 - if (!r_Step_3()) - { - break lab8; - } - // set stemmed, line 226 - B_stemmed = true; - } while (false); - cursor = limit - v_7; - // do, line 227 - v_8 = limit - cursor; - lab9: do { - // (, line 227 - // call Step_4, line 227 - if (!r_Step_4()) - { - break lab9; - } - // set stemmed, line 227 - B_stemmed = true; - } while (false); - cursor = limit - v_8; - cursor = limit_backward; // unset GE_removed, line 229 - B_GE_removed = false; - // do, line 230 - v_9 = cursor; - lab10: do { - // (, line 230 - // and, line 230 - v_10 = cursor; - // call Lose_prefix, line 230 - if (!r_Lose_prefix()) - { - break lab10; - } - cursor = v_10; - // call measure, line 230 - if (!r_measure()) - { - break lab10; - } - } while (false); - cursor = v_9; - // backwards, line 231 - limit_backward = cursor; cursor = limit; - // (, line 231 - // do, line 232 - v_11 = limit - cursor; - lab11: do { - // (, line 232 - // Boolean test GE_removed, line 232 - if (!(B_GE_removed)) - { - break lab11; - } - // call Step_1c, line 232 - if (!r_Step_1c()) - { - break lab11; - } - } while (false); - cursor = limit - v_11; - cursor = limit_backward; // unset GE_removed, line 234 - B_GE_removed = false; - // do, line 235 - v_12 = cursor; - lab12: do { - // (, line 235 - // and, line 235 - v_13 = cursor; - // call Lose_infix, line 235 - if (!r_Lose_infix()) - { - break lab12; - } - cursor = v_13; - // call measure, line 235 - if (!r_measure()) - { - break lab12; - } - } while (false); - cursor = v_12; - // backwards, line 236 - limit_backward = cursor; cursor = limit; - // (, line 236 - // do, line 237 - v_14 = limit - cursor; - lab13: do { - // (, line 237 - // Boolean test GE_removed, line 237 - if (!(B_GE_removed)) - { - break lab13; - } - // call Step_1c, line 237 - if (!r_Step_1c()) - { - break lab13; - } - } while (false); - cursor = limit - v_14; - cursor = limit_backward; // backwards, line 239 - limit_backward = cursor; cursor = limit; - // (, line 239 - // do, line 240 - v_15 = limit - cursor; - lab14: do { - // (, line 240 - // call Step_7, line 240 - if (!r_Step_7()) - { - break lab14; - } - // set stemmed, line 240 - B_stemmed = true; - } while (false); - cursor = limit - v_15; - // do, line 241 - v_16 = limit - cursor; - lab15: do { - // (, line 241 - // or, line 241 - lab16: do { - lab17: do { - // Boolean test stemmed, line 241 - if (!(B_stemmed)) - { - break lab17; - } - break lab16; - } while (false); - // Boolean test GE_removed, line 241 - if (!(B_GE_removed)) - { - break lab15; - } - } while (false); - // call Step_6, line 241 - if (!r_Step_6()) - { - break lab15; - } - } while (false); - cursor = limit - v_16; - cursor = limit_backward; // do, line 243 - v_18 = cursor; - lab18: do { - // (, line 243 - // Boolean test Y_found, line 243 - if (!(B_Y_found)) - { - break lab18; - } - // repeat, line 243 - replab19: while(true) - { - v_19 = cursor; - lab20: do { - // (, line 243 - // goto, line 243 - golab21: while(true) - { - v_20 = cursor; - lab22: do { - // (, line 243 - // [, line 243 - bra = cursor; - // literal, line 243 - if (!(eq_s(1, "Y"))) - { - break lab22; - } - // ], line 243 - ket = cursor; - cursor = v_20; - break golab21; - } while (false); - cursor = v_20; - if (cursor >= limit) - { - break lab20; - } - cursor++; - } - // <-, line 243 - slice_from("y"); - continue replab19; - } while (false); - cursor = v_19; - break replab19; - } - } while (false); - cursor = v_18; - return true; - } - -} - Index: contrib/snowball/src/java/net/sf/snowball/ext/LovinsStemmer.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/LovinsStemmer.java (revision 613440) +++ contrib/snowball/src/java/net/sf/snowball/ext/LovinsStemmer.java (working copy) @@ -1,1908 +0,0 @@ -// This file was generated automatically by the Snowball to Java compiler - -package net.sf.snowball.ext; -import net.sf.snowball.SnowballProgram; -import net.sf.snowball.Among; - -/** - * Generated class implementing code defined by a snowball script. - */ -public class LovinsStemmer extends SnowballProgram { - - private Among a_0[] = { - new Among ( "d", -1, -1, "", this), - new Among ( "f", -1, -1, "", this), - new Among ( "ph", -1, -1, "", this), - new Among ( "th", -1, -1, "", this), - new Among ( "l", -1, -1, "", this), - new Among ( "er", -1, -1, "", this), - new Among ( "or", -1, -1, "", this), - new Among ( "es", -1, -1, "", this), - new Among ( "t", -1, -1, "", this) - }; - - private Among a_1[] = { - new Among ( "s'", -1, 1, "r_A", this), - new Among ( "a", -1, 1, "r_A", this), - new Among ( "ia", 1, 1, "r_A", this), - new Among ( "ata", 1, 1, "r_A", this), - new Among ( "ic", -1, 1, "r_A", this), - new Among ( "aic", 4, 1, "r_A", this), - new Among ( "allic", 4, 1, "r_BB", this), - new Among ( "aric", 4, 1, "r_A", this), - new Among ( "atic", 4, 1, "r_B", this), - new Among ( "itic", 4, 1, "r_H", this), - new Among ( "antic", 4, 1, "r_C", this), - new Among ( "istic", 4, 1, "r_A", this), - new Among ( "alistic", 11, 1, "r_B", this), - new Among ( "aristic", 11, 1, "r_A", this), - new Among ( "ivistic", 11, 1, "r_A", this), - new Among ( "ed", -1, 1, "r_E", this), - new Among ( "anced", 15, 1, "r_B", this), - new Among ( "enced", 15, 1, "r_A", this), - new Among ( "ished", 15, 1, "r_A", this), - new Among ( "ied", 15, 1, "r_A", this), - new Among ( "ened", 15, 1, "r_E", this), - new Among ( "ioned", 15, 1, "r_A", this), - new Among ( "ated", 15, 1, "r_I", this), - new Among ( "ented", 15, 1, "r_C", this), - new Among ( "ized", 15, 1, "r_F", this), - new Among ( "arized", 24, 1, "r_A", this), - new Among ( "oid", -1, 1, "r_A", this), - new Among ( "aroid", 26, 1, "r_A", this), - new Among ( "hood", -1, 1, "r_A", this), - new Among ( "ehood", 28, 1, "r_A", this), - new Among ( "ihood", 28, 1, "r_A", this), - new Among ( "elihood", 30, 1, "r_E", this), - new Among ( "ward", -1, 1, "r_A", this), - new Among ( "e", -1, 1, "r_A", this), - new Among ( "ae", 33, 1, "r_A", this), - new Among ( "ance", 33, 1, "r_B", this), - new Among ( "icance", 35, 1, "r_A", this), - new Among ( "ence", 33, 1, "r_A", this), - new Among ( "ide", 33, 1, "r_L", this), - new Among ( "icide", 38, 1, "r_A", this), - new Among ( "otide", 38, 1, "r_A", this), - new Among ( "age", 33, 1, "r_B", this), - new Among ( "able", 33, 1, "r_A", this), - new Among ( "atable", 42, 1, "r_A", this), - new Among ( "izable", 42, 1, "r_E", this), - new Among ( "arizable", 44, 1, "r_A", this), - new Among ( "ible", 33, 1, "r_A", this), - new Among ( "encible", 46, 1, "r_A", this), - new Among ( "ene", 33, 1, "r_E", this), - new Among ( "ine", 33, 1, "r_M", this), - new Among ( "idine", 49, 1, "r_I", this), - new Among ( "one", 33, 1, "r_R", this), - new Among ( "ature", 33, 1, "r_E", this), - new Among ( "eature", 52, 1, "r_Z", this), - new Among ( "ese", 33, 1, "r_A", this), - new Among ( "wise", 33, 1, "r_A", this), - new Among ( "ate", 33, 1, "r_A", this), - new Among ( "entiate", 56, 1, "r_A", this), - new Among ( "inate", 56, 1, "r_A", this), - new Among ( "ionate", 56, 1, "r_D", this), - new Among ( "ite", 33, 1, "r_AA", this), - new Among ( "ive", 33, 1, "r_A", this), - new Among ( "ative", 61, 1, "r_A", this), - new Among ( "ize", 33, 1, "r_F", this), - new Among ( "alize", 63, 1, "r_A", this), - new Among ( "icalize", 64, 1, "r_A", this), - new Among ( "ialize", 64, 1, "r_A", this), - new Among ( "entialize", 66, 1, "r_A", this), - new Among ( "ionalize", 64, 1, "r_A", this), - new Among ( "arize", 63, 1, "r_A", this), - new Among ( "ing", -1, 1, "r_N", this), - new Among ( "ancing", 70, 1, "r_B", this), - new Among ( "encing", 70, 1, "r_A", this), - new Among ( "aging", 70, 1, "r_B", this), - new Among ( "ening", 70, 1, "r_E", this), - new Among ( "ioning", 70, 1, "r_A", this), - new Among ( "ating", 70, 1, "r_I", this), - new Among ( "enting", 70, 1, "r_C", this), - new Among ( "ying", 70, 1, "r_B", this), - new Among ( "izing", 70, 1, "r_F", this), - new Among ( "arizing", 79, 1, "r_A", this), - new Among ( "ish", -1, 1, "r_C", this), - new Among ( "yish", 81, 1, "r_A", this), - new Among ( "i", -1, 1, "r_A", this), - new Among ( "al", -1, 1, "r_BB", this), - new Among ( "ical", 84, 1, "r_A", this), - new Among ( "aical", 85, 1, "r_A", this), - new Among ( "istical", 85, 1, "r_A", this), - new Among ( "oidal", 84, 1, "r_A", this), - new Among ( "eal", 84, 1, "r_Y", this), - new Among ( "ial", 84, 1, "r_A", this), - new Among ( "ancial", 90, 1, "r_A", this), - new Among ( "arial", 90, 1, "r_A", this), - new Among ( "ential", 90, 1, "r_A", this), - new Among ( "ional", 84, 1, "r_A", this), - new Among ( "ational", 94, 1, "r_B", this), - new Among ( "izational", 95, 1, "r_A", this), - new Among ( "ental", 84, 1, "r_A", this), - new Among ( "ful", -1, 1, "r_A", this), - new Among ( "eful", 98, 1, "r_A", this), - new Among ( "iful", 98, 1, "r_A", this), - new Among ( "yl", -1, 1, "r_R", this), - new Among ( "ism", -1, 1, "r_B", this), - new Among ( "icism", 102, 1, "r_A", this), - new Among ( "oidism", 102, 1, "r_A", this), - new Among ( "alism", 102, 1, "r_B", this), - new Among ( "icalism", 105, 1, "r_A", this), - new Among ( "ionalism", 105, 1, "r_A", this), - new Among ( "inism", 102, 1, "r_J", this), - new Among ( "ativism", 102, 1, "r_A", this), - new Among ( "um", -1, 1, "r_U", this), - new Among ( "ium", 110, 1, "r_A", this), - new Among ( "ian", -1, 1, "r_A", this), - new Among ( "ician", 112, 1, "r_A", this), - new Among ( "en", -1, 1, "r_F", this), - new Among ( "ogen", 114, 1, "r_A", this), - new Among ( "on", -1, 1, "r_S", this), - new Among ( "ion", 116, 1, "r_Q", this), - new Among ( "ation", 117, 1, "r_B", this), - new Among ( "ication", 118, 1, "r_G", this), - new Among ( "entiation", 118, 1, "r_A", this), - new Among ( "ination", 118, 1, "r_A", this), - new Among ( "isation", 118, 1, "r_A", this), - new Among ( "arisation", 122, 1, "r_A", this), - new Among ( "entation", 118, 1, "r_A", this), - new Among ( "ization", 118, 1, "r_F", this), - new Among ( "arization", 125, 1, "r_A", this), - new Among ( "action", 117, 1, "r_G", this), - new Among ( "o", -1, 1, "r_A", this), - new Among ( "ar", -1, 1, "r_X", this), - new Among ( "ear", 129, 1, "r_Y", this), - new Among ( "ier", -1, 1, "r_A", this), - new Among ( "ariser", -1, 1, "r_A", this), - new Among ( "izer", -1, 1, "r_F", this), - new Among ( "arizer", 133, 1, "r_A", this), - new Among ( "or", -1, 1, "r_T", this), - new Among ( "ator", 135, 1, "r_A", this), - new Among ( "s", -1, 1, "r_W", this), - new Among ( "'s", 137, 1, "r_A", this), - new Among ( "as", 137, 1, "r_B", this), - new Among ( "ics", 137, 1, "r_A", this), - new Among ( "istics", 140, 1, "r_A", this), - new Among ( "es", 137, 1, "r_E", this), - new Among ( "ances", 142, 1, "r_B", this), - new Among ( "ences", 142, 1, "r_A", this), - new Among ( "ides", 142, 1, "r_L", this), - new Among ( "oides", 145, 1, "r_A", this), - new Among ( "ages", 142, 1, "r_B", this), - new Among ( "ies", 142, 1, "r_P", this), - new Among ( "acies", 148, 1, "r_A", this), - new Among ( "ancies", 148, 1, "r_A", this), - new Among ( "encies", 148, 1, "r_A", this), - new Among ( "aries", 148, 1, "r_A", this), - new Among ( "ities", 148, 1, "r_A", this), - new Among ( "alities", 153, 1, "r_A", this), - new Among ( "ivities", 153, 1, "r_A", this), - new Among ( "ines", 142, 1, "r_M", this), - new Among ( "nesses", 142, 1, "r_A", this), - new Among ( "ates", 142, 1, "r_A", this), - new Among ( "atives", 142, 1, "r_A", this), - new Among ( "ings", 137, 1, "r_N", this), - new Among ( "is", 137, 1, "r_A", this), - new Among ( "als", 137, 1, "r_BB", this), - new Among ( "ials", 162, 1, "r_A", this), - new Among ( "entials", 163, 1, "r_A", this), - new Among ( "ionals", 162, 1, "r_A", this), - new Among ( "isms", 137, 1, "r_B", this), - new Among ( "ians", 137, 1, "r_A", this), - new Among ( "icians", 167, 1, "r_A", this), - new Among ( "ions", 137, 1, "r_B", this), - new Among ( "ations", 169, 1, "r_B", this), - new Among ( "arisations", 170, 1, "r_A", this), - new Among ( "entations", 170, 1, "r_A", this), - new Among ( "izations", 170, 1, "r_A", this), - new Among ( "arizations", 173, 1, "r_A", this), - new Among ( "ars", 137, 1, "r_O", this), - new Among ( "iers", 137, 1, "r_A", this), - new Among ( "izers", 137, 1, "r_F", this), - new Among ( "ators", 137, 1, "r_A", this), - new Among ( "less", 137, 1, "r_A", this), - new Among ( "eless", 179, 1, "r_A", this), - new Among ( "ness", 137, 1, "r_A", this), - new Among ( "eness", 181, 1, "r_E", this), - new Among ( "ableness", 182, 1, "r_A", this), - new Among ( "eableness", 183, 1, "r_E", this), - new Among ( "ibleness", 182, 1, "r_A", this), - new Among ( "ateness", 182, 1, "r_A", this), - new Among ( "iteness", 182, 1, "r_A", this), - new Among ( "iveness", 182, 1, "r_A", this), - new Among ( "ativeness", 188, 1, "r_A", this), - new Among ( "ingness", 181, 1, "r_A", this), - new Among ( "ishness", 181, 1, "r_A", this), - new Among ( "iness", 181, 1, "r_A", this), - new Among ( "ariness", 192, 1, "r_E", this), - new Among ( "alness", 181, 1, "r_A", this), - new Among ( "icalness", 194, 1, "r_A", this), - new Among ( "antialness", 194, 1, "r_A", this), - new Among ( "entialness", 194, 1, "r_A", this), - new Among ( "ionalness", 194, 1, "r_A", this), - new Among ( "fulness", 181, 1, "r_A", this), - new Among ( "lessness", 181, 1, "r_A", this), - new Among ( "ousness", 181, 1, "r_A", this), - new Among ( "eousness", 201, 1, "r_A", this), - new Among ( "iousness", 201, 1, "r_A", this), - new Among ( "itousness", 201, 1, "r_A", this), - new Among ( "entness", 181, 1, "r_A", this), - new Among ( "ants", 137, 1, "r_B", this), - new Among ( "ists", 137, 1, "r_A", this), - new Among ( "icists", 207, 1, "r_A", this), - new Among ( "us", 137, 1, "r_V", this), - new Among ( "ous", 209, 1, "r_A", this), - new Among ( "eous", 210, 1, "r_A", this), - new Among ( "aceous", 211, 1, "r_A", this), - new Among ( "antaneous", 211, 1, "r_A", this), - new Among ( "ious", 210, 1, "r_A", this), - new Among ( "acious", 214, 1, "r_B", this), - new Among ( "itous", 210, 1, "r_A", this), - new Among ( "ant", -1, 1, "r_B", this), - new Among ( "icant", 217, 1, "r_A", this), - new Among ( "ent", -1, 1, "r_C", this), - new Among ( "ement", 219, 1, "r_A", this), - new Among ( "izement", 220, 1, "r_A", this), - new Among ( "ist", -1, 1, "r_A", this), - new Among ( "icist", 222, 1, "r_A", this), - new Among ( "alist", 222, 1, "r_A", this), - new Among ( "icalist", 224, 1, "r_A", this), - new Among ( "ialist", 224, 1, "r_A", this), - new Among ( "ionist", 222, 1, "r_A", this), - new Among ( "entist", 222, 1, "r_A", this), - new Among ( "y", -1, 1, "r_B", this), - new Among ( "acy", 229, 1, "r_A", this), - new Among ( "ancy", 229, 1, "r_B", this), - new Among ( "ency", 229, 1, "r_A", this), - new Among ( "ly", 229, 1, "r_B", this), - new Among ( "ealy", 233, 1, "r_Y", this), - new Among ( "ably", 233, 1, "r_A", this), - new Among ( "ibly", 233, 1, "r_A", this), - new Among ( "edly", 233, 1, "r_E", this), - new Among ( "iedly", 237, 1, "r_A", this), - new Among ( "ely", 233, 1, "r_E", this), - new Among ( "ately", 239, 1, "r_A", this), - new Among ( "ively", 239, 1, "r_A", this), - new Among ( "atively", 241, 1, "r_A", this), - new Among ( "ingly", 233, 1, "r_B", this), - new Among ( "atingly", 243, 1, "r_A", this), - new Among ( "ily", 233, 1, "r_A", this), - new Among ( "lily", 245, 1, "r_A", this), - new Among ( "arily", 245, 1, "r_A", this), - new Among ( "ally", 233, 1, "r_B", this), - new Among ( "ically", 248, 1, "r_A", this), - new Among ( "aically", 249, 1, "r_A", this), - new Among ( "allically", 249, 1, "r_C", this), - new Among ( "istically", 249, 1, "r_A", this), - new Among ( "alistically", 252, 1, "r_B", this), - new Among ( "oidally", 248, 1, "r_A", this), - new Among ( "ially", 248, 1, "r_A", this), - new Among ( "entially", 255, 1, "r_A", this), - new Among ( "ionally", 248, 1, "r_A", this), - new Among ( "ationally", 257, 1, "r_B", this), - new Among ( "izationally", 258, 1, "r_B", this), - new Among ( "entally", 248, 1, "r_A", this), - new Among ( "fully", 233, 1, "r_A", this), - new Among ( "efully", 261, 1, "r_A", this), - new Among ( "ifully", 261, 1, "r_A", this), - new Among ( "enly", 233, 1, "r_E", this), - new Among ( "arly", 233, 1, "r_K", this), - new Among ( "early", 265, 1, "r_Y", this), - new Among ( "lessly", 233, 1, "r_A", this), - new Among ( "ously", 233, 1, "r_A", this), - new Among ( "eously", 268, 1, "r_A", this), - new Among ( "iously", 268, 1, "r_A", this), - new Among ( "ently", 233, 1, "r_A", this), - new Among ( "ary", 229, 1, "r_F", this), - new Among ( "ery", 229, 1, "r_E", this), - new Among ( "icianry", 229, 1, "r_A", this), - new Among ( "atory", 229, 1, "r_A", this), - new Among ( "ity", 229, 1, "r_A", this), - new Among ( "acity", 276, 1, "r_A", this), - new Among ( "icity", 276, 1, "r_A", this), - new Among ( "eity", 276, 1, "r_A", this), - new Among ( "ality", 276, 1, "r_A", this), - new Among ( "icality", 280, 1, "r_A", this), - new Among ( "iality", 280, 1, "r_A", this), - new Among ( "antiality", 282, 1, "r_A", this), - new Among ( "entiality", 282, 1, "r_A", this), - new Among ( "ionality", 280, 1, "r_A", this), - new Among ( "elity", 276, 1, "r_A", this), - new Among ( "ability", 276, 1, "r_A", this), - new Among ( "izability", 287, 1, "r_A", this), - new Among ( "arizability", 288, 1, "r_A", this), - new Among ( "ibility", 276, 1, "r_A", this), - new Among ( "inity", 276, 1, "r_CC", this), - new Among ( "arity", 276, 1, "r_B", this), - new Among ( "ivity", 276, 1, "r_A", this) - }; - - private Among a_2[] = { - new Among ( "bb", -1, -1, "", this), - new Among ( "dd", -1, -1, "", this), - new Among ( "gg", -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 ( "ss", -1, -1, "", this), - new Among ( "tt", -1, -1, "", this) - }; - - private Among a_3[] = { - new Among ( "uad", -1, 18, "", this), - new Among ( "vad", -1, 19, "", this), - new Among ( "cid", -1, 20, "", this), - new Among ( "lid", -1, 21, "", this), - new Among ( "erid", -1, 22, "", this), - new Among ( "pand", -1, 23, "", this), - new Among ( "end", -1, 24, "", this), - new Among ( "ond", -1, 25, "", this), - new Among ( "lud", -1, 26, "", this), - new Among ( "rud", -1, 27, "", this), - new Among ( "ul", -1, 9, "", this), - new Among ( "her", -1, 28, "", this), - new Among ( "metr", -1, 7, "", this), - new Among ( "istr", -1, 6, "", this), - new Among ( "urs", -1, 5, "", this), - new Among ( "uct", -1, 2, "", this), - new Among ( "et", -1, 32, "", this), - new Among ( "mit", -1, 29, "", this), - new Among ( "ent", -1, 30, "", this), - new Among ( "umpt", -1, 3, "", this), - new Among ( "rpt", -1, 4, "", this), - new Among ( "ert", -1, 31, "", this), - new Among ( "yt", -1, 33, "", this), - new Among ( "iev", -1, 1, "", this), - new Among ( "olv", -1, 8, "", this), - new Among ( "ax", -1, 14, "", this), - new Among ( "ex", -1, 15, "", this), - new Among ( "bex", 26, 10, "", this), - new Among ( "dex", 26, 11, "", this), - new Among ( "pex", 26, 12, "", this), - new Among ( "tex", 26, 13, "", this), - new Among ( "ix", -1, 16, "", this), - new Among ( "lux", -1, 17, "", this), - new Among ( "yz", -1, 34, "", this) - }; - - - private void copy_from(LovinsStemmer other) { - super.copy_from(other); - } - - private boolean r_A() { - // (, line 21 - // hop, line 21 - { - int c = cursor - 2; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - return true; - } - - private boolean r_B() { - // (, line 22 - // hop, line 22 - { - int c = cursor - 3; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - return true; - } - - private boolean r_C() { - // (, line 23 - // hop, line 23 - { - int c = cursor - 4; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - return true; - } - - private boolean r_D() { - // (, line 24 - // hop, line 24 - { - int c = cursor - 5; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - return true; - } - - private boolean r_E() { - int v_1; - int v_2; - // (, line 25 - // test, line 25 - v_1 = limit - cursor; - // hop, line 25 - { - int c = cursor - 2; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - cursor = limit - v_1; - // not, line 25 - { - v_2 = limit - cursor; - lab0: do { - // literal, line 25 - if (!(eq_s_b(1, "e"))) - { - break lab0; - } - return false; - } while (false); - cursor = limit - v_2; - } - return true; - } - - private boolean r_F() { - int v_1; - int v_2; - // (, line 26 - // test, line 26 - v_1 = limit - cursor; - // hop, line 26 - { - int c = cursor - 3; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - cursor = limit - v_1; - // not, line 26 - { - v_2 = limit - cursor; - lab0: do { - // literal, line 26 - if (!(eq_s_b(1, "e"))) - { - break lab0; - } - return false; - } while (false); - cursor = limit - v_2; - } - return true; - } - - private boolean r_G() { - int v_1; - // (, line 27 - // test, line 27 - v_1 = limit - cursor; - // hop, line 27 - { - int c = cursor - 3; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - cursor = limit - v_1; - // literal, line 27 - if (!(eq_s_b(1, "f"))) - { - return false; - } - return true; - } - - private boolean r_H() { - int v_1; - int v_2; - // (, line 28 - // test, line 28 - v_1 = limit - cursor; - // hop, line 28 - { - int c = cursor - 2; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - cursor = limit - v_1; - // or, line 28 - lab0: do { - v_2 = limit - cursor; - lab1: do { - // literal, line 28 - if (!(eq_s_b(1, "t"))) - { - break lab1; - } - break lab0; - } while (false); - cursor = limit - v_2; - // literal, line 28 - if (!(eq_s_b(2, "ll"))) - { - return false; - } - } while (false); - return true; - } - - private boolean r_I() { - int v_1; - int v_2; - int v_3; - // (, line 29 - // test, line 29 - v_1 = limit - cursor; - // hop, line 29 - { - int c = cursor - 2; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - cursor = limit - v_1; - // not, line 29 - { - v_2 = limit - cursor; - lab0: do { - // literal, line 29 - if (!(eq_s_b(1, "o"))) - { - break lab0; - } - return false; - } while (false); - cursor = limit - v_2; - } - // not, line 29 - { - v_3 = limit - cursor; - lab1: do { - // literal, line 29 - if (!(eq_s_b(1, "e"))) - { - break lab1; - } - return false; - } while (false); - cursor = limit - v_3; - } - return true; - } - - private boolean r_J() { - int v_1; - int v_2; - int v_3; - // (, line 30 - // test, line 30 - v_1 = limit - cursor; - // hop, line 30 - { - int c = cursor - 2; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - cursor = limit - v_1; - // not, line 30 - { - v_2 = limit - cursor; - lab0: do { - // literal, line 30 - if (!(eq_s_b(1, "a"))) - { - break lab0; - } - return false; - } while (false); - cursor = limit - v_2; - } - // not, line 30 - { - v_3 = limit - cursor; - lab1: do { - // literal, line 30 - if (!(eq_s_b(1, "e"))) - { - break lab1; - } - return false; - } while (false); - cursor = limit - v_3; - } - return true; - } - - private boolean r_K() { - int v_1; - int v_2; - // (, line 31 - // test, line 31 - v_1 = limit - cursor; - // hop, line 31 - { - int c = cursor - 3; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - cursor = limit - v_1; - // or, line 31 - lab0: do { - v_2 = limit - cursor; - lab1: do { - // literal, line 31 - if (!(eq_s_b(1, "l"))) - { - break lab1; - } - break lab0; - } while (false); - cursor = limit - v_2; - lab2: do { - // literal, line 31 - if (!(eq_s_b(1, "i"))) - { - break lab2; - } - break lab0; - } while (false); - cursor = limit - v_2; - // (, line 31 - // literal, line 31 - if (!(eq_s_b(1, "e"))) - { - return false; - } - // next, line 31 - if (cursor <= limit_backward) - { - return false; - } - cursor--; - // literal, line 31 - if (!(eq_s_b(1, "u"))) - { - return false; - } - } while (false); - return true; - } - - private boolean r_L() { - int v_1; - int v_2; - int v_3; - int v_4; - int v_5; - // (, line 32 - // test, line 32 - v_1 = limit - cursor; - // hop, line 32 - { - int c = cursor - 2; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - cursor = limit - v_1; - // not, line 32 - { - v_2 = limit - cursor; - lab0: do { - // literal, line 32 - if (!(eq_s_b(1, "u"))) - { - break lab0; - } - return false; - } while (false); - cursor = limit - v_2; - } - // not, line 32 - { - v_3 = limit - cursor; - lab1: do { - // literal, line 32 - if (!(eq_s_b(1, "x"))) - { - break lab1; - } - return false; - } while (false); - cursor = limit - v_3; - } - // not, line 32 - { - v_4 = limit - cursor; - lab2: do { - // (, line 32 - // literal, line 32 - if (!(eq_s_b(1, "s"))) - { - break lab2; - } - // not, line 32 - { - v_5 = limit - cursor; - lab3: do { - // literal, line 32 - if (!(eq_s_b(1, "o"))) - { - break lab3; - } - break lab2; - } while (false); - cursor = limit - v_5; - } - return false; - } while (false); - cursor = limit - v_4; - } - return true; - } - - private boolean r_M() { - int v_1; - int v_2; - int v_3; - int v_4; - int v_5; - // (, line 33 - // test, line 33 - v_1 = limit - cursor; - // hop, line 33 - { - int c = cursor - 2; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - cursor = limit - v_1; - // not, line 33 - { - v_2 = limit - cursor; - lab0: do { - // literal, line 33 - if (!(eq_s_b(1, "a"))) - { - break lab0; - } - return false; - } while (false); - cursor = limit - v_2; - } - // not, line 33 - { - v_3 = limit - cursor; - lab1: do { - // literal, line 33 - if (!(eq_s_b(1, "c"))) - { - break lab1; - } - return false; - } while (false); - cursor = limit - v_3; - } - // not, line 33 - { - v_4 = limit - cursor; - lab2: do { - // literal, line 33 - if (!(eq_s_b(1, "e"))) - { - break lab2; - } - return false; - } while (false); - cursor = limit - v_4; - } - // not, line 33 - { - v_5 = limit - cursor; - lab3: do { - // literal, line 33 - if (!(eq_s_b(1, "m"))) - { - break lab3; - } - return false; - } while (false); - cursor = limit - v_5; - } - return true; - } - - private boolean r_N() { - int v_1; - int v_2; - int v_3; - // (, line 34 - // test, line 34 - v_1 = limit - cursor; - // hop, line 34 - { - int c = cursor - 3; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - cursor = limit - v_1; - // (, line 34 - // hop, line 34 - { - int c = cursor - 2; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - // or, line 34 - lab0: do { - v_2 = limit - cursor; - lab1: do { - // not, line 34 - { - v_3 = limit - cursor; - lab2: do { - // literal, line 34 - if (!(eq_s_b(1, "s"))) - { - break lab2; - } - break lab1; - } while (false); - cursor = limit - v_3; - } - break lab0; - } while (false); - cursor = limit - v_2; - // hop, line 34 - { - int c = cursor - 2; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - } while (false); - return true; - } - - private boolean r_O() { - int v_1; - int v_2; - // (, line 35 - // test, line 35 - v_1 = limit - cursor; - // hop, line 35 - { - int c = cursor - 2; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - cursor = limit - v_1; - // or, line 35 - lab0: do { - v_2 = limit - cursor; - lab1: do { - // literal, line 35 - if (!(eq_s_b(1, "l"))) - { - break lab1; - } - break lab0; - } while (false); - cursor = limit - v_2; - // literal, line 35 - if (!(eq_s_b(1, "i"))) - { - return false; - } - } while (false); - return true; - } - - private boolean r_P() { - int v_1; - int v_2; - // (, line 36 - // test, line 36 - v_1 = limit - cursor; - // hop, line 36 - { - int c = cursor - 2; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - cursor = limit - v_1; - // not, line 36 - { - v_2 = limit - cursor; - lab0: do { - // literal, line 36 - if (!(eq_s_b(1, "c"))) - { - break lab0; - } - return false; - } while (false); - cursor = limit - v_2; - } - return true; - } - - private boolean r_Q() { - int v_1; - int v_2; - int v_3; - int v_4; - // (, line 37 - // test, line 37 - v_1 = limit - cursor; - // hop, line 37 - { - int c = cursor - 2; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - cursor = limit - v_1; - // test, line 37 - v_2 = limit - cursor; - // hop, line 37 - { - int c = cursor - 3; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - cursor = limit - v_2; - // not, line 37 - { - v_3 = limit - cursor; - lab0: do { - // literal, line 37 - if (!(eq_s_b(1, "l"))) - { - break lab0; - } - return false; - } while (false); - cursor = limit - v_3; - } - // not, line 37 - { - v_4 = limit - cursor; - lab1: do { - // literal, line 37 - if (!(eq_s_b(1, "n"))) - { - break lab1; - } - return false; - } while (false); - cursor = limit - v_4; - } - return true; - } - - private boolean r_R() { - int v_1; - int v_2; - // (, line 38 - // test, line 38 - v_1 = limit - cursor; - // hop, line 38 - { - int c = cursor - 2; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - cursor = limit - v_1; - // or, line 38 - lab0: do { - v_2 = limit - cursor; - lab1: do { - // literal, line 38 - if (!(eq_s_b(1, "n"))) - { - break lab1; - } - break lab0; - } while (false); - cursor = limit - v_2; - // literal, line 38 - if (!(eq_s_b(1, "r"))) - { - return false; - } - } while (false); - return true; - } - - private boolean r_S() { - int v_1; - int v_2; - int v_3; - // (, line 39 - // test, line 39 - v_1 = limit - cursor; - // hop, line 39 - { - int c = cursor - 2; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - cursor = limit - v_1; - // or, line 39 - lab0: do { - v_2 = limit - cursor; - lab1: do { - // literal, line 39 - if (!(eq_s_b(2, "dr"))) - { - break lab1; - } - break lab0; - } while (false); - cursor = limit - v_2; - // (, line 39 - // literal, line 39 - if (!(eq_s_b(1, "t"))) - { - return false; - } - // not, line 39 - { - v_3 = limit - cursor; - lab2: do { - // literal, line 39 - if (!(eq_s_b(1, "t"))) - { - break lab2; - } - return false; - } while (false); - cursor = limit - v_3; - } - } while (false); - return true; - } - - private boolean r_T() { - int v_1; - int v_2; - int v_3; - // (, line 40 - // test, line 40 - v_1 = limit - cursor; - // hop, line 40 - { - int c = cursor - 2; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - cursor = limit - v_1; - // or, line 40 - lab0: do { - v_2 = limit - cursor; - lab1: do { - // literal, line 40 - if (!(eq_s_b(1, "s"))) - { - break lab1; - } - break lab0; - } while (false); - cursor = limit - v_2; - // (, line 40 - // literal, line 40 - if (!(eq_s_b(1, "t"))) - { - return false; - } - // not, line 40 - { - v_3 = limit - cursor; - lab2: do { - // literal, line 40 - if (!(eq_s_b(1, "o"))) - { - break lab2; - } - return false; - } while (false); - cursor = limit - v_3; - } - } while (false); - return true; - } - - private boolean r_U() { - int v_1; - int v_2; - // (, line 41 - // test, line 41 - v_1 = limit - cursor; - // hop, line 41 - { - int c = cursor - 2; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - cursor = limit - v_1; - // or, line 41 - lab0: do { - v_2 = limit - cursor; - lab1: do { - // literal, line 41 - if (!(eq_s_b(1, "l"))) - { - break lab1; - } - break lab0; - } while (false); - cursor = limit - v_2; - lab2: do { - // literal, line 41 - if (!(eq_s_b(1, "m"))) - { - break lab2; - } - break lab0; - } while (false); - cursor = limit - v_2; - lab3: do { - // literal, line 41 - if (!(eq_s_b(1, "n"))) - { - break lab3; - } - break lab0; - } while (false); - cursor = limit - v_2; - // literal, line 41 - if (!(eq_s_b(1, "r"))) - { - return false; - } - } while (false); - return true; - } - - private boolean r_V() { - int v_1; - // (, line 42 - // test, line 42 - v_1 = limit - cursor; - // hop, line 42 - { - int c = cursor - 2; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - cursor = limit - v_1; - // literal, line 42 - if (!(eq_s_b(1, "c"))) - { - return false; - } - return true; - } - - private boolean r_W() { - int v_1; - int v_2; - int v_3; - // (, line 43 - // test, line 43 - v_1 = limit - cursor; - // hop, line 43 - { - int c = cursor - 2; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - cursor = limit - v_1; - // not, line 43 - { - v_2 = limit - cursor; - lab0: do { - // literal, line 43 - if (!(eq_s_b(1, "s"))) - { - break lab0; - } - return false; - } while (false); - cursor = limit - v_2; - } - // not, line 43 - { - v_3 = limit - cursor; - lab1: do { - // literal, line 43 - if (!(eq_s_b(1, "u"))) - { - break lab1; - } - return false; - } while (false); - cursor = limit - v_3; - } - return true; - } - - private boolean r_X() { - int v_1; - int v_2; - // (, line 44 - // test, line 44 - v_1 = limit - cursor; - // hop, line 44 - { - int c = cursor - 2; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - cursor = limit - v_1; - // or, line 44 - lab0: do { - v_2 = limit - cursor; - lab1: do { - // literal, line 44 - if (!(eq_s_b(1, "l"))) - { - break lab1; - } - break lab0; - } while (false); - cursor = limit - v_2; - lab2: do { - // literal, line 44 - if (!(eq_s_b(1, "i"))) - { - break lab2; - } - break lab0; - } while (false); - cursor = limit - v_2; - // (, line 44 - // literal, line 44 - if (!(eq_s_b(1, "e"))) - { - return false; - } - // next, line 44 - if (cursor <= limit_backward) - { - return false; - } - cursor--; - // literal, line 44 - if (!(eq_s_b(1, "u"))) - { - return false; - } - } while (false); - return true; - } - - private boolean r_Y() { - int v_1; - // (, line 45 - // test, line 45 - v_1 = limit - cursor; - // hop, line 45 - { - int c = cursor - 2; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - cursor = limit - v_1; - // literal, line 45 - if (!(eq_s_b(2, "in"))) - { - return false; - } - return true; - } - - private boolean r_Z() { - int v_1; - int v_2; - // (, line 46 - // test, line 46 - v_1 = limit - cursor; - // hop, line 46 - { - int c = cursor - 2; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - cursor = limit - v_1; - // not, line 46 - { - v_2 = limit - cursor; - lab0: do { - // literal, line 46 - if (!(eq_s_b(1, "f"))) - { - break lab0; - } - return false; - } while (false); - cursor = limit - v_2; - } - return true; - } - - private boolean r_AA() { - int v_1; - // (, line 47 - // test, line 47 - v_1 = limit - cursor; - // hop, line 47 - { - int c = cursor - 2; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - cursor = limit - v_1; - // among, line 47 - if (find_among_b(a_0, 9) == 0) - { - return false; - } - return true; - } - - private boolean r_BB() { - int v_1; - int v_2; - int v_3; - // (, line 49 - // test, line 49 - v_1 = limit - cursor; - // hop, line 49 - { - int c = cursor - 3; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - cursor = limit - v_1; - // not, line 49 - { - v_2 = limit - cursor; - lab0: do { - // literal, line 49 - if (!(eq_s_b(3, "met"))) - { - break lab0; - } - return false; - } while (false); - cursor = limit - v_2; - } - // not, line 49 - { - v_3 = limit - cursor; - lab1: do { - // literal, line 49 - if (!(eq_s_b(4, "ryst"))) - { - break lab1; - } - return false; - } while (false); - cursor = limit - v_3; - } - return true; - } - - private boolean r_CC() { - int v_1; - // (, line 50 - // test, line 50 - v_1 = limit - cursor; - // hop, line 50 - { - int c = cursor - 2; - if (limit_backward > c || c > limit) - { - return false; - } - cursor = c; - } - cursor = limit - v_1; - // literal, line 50 - if (!(eq_s_b(1, "l"))) - { - return false; - } - return true; - } - - private boolean r_endings() { - int among_var; - // (, line 55 - // [, line 56 - ket = cursor; - // substring, line 56 - among_var = find_among_b(a_1, 294); - if (among_var == 0) - { - return false; - } - // ], line 56 - bra = cursor; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 145 - // delete, line 145 - slice_del(); - break; - } - return true; - } - - private boolean r_undouble() { - int v_1; - // (, line 151 - // test, line 152 - v_1 = limit - cursor; - // substring, line 152 - if (find_among_b(a_2, 10) == 0) - { - return false; - } - cursor = limit - v_1; - // [, line 154 - ket = cursor; - // next, line 154 - if (cursor <= limit_backward) - { - return false; - } - cursor--; - // ], line 154 - bra = cursor; - // delete, line 154 - slice_del(); - return true; - } - - private boolean r_respell() { - int among_var; - int v_1; - int v_2; - int v_3; - int v_4; - int v_5; - int v_6; - int v_7; - int v_8; - // (, line 159 - // [, line 160 - ket = cursor; - // substring, line 160 - among_var = find_among_b(a_3, 34); - if (among_var == 0) - { - return false; - } - // ], line 160 - bra = cursor; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 161 - // <-, line 161 - slice_from("ief"); - break; - case 2: - // (, line 162 - // <-, line 162 - slice_from("uc"); - break; - case 3: - // (, line 163 - // <-, line 163 - slice_from("um"); - break; - case 4: - // (, line 164 - // <-, line 164 - slice_from("rb"); - break; - case 5: - // (, line 165 - // <-, line 165 - slice_from("ur"); - break; - case 6: - // (, line 166 - // <-, line 166 - slice_from("ister"); - break; - case 7: - // (, line 167 - // <-, line 167 - slice_from("meter"); - break; - case 8: - // (, line 168 - // <-, line 168 - slice_from("olut"); - break; - case 9: - // (, line 169 - // not, line 169 - { - v_1 = limit - cursor; - lab0: do { - // literal, line 169 - if (!(eq_s_b(1, "a"))) - { - break lab0; - } - return false; - } while (false); - cursor = limit - v_1; - } - // not, line 169 - { - v_2 = limit - cursor; - lab1: do { - // literal, line 169 - if (!(eq_s_b(1, "i"))) - { - break lab1; - } - return false; - } while (false); - cursor = limit - v_2; - } - // not, line 169 - { - v_3 = limit - cursor; - lab2: do { - // literal, line 169 - if (!(eq_s_b(1, "o"))) - { - break lab2; - } - return false; - } while (false); - cursor = limit - v_3; - } - // <-, line 169 - slice_from("l"); - break; - case 10: - // (, line 170 - // <-, line 170 - slice_from("bic"); - break; - case 11: - // (, line 171 - // <-, line 171 - slice_from("dic"); - break; - case 12: - // (, line 172 - // <-, line 172 - slice_from("pic"); - break; - case 13: - // (, line 173 - // <-, line 173 - slice_from("tic"); - break; - case 14: - // (, line 174 - // <-, line 174 - slice_from("ac"); - break; - case 15: - // (, line 175 - // <-, line 175 - slice_from("ec"); - break; - case 16: - // (, line 176 - // <-, line 176 - slice_from("ic"); - break; - case 17: - // (, line 177 - // <-, line 177 - slice_from("luc"); - break; - case 18: - // (, line 178 - // <-, line 178 - slice_from("uas"); - break; - case 19: - // (, line 179 - // <-, line 179 - slice_from("vas"); - break; - case 20: - // (, line 180 - // <-, line 180 - slice_from("cis"); - break; - case 21: - // (, line 181 - // <-, line 181 - slice_from("lis"); - break; - case 22: - // (, line 182 - // <-, line 182 - slice_from("eris"); - break; - case 23: - // (, line 183 - // <-, line 183 - slice_from("pans"); - break; - case 24: - // (, line 184 - // not, line 184 - { - v_4 = limit - cursor; - lab3: do { - // literal, line 184 - if (!(eq_s_b(1, "s"))) - { - break lab3; - } - return false; - } while (false); - cursor = limit - v_4; - } - // <-, line 184 - slice_from("ens"); - break; - case 25: - // (, line 185 - // <-, line 185 - slice_from("ons"); - break; - case 26: - // (, line 186 - // <-, line 186 - slice_from("lus"); - break; - case 27: - // (, line 187 - // <-, line 187 - slice_from("rus"); - break; - case 28: - // (, line 188 - // not, line 188 - { - v_5 = limit - cursor; - lab4: do { - // literal, line 188 - if (!(eq_s_b(1, "p"))) - { - break lab4; - } - return false; - } while (false); - cursor = limit - v_5; - } - // not, line 188 - { - v_6 = limit - cursor; - lab5: do { - // literal, line 188 - if (!(eq_s_b(1, "t"))) - { - break lab5; - } - return false; - } while (false); - cursor = limit - v_6; - } - // <-, line 188 - slice_from("hes"); - break; - case 29: - // (, line 189 - // <-, line 189 - slice_from("mis"); - break; - case 30: - // (, line 190 - // not, line 190 - { - v_7 = limit - cursor; - lab6: do { - // literal, line 190 - if (!(eq_s_b(1, "m"))) - { - break lab6; - } - return false; - } while (false); - cursor = limit - v_7; - } - // <-, line 190 - slice_from("ens"); - break; - case 31: - // (, line 192 - // <-, line 192 - slice_from("ers"); - break; - case 32: - // (, line 193 - // not, line 193 - { - v_8 = limit - cursor; - lab7: do { - // literal, line 193 - if (!(eq_s_b(1, "n"))) - { - break lab7; - } - return false; - } while (false); - cursor = limit - v_8; - } - // <-, line 193 - slice_from("es"); - break; - case 33: - // (, line 194 - // <-, line 194 - slice_from("ys"); - break; - case 34: - // (, line 195 - // <-, line 195 - slice_from("ys"); - break; - } - return true; - } - - public boolean stem() { - int v_1; - int v_2; - int v_3; - // (, line 200 - // backwards, line 202 - limit_backward = cursor; cursor = limit; - // (, line 202 - // do, line 203 - v_1 = limit - cursor; - lab0: do { - // call endings, line 203 - if (!r_endings()) - { - break lab0; - } - } while (false); - cursor = limit - v_1; - // do, line 204 - v_2 = limit - cursor; - lab1: do { - // call undouble, line 204 - if (!r_undouble()) - { - break lab1; - } - } while (false); - cursor = limit - v_2; - // do, line 205 - v_3 = limit - cursor; - lab2: do { - // call respell, line 205 - if (!r_respell()) - { - break lab2; - } - } while (false); - cursor = limit - v_3; - cursor = limit_backward; return true; - } - -} - Index: contrib/snowball/src/java/net/sf/snowball/ext/PorterStemmer.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/PorterStemmer.java (revision 613440) +++ contrib/snowball/src/java/net/sf/snowball/ext/PorterStemmer.java (working copy) @@ -1,906 +0,0 @@ -// This file was generated automatically by the Snowball to Java compiler - -package net.sf.snowball.ext; -import net.sf.snowball.SnowballProgram; -import net.sf.snowball.Among; - -/** - * Generated class implementing code defined by a snowball script. - */ -public class PorterStemmer extends SnowballProgram { - - private Among a_0[] = { - new Among ( "s", -1, 3, "", this), - new Among ( "ies", 0, 2, "", this), - new Among ( "sses", 0, 1, "", this), - new Among ( "ss", 0, -1, "", this) - }; - - private Among a_1[] = { - new Among ( "", -1, 3, "", this), - new Among ( "bb", 0, 2, "", this), - new Among ( "dd", 0, 2, "", this), - new Among ( "ff", 0, 2, "", this), - new Among ( "gg", 0, 2, "", this), - new Among ( "bl", 0, 1, "", this), - new Among ( "mm", 0, 2, "", this), - new Among ( "nn", 0, 2, "", this), - new Among ( "pp", 0, 2, "", this), - new Among ( "rr", 0, 2, "", this), - new Among ( "at", 0, 1, "", this), - new Among ( "tt", 0, 2, "", this), - new Among ( "iz", 0, 1, "", this) - }; - - private Among a_2[] = { - new Among ( "ed", -1, 2, "", this), - new Among ( "eed", 0, 1, "", this), - new Among ( "ing", -1, 2, "", this) - }; - - private Among a_3[] = { - new Among ( "anci", -1, 3, "", this), - new Among ( "enci", -1, 2, "", this), - new Among ( "abli", -1, 4, "", this), - new Among ( "eli", -1, 6, "", this), - new Among ( "alli", -1, 9, "", this), - new Among ( "ousli", -1, 12, "", this), - new Among ( "entli", -1, 5, "", this), - new Among ( "aliti", -1, 10, "", this), - new Among ( "biliti", -1, 14, "", this), - new Among ( "iviti", -1, 13, "", this), - new Among ( "tional", -1, 1, "", this), - new Among ( "ational", 10, 8, "", this), - new Among ( "alism", -1, 10, "", this), - new Among ( "ation", -1, 8, "", this), - new Among ( "ization", 13, 7, "", this), - new Among ( "izer", -1, 7, "", this), - new Among ( "ator", -1, 8, "", this), - new Among ( "iveness", -1, 13, "", this), - new Among ( "fulness", -1, 11, "", this), - new Among ( "ousness", -1, 12, "", this) - }; - - private Among a_4[] = { - new Among ( "icate", -1, 2, "", this), - new Among ( "ative", -1, 3, "", this), - new Among ( "alize", -1, 1, "", this), - new Among ( "iciti", -1, 2, "", this), - new Among ( "ical", -1, 2, "", this), - new Among ( "ful", -1, 3, "", this), - new Among ( "ness", -1, 3, "", this) - }; - - private Among a_5[] = { - new Among ( "ic", -1, 1, "", this), - new Among ( "ance", -1, 1, "", this), - new Among ( "ence", -1, 1, "", this), - new Among ( "able", -1, 1, "", this), - new Among ( "ible", -1, 1, "", this), - new Among ( "ate", -1, 1, "", this), - new Among ( "ive", -1, 1, "", this), - new Among ( "ize", -1, 1, "", this), - new Among ( "iti", -1, 1, "", this), - new Among ( "al", -1, 1, "", this), - new Among ( "ism", -1, 1, "", this), - new Among ( "ion", -1, 2, "", this), - new Among ( "er", -1, 1, "", this), - new Among ( "ous", -1, 1, "", this), - new Among ( "ant", -1, 1, "", this), - new Among ( "ent", -1, 1, "", this), - new Among ( "ment", 15, 1, "", this), - new Among ( "ement", 16, 1, "", this), - new Among ( "ou", -1, 1, "", this) - }; - - private static final char g_v[] = {17, 65, 16, 1 }; - - private static final char g_v_WXY[] = {1, 17, 65, 208, 1 }; - - private boolean B_Y_found; - private int I_p2; - private int I_p1; - - private void copy_from(PorterStemmer other) { - B_Y_found = other.B_Y_found; - I_p2 = other.I_p2; - I_p1 = other.I_p1; - super.copy_from(other); - } - - private boolean r_shortv() { - // (, line 19 - if (!(out_grouping_b(g_v_WXY, 89, 121))) - { - return false; - } - if (!(in_grouping_b(g_v, 97, 121))) - { - return false; - } - if (!(out_grouping_b(g_v, 97, 121))) - { - return false; - } - return true; - } - - private boolean r_R1() { - if (!(I_p1 <= cursor)) - { - return false; - } - return true; - } - - private boolean r_R2() { - if (!(I_p2 <= cursor)) - { - return false; - } - return true; - } - - private boolean r_Step_1a() { - int among_var; - // (, line 24 - // [, line 25 - ket = cursor; - // substring, line 25 - among_var = find_among_b(a_0, 4); - if (among_var == 0) - { - return false; - } - // ], line 25 - bra = cursor; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 26 - // <-, line 26 - slice_from("ss"); - break; - case 2: - // (, line 27 - // <-, line 27 - slice_from("i"); - break; - case 3: - // (, line 29 - // delete, line 29 - slice_del(); - break; - } - return true; - } - - private boolean r_Step_1b() { - int among_var; - int v_1; - int v_3; - int v_4; - // (, line 33 - // [, line 34 - ket = cursor; - // substring, line 34 - among_var = find_among_b(a_2, 3); - if (among_var == 0) - { - return false; - } - // ], line 34 - bra = cursor; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 35 - // call R1, line 35 - if (!r_R1()) - { - return false; - } - // <-, line 35 - slice_from("ee"); - break; - case 2: - // (, line 37 - // test, line 38 - v_1 = limit - cursor; - // gopast, line 38 - golab0: while(true) - { - lab1: do { - if (!(in_grouping_b(g_v, 97, 121))) - { - break lab1; - } - break golab0; - } while (false); - if (cursor <= limit_backward) - { - return false; - } - cursor--; - } - cursor = limit - v_1; - // delete, line 38 - slice_del(); - // test, line 39 - v_3 = limit - cursor; - // substring, line 39 - among_var = find_among_b(a_1, 13); - if (among_var == 0) - { - return false; - } - cursor = limit - v_3; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 41 - // <+, line 41 - { - int c = cursor; - insert(cursor, cursor, "e"); - cursor = c; - } - break; - case 2: - // (, line 44 - // [, line 44 - ket = cursor; - // next, line 44 - if (cursor <= limit_backward) - { - return false; - } - cursor--; - // ], line 44 - bra = cursor; - // delete, line 44 - slice_del(); - break; - case 3: - // (, line 45 - // atmark, line 45 - if (cursor != I_p1) - { - return false; - } - // test, line 45 - v_4 = limit - cursor; - // call shortv, line 45 - if (!r_shortv()) - { - return false; - } - cursor = limit - v_4; - // <+, line 45 - { - int c = cursor; - insert(cursor, cursor, "e"); - cursor = c; - } - break; - } - break; - } - return true; - } - - private boolean r_Step_1c() { - int v_1; - // (, line 51 - // [, line 52 - ket = cursor; - // or, line 52 - lab0: do { - v_1 = limit - cursor; - lab1: do { - // literal, line 52 - if (!(eq_s_b(1, "y"))) - { - break lab1; - } - break lab0; - } while (false); - cursor = limit - v_1; - // literal, line 52 - if (!(eq_s_b(1, "Y"))) - { - return false; - } - } while (false); - // ], line 52 - bra = cursor; - // gopast, line 53 - golab2: while(true) - { - lab3: do { - if (!(in_grouping_b(g_v, 97, 121))) - { - break lab3; - } - break golab2; - } while (false); - if (cursor <= limit_backward) - { - return false; - } - cursor--; - } - // <-, line 54 - slice_from("i"); - return true; - } - - private boolean r_Step_2() { - int among_var; - // (, line 57 - // [, line 58 - ket = cursor; - // substring, line 58 - among_var = find_among_b(a_3, 20); - if (among_var == 0) - { - return false; - } - // ], line 58 - bra = cursor; - // call R1, line 58 - if (!r_R1()) - { - return false; - } - switch(among_var) { - case 0: - return false; - case 1: - // (, line 59 - // <-, line 59 - slice_from("tion"); - break; - case 2: - // (, line 60 - // <-, line 60 - slice_from("ence"); - break; - case 3: - // (, line 61 - // <-, line 61 - slice_from("ance"); - break; - case 4: - // (, line 62 - // <-, line 62 - slice_from("able"); - break; - case 5: - // (, line 63 - // <-, line 63 - slice_from("ent"); - break; - case 6: - // (, line 64 - // <-, line 64 - slice_from("e"); - break; - case 7: - // (, line 66 - // <-, line 66 - slice_from("ize"); - break; - case 8: - // (, line 68 - // <-, line 68 - slice_from("ate"); - break; - case 9: - // (, line 69 - // <-, line 69 - slice_from("al"); - break; - case 10: - // (, line 71 - // <-, line 71 - slice_from("al"); - break; - case 11: - // (, line 72 - // <-, line 72 - slice_from("ful"); - break; - case 12: - // (, line 74 - // <-, line 74 - slice_from("ous"); - break; - case 13: - // (, line 76 - // <-, line 76 - slice_from("ive"); - break; - case 14: - // (, line 77 - // <-, line 77 - slice_from("ble"); - break; - } - return true; - } - - private boolean r_Step_3() { - int among_var; - // (, line 81 - // [, line 82 - ket = cursor; - // substring, line 82 - among_var = find_among_b(a_4, 7); - if (among_var == 0) - { - return false; - } - // ], line 82 - bra = cursor; - // call R1, line 82 - if (!r_R1()) - { - return false; - } - switch(among_var) { - case 0: - return false; - case 1: - // (, line 83 - // <-, line 83 - slice_from("al"); - break; - case 2: - // (, line 85 - // <-, line 85 - slice_from("ic"); - break; - case 3: - // (, line 87 - // delete, line 87 - slice_del(); - break; - } - return true; - } - - private boolean r_Step_4() { - int among_var; - int v_1; - // (, line 91 - // [, line 92 - ket = cursor; - // substring, line 92 - among_var = find_among_b(a_5, 19); - if (among_var == 0) - { - return false; - } - // ], line 92 - bra = cursor; - // call R2, line 92 - if (!r_R2()) - { - return false; - } - switch(among_var) { - case 0: - return false; - case 1: - // (, line 95 - // delete, line 95 - slice_del(); - break; - case 2: - // (, line 96 - // or, line 96 - lab0: do { - v_1 = limit - cursor; - lab1: do { - // literal, line 96 - if (!(eq_s_b(1, "s"))) - { - break lab1; - } - break lab0; - } while (false); - cursor = limit - v_1; - // literal, line 96 - if (!(eq_s_b(1, "t"))) - { - return false; - } - } while (false); - // delete, line 96 - slice_del(); - break; - } - return true; - } - - private boolean r_Step_5a() { - int v_1; - int v_2; - // (, line 100 - // [, line 101 - ket = cursor; - // literal, line 101 - if (!(eq_s_b(1, "e"))) - { - return false; - } - // ], line 101 - bra = cursor; - // or, line 102 - lab0: do { - v_1 = limit - cursor; - lab1: do { - // call R2, line 102 - if (!r_R2()) - { - break lab1; - } - break lab0; - } while (false); - cursor = limit - v_1; - // (, line 102 - // call R1, line 102 - if (!r_R1()) - { - return false; - } - // not, line 102 - { - v_2 = limit - cursor; - lab2: do { - // call shortv, line 102 - if (!r_shortv()) - { - break lab2; - } - return false; - } while (false); - cursor = limit - v_2; - } - } while (false); - // delete, line 103 - slice_del(); - return true; - } - - private boolean r_Step_5b() { - // (, line 106 - // [, line 107 - ket = cursor; - // literal, line 107 - if (!(eq_s_b(1, "l"))) - { - return false; - } - // ], line 107 - bra = cursor; - // call R2, line 108 - if (!r_R2()) - { - return false; - } - // literal, line 108 - if (!(eq_s_b(1, "l"))) - { - return false; - } - // delete, line 109 - slice_del(); - return true; - } - - public boolean stem() { - int v_1; - int v_2; - int v_3; - int v_4; - int v_5; - int v_10; - int v_11; - int v_12; - int v_13; - int v_14; - int v_15; - int v_16; - int v_17; - int v_18; - int v_19; - int v_20; - // (, line 113 - // unset Y_found, line 115 - B_Y_found = false; - // do, line 116 - v_1 = cursor; - lab0: do { - // (, line 116 - // [, line 116 - bra = cursor; - // literal, line 116 - if (!(eq_s(1, "y"))) - { - break lab0; - } - // ], line 116 - ket = cursor; - // <-, line 116 - slice_from("Y"); - // set Y_found, line 116 - B_Y_found = true; - } while (false); - cursor = v_1; - // do, line 117 - v_2 = cursor; - lab1: do { - // repeat, line 117 - replab2: while(true) - { - v_3 = cursor; - lab3: do { - // (, line 117 - // goto, line 117 - golab4: while(true) - { - v_4 = cursor; - lab5: do { - // (, line 117 - if (!(in_grouping(g_v, 97, 121))) - { - break lab5; - } - // [, line 117 - bra = cursor; - // literal, line 117 - if (!(eq_s(1, "y"))) - { - break lab5; - } - // ], line 117 - ket = cursor; - cursor = v_4; - break golab4; - } while (false); - cursor = v_4; - if (cursor >= limit) - { - break lab3; - } - cursor++; - } - // <-, line 117 - slice_from("Y"); - // set Y_found, line 117 - B_Y_found = true; - continue replab2; - } while (false); - cursor = v_3; - break replab2; - } - } while (false); - cursor = v_2; - I_p1 = limit; - I_p2 = limit; - // do, line 121 - v_5 = cursor; - lab6: do { - // (, line 121 - // gopast, line 122 - golab7: while(true) - { - lab8: do { - if (!(in_grouping(g_v, 97, 121))) - { - break lab8; - } - break golab7; - } while (false); - if (cursor >= limit) - { - break lab6; - } - cursor++; - } - // gopast, line 122 - golab9: while(true) - { - lab10: do { - if (!(out_grouping(g_v, 97, 121))) - { - break lab10; - } - break golab9; - } while (false); - if (cursor >= limit) - { - break lab6; - } - cursor++; - } - // setmark p1, line 122 - I_p1 = cursor; - // gopast, line 123 - golab11: while(true) - { - lab12: do { - if (!(in_grouping(g_v, 97, 121))) - { - break lab12; - } - break golab11; - } while (false); - if (cursor >= limit) - { - break lab6; - } - cursor++; - } - // gopast, line 123 - golab13: while(true) - { - lab14: do { - if (!(out_grouping(g_v, 97, 121))) - { - break lab14; - } - break golab13; - } while (false); - if (cursor >= limit) - { - break lab6; - } - cursor++; - } - // setmark p2, line 123 - I_p2 = cursor; - } while (false); - cursor = v_5; - // backwards, line 126 - limit_backward = cursor; cursor = limit; - // (, line 126 - // do, line 127 - v_10 = limit - cursor; - lab15: do { - // call Step_1a, line 127 - if (!r_Step_1a()) - { - break lab15; - } - } while (false); - cursor = limit - v_10; - // do, line 128 - v_11 = limit - cursor; - lab16: do { - // call Step_1b, line 128 - if (!r_Step_1b()) - { - break lab16; - } - } while (false); - cursor = limit - v_11; - // do, line 129 - v_12 = limit - cursor; - lab17: do { - // call Step_1c, line 129 - if (!r_Step_1c()) - { - break lab17; - } - } while (false); - cursor = limit - v_12; - // do, line 130 - v_13 = limit - cursor; - lab18: do { - // call Step_2, line 130 - if (!r_Step_2()) - { - break lab18; - } - } while (false); - cursor = limit - v_13; - // do, line 131 - v_14 = limit - cursor; - lab19: do { - // call Step_3, line 131 - if (!r_Step_3()) - { - break lab19; - } - } while (false); - cursor = limit - v_14; - // do, line 132 - v_15 = limit - cursor; - lab20: do { - // call Step_4, line 132 - if (!r_Step_4()) - { - break lab20; - } - } while (false); - cursor = limit - v_15; - // do, line 133 - v_16 = limit - cursor; - lab21: do { - // call Step_5a, line 133 - if (!r_Step_5a()) - { - break lab21; - } - } while (false); - cursor = limit - v_16; - // do, line 134 - v_17 = limit - cursor; - lab22: do { - // call Step_5b, line 134 - if (!r_Step_5b()) - { - break lab22; - } - } while (false); - cursor = limit - v_17; - cursor = limit_backward; // do, line 137 - v_18 = cursor; - lab23: do { - // (, line 137 - // Boolean test Y_found, line 137 - if (!(B_Y_found)) - { - break lab23; - } - // repeat, line 137 - replab24: while(true) - { - v_19 = cursor; - lab25: do { - // (, line 137 - // goto, line 137 - golab26: while(true) - { - v_20 = cursor; - lab27: do { - // (, line 137 - // [, line 137 - bra = cursor; - // literal, line 137 - if (!(eq_s(1, "Y"))) - { - break lab27; - } - // ], line 137 - ket = cursor; - cursor = v_20; - break golab26; - } while (false); - cursor = v_20; - if (cursor >= limit) - { - break lab25; - } - cursor++; - } - // <-, line 137 - slice_from("y"); - continue replab24; - } while (false); - cursor = v_19; - break replab24; - } - } while (false); - cursor = v_18; - return true; - } - -} - Index: contrib/snowball/src/java/net/sf/snowball/ext/package.html =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/package.html (revision 613440) +++ contrib/snowball/src/java/net/sf/snowball/ext/package.html (working copy) @@ -1,5 +0,0 @@ - - -Snowball generated stemmer classes. - - Index: contrib/snowball/src/java/net/sf/snowball/ext/ItalianStemmer.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/ItalianStemmer.java (revision 613440) +++ contrib/snowball/src/java/net/sf/snowball/ext/ItalianStemmer.java (working copy) @@ -1,1178 +0,0 @@ -// This file was generated automatically by the Snowball to Java compiler - -package net.sf.snowball.ext; -import net.sf.snowball.SnowballProgram; -import net.sf.snowball.Among; - -/** - * Generated class implementing code defined by a snowball script. - */ -public class ItalianStemmer extends SnowballProgram { - - private Among a_0[] = { - new Among ( "", -1, 7, "", this), - new Among ( "qu", 0, 6, "", this), - new Among ( "\u00E1", 0, 1, "", this), - new Among ( "\u00E9", 0, 2, "", this), - new Among ( "\u00ED", 0, 3, "", this), - new Among ( "\u00F3", 0, 4, "", this), - new Among ( "\u00FA", 0, 5, "", this) - }; - - private Among a_1[] = { - new Among ( "", -1, 3, "", this), - new Among ( "I", 0, 1, "", this), - new Among ( "U", 0, 2, "", this) - }; - - private Among a_2[] = { - new Among ( "la", -1, -1, "", this), - new Among ( "cela", 0, -1, "", this), - new Among ( "gliela", 0, -1, "", this), - new Among ( "mela", 0, -1, "", this), - new Among ( "tela", 0, -1, "", this), - new Among ( "vela", 0, -1, "", this), - new Among ( "le", -1, -1, "", this), - new Among ( "cele", 6, -1, "", this), - new Among ( "gliele", 6, -1, "", this), - new Among ( "mele", 6, -1, "", this), - new Among ( "tele", 6, -1, "", this), - new Among ( "vele", 6, -1, "", this), - new Among ( "ne", -1, -1, "", this), - new Among ( "cene", 12, -1, "", this), - new Among ( "gliene", 12, -1, "", this), - new Among ( "mene", 12, -1, "", this), - new Among ( "sene", 12, -1, "", this), - new Among ( "tene", 12, -1, "", this), - new Among ( "vene", 12, -1, "", this), - new Among ( "ci", -1, -1, "", this), - new Among ( "li", -1, -1, "", this), - new Among ( "celi", 20, -1, "", this), - new Among ( "glieli", 20, -1, "", this), - new Among ( "meli", 20, -1, "", this), - new Among ( "teli", 20, -1, "", this), - new Among ( "veli", 20, -1, "", this), - new Among ( "gli", 20, -1, "", this), - new Among ( "mi", -1, -1, "", this), - new Among ( "si", -1, -1, "", this), - new Among ( "ti", -1, -1, "", this), - new Among ( "vi", -1, -1, "", this), - new Among ( "lo", -1, -1, "", this), - new Among ( "celo", 31, -1, "", this), - new Among ( "glielo", 31, -1, "", this), - new Among ( "melo", 31, -1, "", this), - new Among ( "telo", 31, -1, "", this), - new Among ( "velo", 31, -1, "", this) - }; - - private Among a_3[] = { - new Among ( "ando", -1, 1, "", this), - new Among ( "endo", -1, 1, "", this), - new Among ( "ar", -1, 2, "", this), - new Among ( "er", -1, 2, "", this), - new Among ( "ir", -1, 2, "", this) - }; - - private Among a_4[] = { - new Among ( "ic", -1, -1, "", this), - new Among ( "abil", -1, -1, "", this), - new Among ( "os", -1, -1, "", this), - new Among ( "iv", -1, 1, "", this) - }; - - private Among a_5[] = { - new Among ( "ic", -1, 1, "", this), - new Among ( "abil", -1, 1, "", this), - new Among ( "iv", -1, 1, "", this) - }; - - private Among a_6[] = { - new Among ( "ica", -1, 1, "", this), - new Among ( "logia", -1, 3, "", this), - new Among ( "osa", -1, 1, "", this), - new Among ( "ista", -1, 1, "", this), - new Among ( "iva", -1, 9, "", this), - new Among ( "anza", -1, 1, "", this), - new Among ( "enza", -1, 5, "", this), - new Among ( "ice", -1, 1, "", this), - new Among ( "atrice", 7, 1, "", this), - new Among ( "iche", -1, 1, "", this), - new Among ( "logie", -1, 3, "", this), - new Among ( "abile", -1, 1, "", this), - new Among ( "ibile", -1, 1, "", this), - new Among ( "usione", -1, 4, "", this), - new Among ( "azione", -1, 2, "", this), - new Among ( "uzione", -1, 4, "", this), - new Among ( "atore", -1, 2, "", this), - new Among ( "ose", -1, 1, "", this), - new Among ( "mente", -1, 1, "", this), - new Among ( "amente", 18, 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 ( "ichi", -1, 1, "", this), - new Among ( "abili", -1, 1, "", this), - new Among ( "ibili", -1, 1, "", this), - new Among ( "ismi", -1, 1, "", this), - new Among ( "usioni", -1, 4, "", this), - new Among ( "azioni", -1, 2, "", this), - new Among ( "uzioni", -1, 4, "", this), - new Among ( "atori", -1, 2, "", this), - new Among ( "osi", -1, 1, "", this), - new Among ( "amenti", -1, 6, "", this), - new Among ( "imenti", -1, 6, "", this), - new Among ( "isti", -1, 1, "", this), - new Among ( "ivi", -1, 9, "", this), - new Among ( "ico", -1, 1, "", this), - new Among ( "ismo", -1, 1, "", this), - new Among ( "oso", -1, 1, "", this), - new Among ( "amento", -1, 6, "", this), - new Among ( "imento", -1, 6, "", this), - new Among ( "ivo", -1, 9, "", this), - new Among ( "it\u00E0", -1, 8, "", this), - new Among ( "ist\u00E0", -1, 1, "", this), - new Among ( "ist\u00E8", -1, 1, "", this), - new Among ( "ist\u00EC", -1, 1, "", this) - }; - - private Among a_7[] = { - new Among ( "isca", -1, 1, "", this), - new Among ( "enda", -1, 1, "", this), - new Among ( "ata", -1, 1, "", this), - new Among ( "ita", -1, 1, "", this), - new Among ( "uta", -1, 1, "", this), - new Among ( "ava", -1, 1, "", this), - new Among ( "eva", -1, 1, "", this), - new Among ( "iva", -1, 1, "", this), - new Among ( "erebbe", -1, 1, "", this), - new Among ( "irebbe", -1, 1, "", this), - new Among ( "isce", -1, 1, "", this), - new Among ( "ende", -1, 1, "", this), - new Among ( "are", -1, 1, "", this), - new Among ( "ere", -1, 1, "", this), - new Among ( "ire", -1, 1, "", this), - new Among ( "asse", -1, 1, "", this), - new Among ( "ate", -1, 1, "", this), - new Among ( "avate", 16, 1, "", this), - new Among ( "evate", 16, 1, "", this), - new Among ( "ivate", 16, 1, "", this), - new Among ( "ete", -1, 1, "", this), - new Among ( "erete", 20, 1, "", this), - new Among ( "irete", 20, 1, "", this), - new Among ( "ite", -1, 1, "", this), - new Among ( "ereste", -1, 1, "", this), - new Among ( "ireste", -1, 1, "", this), - new Among ( "ute", -1, 1, "", this), - new Among ( "erai", -1, 1, "", this), - new Among ( "irai", -1, 1, "", this), - new Among ( "isci", -1, 1, "", this), - new Among ( "endi", -1, 1, "", this), - new Among ( "erei", -1, 1, "", this), - new Among ( "irei", -1, 1, "", this), - new Among ( "assi", -1, 1, "", this), - new Among ( "ati", -1, 1, "", this), - new Among ( "iti", -1, 1, "", this), - new Among ( "eresti", -1, 1, "", this), - new Among ( "iresti", -1, 1, "", this), - new Among ( "uti", -1, 1, "", this), - new Among ( "avi", -1, 1, "", this), - new Among ( "evi", -1, 1, "", this), - new Among ( "ivi", -1, 1, "", this), - new Among ( "isco", -1, 1, "", this), - new Among ( "ando", -1, 1, "", this), - new Among ( "endo", -1, 1, "", this), - new Among ( "Yamo", -1, 1, "", this), - new Among ( "iamo", -1, 1, "", this), - new Among ( "avamo", -1, 1, "", this), - new Among ( "evamo", -1, 1, "", this), - new Among ( "ivamo", -1, 1, "", this), - new Among ( "eremo", -1, 1, "", this), - new Among ( "iremo", -1, 1, "", this), - new Among ( "assimo", -1, 1, "", this), - new Among ( "ammo", -1, 1, "", this), - new Among ( "emmo", -1, 1, "", this), - new Among ( "eremmo", 54, 1, "", this), - new Among ( "iremmo", 54, 1, "", this), - new Among ( "immo", -1, 1, "", this), - new Among ( "ano", -1, 1, "", this), - new Among ( "iscano", 58, 1, "", this), - new Among ( "avano", 58, 1, "", this), - new Among ( "evano", 58, 1, "", this), - new Among ( "ivano", 58, 1, "", this), - new Among ( "eranno", -1, 1, "", this), - new Among ( "iranno", -1, 1, "", this), - new Among ( "ono", -1, 1, "", this), - new Among ( "iscono", 65, 1, "", this), - new Among ( "arono", 65, 1, "", this), - new Among ( "erono", 65, 1, "", this), - new Among ( "irono", 65, 1, "", this), - new Among ( "erebbero", -1, 1, "", this), - new Among ( "irebbero", -1, 1, "", this), - new Among ( "assero", -1, 1, "", this), - new Among ( "essero", -1, 1, "", this), - new Among ( "issero", -1, 1, "", this), - new Among ( "ato", -1, 1, "", this), - new Among ( "ito", -1, 1, "", this), - new Among ( "uto", -1, 1, "", this), - new Among ( "avo", -1, 1, "", this), - new Among ( "evo", -1, 1, "", this), - new Among ( "ivo", -1, 1, "", this), - new Among ( "ar", -1, 1, "", this), - new Among ( "ir", -1, 1, "", this), - new Among ( "er\u00E0", -1, 1, "", this), - new Among ( "ir\u00E0", -1, 1, "", this), - new Among ( "er\u00F2", -1, 1, "", this), - new Among ( "ir\u00F2", -1, 1, "", this) - }; - - private static final char g_v[] = {17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2, 1 }; - - private static final char g_AEIO[] = {17, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2 }; - - private static final char g_CG[] = {17 }; - - private int I_p2; - private int I_p1; - private int I_pV; - - private void copy_from(ItalianStemmer other) { - I_p2 = other.I_p2; - I_p1 = other.I_p1; - I_pV = other.I_pV; - super.copy_from(other); - } - - private boolean r_prelude() { - int among_var; - int v_1; - int v_2; - int v_3; - int v_4; - int v_5; - // (, line 34 - // test, line 35 - v_1 = cursor; - // repeat, line 35 - replab0: while(true) - { - v_2 = cursor; - lab1: do { - // (, line 35 - // [, line 36 - bra = cursor; - // substring, line 36 - among_var = find_among(a_0, 7); - if (among_var == 0) - { - break lab1; - } - // ], line 36 - ket = cursor; - switch(among_var) { - case 0: - break lab1; - case 1: - // (, line 37 - // <-, line 37 - slice_from("\u00E0"); - break; - case 2: - // (, line 38 - // <-, line 38 - slice_from("\u00E8"); - break; - case 3: - // (, line 39 - // <-, line 39 - slice_from("\u00EC"); - break; - case 4: - // (, line 40 - // <-, line 40 - slice_from("\u00F2"); - break; - case 5: - // (, line 41 - // <-, line 41 - slice_from("\u00F9"); - break; - case 6: - // (, line 42 - // <-, line 42 - slice_from("qU"); - break; - case 7: - // (, line 43 - // next, line 43 - if (cursor >= limit) - { - break lab1; - } - cursor++; - break; - } - continue replab0; - } while (false); - cursor = v_2; - break replab0; - } - cursor = v_1; - // repeat, line 46 - replab2: while(true) - { - v_3 = cursor; - lab3: do { - // goto, line 46 - golab4: while(true) - { - v_4 = cursor; - lab5: do { - // (, line 46 - if (!(in_grouping(g_v, 97, 249))) - { - break lab5; - } - // [, line 47 - bra = cursor; - // or, line 47 - lab6: do { - v_5 = cursor; - lab7: do { - // (, line 47 - // literal, line 47 - if (!(eq_s(1, "u"))) - { - break lab7; - } - // ], line 47 - ket = cursor; - if (!(in_grouping(g_v, 97, 249))) - { - break lab7; - } - // <-, line 47 - slice_from("U"); - break lab6; - } while (false); - cursor = v_5; - // (, line 48 - // literal, line 48 - if (!(eq_s(1, "i"))) - { - break lab5; - } - // ], line 48 - ket = cursor; - if (!(in_grouping(g_v, 97, 249))) - { - break lab5; - } - // <-, line 48 - slice_from("I"); - } while (false); - cursor = v_4; - break golab4; - } while (false); - cursor = v_4; - if (cursor >= limit) - { - break lab3; - } - cursor++; - } - continue replab2; - } while (false); - cursor = v_3; - break replab2; - } - return true; - } - - private boolean r_mark_regions() { - int v_1; - int v_2; - int v_3; - int v_6; - int v_8; - // (, line 52 - I_pV = limit; - I_p1 = limit; - I_p2 = limit; - // do, line 58 - v_1 = cursor; - lab0: do { - // (, line 58 - // or, line 60 - lab1: do { - v_2 = cursor; - lab2: do { - // (, line 59 - if (!(in_grouping(g_v, 97, 249))) - { - break lab2; - } - // or, line 59 - lab3: do { - v_3 = cursor; - lab4: do { - // (, line 59 - if (!(out_grouping(g_v, 97, 249))) - { - break lab4; - } - // gopast, line 59 - golab5: while(true) - { - lab6: do { - if (!(in_grouping(g_v, 97, 249))) - { - break lab6; - } - break golab5; - } while (false); - if (cursor >= limit) - { - break lab4; - } - cursor++; - } - break lab3; - } while (false); - cursor = v_3; - // (, line 59 - if (!(in_grouping(g_v, 97, 249))) - { - break lab2; - } - // gopast, line 59 - golab7: while(true) - { - lab8: do { - if (!(out_grouping(g_v, 97, 249))) - { - break lab8; - } - break golab7; - } while (false); - if (cursor >= limit) - { - break lab2; - } - cursor++; - } - } while (false); - break lab1; - } while (false); - cursor = v_2; - // (, line 61 - if (!(out_grouping(g_v, 97, 249))) - { - break lab0; - } - // or, line 61 - lab9: do { - v_6 = cursor; - lab10: do { - // (, line 61 - if (!(out_grouping(g_v, 97, 249))) - { - break lab10; - } - // gopast, line 61 - golab11: while(true) - { - lab12: do { - if (!(in_grouping(g_v, 97, 249))) - { - break lab12; - } - break golab11; - } while (false); - if (cursor >= limit) - { - break lab10; - } - cursor++; - } - break lab9; - } while (false); - cursor = v_6; - // (, line 61 - if (!(in_grouping(g_v, 97, 249))) - { - break lab0; - } - // next, line 61 - if (cursor >= limit) - { - break lab0; - } - cursor++; - } while (false); - } while (false); - // setmark pV, line 62 - I_pV = cursor; - } while (false); - cursor = v_1; - // do, line 64 - v_8 = cursor; - lab13: do { - // (, line 64 - // gopast, line 65 - golab14: while(true) - { - lab15: do { - if (!(in_grouping(g_v, 97, 249))) - { - break lab15; - } - break golab14; - } while (false); - if (cursor >= limit) - { - break lab13; - } - cursor++; - } - // gopast, line 65 - golab16: while(true) - { - lab17: do { - if (!(out_grouping(g_v, 97, 249))) - { - break lab17; - } - break golab16; - } while (false); - if (cursor >= limit) - { - break lab13; - } - cursor++; - } - // setmark p1, line 65 - I_p1 = cursor; - // gopast, line 66 - golab18: while(true) - { - lab19: do { - if (!(in_grouping(g_v, 97, 249))) - { - break lab19; - } - break golab18; - } while (false); - if (cursor >= limit) - { - break lab13; - } - cursor++; - } - // gopast, line 66 - golab20: while(true) - { - lab21: do { - if (!(out_grouping(g_v, 97, 249))) - { - break lab21; - } - break golab20; - } while (false); - if (cursor >= limit) - { - break lab13; - } - cursor++; - } - // setmark p2, line 66 - I_p2 = cursor; - } while (false); - cursor = v_8; - return true; - } - - private boolean r_postlude() { - int among_var; - int v_1; - // repeat, line 70 - replab0: while(true) - { - v_1 = cursor; - lab1: do { - // (, line 70 - // [, line 72 - bra = cursor; - // substring, line 72 - among_var = find_among(a_1, 3); - if (among_var == 0) - { - break lab1; - } - // ], line 72 - ket = cursor; - switch(among_var) { - case 0: - break lab1; - case 1: - // (, line 73 - // <-, line 73 - slice_from("i"); - break; - case 2: - // (, line 74 - // <-, line 74 - slice_from("u"); - break; - case 3: - // (, line 75 - // next, line 75 - if (cursor >= limit) - { - break lab1; - } - cursor++; - break; - } - continue replab0; - } while (false); - cursor = v_1; - break replab0; - } - return true; - } - - private boolean r_RV() { - if (!(I_pV <= cursor)) - { - return false; - } - return true; - } - - private boolean r_R1() { - if (!(I_p1 <= cursor)) - { - return false; - } - return true; - } - - private boolean r_R2() { - if (!(I_p2 <= cursor)) - { - return false; - } - return true; - } - - private boolean r_attached_pronoun() { - int among_var; - // (, line 86 - // [, line 87 - ket = cursor; - // substring, line 87 - if (find_among_b(a_2, 37) == 0) - { - return false; - } - // ], line 87 - bra = cursor; - // among, line 97 - among_var = find_among_b(a_3, 5); - if (among_var == 0) - { - return false; - } - // (, line 97 - // call RV, line 97 - if (!r_RV()) - { - return false; - } - switch(among_var) { - case 0: - return false; - case 1: - // (, line 98 - // delete, line 98 - slice_del(); - break; - case 2: - // (, line 99 - // <-, line 99 - slice_from("e"); - break; - } - return true; - } - - private boolean r_standard_suffix() { - int among_var; - int v_1; - int v_2; - int v_3; - int v_4; - // (, line 103 - // [, line 104 - ket = cursor; - // substring, line 104 - among_var = find_among_b(a_6, 49); - if (among_var == 0) - { - return false; - } - // ], line 104 - bra = cursor; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 110 - // call R2, line 110 - if (!r_R2()) - { - return false; - } - // delete, line 110 - slice_del(); - break; - case 2: - // (, line 112 - // call R2, line 112 - if (!r_R2()) - { - return false; - } - // delete, line 112 - slice_del(); - // try, line 113 - v_1 = limit - cursor; - lab0: do { - // (, line 113 - // [, line 113 - ket = cursor; - // literal, line 113 - if (!(eq_s_b(2, "ic"))) - { - cursor = limit - v_1; - break lab0; - } - // ], line 113 - bra = cursor; - // call R2, line 113 - if (!r_R2()) - { - cursor = limit - v_1; - break lab0; - } - // delete, line 113 - slice_del(); - } while (false); - break; - case 3: - // (, line 116 - // call R2, line 116 - if (!r_R2()) - { - return false; - } - // <-, line 116 - slice_from("log"); - break; - case 4: - // (, line 118 - // call R2, line 118 - if (!r_R2()) - { - return false; - } - // <-, line 118 - slice_from("u"); - break; - case 5: - // (, line 120 - // call R2, line 120 - if (!r_R2()) - { - return false; - } - // <-, line 120 - slice_from("ente"); - break; - case 6: - // (, line 122 - // call RV, line 122 - if (!r_RV()) - { - return false; - } - // delete, line 122 - slice_del(); - break; - case 7: - // (, line 123 - // call R1, line 124 - if (!r_R1()) - { - return false; - } - // delete, line 124 - slice_del(); - // try, line 125 - v_2 = limit - cursor; - lab1: do { - // (, line 125 - // [, line 126 - ket = cursor; - // substring, line 126 - among_var = find_among_b(a_4, 4); - if (among_var == 0) - { - cursor = limit - v_2; - break lab1; - } - // ], line 126 - bra = cursor; - // call R2, line 126 - if (!r_R2()) - { - cursor = limit - v_2; - break lab1; - } - // delete, line 126 - slice_del(); - switch(among_var) { - case 0: - cursor = limit - v_2; - break lab1; - case 1: - // (, line 127 - // [, line 127 - ket = cursor; - // literal, line 127 - if (!(eq_s_b(2, "at"))) - { - cursor = limit - v_2; - break lab1; - } - // ], line 127 - bra = cursor; - // call R2, line 127 - if (!r_R2()) - { - cursor = limit - v_2; - break lab1; - } - // delete, line 127 - slice_del(); - break; - } - } while (false); - break; - case 8: - // (, line 132 - // call R2, line 133 - if (!r_R2()) - { - return false; - } - // delete, line 133 - slice_del(); - // try, line 134 - v_3 = limit - cursor; - lab2: do { - // (, line 134 - // [, line 135 - ket = cursor; - // substring, line 135 - among_var = find_among_b(a_5, 3); - if (among_var == 0) - { - cursor = limit - v_3; - break lab2; - } - // ], line 135 - bra = cursor; - switch(among_var) { - case 0: - cursor = limit - v_3; - break lab2; - case 1: - // (, line 136 - // call R2, line 136 - if (!r_R2()) - { - cursor = limit - v_3; - break lab2; - } - // delete, line 136 - slice_del(); - break; - } - } while (false); - break; - case 9: - // (, line 140 - // call R2, line 141 - if (!r_R2()) - { - return false; - } - // delete, line 141 - slice_del(); - // try, line 142 - v_4 = limit - cursor; - lab3: do { - // (, line 142 - // [, line 142 - ket = cursor; - // literal, line 142 - if (!(eq_s_b(2, "at"))) - { - cursor = limit - v_4; - break lab3; - } - // ], line 142 - bra = cursor; - // call R2, line 142 - if (!r_R2()) - { - cursor = limit - v_4; - break lab3; - } - // delete, line 142 - slice_del(); - // [, line 142 - ket = cursor; - // literal, line 142 - if (!(eq_s_b(2, "ic"))) - { - cursor = limit - v_4; - break lab3; - } - // ], line 142 - bra = cursor; - // call R2, line 142 - if (!r_R2()) - { - cursor = limit - v_4; - break lab3; - } - // delete, line 142 - slice_del(); - } while (false); - break; - } - return true; - } - - private boolean r_verb_suffix() { - int among_var; - int v_1; - int v_2; - // setlimit, line 147 - v_1 = limit - cursor; - // tomark, line 147 - if (cursor < I_pV) - { - return false; - } - cursor = I_pV; - v_2 = limit_backward; - limit_backward = cursor; - cursor = limit - v_1; - // (, line 147 - // [, line 148 - ket = cursor; - // substring, line 148 - among_var = find_among_b(a_7, 87); - if (among_var == 0) - { - limit_backward = v_2; - return false; - } - // ], line 148 - bra = cursor; - switch(among_var) { - case 0: - limit_backward = v_2; - return false; - case 1: - // (, line 162 - // delete, line 162 - slice_del(); - break; - } - limit_backward = v_2; - return true; - } - - private boolean r_vowel_suffix() { - int v_1; - int v_2; - // (, line 169 - // try, line 170 - v_1 = limit - cursor; - lab0: do { - // (, line 170 - // [, line 171 - ket = cursor; - if (!(in_grouping_b(g_AEIO, 97, 242))) - { - cursor = limit - v_1; - break lab0; - } - // ], line 171 - bra = cursor; - // call RV, line 171 - if (!r_RV()) - { - cursor = limit - v_1; - break lab0; - } - // delete, line 171 - slice_del(); - // [, line 172 - ket = cursor; - // literal, line 172 - if (!(eq_s_b(1, "i"))) - { - cursor = limit - v_1; - break lab0; - } - // ], line 172 - bra = cursor; - // call RV, line 172 - if (!r_RV()) - { - cursor = limit - v_1; - break lab0; - } - // delete, line 172 - slice_del(); - } while (false); - // try, line 174 - v_2 = limit - cursor; - lab1: do { - // (, line 174 - // [, line 175 - ket = cursor; - // literal, line 175 - if (!(eq_s_b(1, "h"))) - { - cursor = limit - v_2; - break lab1; - } - // ], line 175 - bra = cursor; - if (!(in_grouping_b(g_CG, 99, 103))) - { - cursor = limit - v_2; - break lab1; - } - // call RV, line 175 - if (!r_RV()) - { - cursor = limit - v_2; - break lab1; - } - // delete, line 175 - slice_del(); - } while (false); - 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; - // (, line 180 - // do, line 181 - v_1 = cursor; - lab0: do { - // call prelude, line 181 - if (!r_prelude()) - { - break lab0; - } - } while (false); - cursor = v_1; - // do, line 182 - v_2 = cursor; - lab1: do { - // call mark_regions, line 182 - if (!r_mark_regions()) - { - break lab1; - } - } while (false); - cursor = v_2; - // backwards, line 183 - limit_backward = cursor; cursor = limit; - // (, line 183 - // do, line 184 - v_3 = limit - cursor; - lab2: do { - // call attached_pronoun, line 184 - if (!r_attached_pronoun()) - { - break lab2; - } - } while (false); - cursor = limit - v_3; - // do, line 185 - v_4 = limit - cursor; - lab3: do { - // (, line 185 - // or, line 185 - lab4: do { - v_5 = limit - cursor; - lab5: do { - // call standard_suffix, line 185 - if (!r_standard_suffix()) - { - break lab5; - } - break lab4; - } while (false); - cursor = limit - v_5; - // call verb_suffix, line 185 - if (!r_verb_suffix()) - { - break lab3; - } - } while (false); - } while (false); - cursor = limit - v_4; - // do, line 186 - v_6 = limit - cursor; - lab6: do { - // call vowel_suffix, line 186 - if (!r_vowel_suffix()) - { - break lab6; - } - } while (false); - cursor = limit - v_6; - cursor = limit_backward; // do, line 188 - v_7 = cursor; - lab7: do { - // call postlude, line 188 - if (!r_postlude()) - { - break lab7; - } - } while (false); - cursor = v_7; - return true; - } - -} - Index: contrib/snowball/src/java/net/sf/snowball/ext/RussianStemmer.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/RussianStemmer.java (revision 613440) +++ contrib/snowball/src/java/net/sf/snowball/ext/RussianStemmer.java (working copy) @@ -1,727 +0,0 @@ -// This file was generated automatically by the Snowball to Java compiler - -package net.sf.snowball.ext; -import net.sf.snowball.SnowballProgram; -import net.sf.snowball.Among; - -/** - * Generated class implementing code defined by a snowball script. - */ -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) - }; - - 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) - }; - - 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) - }; - - private Among a_3[] = { - new Among ( "\u00D3\u00D1", -1, 1, "", this), - new Among ( "\u00D3\u00D8", -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) - }; - - 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) - }; - - private Among a_6[] = { - new Among ( "\u00CF\u00D3\u00D4", -1, 1, "", this), - new Among ( "\u00CF\u00D3\u00D4\u00D8", -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) - }; - - private static final char g_v[] = {35, 130, 34, 18 }; - - private int I_p2; - private int I_pV; - - private void copy_from(RussianStemmer other) { - I_p2 = other.I_p2; - I_pV = other.I_pV; - super.copy_from(other); - } - - private boolean r_mark_regions() { - int v_1; - // (, line 96 - I_pV = limit; - I_p2 = limit; - // do, line 100 - v_1 = cursor; - lab0: do { - // (, line 100 - // gopast, line 101 - golab1: while(true) - { - lab2: do { - if (!(in_grouping(g_v, 192, 220))) - { - break lab2; - } - break golab1; - } while (false); - if (cursor >= limit) - { - break lab0; - } - cursor++; - } - // setmark pV, line 101 - I_pV = cursor; - // gopast, line 101 - golab3: while(true) - { - lab4: do { - if (!(out_grouping(g_v, 192, 220))) - { - break lab4; - } - break golab3; - } while (false); - if (cursor >= limit) - { - break lab0; - } - cursor++; - } - // gopast, line 102 - golab5: while(true) - { - lab6: do { - if (!(in_grouping(g_v, 192, 220))) - { - break lab6; - } - break golab5; - } while (false); - if (cursor >= limit) - { - break lab0; - } - cursor++; - } - // gopast, line 102 - golab7: while(true) - { - lab8: do { - if (!(out_grouping(g_v, 192, 220))) - { - break lab8; - } - break golab7; - } while (false); - if (cursor >= limit) - { - break lab0; - } - cursor++; - } - // setmark p2, line 102 - I_p2 = cursor; - } while (false); - cursor = v_1; - return true; - } - - private boolean r_R2() { - if (!(I_p2 <= cursor)) - { - return false; - } - return true; - } - - private boolean r_perfective_gerund() { - int among_var; - int v_1; - // (, line 110 - // [, line 111 - ket = cursor; - // substring, line 111 - among_var = find_among_b(a_0, 9); - if (among_var == 0) - { - return false; - } - // ], line 111 - bra = cursor; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 115 - // or, line 115 - lab0: do { - v_1 = limit - cursor; - lab1: do { - // literal, line 115 - if (!(eq_s_b(1, "\u00C1"))) - { - break lab1; - } - break lab0; - } while (false); - cursor = limit - v_1; - // literal, line 115 - if (!(eq_s_b(1, "\u00D1"))) - { - return false; - } - } while (false); - // delete, line 115 - slice_del(); - break; - case 2: - // (, line 122 - // delete, line 122 - slice_del(); - break; - } - return true; - } - - private boolean r_adjective() { - int among_var; - // (, line 126 - // [, line 127 - ket = cursor; - // substring, line 127 - among_var = find_among_b(a_1, 26); - if (among_var == 0) - { - return false; - } - // ], line 127 - bra = cursor; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 136 - // delete, line 136 - slice_del(); - break; - } - return true; - } - - private boolean r_adjectival() { - int among_var; - int v_1; - int v_2; - // (, line 140 - // call adjective, line 141 - if (!r_adjective()) - { - return false; - } - // try, line 148 - v_1 = limit - cursor; - lab0: do { - // (, line 148 - // [, line 149 - ket = cursor; - // substring, line 149 - among_var = find_among_b(a_2, 8); - if (among_var == 0) - { - cursor = limit - v_1; - break lab0; - } - // ], line 149 - bra = cursor; - switch(among_var) { - case 0: - cursor = limit - v_1; - break lab0; - case 1: - // (, line 154 - // or, line 154 - lab1: do { - v_2 = limit - cursor; - lab2: do { - // literal, line 154 - if (!(eq_s_b(1, "\u00C1"))) - { - break lab2; - } - break lab1; - } while (false); - cursor = limit - v_2; - // literal, line 154 - if (!(eq_s_b(1, "\u00D1"))) - { - cursor = limit - v_1; - break lab0; - } - } while (false); - // delete, line 154 - slice_del(); - break; - case 2: - // (, line 161 - // delete, line 161 - slice_del(); - break; - } - } while (false); - return true; - } - - private boolean r_reflexive() { - int among_var; - // (, line 167 - // [, line 168 - ket = cursor; - // substring, line 168 - among_var = find_among_b(a_3, 2); - if (among_var == 0) - { - return false; - } - // ], line 168 - bra = cursor; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 171 - // delete, line 171 - slice_del(); - break; - } - return true; - } - - private boolean r_verb() { - int among_var; - int v_1; - // (, line 175 - // [, line 176 - ket = cursor; - // substring, line 176 - among_var = find_among_b(a_4, 46); - if (among_var == 0) - { - return false; - } - // ], line 176 - bra = cursor; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 182 - // or, line 182 - lab0: do { - v_1 = limit - cursor; - lab1: do { - // literal, line 182 - if (!(eq_s_b(1, "\u00C1"))) - { - break lab1; - } - break lab0; - } while (false); - cursor = limit - v_1; - // literal, line 182 - if (!(eq_s_b(1, "\u00D1"))) - { - return false; - } - } while (false); - // delete, line 182 - slice_del(); - break; - case 2: - // (, line 190 - // delete, line 190 - slice_del(); - break; - } - return true; - } - - private boolean r_noun() { - int among_var; - // (, line 198 - // [, line 199 - ket = cursor; - // substring, line 199 - among_var = find_among_b(a_5, 36); - if (among_var == 0) - { - return false; - } - // ], line 199 - bra = cursor; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 206 - // delete, line 206 - slice_del(); - break; - } - return true; - } - - private boolean r_derivational() { - int among_var; - // (, line 214 - // [, line 215 - ket = cursor; - // substring, line 215 - among_var = find_among_b(a_6, 2); - if (among_var == 0) - { - return false; - } - // ], line 215 - bra = cursor; - // call R2, line 215 - if (!r_R2()) - { - return false; - } - switch(among_var) { - case 0: - return false; - case 1: - // (, line 218 - // delete, line 218 - slice_del(); - break; - } - return true; - } - - private boolean r_tidy_up() { - int among_var; - // (, line 222 - // [, line 223 - ket = cursor; - // substring, line 223 - among_var = find_among_b(a_7, 4); - if (among_var == 0) - { - return false; - } - // ], line 223 - bra = cursor; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 227 - // delete, line 227 - slice_del(); - // [, line 228 - ket = cursor; - // literal, line 228 - if (!(eq_s_b(1, "\u00CE"))) - { - return false; - } - // ], line 228 - bra = cursor; - // literal, line 228 - if (!(eq_s_b(1, "\u00CE"))) - { - return false; - } - // delete, line 228 - slice_del(); - break; - case 2: - // (, line 231 - // literal, line 231 - if (!(eq_s_b(1, "\u00CE"))) - { - return false; - } - // delete, line 231 - slice_del(); - break; - case 3: - // (, line 233 - // delete, line 233 - 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 238 - // do, line 240 - v_1 = cursor; - lab0: do { - // call mark_regions, line 240 - if (!r_mark_regions()) - { - break lab0; - } - } while (false); - cursor = v_1; - // backwards, line 241 - limit_backward = cursor; cursor = limit; - // setlimit, line 241 - v_2 = limit - cursor; - // tomark, line 241 - if (cursor < I_pV) - { - return false; - } - cursor = I_pV; - v_3 = limit_backward; - limit_backward = cursor; - cursor = limit - v_2; - // (, line 241 - // do, line 242 - v_4 = limit - cursor; - lab1: do { - // (, line 242 - // or, line 243 - lab2: do { - v_5 = limit - cursor; - lab3: do { - // call perfective_gerund, line 243 - if (!r_perfective_gerund()) - { - break lab3; - } - break lab2; - } while (false); - cursor = limit - v_5; - // (, line 244 - // try, line 244 - v_6 = limit - cursor; - lab4: do { - // call reflexive, line 244 - if (!r_reflexive()) - { - cursor = limit - v_6; - break lab4; - } - } while (false); - // or, line 245 - lab5: do { - v_7 = limit - cursor; - lab6: do { - // call adjectival, line 245 - if (!r_adjectival()) - { - break lab6; - } - break lab5; - } while (false); - cursor = limit - v_7; - lab7: do { - // call verb, line 245 - if (!r_verb()) - { - break lab7; - } - break lab5; - } while (false); - cursor = limit - v_7; - // call noun, line 245 - if (!r_noun()) - { - break lab1; - } - } while (false); - } while (false); - } while (false); - cursor = limit - v_4; - // try, line 248 - v_8 = limit - cursor; - lab8: do { - // (, line 248 - // [, line 248 - ket = cursor; - // literal, line 248 - if (!(eq_s_b(1, "\u00C9"))) - { - cursor = limit - v_8; - break lab8; - } - // ], line 248 - bra = cursor; - // delete, line 248 - slice_del(); - } while (false); - // do, line 251 - v_9 = limit - cursor; - lab9: do { - // call derivational, line 251 - if (!r_derivational()) - { - break lab9; - } - } while (false); - cursor = limit - v_9; - // do, line 252 - v_10 = limit - cursor; - lab10: do { - // call tidy_up, line 252 - if (!r_tidy_up()) - { - break lab10; - } - } while (false); - cursor = limit - v_10; - limit_backward = v_3; - cursor = limit_backward; return true; - } - -} - Index: contrib/snowball/src/java/net/sf/snowball/ext/EnglishStemmer.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/EnglishStemmer.java (revision 613440) +++ contrib/snowball/src/java/net/sf/snowball/ext/EnglishStemmer.java (working copy) @@ -1,1258 +0,0 @@ -// This file was generated automatically by the Snowball to Java compiler - -package net.sf.snowball.ext; -import net.sf.snowball.SnowballProgram; -import net.sf.snowball.Among; - -/** - * Generated class implementing code defined by a snowball script. - */ -public class EnglishStemmer extends SnowballProgram { - - private Among a_0[] = { - new Among ( "gener", -1, -1, "", this) - }; - - private Among a_1[] = { - new Among ( "ied", -1, 2, "", this), - new Among ( "s", -1, 3, "", this), - new Among ( "ies", 1, 2, "", this), - new Among ( "sses", 1, 1, "", this), - new Among ( "ss", 1, -1, "", this), - new Among ( "us", 1, -1, "", this) - }; - - private Among a_2[] = { - new Among ( "", -1, 3, "", this), - new Among ( "bb", 0, 2, "", this), - new Among ( "dd", 0, 2, "", this), - new Among ( "ff", 0, 2, "", this), - new Among ( "gg", 0, 2, "", this), - new Among ( "bl", 0, 1, "", this), - new Among ( "mm", 0, 2, "", this), - new Among ( "nn", 0, 2, "", this), - new Among ( "pp", 0, 2, "", this), - new Among ( "rr", 0, 2, "", this), - new Among ( "at", 0, 1, "", this), - new Among ( "tt", 0, 2, "", this), - new Among ( "iz", 0, 1, "", this) - }; - - private Among a_3[] = { - new Among ( "ed", -1, 2, "", this), - new Among ( "eed", 0, 1, "", this), - new Among ( "ing", -1, 2, "", this), - new Among ( "edly", -1, 2, "", this), - new Among ( "eedly", 3, 1, "", this), - new Among ( "ingly", -1, 2, "", this) - }; - - private Among a_4[] = { - new Among ( "anci", -1, 3, "", this), - new Among ( "enci", -1, 2, "", this), - new Among ( "ogi", -1, 13, "", this), - new Among ( "li", -1, 16, "", this), - new Among ( "bli", 3, 12, "", this), - new Among ( "abli", 4, 4, "", this), - new Among ( "alli", 3, 8, "", this), - new Among ( "fulli", 3, 14, "", this), - new Among ( "lessli", 3, 15, "", this), - new Among ( "ousli", 3, 10, "", this), - new Among ( "entli", 3, 5, "", this), - new Among ( "aliti", -1, 8, "", this), - new Among ( "biliti", -1, 12, "", this), - new Among ( "iviti", -1, 11, "", this), - new Among ( "tional", -1, 1, "", this), - new Among ( "ational", 14, 7, "", this), - new Among ( "alism", -1, 8, "", this), - new Among ( "ation", -1, 7, "", this), - new Among ( "ization", 17, 6, "", this), - new Among ( "izer", -1, 6, "", this), - new Among ( "ator", -1, 7, "", this), - new Among ( "iveness", -1, 11, "", this), - new Among ( "fulness", -1, 9, "", this), - new Among ( "ousness", -1, 10, "", this) - }; - - private Among a_5[] = { - new Among ( "icate", -1, 4, "", this), - new Among ( "ative", -1, 6, "", this), - new Among ( "alize", -1, 3, "", this), - new Among ( "iciti", -1, 4, "", this), - new Among ( "ical", -1, 4, "", this), - new Among ( "tional", -1, 1, "", this), - new Among ( "ational", 5, 2, "", this), - new Among ( "ful", -1, 5, "", this), - new Among ( "ness", -1, 5, "", this) - }; - - private Among a_6[] = { - new Among ( "ic", -1, 1, "", this), - new Among ( "ance", -1, 1, "", this), - new Among ( "ence", -1, 1, "", this), - new Among ( "able", -1, 1, "", this), - new Among ( "ible", -1, 1, "", this), - new Among ( "ate", -1, 1, "", this), - new Among ( "ive", -1, 1, "", this), - new Among ( "ize", -1, 1, "", this), - new Among ( "iti", -1, 1, "", this), - new Among ( "al", -1, 1, "", this), - new Among ( "ism", -1, 1, "", this), - new Among ( "ion", -1, 2, "", this), - new Among ( "er", -1, 1, "", this), - new Among ( "ous", -1, 1, "", this), - new Among ( "ant", -1, 1, "", this), - new Among ( "ent", -1, 1, "", this), - new Among ( "ment", 15, 1, "", this), - new Among ( "ement", 16, 1, "", this) - }; - - private Among a_7[] = { - new Among ( "e", -1, 1, "", this), - new Among ( "l", -1, 2, "", this) - }; - - private Among a_8[] = { - new Among ( "succeed", -1, -1, "", this), - new Among ( "proceed", -1, -1, "", this), - new Among ( "exceed", -1, -1, "", this), - new Among ( "canning", -1, -1, "", this), - new Among ( "inning", -1, -1, "", this), - new Among ( "earring", -1, -1, "", this), - new Among ( "herring", -1, -1, "", this), - new Among ( "outing", -1, -1, "", this) - }; - - private Among a_9[] = { - new Among ( "andes", -1, -1, "", this), - new Among ( "atlas", -1, -1, "", this), - new Among ( "bias", -1, -1, "", this), - new Among ( "cosmos", -1, -1, "", this), - new Among ( "dying", -1, 3, "", this), - new Among ( "early", -1, 9, "", this), - new Among ( "gently", -1, 7, "", this), - new Among ( "howe", -1, -1, "", this), - new Among ( "idly", -1, 6, "", this), - new Among ( "lying", -1, 4, "", this), - new Among ( "news", -1, -1, "", this), - new Among ( "only", -1, 10, "", this), - new Among ( "singly", -1, 11, "", this), - new Among ( "skies", -1, 2, "", this), - new Among ( "skis", -1, 1, "", this), - new Among ( "sky", -1, -1, "", this), - new Among ( "tying", -1, 5, "", this), - new Among ( "ugly", -1, 8, "", this) - }; - - private static final char g_v[] = {17, 65, 16, 1 }; - - private static final char g_v_WXY[] = {1, 17, 65, 208, 1 }; - - private static final char g_valid_LI[] = {55, 141, 2 }; - - private boolean B_Y_found; - private int I_p2; - private int I_p1; - - private void copy_from(EnglishStemmer other) { - B_Y_found = other.B_Y_found; - I_p2 = other.I_p2; - I_p1 = other.I_p1; - super.copy_from(other); - } - - private boolean r_prelude() { - int v_1; - int v_2; - int v_3; - int v_4; - // (, line 23 - // unset Y_found, line 24 - B_Y_found = false; - // do, line 25 - v_1 = cursor; - lab0: do { - // (, line 25 - // [, line 25 - bra = cursor; - // literal, line 25 - if (!(eq_s(1, "y"))) - { - break lab0; - } - // ], line 25 - ket = cursor; - if (!(in_grouping(g_v, 97, 121))) - { - break lab0; - } - // <-, line 25 - slice_from("Y"); - // set Y_found, line 25 - B_Y_found = true; - } while (false); - cursor = v_1; - // do, line 26 - v_2 = cursor; - lab1: do { - // repeat, line 26 - replab2: while(true) - { - v_3 = cursor; - lab3: do { - // (, line 26 - // goto, line 26 - golab4: while(true) - { - v_4 = cursor; - lab5: do { - // (, line 26 - if (!(in_grouping(g_v, 97, 121))) - { - break lab5; - } - // [, line 26 - bra = cursor; - // literal, line 26 - if (!(eq_s(1, "y"))) - { - break lab5; - } - // ], line 26 - ket = cursor; - cursor = v_4; - break golab4; - } while (false); - cursor = v_4; - if (cursor >= limit) - { - break lab3; - } - cursor++; - } - // <-, line 26 - slice_from("Y"); - // set Y_found, line 26 - B_Y_found = true; - continue replab2; - } while (false); - cursor = v_3; - break replab2; - } - } while (false); - cursor = v_2; - return true; - } - - private boolean r_mark_regions() { - int v_1; - int v_2; - // (, line 29 - I_p1 = limit; - I_p2 = limit; - // do, line 32 - v_1 = cursor; - lab0: do { - // (, line 32 - // or, line 36 - lab1: do { - v_2 = cursor; - lab2: do { - // among, line 33 - if (find_among(a_0, 1) == 0) - { - break lab2; - } - break lab1; - } while (false); - cursor = v_2; - // (, line 36 - // gopast, line 36 - golab3: while(true) - { - lab4: do { - if (!(in_grouping(g_v, 97, 121))) - { - break lab4; - } - break golab3; - } while (false); - if (cursor >= limit) - { - break lab0; - } - cursor++; - } - // gopast, line 36 - golab5: while(true) - { - lab6: do { - if (!(out_grouping(g_v, 97, 121))) - { - break lab6; - } - break golab5; - } while (false); - if (cursor >= limit) - { - break lab0; - } - cursor++; - } - } while (false); - // setmark p1, line 37 - I_p1 = cursor; - // gopast, line 38 - golab7: while(true) - { - lab8: do { - if (!(in_grouping(g_v, 97, 121))) - { - break lab8; - } - break golab7; - } while (false); - if (cursor >= limit) - { - break lab0; - } - cursor++; - } - // gopast, line 38 - golab9: while(true) - { - lab10: do { - if (!(out_grouping(g_v, 97, 121))) - { - break lab10; - } - break golab9; - } while (false); - if (cursor >= limit) - { - break lab0; - } - cursor++; - } - // setmark p2, line 38 - I_p2 = cursor; - } while (false); - cursor = v_1; - return true; - } - - private boolean r_shortv() { - int v_1; - // (, line 44 - // or, line 46 - lab0: do { - v_1 = limit - cursor; - lab1: do { - // (, line 45 - if (!(out_grouping_b(g_v_WXY, 89, 121))) - { - break lab1; - } - if (!(in_grouping_b(g_v, 97, 121))) - { - break lab1; - } - if (!(out_grouping_b(g_v, 97, 121))) - { - break lab1; - } - break lab0; - } while (false); - cursor = limit - v_1; - // (, line 47 - if (!(out_grouping_b(g_v, 97, 121))) - { - return false; - } - if (!(in_grouping_b(g_v, 97, 121))) - { - return false; - } - // atlimit, line 47 - if (cursor > limit_backward) - { - return false; - } - } while (false); - return true; - } - - private boolean r_R1() { - if (!(I_p1 <= cursor)) - { - return false; - } - return true; - } - - private boolean r_R2() { - if (!(I_p2 <= cursor)) - { - return false; - } - return true; - } - - private boolean r_Step_1a() { - int among_var; - int v_1; - // (, line 53 - // [, line 54 - ket = cursor; - // substring, line 54 - among_var = find_among_b(a_1, 6); - if (among_var == 0) - { - return false; - } - // ], line 54 - bra = cursor; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 55 - // <-, line 55 - 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) - { - break lab1; - } - cursor--; - // atlimit, line 57 - if (cursor > limit_backward) - { - break lab1; - } - // <-, line 57 - slice_from("ie"); - break lab0; - } while (false); - cursor = limit - v_1; - // <-, line 57 - slice_from("i"); - } while (false); - break; - case 3: - // (, line 58 - // next, line 58 - if (cursor <= limit_backward) - { - return false; - } - cursor--; - // gopast, line 58 - golab2: while(true) - { - lab3: do { - if (!(in_grouping_b(g_v, 97, 121))) - { - break lab3; - } - break golab2; - } while (false); - if (cursor <= limit_backward) - { - return false; - } - cursor--; - } - // delete, line 58 - slice_del(); - break; - } - return true; - } - - private boolean r_Step_1b() { - int among_var; - int v_1; - int v_3; - int v_4; - // (, line 63 - // [, line 64 - ket = cursor; - // substring, line 64 - among_var = find_among_b(a_3, 6); - if (among_var == 0) - { - return false; - } - // ], line 64 - bra = cursor; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 66 - // call R1, line 66 - if (!r_R1()) - { - return false; - } - // <-, line 66 - slice_from("ee"); - break; - case 2: - // (, line 68 - // test, line 69 - v_1 = limit - cursor; - // gopast, line 69 - golab0: while(true) - { - lab1: do { - if (!(in_grouping_b(g_v, 97, 121))) - { - break lab1; - } - break golab0; - } while (false); - if (cursor <= limit_backward) - { - return false; - } - cursor--; - } - cursor = limit - v_1; - // delete, line 69 - slice_del(); - // test, line 70 - v_3 = limit - cursor; - // substring, line 70 - among_var = find_among_b(a_2, 13); - if (among_var == 0) - { - return false; - } - cursor = limit - v_3; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 72 - // <+, line 72 - { - int c = cursor; - insert(cursor, cursor, "e"); - cursor = c; - } - break; - case 2: - // (, line 75 - // [, line 75 - ket = cursor; - // next, line 75 - if (cursor <= limit_backward) - { - return false; - } - cursor--; - // ], line 75 - bra = cursor; - // delete, line 75 - slice_del(); - break; - case 3: - // (, line 76 - // atmark, line 76 - if (cursor != I_p1) - { - return false; - } - // test, line 76 - v_4 = limit - cursor; - // call shortv, line 76 - if (!r_shortv()) - { - return false; - } - cursor = limit - v_4; - // <+, line 76 - { - int c = cursor; - insert(cursor, cursor, "e"); - cursor = c; - } - break; - } - break; - } - return true; - } - - private boolean r_Step_1c() { - int v_1; - int v_2; - // (, line 82 - // [, line 83 - ket = cursor; - // or, line 83 - lab0: do { - v_1 = limit - cursor; - lab1: do { - // literal, line 83 - if (!(eq_s_b(1, "y"))) - { - break lab1; - } - break lab0; - } while (false); - cursor = limit - v_1; - // literal, line 83 - if (!(eq_s_b(1, "Y"))) - { - return false; - } - } while (false); - // ], line 83 - bra = cursor; - if (!(out_grouping_b(g_v, 97, 121))) - { - return false; - } - // not, line 84 - { - v_2 = limit - cursor; - lab2: do { - // atlimit, line 84 - if (cursor > limit_backward) - { - break lab2; - } - return false; - } while (false); - cursor = limit - v_2; - } - // <-, line 85 - slice_from("i"); - return true; - } - - private boolean r_Step_2() { - int among_var; - // (, line 88 - // [, line 89 - ket = cursor; - // substring, line 89 - among_var = find_among_b(a_4, 24); - if (among_var == 0) - { - return false; - } - // ], line 89 - bra = cursor; - // call R1, line 89 - if (!r_R1()) - { - return false; - } - switch(among_var) { - case 0: - return false; - case 1: - // (, line 90 - // <-, line 90 - slice_from("tion"); - break; - case 2: - // (, line 91 - // <-, line 91 - slice_from("ence"); - break; - case 3: - // (, line 92 - // <-, line 92 - slice_from("ance"); - break; - case 4: - // (, line 93 - // <-, line 93 - slice_from("able"); - break; - case 5: - // (, line 94 - // <-, line 94 - slice_from("ent"); - break; - case 6: - // (, line 96 - // <-, line 96 - slice_from("ize"); - break; - case 7: - // (, line 98 - // <-, line 98 - slice_from("ate"); - break; - case 8: - // (, line 100 - // <-, line 100 - slice_from("al"); - break; - case 9: - // (, line 101 - // <-, line 101 - slice_from("ful"); - break; - case 10: - // (, line 103 - // <-, line 103 - slice_from("ous"); - break; - case 11: - // (, line 105 - // <-, line 105 - slice_from("ive"); - break; - case 12: - // (, line 107 - // <-, line 107 - slice_from("ble"); - break; - case 13: - // (, line 108 - // literal, line 108 - if (!(eq_s_b(1, "l"))) - { - return false; - } - // <-, line 108 - slice_from("og"); - break; - case 14: - // (, line 109 - // <-, line 109 - slice_from("ful"); - break; - case 15: - // (, line 110 - // <-, line 110 - slice_from("less"); - break; - case 16: - // (, line 111 - if (!(in_grouping_b(g_valid_LI, 99, 116))) - { - return false; - } - // delete, line 111 - slice_del(); - break; - } - return true; - } - - private boolean r_Step_3() { - int among_var; - // (, line 115 - // [, line 116 - ket = cursor; - // substring, line 116 - among_var = find_among_b(a_5, 9); - 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("tion"); - break; - case 2: - // (, line 118 - // <-, line 118 - slice_from("ate"); - break; - case 3: - // (, line 119 - // <-, line 119 - slice_from("al"); - break; - case 4: - // (, line 121 - // <-, line 121 - slice_from("ic"); - break; - case 5: - // (, line 123 - // delete, line 123 - slice_del(); - break; - case 6: - // (, line 125 - // call R2, line 125 - if (!r_R2()) - { - return false; - } - // delete, line 125 - slice_del(); - break; - } - return true; - } - - private boolean r_Step_4() { - int among_var; - int v_1; - // (, line 129 - // [, line 130 - ket = cursor; - // substring, line 130 - among_var = find_among_b(a_6, 18); - if (among_var == 0) - { - return false; - } - // ], line 130 - bra = cursor; - // call R2, line 130 - if (!r_R2()) - { - return false; - } - switch(among_var) { - case 0: - return false; - case 1: - // (, line 133 - // delete, line 133 - slice_del(); - break; - case 2: - // (, line 134 - // or, line 134 - lab0: do { - v_1 = limit - cursor; - lab1: do { - // literal, line 134 - if (!(eq_s_b(1, "s"))) - { - break lab1; - } - break lab0; - } while (false); - cursor = limit - v_1; - // literal, line 134 - if (!(eq_s_b(1, "t"))) - { - return false; - } - } while (false); - // delete, line 134 - slice_del(); - break; - } - return true; - } - - private boolean r_Step_5() { - int among_var; - int v_1; - int v_2; - // (, line 138 - // [, line 139 - ket = cursor; - // substring, line 139 - among_var = find_among_b(a_7, 2); - if (among_var == 0) - { - return false; - } - // ], line 139 - bra = cursor; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 140 - // or, line 140 - lab0: do { - v_1 = limit - cursor; - lab1: do { - // call R2, line 140 - if (!r_R2()) - { - break lab1; - } - break lab0; - } while (false); - cursor = limit - v_1; - // (, line 140 - // call R1, line 140 - if (!r_R1()) - { - return false; - } - // not, line 140 - { - v_2 = limit - cursor; - lab2: do { - // call shortv, line 140 - if (!r_shortv()) - { - break lab2; - } - return false; - } while (false); - cursor = limit - v_2; - } - } while (false); - // delete, line 140 - slice_del(); - break; - case 2: - // (, line 141 - // call R2, line 141 - if (!r_R2()) - { - return false; - } - // literal, line 141 - if (!(eq_s_b(1, "l"))) - { - return false; - } - // delete, line 141 - slice_del(); - break; - } - return true; - } - - private boolean r_exception2() { - // (, line 145 - // [, line 147 - ket = cursor; - // substring, line 147 - if (find_among_b(a_8, 8) == 0) - { - return false; - } - // ], line 147 - bra = cursor; - // atlimit, line 147 - if (cursor > limit_backward) - { - return false; - } - return true; - } - - private boolean r_exception1() { - int among_var; - // (, line 157 - // [, line 159 - bra = cursor; - // substring, line 159 - among_var = find_among(a_9, 18); - if (among_var == 0) - { - return false; - } - // ], line 159 - ket = cursor; - // atlimit, line 159 - if (cursor < limit) - { - return false; - } - switch(among_var) { - case 0: - return false; - case 1: - // (, line 163 - // <-, line 163 - slice_from("ski"); - break; - case 2: - // (, line 164 - // <-, line 164 - slice_from("sky"); - break; - case 3: - // (, line 165 - // <-, line 165 - slice_from("die"); - break; - case 4: - // (, line 166 - // <-, line 166 - slice_from("lie"); - break; - case 5: - // (, line 167 - // <-, line 167 - slice_from("tie"); - break; - case 6: - // (, line 171 - // <-, line 171 - slice_from("idl"); - break; - case 7: - // (, line 172 - // <-, line 172 - slice_from("gentl"); - break; - case 8: - // (, line 173 - // <-, line 173 - slice_from("ugli"); - break; - case 9: - // (, line 174 - // <-, line 174 - slice_from("earli"); - break; - case 10: - // (, line 175 - // <-, line 175 - slice_from("onli"); - break; - case 11: - // (, line 176 - // <-, line 176 - slice_from("singl"); - break; - } - return true; - } - - private boolean r_postlude() { - int v_1; - int v_2; - // (, line 192 - // Boolean test Y_found, line 192 - if (!(B_Y_found)) - { - return false; - } - // repeat, line 192 - replab0: while(true) - { - v_1 = cursor; - lab1: do { - // (, line 192 - // goto, line 192 - golab2: while(true) - { - v_2 = cursor; - lab3: do { - // (, line 192 - // [, line 192 - bra = cursor; - // literal, line 192 - if (!(eq_s(1, "Y"))) - { - break lab3; - } - // ], line 192 - ket = cursor; - cursor = v_2; - break golab2; - } while (false); - cursor = v_2; - if (cursor >= limit) - { - break lab1; - } - cursor++; - } - // <-, line 192 - slice_from("y"); - continue replab0; - } while (false); - cursor = v_1; - break replab0; - } - 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; - int v_11; - int v_12; - int v_13; - // (, line 194 - // or, line 196 - lab0: do { - v_1 = cursor; - lab1: do { - // call exception1, line 196 - if (!r_exception1()) - { - break lab1; - } - 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) - { - return false; - } - cursor = c; - } - cursor = v_2; - // do, line 199 - v_3 = cursor; - lab2: do { - // call prelude, line 199 - if (!r_prelude()) - { - break lab2; - } - } while (false); - cursor = v_3; - // do, line 200 - v_4 = cursor; - lab3: do { - // call mark_regions, line 200 - if (!r_mark_regions()) - { - break lab3; - } - } while (false); - cursor = v_4; - // backwards, line 201 - limit_backward = cursor; cursor = limit; - // (, line 201 - // do, line 203 - v_5 = limit - cursor; - lab4: do { - // call Step_1a, line 203 - if (!r_Step_1a()) - { - break lab4; - } - } while (false); - cursor = limit - v_5; - // or, line 205 - lab5: do { - v_6 = limit - cursor; - lab6: do { - // call exception2, line 205 - if (!r_exception2()) - { - break lab6; - } - break lab5; - } while (false); - cursor = limit - v_6; - // (, line 205 - // do, line 207 - v_7 = limit - cursor; - lab7: do { - // call Step_1b, line 207 - if (!r_Step_1b()) - { - break lab7; - } - } while (false); - cursor = limit - v_7; - // do, line 208 - v_8 = limit - cursor; - lab8: do { - // call Step_1c, line 208 - if (!r_Step_1c()) - { - break lab8; - } - } while (false); - cursor = limit - v_8; - // do, line 210 - v_9 = limit - cursor; - lab9: do { - // call Step_2, line 210 - if (!r_Step_2()) - { - break lab9; - } - } while (false); - cursor = limit - v_9; - // do, line 211 - v_10 = limit - cursor; - lab10: do { - // call Step_3, line 211 - if (!r_Step_3()) - { - break lab10; - } - } while (false); - cursor = limit - v_10; - // do, line 212 - v_11 = limit - cursor; - lab11: do { - // call Step_4, line 212 - if (!r_Step_4()) - { - break lab11; - } - } while (false); - cursor = limit - v_11; - // do, line 214 - v_12 = limit - cursor; - lab12: do { - // call Step_5, line 214 - if (!r_Step_5()) - { - break lab12; - } - } while (false); - cursor = limit - v_12; - } while (false); - cursor = limit_backward; // do, line 217 - v_13 = cursor; - lab13: do { - // call postlude, line 217 - if (!r_postlude()) - { - break lab13; - } - } while (false); - cursor = v_13; - } while (false); - return true; - } - -} - Index: contrib/snowball/src/java/net/sf/snowball/ext/NorwegianStemmer.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/NorwegianStemmer.java (revision 613440) +++ contrib/snowball/src/java/net/sf/snowball/ext/NorwegianStemmer.java (working copy) @@ -1,321 +0,0 @@ -// This file was generated automatically by the Snowball to Java compiler - -package net.sf.snowball.ext; -import net.sf.snowball.SnowballProgram; -import net.sf.snowball.Among; - -/** - * Generated class implementing code defined by a snowball script. - */ -public class NorwegianStemmer extends SnowballProgram { - - private Among a_0[] = { - new Among ( "a", -1, 1, "", this), - new Among ( "e", -1, 1, "", this), - new Among ( "ede", 1, 1, "", this), - new Among ( "ande", 1, 1, "", this), - new Among ( "ende", 1, 1, "", this), - new Among ( "ane", 1, 1, "", this), - new Among ( "ene", 1, 1, "", this), - new Among ( "hetene", 6, 1, "", this), - new Among ( "erte", 1, 3, "", this), - new Among ( "en", -1, 1, "", this), - new Among ( "heten", 9, 1, "", this), - new Among ( "ar", -1, 1, "", this), - new Among ( "er", -1, 1, "", this), - new Among ( "heter", 12, 1, "", this), - new Among ( "s", -1, 2, "", this), - new Among ( "as", 14, 1, "", this), - new Among ( "es", 14, 1, "", this), - new Among ( "edes", 16, 1, "", this), - new Among ( "endes", 16, 1, "", this), - new Among ( "enes", 16, 1, "", this), - new Among ( "hetenes", 19, 1, "", this), - new Among ( "ens", 14, 1, "", this), - new Among ( "hetens", 21, 1, "", this), - new Among ( "ers", 14, 1, "", this), - new Among ( "ets", 14, 1, "", this), - new Among ( "et", -1, 1, "", this), - new Among ( "het", 25, 1, "", this), - new Among ( "ert", -1, 3, "", this), - new Among ( "ast", -1, 1, "", this) - }; - - private Among a_1[] = { - new Among ( "dt", -1, -1, "", this), - new Among ( "vt", -1, -1, "", this) - }; - - private Among a_2[] = { - new Among ( "leg", -1, 1, "", this), - new Among ( "eleg", 0, 1, "", this), - new Among ( "ig", -1, 1, "", this), - new Among ( "eig", 2, 1, "", this), - new Among ( "lig", 2, 1, "", this), - new Among ( "elig", 4, 1, "", this), - new Among ( "els", -1, 1, "", this), - new Among ( "lov", -1, 1, "", this), - new Among ( "elov", 7, 1, "", this), - new Among ( "slov", 7, 1, "", this), - new Among ( "hetslov", 9, 1, "", this) - }; - - 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 int I_p1; - - private void copy_from(NorwegianStemmer other) { - I_p1 = other.I_p1; - super.copy_from(other); - } - - private boolean r_mark_regions() { - int v_1; - // (, line 26 - I_p1 = limit; - // goto, line 30 - golab0: while(true) - { - v_1 = cursor; - lab1: do { - if (!(in_grouping(g_v, 97, 248))) - { - break lab1; - } - cursor = v_1; - break golab0; - } while (false); - cursor = v_1; - if (cursor >= limit) - { - return false; - } - cursor++; - } - // gopast, line 30 - golab2: while(true) - { - lab3: do { - if (!(out_grouping(g_v, 97, 248))) - { - break lab3; - } - break golab2; - } while (false); - if (cursor >= limit) - { - return false; - } - cursor++; - } - // setmark p1, line 30 - I_p1 = cursor; - // try, line 31 - lab4: do { - // (, line 31 - if (!(I_p1 < 3)) - { - break lab4; - } - I_p1 = 3; - } while (false); - return true; - } - - private boolean r_main_suffix() { - int among_var; - int v_1; - int v_2; - // (, line 36 - // setlimit, line 37 - v_1 = limit - cursor; - // tomark, line 37 - if (cursor < I_p1) - { - return false; - } - cursor = I_p1; - v_2 = limit_backward; - limit_backward = cursor; - cursor = limit - v_1; - // (, line 37 - // [, line 37 - ket = cursor; - // substring, line 37 - among_var = find_among_b(a_0, 29); - if (among_var == 0) - { - limit_backward = v_2; - return false; - } - // ], line 37 - bra = cursor; - limit_backward = v_2; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 43 - // delete, line 43 - slice_del(); - break; - case 2: - // (, line 45 - if (!(in_grouping_b(g_s_ending, 98, 122))) - { - return false; - } - // delete, line 45 - slice_del(); - break; - case 3: - // (, line 47 - // <-, line 47 - slice_from("er"); - break; - } - return true; - } - - private boolean r_consonant_pair() { - int v_1; - int v_2; - int v_3; - // (, line 51 - // test, line 52 - v_1 = limit - cursor; - // (, line 52 - // setlimit, line 53 - v_2 = limit - cursor; - // tomark, line 53 - if (cursor < I_p1) - { - return false; - } - cursor = I_p1; - v_3 = limit_backward; - limit_backward = cursor; - cursor = limit - v_2; - // (, line 53 - // [, line 53 - ket = cursor; - // substring, line 53 - if (find_among_b(a_1, 2) == 0) - { - limit_backward = v_3; - return false; - } - // ], line 53 - bra = cursor; - limit_backward = v_3; - cursor = limit - v_1; - // next, line 58 - if (cursor <= limit_backward) - { - return false; - } - cursor--; - // ], line 58 - bra = cursor; - // delete, line 58 - slice_del(); - return true; - } - - private boolean r_other_suffix() { - int among_var; - int v_1; - int v_2; - // (, line 61 - // setlimit, line 62 - v_1 = limit - cursor; - // tomark, line 62 - if (cursor < I_p1) - { - return false; - } - cursor = I_p1; - v_2 = limit_backward; - limit_backward = cursor; - cursor = limit - v_1; - // (, line 62 - // [, line 62 - ket = cursor; - // substring, line 62 - among_var = find_among_b(a_2, 11); - if (among_var == 0) - { - limit_backward = v_2; - return false; - } - // ], line 62 - bra = cursor; - limit_backward = v_2; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 66 - // delete, line 66 - slice_del(); - break; - } - return true; - } - - public boolean stem() { - int v_1; - int v_2; - int v_3; - int v_4; - // (, line 71 - // do, line 73 - v_1 = cursor; - lab0: do { - // call mark_regions, line 73 - if (!r_mark_regions()) - { - break lab0; - } - } while (false); - cursor = v_1; - // backwards, line 74 - limit_backward = cursor; cursor = limit; - // (, line 74 - // do, line 75 - v_2 = limit - cursor; - lab1: do { - // call main_suffix, line 75 - if (!r_main_suffix()) - { - break lab1; - } - } while (false); - cursor = limit - v_2; - // do, line 76 - v_3 = limit - cursor; - lab2: do { - // call consonant_pair, line 76 - if (!r_consonant_pair()) - { - break lab2; - } - } while (false); - cursor = limit - v_3; - // do, line 77 - v_4 = limit - cursor; - lab3: do { - // call other_suffix, line 77 - if (!r_other_suffix()) - { - break lab3; - } - } while (false); - cursor = limit - v_4; - cursor = limit_backward; return true; - } - -} - Index: contrib/snowball/src/java/net/sf/snowball/ext/German2Stemmer.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/German2Stemmer.java (revision 613440) +++ contrib/snowball/src/java/net/sf/snowball/ext/German2Stemmer.java (working copy) @@ -1,708 +0,0 @@ -// This file was generated automatically by the Snowball to Java compiler - -package net.sf.snowball.ext; -import net.sf.snowball.SnowballProgram; -import net.sf.snowball.Among; - -/** - * Generated class implementing code defined by a snowball script. - */ -public class German2Stemmer extends SnowballProgram { - - private Among a_0[] = { - new Among ( "", -1, 6, "", this), - new Among ( "ae", 0, 2, "", this), - new Among ( "oe", 0, 3, "", this), - new Among ( "qu", 0, 5, "", this), - new Among ( "ue", 0, 4, "", this), - new Among ( "\u00DF", 0, 1, "", this) - }; - - private Among a_1[] = { - new Among ( "", -1, 6, "", this), - new Among ( "U", 0, 2, "", this), - new Among ( "Y", 0, 1, "", this), - new Among ( "\u00E4", 0, 3, "", this), - new Among ( "\u00F6", 0, 4, "", this), - new Among ( "\u00FC", 0, 5, "", this) - }; - - private Among a_2[] = { - new Among ( "e", -1, 1, "", this), - new Among ( "em", -1, 1, "", this), - new Among ( "en", -1, 1, "", this), - new Among ( "ern", -1, 1, "", this), - new Among ( "er", -1, 1, "", this), - new Among ( "s", -1, 2, "", this), - new Among ( "es", 5, 1, "", this) - }; - - private Among a_3[] = { - new Among ( "en", -1, 1, "", this), - new Among ( "er", -1, 1, "", this), - new Among ( "st", -1, 2, "", this), - new Among ( "est", 2, 1, "", this) - }; - - private Among a_4[] = { - new Among ( "ig", -1, 1, "", this), - new Among ( "lich", -1, 1, "", this) - }; - - private Among a_5[] = { - new Among ( "end", -1, 1, "", this), - new Among ( "ig", -1, 2, "", this), - new Among ( "ung", -1, 1, "", this), - new Among ( "lich", -1, 3, "", this), - new Among ( "isch", -1, 2, "", this), - new Among ( "ik", -1, 2, "", this), - new Among ( "heit", -1, 3, "", this), - new Among ( "keit", -1, 4, "", this) - }; - - 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, 8 }; - - private static final char g_s_ending[] = {117, 30, 5 }; - - private static final char g_st_ending[] = {117, 30, 4 }; - - private int I_p2; - private int I_p1; - - private void copy_from(German2Stemmer other) { - I_p2 = other.I_p2; - I_p1 = other.I_p1; - super.copy_from(other); - } - - private boolean r_prelude() { - int among_var; - int v_1; - int v_2; - int v_3; - int v_4; - int v_5; - // (, line 28 - // test, line 30 - v_1 = cursor; - // repeat, line 30 - replab0: while(true) - { - v_2 = cursor; - lab1: do { - // goto, line 30 - golab2: while(true) - { - v_3 = cursor; - lab3: do { - // (, line 30 - if (!(in_grouping(g_v, 97, 252))) - { - break lab3; - } - // [, line 31 - bra = cursor; - // or, line 31 - lab4: do { - v_4 = cursor; - lab5: do { - // (, line 31 - // literal, line 31 - if (!(eq_s(1, "u"))) - { - break lab5; - } - // ], line 31 - ket = cursor; - if (!(in_grouping(g_v, 97, 252))) - { - break lab5; - } - // <-, line 31 - slice_from("U"); - break lab4; - } while (false); - cursor = v_4; - // (, line 32 - // literal, line 32 - if (!(eq_s(1, "y"))) - { - break lab3; - } - // ], line 32 - ket = cursor; - if (!(in_grouping(g_v, 97, 252))) - { - break lab3; - } - // <-, line 32 - slice_from("Y"); - } while (false); - cursor = v_3; - break golab2; - } while (false); - cursor = v_3; - if (cursor >= limit) - { - break lab1; - } - cursor++; - } - continue replab0; - } while (false); - cursor = v_2; - break replab0; - } - cursor = v_1; - // repeat, line 35 - replab6: while(true) - { - v_5 = cursor; - lab7: do { - // (, line 35 - // [, line 36 - bra = cursor; - // substring, line 36 - among_var = find_among(a_0, 6); - if (among_var == 0) - { - break lab7; - } - // ], line 36 - ket = cursor; - switch(among_var) { - case 0: - break lab7; - case 1: - // (, line 37 - // <-, line 37 - slice_from("ss"); - break; - case 2: - // (, line 38 - // <-, line 38 - slice_from("\u00E4"); - break; - case 3: - // (, line 39 - // <-, line 39 - slice_from("\u00F6"); - break; - case 4: - // (, line 40 - // <-, line 40 - slice_from("\u00FC"); - break; - case 5: - // (, line 41 - // hop, line 41 - { - int c = cursor + 2; - if (0 > c || c > limit) - { - break lab7; - } - cursor = c; - } - break; - case 6: - // (, line 42 - // next, line 42 - if (cursor >= limit) - { - break lab7; - } - cursor++; - break; - } - continue replab6; - } while (false); - cursor = v_5; - break replab6; - } - return true; - } - - private boolean r_mark_regions() { - // (, line 48 - I_p1 = limit; - I_p2 = limit; - // gopast, line 53 - golab0: while(true) - { - lab1: do { - if (!(in_grouping(g_v, 97, 252))) - { - break lab1; - } - break golab0; - } while (false); - if (cursor >= limit) - { - return false; - } - cursor++; - } - // gopast, line 53 - golab2: while(true) - { - lab3: do { - if (!(out_grouping(g_v, 97, 252))) - { - break lab3; - } - break golab2; - } while (false); - if (cursor >= limit) - { - return false; - } - cursor++; - } - // setmark p1, line 53 - I_p1 = cursor; - // try, line 54 - lab4: do { - // (, line 54 - if (!(I_p1 < 3)) - { - break lab4; - } - I_p1 = 3; - } while (false); - // gopast, line 55 - golab5: while(true) - { - lab6: do { - if (!(in_grouping(g_v, 97, 252))) - { - break lab6; - } - break golab5; - } while (false); - if (cursor >= limit) - { - return false; - } - cursor++; - } - // gopast, line 55 - golab7: while(true) - { - lab8: do { - if (!(out_grouping(g_v, 97, 252))) - { - break lab8; - } - break golab7; - } while (false); - if (cursor >= limit) - { - return false; - } - cursor++; - } - // setmark p2, line 55 - I_p2 = cursor; - return true; - } - - private boolean r_postlude() { - int among_var; - int v_1; - // repeat, line 59 - replab0: while(true) - { - v_1 = cursor; - lab1: do { - // (, line 59 - // [, line 61 - bra = cursor; - // substring, line 61 - among_var = find_among(a_1, 6); - if (among_var == 0) - { - break lab1; - } - // ], line 61 - ket = cursor; - switch(among_var) { - case 0: - break lab1; - case 1: - // (, line 62 - // <-, line 62 - slice_from("y"); - break; - case 2: - // (, line 63 - // <-, line 63 - slice_from("u"); - break; - case 3: - // (, line 64 - // <-, line 64 - slice_from("a"); - break; - case 4: - // (, line 65 - // <-, line 65 - slice_from("o"); - break; - case 5: - // (, line 66 - // <-, line 66 - slice_from("u"); - break; - case 6: - // (, line 67 - // next, line 67 - if (cursor >= limit) - { - break lab1; - } - cursor++; - break; - } - continue replab0; - } while (false); - cursor = v_1; - break replab0; - } - return true; - } - - private boolean r_R1() { - if (!(I_p1 <= cursor)) - { - return false; - } - return true; - } - - private boolean r_R2() { - if (!(I_p2 <= cursor)) - { - return false; - } - return true; - } - - private boolean r_standard_suffix() { - int among_var; - 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; - // (, line 77 - // do, line 78 - v_1 = limit - cursor; - lab0: do { - // (, line 78 - // [, line 79 - ket = cursor; - // substring, line 79 - among_var = find_among_b(a_2, 7); - if (among_var == 0) - { - break lab0; - } - // ], line 79 - bra = cursor; - // call R1, line 79 - if (!r_R1()) - { - break lab0; - } - switch(among_var) { - case 0: - break lab0; - case 1: - // (, line 81 - // delete, line 81 - slice_del(); - break; - case 2: - // (, line 84 - if (!(in_grouping_b(g_s_ending, 98, 116))) - { - break lab0; - } - // delete, line 84 - slice_del(); - break; - } - } while (false); - cursor = limit - v_1; - // do, line 88 - v_2 = limit - cursor; - lab1: do { - // (, line 88 - // [, line 89 - ket = cursor; - // substring, line 89 - among_var = find_among_b(a_3, 4); - if (among_var == 0) - { - break lab1; - } - // ], line 89 - bra = cursor; - // call R1, line 89 - if (!r_R1()) - { - break lab1; - } - switch(among_var) { - case 0: - break lab1; - case 1: - // (, line 91 - // delete, line 91 - slice_del(); - break; - case 2: - // (, line 94 - if (!(in_grouping_b(g_st_ending, 98, 116))) - { - break lab1; - } - // hop, line 94 - { - int c = cursor - 3; - if (limit_backward > c || c > limit) - { - break lab1; - } - cursor = c; - } - // delete, line 94 - slice_del(); - break; - } - } while (false); - cursor = limit - v_2; - // do, line 98 - v_3 = limit - cursor; - lab2: do { - // (, line 98 - // [, line 99 - ket = cursor; - // substring, line 99 - among_var = find_among_b(a_5, 8); - if (among_var == 0) - { - break lab2; - } - // ], line 99 - bra = cursor; - // call R2, line 99 - if (!r_R2()) - { - break lab2; - } - switch(among_var) { - case 0: - break lab2; - case 1: - // (, line 101 - // delete, line 101 - slice_del(); - // try, line 102 - v_4 = limit - cursor; - lab3: do { - // (, line 102 - // [, line 102 - ket = cursor; - // literal, line 102 - if (!(eq_s_b(2, "ig"))) - { - cursor = limit - v_4; - break lab3; - } - // ], line 102 - bra = cursor; - // not, line 102 - { - v_5 = limit - cursor; - lab4: do { - // literal, line 102 - if (!(eq_s_b(1, "e"))) - { - break lab4; - } - cursor = limit - v_4; - break lab3; - } while (false); - cursor = limit - v_5; - } - // call R2, line 102 - if (!r_R2()) - { - cursor = limit - v_4; - break lab3; - } - // delete, line 102 - slice_del(); - } while (false); - break; - case 2: - // (, line 105 - // not, line 105 - { - v_6 = limit - cursor; - lab5: do { - // literal, line 105 - if (!(eq_s_b(1, "e"))) - { - break lab5; - } - break lab2; - } while (false); - cursor = limit - v_6; - } - // delete, line 105 - slice_del(); - break; - case 3: - // (, line 108 - // delete, line 108 - slice_del(); - // try, line 109 - v_7 = limit - cursor; - lab6: do { - // (, line 109 - // [, line 110 - ket = cursor; - // or, line 110 - lab7: do { - v_8 = limit - cursor; - lab8: do { - // literal, line 110 - if (!(eq_s_b(2, "er"))) - { - break lab8; - } - break lab7; - } while (false); - cursor = limit - v_8; - // literal, line 110 - if (!(eq_s_b(2, "en"))) - { - cursor = limit - v_7; - break lab6; - } - } while (false); - // ], line 110 - bra = cursor; - // call R1, line 110 - if (!r_R1()) - { - cursor = limit - v_7; - break lab6; - } - // delete, line 110 - slice_del(); - } while (false); - break; - case 4: - // (, line 114 - // delete, line 114 - slice_del(); - // try, line 115 - v_9 = limit - cursor; - lab9: do { - // (, line 115 - // [, line 116 - ket = cursor; - // substring, line 116 - among_var = find_among_b(a_4, 2); - if (among_var == 0) - { - cursor = limit - v_9; - break lab9; - } - // ], line 116 - bra = cursor; - // call R2, line 116 - if (!r_R2()) - { - cursor = limit - v_9; - break lab9; - } - switch(among_var) { - case 0: - cursor = limit - v_9; - break lab9; - case 1: - // (, line 118 - // delete, line 118 - slice_del(); - break; - } - } while (false); - break; - } - } while (false); - cursor = limit - v_3; - return true; - } - - public boolean stem() { - int v_1; - int v_2; - int v_3; - int v_4; - // (, line 128 - // do, line 129 - v_1 = cursor; - lab0: do { - // call prelude, line 129 - if (!r_prelude()) - { - break lab0; - } - } while (false); - cursor = v_1; - // do, line 130 - v_2 = cursor; - lab1: do { - // call mark_regions, line 130 - if (!r_mark_regions()) - { - break lab1; - } - } while (false); - cursor = v_2; - // backwards, line 131 - limit_backward = cursor; cursor = limit; - // do, line 132 - v_3 = limit - cursor; - lab2: do { - // call standard_suffix, line 132 - if (!r_standard_suffix()) - { - break lab2; - } - } while (false); - cursor = limit - v_3; - cursor = limit_backward; // do, line 133 - v_4 = cursor; - lab3: do { - // call postlude, line 133 - if (!r_postlude()) - { - break lab3; - } - } while (false); - cursor = v_4; - return true; - } - -} - Index: contrib/snowball/src/java/net/sf/snowball/ext/FinnishStemmer.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/ext/FinnishStemmer.java (revision 613440) +++ contrib/snowball/src/java/net/sf/snowball/ext/FinnishStemmer.java (working copy) @@ -1,1034 +0,0 @@ -// This file was generated automatically by the Snowball to Java compiler - -package net.sf.snowball.ext; -import net.sf.snowball.SnowballProgram; -import net.sf.snowball.Among; - -/** - * Generated class implementing code defined by a snowball script. - */ -public class FinnishStemmer extends SnowballProgram { - - private Among a_0[] = { - new Among ( "pa", -1, 1, "", this), - new Among ( "sti", -1, 2, "", this), - new Among ( "kaan", -1, 1, "", this), - new Among ( "han", -1, 1, "", this), - new Among ( "kin", -1, 1, "", this), - new Among ( "h\u00E4n", -1, 1, "", this), - new Among ( "k\u00E4\u00E4n", -1, 1, "", this), - new Among ( "ko", -1, 1, "", this), - new Among ( "p\u00E4", -1, 1, "", this), - new Among ( "k\u00F6", -1, 1, "", this) - }; - - private Among a_1[] = { - new Among ( "lla", -1, -1, "", this), - new Among ( "na", -1, -1, "", this), - new Among ( "ssa", -1, -1, "", this), - new Among ( "ta", -1, -1, "", this), - new Among ( "lta", 3, -1, "", this), - new Among ( "sta", 3, -1, "", this) - }; - - private Among a_2[] = { - new Among ( "ll\u00E4", -1, -1, "", this), - new Among ( "n\u00E4", -1, -1, "", this), - new Among ( "ss\u00E4", -1, -1, "", this), - new Among ( "t\u00E4", -1, -1, "", this), - new Among ( "lt\u00E4", 3, -1, "", this), - new Among ( "st\u00E4", 3, -1, "", this) - }; - - private Among a_3[] = { - new Among ( "lle", -1, -1, "", this), - new Among ( "ine", -1, -1, "", this) - }; - - private Among a_4[] = { - new Among ( "nsa", -1, 3, "", this), - new Among ( "mme", -1, 3, "", this), - new Among ( "nne", -1, 3, "", this), - new Among ( "ni", -1, 2, "", this), - new Among ( "si", -1, 1, "", this), - new Among ( "an", -1, 4, "", this), - new Among ( "en", -1, 6, "", this), - new Among ( "\u00E4n", -1, 5, "", this), - new Among ( "ns\u00E4", -1, 3, "", this) - }; - - private Among a_5[] = { - new Among ( "aa", -1, -1, "", this), - new Among ( "ee", -1, -1, "", this), - new Among ( "ii", -1, -1, "", this), - new Among ( "oo", -1, -1, "", this), - new Among ( "uu", -1, -1, "", this), - new Among ( "\u00E4\u00E4", -1, -1, "", this), - new Among ( "\u00F6\u00F6", -1, -1, "", this) - }; - - private Among a_6[] = { - new Among ( "a", -1, 8, "", this), - new Among ( "lla", 0, -1, "", this), - new Among ( "na", 0, -1, "", this), - new Among ( "ssa", 0, -1, "", this), - new Among ( "ta", 0, -1, "", this), - new Among ( "lta", 4, -1, "", this), - new Among ( "sta", 4, -1, "", this), - new Among ( "tta", 4, 9, "", this), - new Among ( "lle", -1, -1, "", this), - new Among ( "ine", -1, -1, "", this), - new Among ( "ksi", -1, -1, "", this), - new Among ( "n", -1, 7, "", this), - new Among ( "han", 11, 1, "", this), - new Among ( "den", 11, -1, "r_VI", this), - new Among ( "seen", 11, -1, "r_LONG", this), - new Among ( "hen", 11, 2, "", this), - new Among ( "tten", 11, -1, "r_VI", this), - new Among ( "hin", 11, 3, "", this), - new Among ( "siin", 11, -1, "r_VI", this), - new Among ( "hon", 11, 4, "", this), - new Among ( "h\u00E4n", 11, 5, "", this), - new Among ( "h\u00F6n", 11, 6, "", this), - new Among ( "\u00E4", -1, 8, "", this), - new Among ( "ll\u00E4", 22, -1, "", this), - new Among ( "n\u00E4", 22, -1, "", this), - new Among ( "ss\u00E4", 22, -1, "", this), - new Among ( "t\u00E4", 22, -1, "", this), - new Among ( "lt\u00E4", 26, -1, "", this), - new Among ( "st\u00E4", 26, -1, "", this), - new Among ( "tt\u00E4", 26, 9, "", this) - }; - - private Among a_7[] = { - new Among ( "eja", -1, -1, "", this), - new Among ( "mma", -1, 1, "", this), - new Among ( "imma", 1, -1, "", this), - new Among ( "mpa", -1, 1, "", this), - new Among ( "impa", 3, -1, "", this), - new Among ( "mmi", -1, 1, "", this), - new Among ( "immi", 5, -1, "", this), - new Among ( "mpi", -1, 1, "", this), - new Among ( "impi", 7, -1, "", this), - new Among ( "ej\u00E4", -1, -1, "", this), - new Among ( "mm\u00E4", -1, 1, "", this), - new Among ( "imm\u00E4", 10, -1, "", this), - new Among ( "mp\u00E4", -1, 1, "", this), - new Among ( "imp\u00E4", 12, -1, "", this) - }; - - private Among a_8[] = { - new Among ( "i", -1, -1, "", this), - new Among ( "j", -1, -1, "", this) - }; - - private Among a_9[] = { - new Among ( "mma", -1, 1, "", this), - new Among ( "imma", 0, -1, "", this) - }; - - 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_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_particle_end[] = {17, 97, 24, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32 }; - - private boolean B_ending_removed; - private StringBuffer S_x = new StringBuffer(); - private int I_p2; - private int I_p1; - - private void copy_from(FinnishStemmer other) { - B_ending_removed = other.B_ending_removed; - S_x = other.S_x; - I_p2 = other.I_p2; - I_p1 = other.I_p1; - super.copy_from(other); - } - - private boolean r_mark_regions() { - int v_1; - int v_3; - // (, line 41 - I_p1 = limit; - I_p2 = limit; - // goto, line 46 - golab0: while(true) - { - v_1 = cursor; - lab1: do { - if (!(in_grouping(g_v, 97, 246))) - { - break lab1; - } - cursor = v_1; - break golab0; - } while (false); - cursor = v_1; - if (cursor >= limit) - { - return false; - } - cursor++; - } - // gopast, line 46 - golab2: while(true) - { - lab3: do { - if (!(out_grouping(g_v, 97, 246))) - { - break lab3; - } - break golab2; - } while (false); - if (cursor >= limit) - { - return false; - } - cursor++; - } - // setmark p1, line 46 - I_p1 = cursor; - // goto, line 47 - golab4: while(true) - { - v_3 = cursor; - lab5: do { - if (!(in_grouping(g_v, 97, 246))) - { - break lab5; - } - cursor = v_3; - break golab4; - } while (false); - cursor = v_3; - if (cursor >= limit) - { - return false; - } - cursor++; - } - // gopast, line 47 - golab6: while(true) - { - lab7: do { - if (!(out_grouping(g_v, 97, 246))) - { - break lab7; - } - break golab6; - } while (false); - if (cursor >= limit) - { - return false; - } - cursor++; - } - // setmark p2, line 47 - I_p2 = cursor; - return true; - } - - private boolean r_R2() { - if (!(I_p2 <= cursor)) - { - return false; - } - return true; - } - - private boolean r_particle_etc() { - int among_var; - int v_1; - int v_2; - // (, line 54 - // setlimit, line 55 - v_1 = limit - cursor; - // tomark, line 55 - if (cursor < I_p1) - { - return false; - } - cursor = I_p1; - v_2 = limit_backward; - limit_backward = cursor; - cursor = limit - v_1; - // (, line 55 - // [, line 55 - ket = cursor; - // substring, line 55 - among_var = find_among_b(a_0, 10); - if (among_var == 0) - { - limit_backward = v_2; - return false; - } - // ], line 55 - bra = cursor; - limit_backward = v_2; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 62 - if (!(in_grouping_b(g_particle_end, 97, 246))) - { - return false; - } - break; - case 2: - // (, line 64 - // call R2, line 64 - if (!r_R2()) - { - return false; - } - break; - } - // delete, line 66 - slice_del(); - return true; - } - - private boolean r_possessive() { - int among_var; - int v_1; - int v_2; - int v_3; - // (, line 68 - // setlimit, line 69 - v_1 = limit - cursor; - // tomark, line 69 - if (cursor < I_p1) - { - return false; - } - cursor = I_p1; - v_2 = limit_backward; - limit_backward = cursor; - cursor = limit - v_1; - // (, line 69 - // [, line 69 - ket = cursor; - // substring, line 69 - among_var = find_among_b(a_4, 9); - if (among_var == 0) - { - limit_backward = v_2; - return false; - } - // ], line 69 - bra = cursor; - limit_backward = v_2; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 72 - // not, line 72 - { - v_3 = limit - cursor; - lab0: do { - // literal, line 72 - if (!(eq_s_b(1, "k"))) - { - break lab0; - } - return false; - } while (false); - cursor = limit - v_3; - } - // delete, line 72 - slice_del(); - break; - case 2: - // (, line 74 - // delete, line 74 - slice_del(); - // [, line 74 - ket = cursor; - // literal, line 74 - if (!(eq_s_b(3, "kse"))) - { - return false; - } - // ], line 74 - bra = cursor; - // <-, line 74 - slice_from("ksi"); - break; - case 3: - // (, line 78 - // delete, line 78 - slice_del(); - break; - case 4: - // (, line 81 - // among, line 81 - if (find_among_b(a_1, 6) == 0) - { - return false; - } - // delete, line 81 - slice_del(); - break; - case 5: - // (, line 83 - // among, line 83 - if (find_among_b(a_2, 6) == 0) - { - return false; - } - // delete, line 84 - slice_del(); - break; - case 6: - // (, line 86 - // among, line 86 - if (find_among_b(a_3, 2) == 0) - { - return false; - } - // delete, line 86 - slice_del(); - break; - } - return true; - } - - private boolean r_LONG() { - // among, line 91 - if (find_among_b(a_5, 7) == 0) - { - return false; - } - return true; - } - - private boolean r_VI() { - // (, line 93 - // literal, line 93 - if (!(eq_s_b(1, "i"))) - { - return false; - } - if (!(in_grouping_b(g_V, 97, 246))) - { - return false; - } - return true; - } - - private boolean r_case() { - int among_var; - int v_1; - int v_2; - int v_3; - int v_4; - int v_5; - // (, line 95 - // setlimit, line 96 - v_1 = limit - cursor; - // tomark, line 96 - if (cursor < I_p1) - { - return false; - } - cursor = I_p1; - v_2 = limit_backward; - limit_backward = cursor; - cursor = limit - v_1; - // (, line 96 - // [, line 96 - ket = cursor; - // substring, line 96 - among_var = find_among_b(a_6, 30); - if (among_var == 0) - { - limit_backward = v_2; - return false; - } - // ], line 96 - bra = cursor; - limit_backward = v_2; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 98 - // literal, line 98 - if (!(eq_s_b(1, "a"))) - { - return false; - } - break; - case 2: - // (, line 99 - // literal, line 99 - if (!(eq_s_b(1, "e"))) - { - return false; - } - break; - case 3: - // (, line 100 - // literal, line 100 - if (!(eq_s_b(1, "i"))) - { - return false; - } - break; - case 4: - // (, line 101 - // literal, line 101 - if (!(eq_s_b(1, "o"))) - { - return false; - } - break; - case 5: - // (, line 102 - // literal, line 102 - if (!(eq_s_b(1, "\u00E4"))) - { - return false; - } - break; - case 6: - // (, line 103 - // literal, line 103 - if (!(eq_s_b(1, "\u00F6"))) - { - return false; - } - break; - case 7: - // (, line 111 - // try, line 111 - v_3 = limit - cursor; - lab0: do { - // (, line 111 - // and, line 113 - v_4 = limit - cursor; - // or, line 112 - lab1: do { - v_5 = limit - cursor; - lab2: do { - // call LONG, line 111 - if (!r_LONG()) - { - break lab2; - } - break lab1; - } while (false); - cursor = limit - v_5; - // literal, line 112 - if (!(eq_s_b(2, "ie"))) - { - cursor = limit - v_3; - break lab0; - } - } while (false); - cursor = limit - v_4; - // next, line 113 - if (cursor <= limit_backward) - { - cursor = limit - v_3; - break lab0; - } - cursor--; - // ], line 113 - bra = cursor; - } while (false); - break; - case 8: - // (, line 119 - if (!(in_grouping_b(g_v, 97, 246))) - { - return false; - } - if (!(out_grouping_b(g_v, 97, 246))) - { - return false; - } - break; - case 9: - // (, line 121 - // literal, line 121 - if (!(eq_s_b(1, "e"))) - { - return false; - } - break; - } - // delete, line 138 - slice_del(); - // set ending_removed, line 139 - B_ending_removed = true; - return true; - } - - private boolean r_other_endings() { - int among_var; - int v_1; - int v_2; - int v_3; - // (, line 141 - // setlimit, line 142 - v_1 = limit - cursor; - // tomark, line 142 - if (cursor < I_p2) - { - return false; - } - cursor = I_p2; - v_2 = limit_backward; - limit_backward = cursor; - cursor = limit - v_1; - // (, line 142 - // [, line 142 - ket = cursor; - // substring, line 142 - among_var = find_among_b(a_7, 14); - if (among_var == 0) - { - limit_backward = v_2; - return false; - } - // ], line 142 - bra = cursor; - limit_backward = v_2; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 146 - // not, line 146 - { - v_3 = limit - cursor; - lab0: do { - // literal, line 146 - if (!(eq_s_b(2, "po"))) - { - break lab0; - } - return false; - } while (false); - cursor = limit - v_3; - } - break; - } - // delete, line 151 - slice_del(); - return true; - } - - private boolean r_i_plural() { - int v_1; - int v_2; - // (, line 153 - // setlimit, line 154 - v_1 = limit - cursor; - // tomark, line 154 - if (cursor < I_p1) - { - return false; - } - cursor = I_p1; - v_2 = limit_backward; - limit_backward = cursor; - cursor = limit - v_1; - // (, line 154 - // [, line 154 - ket = cursor; - // substring, line 154 - if (find_among_b(a_8, 2) == 0) - { - limit_backward = v_2; - return false; - } - // ], line 154 - bra = cursor; - limit_backward = v_2; - // delete, line 158 - slice_del(); - return true; - } - - private boolean r_t_plural() { - int among_var; - int v_1; - int v_2; - int v_3; - int v_4; - int v_5; - int v_6; - // (, line 160 - // setlimit, line 161 - v_1 = limit - cursor; - // tomark, line 161 - if (cursor < I_p1) - { - return false; - } - cursor = I_p1; - v_2 = limit_backward; - limit_backward = cursor; - cursor = limit - v_1; - // (, line 161 - // [, line 162 - ket = cursor; - // literal, line 162 - if (!(eq_s_b(1, "t"))) - { - limit_backward = v_2; - return false; - } - // ], line 162 - bra = cursor; - // test, line 162 - v_3 = limit - cursor; - if (!(in_grouping_b(g_v, 97, 246))) - { - limit_backward = v_2; - return false; - } - cursor = limit - v_3; - // delete, line 163 - slice_del(); - limit_backward = v_2; - // setlimit, line 165 - v_4 = limit - cursor; - // tomark, line 165 - if (cursor < I_p2) - { - return false; - } - cursor = I_p2; - v_5 = limit_backward; - limit_backward = cursor; - cursor = limit - v_4; - // (, line 165 - // [, line 165 - ket = cursor; - // substring, line 165 - among_var = find_among_b(a_9, 2); - if (among_var == 0) - { - limit_backward = v_5; - return false; - } - // ], line 165 - bra = cursor; - limit_backward = v_5; - switch(among_var) { - case 0: - return false; - case 1: - // (, line 167 - // not, line 167 - { - v_6 = limit - cursor; - lab0: do { - // literal, line 167 - if (!(eq_s_b(2, "po"))) - { - break lab0; - } - return false; - } while (false); - cursor = limit - v_6; - } - break; - } - // delete, line 170 - slice_del(); - return true; - } - - private boolean r_tidy() { - 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; - // (, line 172 - // setlimit, line 173 - v_1 = limit - cursor; - // tomark, line 173 - if (cursor < I_p1) - { - return false; - } - cursor = I_p1; - v_2 = limit_backward; - limit_backward = cursor; - cursor = limit - v_1; - // (, line 173 - // do, line 174 - v_3 = limit - cursor; - lab0: do { - // (, line 174 - // and, line 174 - v_4 = limit - cursor; - // call LONG, line 174 - if (!r_LONG()) - { - break lab0; - } - cursor = limit - v_4; - // (, line 174 - // [, line 174 - ket = cursor; - // next, line 174 - if (cursor <= limit_backward) - { - break lab0; - } - cursor--; - // ], line 174 - bra = cursor; - // delete, line 174 - slice_del(); - } while (false); - cursor = limit - v_3; - // do, line 175 - v_5 = limit - cursor; - lab1: do { - // (, line 175 - // [, line 175 - ket = cursor; - if (!(in_grouping_b(g_AEI, 97, 228))) - { - break lab1; - } - // ], line 175 - bra = cursor; - if (!(out_grouping_b(g_v, 97, 246))) - { - break lab1; - } - // delete, line 175 - slice_del(); - } while (false); - cursor = limit - v_5; - // do, line 176 - v_6 = limit - cursor; - lab2: do { - // (, line 176 - // [, line 176 - ket = cursor; - // literal, line 176 - if (!(eq_s_b(1, "j"))) - { - break lab2; - } - // ], line 176 - bra = cursor; - // or, line 176 - lab3: do { - v_7 = limit - cursor; - lab4: do { - // literal, line 176 - if (!(eq_s_b(1, "o"))) - { - break lab4; - } - break lab3; - } while (false); - cursor = limit - v_7; - // literal, line 176 - if (!(eq_s_b(1, "u"))) - { - break lab2; - } - } while (false); - // delete, line 176 - slice_del(); - } while (false); - cursor = limit - v_6; - // do, line 177 - v_8 = limit - cursor; - lab5: do { - // (, line 177 - // [, line 177 - ket = cursor; - // literal, line 177 - if (!(eq_s_b(1, "o"))) - { - break lab5; - } - // ], line 177 - bra = cursor; - // literal, line 177 - if (!(eq_s_b(1, "j"))) - { - break lab5; - } - // delete, line 177 - slice_del(); - } while (false); - cursor = limit - v_8; - limit_backward = v_2; - // goto, line 179 - golab6: while(true) - { - v_9 = limit - cursor; - lab7: do { - if (!(out_grouping_b(g_v, 97, 246))) - { - break lab7; - } - cursor = limit - v_9; - break golab6; - } while (false); - cursor = limit - v_9; - if (cursor <= limit_backward) - { - return false; - } - cursor--; - } - // [, line 179 - ket = cursor; - // next, line 179 - if (cursor <= limit_backward) - { - return false; - } - cursor--; - // ], line 179 - bra = cursor; - // -> x, line 179 - S_x = slice_to(S_x); - // name x, line 179 - if (!(eq_v_b(S_x))) - { - return false; - } - // delete, line 179 - slice_del(); - 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; - // (, line 183 - // do, line 185 - v_1 = cursor; - lab0: do { - // call mark_regions, line 185 - if (!r_mark_regions()) - { - break lab0; - } - } while (false); - cursor = v_1; - // unset ending_removed, line 186 - B_ending_removed = false; - // backwards, line 187 - limit_backward = cursor; cursor = limit; - // (, line 187 - // do, line 188 - v_2 = limit - cursor; - lab1: do { - // call particle_etc, line 188 - if (!r_particle_etc()) - { - break lab1; - } - } while (false); - cursor = limit - v_2; - // do, line 189 - v_3 = limit - cursor; - lab2: do { - // call possessive, line 189 - if (!r_possessive()) - { - break lab2; - } - } while (false); - cursor = limit - v_3; - // do, line 190 - v_4 = limit - cursor; - lab3: do { - // call case, line 190 - if (!r_case()) - { - break lab3; - } - } while (false); - cursor = limit - v_4; - // do, line 191 - v_5 = limit - cursor; - lab4: do { - // call other_endings, line 191 - if (!r_other_endings()) - { - break lab4; - } - } while (false); - cursor = limit - v_5; - // or, line 192 - lab5: do { - v_6 = limit - cursor; - lab6: do { - // (, line 192 - // Boolean test ending_removed, line 192 - if (!(B_ending_removed)) - { - break lab6; - } - // do, line 192 - v_7 = limit - cursor; - lab7: do { - // call i_plural, line 192 - if (!r_i_plural()) - { - break lab7; - } - } while (false); - cursor = limit - v_7; - break lab5; - } while (false); - cursor = limit - v_6; - // do, line 192 - v_8 = limit - cursor; - lab8: do { - // call t_plural, line 192 - if (!r_t_plural()) - { - break lab8; - } - } while (false); - cursor = limit - v_8; - } while (false); - // do, line 193 - v_9 = limit - cursor; - lab9: do { - // call tidy, line 193 - if (!r_tidy()) - { - break lab9; - } - } while (false); - cursor = limit - v_9; - cursor = limit_backward; return true; - } - -} - Index: contrib/snowball/src/java/net/sf/snowball/Among.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/Among.java (revision 613440) +++ contrib/snowball/src/java/net/sf/snowball/Among.java (working copy) @@ -1,50 +0,0 @@ -package net.sf.snowball; - -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import java.lang.reflect.Method; - -public class Among { - public Among (String s, int substring_i, int result, - String methodname, SnowballProgram methodobject) { - this.s_size = s.length(); - this.s = s; - this.substring_i = substring_i; - this.result = result; - this.methodobject = methodobject; - if (methodname.length() == 0) { - this.method = null; - } else { - try { - this.method = methodobject.getClass(). - getDeclaredMethod(methodname, new Class[0]); - } catch (NoSuchMethodException e) { - // FIXME - debug message - this.method = null; - } - } - } - - public int s_size; /* search string */ - public String s; /* search string */ - public int substring_i; /* index to longest matching substring */ - public int result; /* result of the lookup */ - public Method method; /* method to use if substring matches */ - public SnowballProgram methodobject; /* object to invoke method on */ - -}; Index: contrib/snowball/src/java/net/sf/snowball/SnowballProgram.java =================================================================== --- contrib/snowball/src/java/net/sf/snowball/SnowballProgram.java (revision 613440) +++ contrib/snowball/src/java/net/sf/snowball/SnowballProgram.java (working copy) @@ -1,428 +0,0 @@ -package net.sf.snowball; - -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import java.lang.reflect.InvocationTargetException; - -public class SnowballProgram { - protected SnowballProgram() - { - current = new StringBuffer(); - setCurrent(""); - } - - /** - * Set the current string. - */ - public void setCurrent(String value) - { - current.replace(0, current.length(), value); - cursor = 0; - limit = current.length(); - limit_backward = 0; - bra = cursor; - ket = limit; - } - - /** - * Get the current string. - */ - public String getCurrent() - { - return current.toString(); - } - - // current string - protected StringBuffer current; - - protected int cursor; - protected int limit; - protected int limit_backward; - protected int bra; - protected int ket; - - protected void copy_from(SnowballProgram other) - { - current = other.current; - cursor = other.cursor; - limit = other.limit; - limit_backward = other.limit_backward; - bra = other.bra; - ket = other.ket; - } - - protected boolean in_grouping(char [] s, int min, int max) - { - if (cursor >= limit) return false; - char ch = current.charAt(cursor); - if (ch > max || ch < min) return false; - ch -= min; - if ((s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) return false; - cursor++; - return true; - } - - protected boolean in_grouping_b(char [] s, int min, int max) - { - if (cursor <= limit_backward) return false; - char ch = current.charAt(cursor - 1); - if (ch > max || ch < min) return false; - ch -= min; - if ((s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) return false; - cursor--; - return true; - } - - protected boolean out_grouping(char [] s, int min, int max) - { - if (cursor >= limit) return false; - char ch = current.charAt(cursor); - if (ch > max || ch < min) { - cursor++; - return true; - } - ch -= min; - if ((s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) { - cursor ++; - return true; - } - return false; - } - - protected boolean out_grouping_b(char [] s, int min, int max) - { - if (cursor <= limit_backward) return false; - char ch = current.charAt(cursor - 1); - if (ch > max || ch < min) { - cursor--; - return true; - } - ch -= min; - if ((s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) { - cursor--; - return true; - } - return false; - } - - protected boolean in_range(int min, int max) - { - if (cursor >= limit) return false; - char ch = current.charAt(cursor); - if (ch > max || ch < min) return false; - cursor++; - return true; - } - - protected boolean in_range_b(int min, int max) - { - if (cursor <= limit_backward) return false; - char ch = current.charAt(cursor - 1); - if (ch > max || ch < min) return false; - cursor--; - return true; - } - - protected boolean out_range(int min, int max) - { - if (cursor >= limit) return false; - char ch = current.charAt(cursor); - if (!(ch > max || ch < min)) return false; - cursor++; - return true; - } - - protected boolean out_range_b(int min, int max) - { - if (cursor <= limit_backward) return false; - char ch = current.charAt(cursor - 1); - if(!(ch > max || ch < min)) return false; - cursor--; - return true; - } - - protected boolean eq_s(int s_size, String s) - { - if (limit - cursor < s_size) return false; - int i; - for (i = 0; i != s_size; i++) { - if (current.charAt(cursor + i) != s.charAt(i)) return false; - } - cursor += s_size; - return true; - } - - protected boolean eq_s_b(int s_size, String s) - { - if (cursor - limit_backward < s_size) return false; - int i; - for (i = 0; i != s_size; i++) { - if (current.charAt(cursor - s_size + i) != s.charAt(i)) return false; - } - cursor -= s_size; - return true; - } - - protected boolean eq_v(StringBuffer s) - { - return eq_s(s.length(), s.toString()); - } - - protected boolean eq_v_b(StringBuffer s) - { return eq_s_b(s.length(), s.toString()); - } - - protected int find_among(Among v[], int v_size) - { - int i = 0; - int j = v_size; - - int c = cursor; - int l = limit; - - int common_i = 0; - int common_j = 0; - - boolean first_key_inspected = false; - - while(true) { - int k = i + ((j - i) >> 1); - int diff = 0; - int common = common_i < common_j ? common_i : common_j; // smaller - Among w = v[k]; - int i2; - for (i2 = common; i2 < w.s_size; i2++) { - if (c + common == l) { - diff = -1; - break; - } - diff = current.charAt(c + common) - w.s.charAt(i2); - if (diff != 0) break; - common++; - } - if (diff < 0) { - j = k; - common_j = common; - } else { - i = k; - common_i = common; - } - if (j - i <= 1) { - if (i > 0) break; // v->s has been inspected - if (j == i) break; // only one item in v - - // - but now we need to go round once more to get - // v->s inspected. This looks messy, but is actually - // the optimal approach. - - if (first_key_inspected) break; - first_key_inspected = true; - } - } - while(true) { - Among w = v[i]; - if (common_i >= w.s_size) { - cursor = c + w.s_size; - if (w.method == null) return w.result; - boolean res; - try { - Object resobj = w.method.invoke(w.methodobject, - new Object[0]); - res = resobj.toString().equals("true"); - } catch (InvocationTargetException e) { - res = false; - // FIXME - debug message - } catch (IllegalAccessException e) { - res = false; - // FIXME - debug message - } - cursor = c + w.s_size; - if (res) return w.result; - } - i = w.substring_i; - if (i < 0) return 0; - } - } - - // find_among_b is for backwards processing. Same comments apply - protected int find_among_b(Among v[], int v_size) - { - int i = 0; - int j = v_size; - - int c = cursor; - int lb = limit_backward; - - int common_i = 0; - int common_j = 0; - - boolean first_key_inspected = false; - - while(true) { - int k = i + ((j - i) >> 1); - int diff = 0; - int common = common_i < common_j ? common_i : common_j; - Among w = v[k]; - int i2; - for (i2 = w.s_size - 1 - common; i2 >= 0; i2--) { - if (c - common == lb) { - diff = -1; - break; - } - diff = current.charAt(c - 1 - common) - w.s.charAt(i2); - if (diff != 0) break; - common++; - } - if (diff < 0) { - j = k; - common_j = common; - } else { - i = k; - common_i = common; - } - if (j - i <= 1) { - if (i > 0) break; - if (j == i) break; - if (first_key_inspected) break; - first_key_inspected = true; - } - } - while(true) { - Among w = v[i]; - if (common_i >= w.s_size) { - cursor = c - w.s_size; - if (w.method == null) return w.result; - - boolean res; - try { - Object resobj = w.method.invoke(w.methodobject, - new Object[0]); - res = resobj.toString().equals("true"); - } catch (InvocationTargetException e) { - res = false; - // FIXME - debug message - } catch (IllegalAccessException e) { - res = false; - // FIXME - debug message - } - cursor = c - w.s_size; - if (res) return w.result; - } - i = w.substring_i; - if (i < 0) return 0; - } - } - - /* to replace chars between c_bra and c_ket in current by the - * chars in s. - */ - 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); - limit += adjustment; - if (cursor >= c_ket) cursor += adjustment; - else if (cursor > c_bra) cursor = c_bra; - return adjustment; - } - - protected void slice_check() - { - if (bra < 0 || - bra > ket || - ket > limit || - limit > current.length()) // this line could be removed - { - System.err.println("faulty slice operation"); - // FIXME: report error somehow. - /* - fprintf(stderr, "faulty slice operation:\n"); - debug(z, -1, 0); - exit(1); - */ - } - } - - protected void slice_from(String s) - { - slice_check(); - replace_s(bra, ket, s); - } - - protected void slice_from(StringBuffer s) - { - slice_from(s.toString()); - } - - protected void slice_del() - { - slice_from(""); - } - - protected void insert(int c_bra, int c_ket, String s) - { - int adjustment = replace_s(c_bra, c_ket, s); - if (c_bra <= bra) bra += adjustment; - if (c_bra <= ket) ket += adjustment; - } - - protected void insert(int c_bra, int c_ket, StringBuffer s) - { - insert(c_bra, c_ket, s.toString()); - } - - /* Copy the slice into the supplied StringBuffer */ - protected StringBuffer slice_to(StringBuffer s) - { - slice_check(); - int len = ket - bra; - s.replace(0, s.length(), current.substring(bra, ket)); - return s; - } - - protected StringBuffer assign_to(StringBuffer s) - { - s.replace(0, s.length(), current.substring(0, limit)); - return s; - } - -/* -extern void debug(struct SN_env * z, int number, int line_count) -{ int i; - int limit = SIZE(z->p); - //if (number >= 0) printf("%3d (line %4d): '", number, line_count); - if (number >= 0) printf("%3d (line %4d): [%d]'", number, line_count,limit); - for (i = 0; i <= limit; i++) - { if (z->lb == i) printf("{"); - if (z->bra == i) printf("["); - if (z->c == i) printf("|"); - if (z->ket == i) printf("]"); - if (z->l == i) printf("}"); - if (i < limit) - { int ch = z->p[i]; - if (ch == 0) ch = '#'; - printf("%c", ch); - } - } - printf("'\n"); -} -*/ - -}; - - Index: contrib/snowball/src/java/net/sf/snowball/package.html =================================================================== --- contrib/snowball/src/java/net/sf/snowball/package.html (revision 613440) +++ contrib/snowball/src/java/net/sf/snowball/package.html (working copy) @@ -1,5 +0,0 @@ - - -Snowball system classes. - - Index: contrib/snowball/src/java/org/apache/lucene/analysis/snowball/SnowballAnalyzer.java =================================================================== --- contrib/snowball/src/java/org/apache/lucene/analysis/snowball/SnowballAnalyzer.java (revision 613440) +++ contrib/snowball/src/java/org/apache/lucene/analysis/snowball/SnowballAnalyzer.java (working copy) @@ -20,8 +20,6 @@ import org.apache.lucene.analysis.*; import org.apache.lucene.analysis.standard.*; -import net.sf.snowball.ext.*; - import java.io.Reader; import java.util.Set; @@ -30,7 +28,7 @@ * * Available stemmers are listed in {@link net.sf.snowball.ext}. The name of a * stemmer is the part of the class name before "Stemmer", e.g., the stemmer in - * {@link EnglishStemmer} is named "English". + * {@link org.tartarus.snowball.ext.EnglishStemmer} is named "English". */ public class SnowballAnalyzer extends Analyzer { private String name; Index: contrib/snowball/src/java/org/apache/lucene/analysis/snowball/SnowballFilter.java =================================================================== --- contrib/snowball/src/java/org/apache/lucene/analysis/snowball/SnowballFilter.java (revision 613440) +++ contrib/snowball/src/java/org/apache/lucene/analysis/snowball/SnowballFilter.java (working copy) @@ -21,26 +21,27 @@ import java.lang.reflect.Method; -import net.sf.snowball.SnowballProgram; -import net.sf.snowball.ext.*; - import org.apache.lucene.analysis.Token; import org.apache.lucene.analysis.TokenFilter; import org.apache.lucene.analysis.TokenStream; +import org.tartarus.snowball.SnowballProgram; /** A filter that stems words using a Snowball-generated stemmer. * * Available stemmers are listed in {@link net.sf.snowball.ext}. The name of a * stemmer is the part of the class name before "Stemmer", e.g., the stemmer in - * {@link EnglishStemmer} is named "English". + * {@link org.tartarus.snowball.ext.EnglishStemmer} is named "English". */ public class SnowballFilter extends TokenFilter { - private static final Object [] EMPTY_ARGS = new Object[0]; private SnowballProgram stemmer; - private Method stemMethod; + public SnowballFilter(TokenStream input, SnowballProgram stemmer) { + super(input); + this.stemmer = stemmer; + } + /** Construct the named stemming filter. * * @param in the input tokens to stem @@ -50,27 +51,22 @@ super(in); try { Class stemClass = - Class.forName("net.sf.snowball.ext." + name + "Stemmer"); + Class.forName("org.tartarus.snowball.ext." + name + "Stemmer"); stemmer = (SnowballProgram) stemClass.newInstance(); // why doesn't the SnowballProgram class have an (abstract?) stem method? - stemMethod = stemClass.getMethod("stem", new Class[0]); } catch (Exception e) { throw new RuntimeException(e.toString()); } } + /** Returns the next input Token, after being stemmed */ public final Token next() throws IOException { Token token = input.next(); if (token == null) return null; stemmer.setCurrent(token.termText()); - try { - stemMethod.invoke(stemmer, EMPTY_ARGS); - } catch (Exception e) { - throw new RuntimeException(e.toString()); - } - + stemmer.stem(); Token newToken = new Token(stemmer.getCurrent(), token.startOffset(), token.endOffset(), token.type()); newToken.setPositionIncrement(token.getPositionIncrement()); Index: contrib/snowball/src/java/org/tartarus/snowball/TestApp.java =================================================================== --- contrib/snowball/src/java/org/tartarus/snowball/TestApp.java (revision 0) +++ contrib/snowball/src/java/org/tartarus/snowball/TestApp.java (revision 0) @@ -0,0 +1,78 @@ + +package org.tartarus.snowball; + +import java.lang.reflect.Method; +import java.io.Reader; +import java.io.Writer; +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.FileInputStream; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.io.OutputStream; +import java.io.FileOutputStream; + +public class TestApp { + private static void usage() + { + System.err.println("Usage: TestApp [-o ]"); + } + + public static void main(String [] args) throws Throwable { + if (args.length < 2) { + usage(); + return; + } + + Class stemClass = Class.forName("org.tartarus.snowball.ext." + + args[0] + "Stemmer"); + SnowballProgram stemmer = (SnowballProgram) stemClass.newInstance(); + Method stemMethod = stemClass.getMethod("stem", new Class[0]); + + Reader reader; + reader = new InputStreamReader(new FileInputStream(args[1])); + reader = new BufferedReader(reader); + + StringBuffer input = new StringBuffer(); + + OutputStream outstream; + + if (args.length > 2) { + if (args.length == 4 && args[2].equals("-o")) { + outstream = new FileOutputStream(args[3]); + } else { + usage(); + return; + } + } else { + outstream = System.out; + } + Writer output = new OutputStreamWriter(outstream); + output = new BufferedWriter(output); + + int repeat = 1; + if (args.length > 4) { + repeat = Integer.parseInt(args[4]); + } + + Object [] emptyArgs = new Object[0]; + int character; + while ((character = reader.read()) != -1) { + char ch = (char) character; + if (Character.isWhitespace((char) ch)) { + if (input.length() > 0) { + stemmer.setCurrent(input.toString()); + for (int i = repeat; i != 0; i--) { + stemMethod.invoke(stemmer, emptyArgs); + } + output.write(stemmer.getCurrent()); + output.write('\n'); + input.delete(0, input.length()); + } + } else { + input.append(Character.toLowerCase(ch)); + } + } + output.flush(); + } +} Index: contrib/snowball/src/java/org/tartarus/snowball/ext/PortugueseStemmer.java =================================================================== --- contrib/snowball/src/java/org/tartarus/snowball/ext/PortugueseStemmer.java (revision 0) +++ contrib/snowball/src/java/org/tartarus/snowball/ext/PortugueseStemmer.java (revision 0) @@ -0,0 +1,1116 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; +import org.tartarus.snowball.SnowballProgram; +import org.tartarus.snowball.Among; + +/** + * Generated class implementing code defined by a snowball script. + */ +public class PortugueseStemmer extends SnowballProgram { + + private Among a_0[] = { + new Among ( "", -1, 3, "", this), + new Among ( "\u00E3", 0, 1, "", this), + new Among ( "\u00F5", 0, 2, "", this) + }; + + private Among a_1[] = { + new Among ( "", -1, 3, "", this), + new Among ( "a~", 0, 1, "", this), + new Among ( "o~", 0, 2, "", this) + }; + + private Among a_2[] = { + new Among ( "ic", -1, -1, "", this), + new Among ( "ad", -1, -1, "", this), + new Among ( "os", -1, -1, "", this), + new Among ( "iv", -1, 1, "", this) + }; + + private Among a_3[] = { + new Among ( "ante", -1, 1, "", this), + new Among ( "avel", -1, 1, "", this), + new Among ( "\u00EDvel", -1, 1, "", this) + }; + + private Among a_4[] = { + new Among ( "ic", -1, 1, "", this), + new Among ( "abil", -1, 1, "", this), + new Among ( "iv", -1, 1, "", this) + }; + + 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), + new Among ( "osa", -1, 1, "", this), + new Among ( "ista", -1, 1, "", this), + new Among ( "iva", -1, 8, "", this), + 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", 12, 5, "", this), + new Among ( "\u00E1vel", -1, 1, "", this), + new Among ( "\u00EDvel", -1, 1, "", this), + new Among ( "uci\u00F3n", -1, 3, "", this), + new Among ( "ico", -1, 1, "", this), + new Among ( "ismo", -1, 1, "", this), + new Among ( "oso", -1, 1, "", this), + new Among ( "amento", -1, 1, "", this), + new Among ( "imento", -1, 1, "", this), + new Among ( "ivo", -1, 8, "", this), + new Among ( "a\u00E7a~o", -1, 1, "", this), + new Among ( "ador", -1, 1, "", this), + new Among ( "icas", -1, 1, "", this), + new Among ( "\u00EAncias", -1, 4, "", this), + new Among ( "iras", -1, 9, "", this), + new Among ( "adoras", -1, 1, "", this), + new Among ( "osas", -1, 1, "", this), + new Among ( "istas", -1, 1, "", this), + new Among ( "ivas", -1, 8, "", this), + new Among ( "ezas", -1, 1, "", this), + new Among ( "log\u00EDas", -1, 2, "", this), + 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), + new Among ( "osos", -1, 1, "", this), + new Among ( "amentos", -1, 1, "", this), + new Among ( "imentos", -1, 1, "", this), + new Among ( "ivos", -1, 8, "", this) + }; + + private Among a_6[] = { + new Among ( "ada", -1, 1, "", this), + new Among ( "ida", -1, 1, "", this), + new Among ( "ia", -1, 1, "", this), + new Among ( "aria", 2, 1, "", this), + new Among ( "eria", 2, 1, "", this), + new Among ( "iria", 2, 1, "", this), + new Among ( "ara", -1, 1, "", this), + new Among ( "era", -1, 1, "", this), + new Among ( "ira", -1, 1, "", this), + new Among ( "ava", -1, 1, "", this), + new Among ( "asse", -1, 1, "", this), + new Among ( "esse", -1, 1, "", this), + new Among ( "isse", -1, 1, "", this), + new Among ( "aste", -1, 1, "", this), + new Among ( "este", -1, 1, "", this), + new Among ( "iste", -1, 1, "", this), + new Among ( "ei", -1, 1, "", this), + new Among ( "arei", 16, 1, "", this), + new Among ( "erei", 16, 1, "", this), + new Among ( "irei", 16, 1, "", this), + new Among ( "am", -1, 1, "", this), + new Among ( "iam", 20, 1, "", this), + new Among ( "ariam", 21, 1, "", this), + new Among ( "eriam", 21, 1, "", this), + new Among ( "iriam", 21, 1, "", this), + new Among ( "aram", 20, 1, "", this), + new Among ( "eram", 20, 1, "", this), + new Among ( "iram", 20, 1, "", this), + new Among ( "avam", 20, 1, "", this), + new Among ( "em", -1, 1, "", this), + new Among ( "arem", 29, 1, "", this), + new Among ( "erem", 29, 1, "", this), + new Among ( "irem", 29, 1, "", this), + new Among ( "assem", 29, 1, "", this), + new Among ( "essem", 29, 1, "", this), + new Among ( "issem", 29, 1, "", this), + new Among ( "ado", -1, 1, "", this), + new Among ( "ido", -1, 1, "", this), + new Among ( "ando", -1, 1, "", this), + new Among ( "endo", -1, 1, "", this), + new Among ( "indo", -1, 1, "", this), + new Among ( "ara~o", -1, 1, "", this), + new Among ( "era~o", -1, 1, "", this), + new Among ( "ira~o", -1, 1, "", this), + new Among ( "ar", -1, 1, "", this), + new Among ( "er", -1, 1, "", this), + new Among ( "ir", -1, 1, "", this), + new Among ( "as", -1, 1, "", this), + new Among ( "adas", 47, 1, "", this), + new Among ( "idas", 47, 1, "", this), + new Among ( "ias", 47, 1, "", this), + new Among ( "arias", 50, 1, "", this), + new Among ( "erias", 50, 1, "", this), + new Among ( "irias", 50, 1, "", this), + new Among ( "aras", 47, 1, "", this), + new Among ( "eras", 47, 1, "", this), + new Among ( "iras", 47, 1, "", this), + new Among ( "avas", 47, 1, "", this), + new Among ( "es", -1, 1, "", this), + new Among ( "ardes", 58, 1, "", this), + new Among ( "erdes", 58, 1, "", this), + new Among ( "irdes", 58, 1, "", this), + new Among ( "ares", 58, 1, "", this), + new Among ( "eres", 58, 1, "", this), + new Among ( "ires", 58, 1, "", this), + new Among ( "asses", 58, 1, "", this), + new Among ( "esses", 58, 1, "", this), + new Among ( "isses", 58, 1, "", this), + new Among ( "astes", 58, 1, "", this), + new Among ( "estes", 58, 1, "", this), + new Among ( "istes", 58, 1, "", this), + new Among ( "is", -1, 1, "", this), + new Among ( "ais", 71, 1, "", this), + new Among ( "eis", 71, 1, "", this), + new Among ( "areis", 73, 1, "", this), + new Among ( "ereis", 73, 1, "", this), + new Among ( "ireis", 73, 1, "", this), + new Among ( "\u00E1reis", 73, 1, "", this), + new Among ( "\u00E9reis", 73, 1, "", this), + new Among ( "\u00EDreis", 73, 1, "", this), + new Among ( "\u00E1sseis", 73, 1, "", this), + new Among ( "\u00E9sseis", 73, 1, "", this), + new Among ( "\u00EDsseis", 73, 1, "", this), + new Among ( "\u00E1veis", 73, 1, "", this), + new Among ( "\u00EDeis", 73, 1, "", this), + new Among ( "ar\u00EDeis", 84, 1, "", this), + new Among ( "er\u00EDeis", 84, 1, "", this), + new Among ( "ir\u00EDeis", 84, 1, "", this), + new Among ( "ados", -1, 1, "", this), + new Among ( "idos", -1, 1, "", this), + new Among ( "amos", -1, 1, "", this), + new Among ( "\u00E1ramos", 90, 1, "", this), + new Among ( "\u00E9ramos", 90, 1, "", this), + new Among ( "\u00EDramos", 90, 1, "", this), + new Among ( "\u00E1vamos", 90, 1, "", this), + new Among ( "\u00EDamos", 90, 1, "", this), + new Among ( "ar\u00EDamos", 95, 1, "", this), + new Among ( "er\u00EDamos", 95, 1, "", this), + new Among ( "ir\u00EDamos", 95, 1, "", this), + new Among ( "emos", -1, 1, "", this), + new Among ( "aremos", 99, 1, "", this), + new Among ( "eremos", 99, 1, "", this), + new Among ( "iremos", 99, 1, "", this), + new Among ( "\u00E1ssemos", 99, 1, "", this), + new Among ( "\u00EAssemos", 99, 1, "", this), + new Among ( "\u00EDssemos", 99, 1, "", this), + new Among ( "imos", -1, 1, "", this), + new Among ( "armos", -1, 1, "", this), + new Among ( "ermos", -1, 1, "", this), + new Among ( "irmos", -1, 1, "", this), + new Among ( "\u00E1mos", -1, 1, "", this), + new Among ( "ar\u00E1s", -1, 1, "", this), + new Among ( "er\u00E1s", -1, 1, "", this), + new Among ( "ir\u00E1s", -1, 1, "", this), + new Among ( "eu", -1, 1, "", this), + new Among ( "iu", -1, 1, "", this), + new Among ( "ou", -1, 1, "", this), + new Among ( "ar\u00E1", -1, 1, "", this), + new Among ( "er\u00E1", -1, 1, "", this), + new Among ( "ir\u00E1", -1, 1, "", this) + }; + + private Among a_7[] = { + new Among ( "a", -1, 1, "", this), + new Among ( "i", -1, 1, "", this), + new Among ( "o", -1, 1, "", this), + new Among ( "os", -1, 1, "", this), + new Among ( "\u00E1", -1, 1, "", this), + new Among ( "\u00ED", -1, 1, "", this), + new Among ( "\u00F3", -1, 1, "", this) + }; + + private Among a_8[] = { + new Among ( "e", -1, 1, "", this), + new Among ( "\u00E7", -1, 2, "", this), + new Among ( "\u00E9", -1, 1, "", this), + new Among ( "\u00EA", -1, 1, "", this) + }; + + private static final char g_v[] = {17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 12, 2 }; + + private int I_p2; + private int I_p1; + private int I_pV; + + private void copy_from(PortugueseStemmer other) { + I_p2 = other.I_p2; + I_p1 = other.I_p1; + I_pV = other.I_pV; + super.copy_from(other); + } + + private boolean r_prelude() { + int among_var; + int v_1; + // repeat, line 36 + replab0: while(true) + { + v_1 = cursor; + lab1: do { + // (, line 36 + // [, line 37 + bra = cursor; + // substring, line 37 + among_var = find_among(a_0, 3); + if (among_var == 0) + { + break lab1; + } + // ], line 37 + ket = cursor; + switch(among_var) { + case 0: + break lab1; + case 1: + // (, line 38 + // <-, line 38 + slice_from("a~"); + break; + case 2: + // (, line 39 + // <-, line 39 + slice_from("o~"); + break; + case 3: + // (, line 40 + // next, line 40 + if (cursor >= limit) + { + break lab1; + } + cursor++; + break; + } + continue replab0; + } while (false); + cursor = v_1; + break replab0; + } + return true; + } + + private boolean r_mark_regions() { + int v_1; + int v_2; + int v_3; + int v_6; + int v_8; + // (, line 44 + I_pV = limit; + I_p1 = limit; + I_p2 = limit; + // do, line 50 + v_1 = cursor; + lab0: do { + // (, line 50 + // or, line 52 + lab1: do { + v_2 = cursor; + lab2: do { + // (, line 51 + if (!(in_grouping(g_v, 97, 250))) + { + break lab2; + } + // or, line 51 + lab3: do { + v_3 = cursor; + lab4: do { + // (, line 51 + if (!(out_grouping(g_v, 97, 250))) + { + break lab4; + } + // gopast, line 51 + golab5: while(true) + { + lab6: do { + if (!(in_grouping(g_v, 97, 250))) + { + break lab6; + } + break golab5; + } while (false); + if (cursor >= limit) + { + break lab4; + } + cursor++; + } + break lab3; + } while (false); + cursor = v_3; + // (, line 51 + if (!(in_grouping(g_v, 97, 250))) + { + break lab2; + } + // gopast, line 51 + golab7: while(true) + { + lab8: do { + if (!(out_grouping(g_v, 97, 250))) + { + break lab8; + } + break golab7; + } while (false); + if (cursor >= limit) + { + break lab2; + } + cursor++; + } + } while (false); + break lab1; + } while (false); + cursor = v_2; + // (, line 53 + if (!(out_grouping(g_v, 97, 250))) + { + break lab0; + } + // or, line 53 + lab9: do { + v_6 = cursor; + lab10: do { + // (, line 53 + if (!(out_grouping(g_v, 97, 250))) + { + break lab10; + } + // gopast, line 53 + golab11: while(true) + { + lab12: do { + if (!(in_grouping(g_v, 97, 250))) + { + break lab12; + } + break golab11; + } while (false); + if (cursor >= limit) + { + break lab10; + } + cursor++; + } + break lab9; + } while (false); + cursor = v_6; + // (, line 53 + if (!(in_grouping(g_v, 97, 250))) + { + break lab0; + } + // next, line 53 + if (cursor >= limit) + { + break lab0; + } + cursor++; + } while (false); + } while (false); + // setmark pV, line 54 + I_pV = cursor; + } while (false); + cursor = v_1; + // do, line 56 + v_8 = cursor; + lab13: do { + // (, line 56 + // gopast, line 57 + golab14: while(true) + { + lab15: do { + if (!(in_grouping(g_v, 97, 250))) + { + break lab15; + } + break golab14; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // gopast, line 57 + golab16: while(true) + { + lab17: do { + if (!(out_grouping(g_v, 97, 250))) + { + break lab17; + } + break golab16; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // setmark p1, line 57 + I_p1 = cursor; + // gopast, line 58 + golab18: while(true) + { + lab19: do { + if (!(in_grouping(g_v, 97, 250))) + { + break lab19; + } + break golab18; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // gopast, line 58 + golab20: while(true) + { + lab21: do { + if (!(out_grouping(g_v, 97, 250))) + { + break lab21; + } + break golab20; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // setmark p2, line 58 + I_p2 = cursor; + } while (false); + cursor = v_8; + return true; + } + + private boolean r_postlude() { + int among_var; + int v_1; + // repeat, line 62 + replab0: while(true) + { + v_1 = cursor; + lab1: do { + // (, line 62 + // [, line 63 + bra = cursor; + // substring, line 63 + among_var = find_among(a_1, 3); + if (among_var == 0) + { + break lab1; + } + // ], line 63 + ket = cursor; + switch(among_var) { + case 0: + break lab1; + case 1: + // (, line 64 + // <-, line 64 + slice_from("\u00E3"); + break; + case 2: + // (, line 65 + // <-, line 65 + slice_from("\u00F5"); + break; + case 3: + // (, line 66 + // next, line 66 + if (cursor >= limit) + { + break lab1; + } + cursor++; + break; + } + continue replab0; + } while (false); + cursor = v_1; + break replab0; + } + return true; + } + + private boolean r_RV() { + if (!(I_pV <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R1() { + if (!(I_p1 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R2() { + if (!(I_p2 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_standard_suffix() { + int among_var; + int v_1; + int v_2; + int v_3; + int v_4; + // (, line 76 + // [, line 77 + ket = cursor; + // substring, line 77 + among_var = find_among_b(a_5, 45); + if (among_var == 0) + { + return false; + } + // ], line 77 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 92 + // call R2, line 93 + if (!r_R2()) + { + return false; + } + // delete, line 93 + slice_del(); + break; + case 2: + // (, line 97 + // call R2, line 98 + if (!r_R2()) + { + return false; + } + // <-, line 98 + slice_from("log"); + break; + case 3: + // (, line 101 + // call R2, line 102 + if (!r_R2()) + { + return false; + } + // <-, line 102 + slice_from("u"); + break; + case 4: + // (, line 105 + // call R2, line 106 + if (!r_R2()) + { + return false; + } + // <-, line 106 + slice_from("ente"); + break; + case 5: + // (, line 109 + // call R1, line 110 + if (!r_R1()) + { + return false; + } + // delete, line 110 + slice_del(); + // try, line 111 + v_1 = limit - cursor; + lab0: do { + // (, line 111 + // [, line 112 + ket = cursor; + // substring, line 112 + among_var = find_among_b(a_2, 4); + if (among_var == 0) + { + cursor = limit - v_1; + break lab0; + } + // ], line 112 + bra = cursor; + // call R2, line 112 + if (!r_R2()) + { + cursor = limit - v_1; + break lab0; + } + // delete, line 112 + slice_del(); + switch(among_var) { + case 0: + cursor = limit - v_1; + break lab0; + case 1: + // (, line 113 + // [, line 113 + ket = cursor; + // literal, line 113 + if (!(eq_s_b(2, "at"))) + { + cursor = limit - v_1; + break lab0; + } + // ], line 113 + bra = cursor; + // call R2, line 113 + if (!r_R2()) + { + cursor = limit - v_1; + break lab0; + } + // delete, line 113 + slice_del(); + break; + } + } while (false); + break; + case 6: + // (, line 121 + // call R2, line 122 + if (!r_R2()) + { + return false; + } + // delete, line 122 + slice_del(); + // try, line 123 + v_2 = limit - cursor; + lab1: do { + // (, line 123 + // [, line 124 + ket = cursor; + // substring, line 124 + among_var = find_among_b(a_3, 3); + if (among_var == 0) + { + cursor = limit - v_2; + break lab1; + } + // ], line 124 + bra = cursor; + switch(among_var) { + case 0: + cursor = limit - v_2; + break lab1; + case 1: + // (, line 127 + // call R2, line 127 + if (!r_R2()) + { + cursor = limit - v_2; + break lab1; + } + // delete, line 127 + slice_del(); + break; + } + } while (false); + break; + case 7: + // (, line 133 + // call R2, line 134 + if (!r_R2()) + { + return false; + } + // delete, line 134 + slice_del(); + // try, line 135 + v_3 = limit - cursor; + lab2: do { + // (, line 135 + // [, line 136 + ket = cursor; + // substring, line 136 + among_var = find_among_b(a_4, 3); + if (among_var == 0) + { + cursor = limit - v_3; + break lab2; + } + // ], line 136 + bra = cursor; + switch(among_var) { + case 0: + cursor = limit - v_3; + break lab2; + case 1: + // (, line 139 + // call R2, line 139 + if (!r_R2()) + { + cursor = limit - v_3; + break lab2; + } + // delete, line 139 + slice_del(); + break; + } + } while (false); + break; + case 8: + // (, line 145 + // call R2, line 146 + if (!r_R2()) + { + return false; + } + // delete, line 146 + slice_del(); + // try, line 147 + v_4 = limit - cursor; + lab3: do { + // (, line 147 + // [, line 148 + ket = cursor; + // literal, line 148 + if (!(eq_s_b(2, "at"))) + { + cursor = limit - v_4; + break lab3; + } + // ], line 148 + bra = cursor; + // call R2, line 148 + if (!r_R2()) + { + cursor = limit - v_4; + break lab3; + } + // delete, line 148 + slice_del(); + } while (false); + break; + case 9: + // (, line 152 + // call RV, line 153 + if (!r_RV()) + { + return false; + } + // literal, line 153 + if (!(eq_s_b(1, "e"))) + { + return false; + } + // <-, line 154 + slice_from("ir"); + break; + } + return true; + } + + private boolean r_verb_suffix() { + int among_var; + int v_1; + int v_2; + // setlimit, line 159 + v_1 = limit - cursor; + // tomark, line 159 + if (cursor < I_pV) + { + return false; + } + cursor = I_pV; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 159 + // [, line 160 + ket = cursor; + // substring, line 160 + among_var = find_among_b(a_6, 120); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 160 + bra = cursor; + switch(among_var) { + case 0: + limit_backward = v_2; + return false; + case 1: + // (, line 179 + // delete, line 179 + slice_del(); + break; + } + limit_backward = v_2; + return true; + } + + private boolean r_residual_suffix() { + int among_var; + // (, line 183 + // [, line 184 + ket = cursor; + // substring, line 184 + among_var = find_among_b(a_7, 7); + if (among_var == 0) + { + return false; + } + // ], line 184 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 187 + // call RV, line 187 + if (!r_RV()) + { + return false; + } + // delete, line 187 + slice_del(); + break; + } + return true; + } + + private boolean r_residual_form() { + int among_var; + int v_1; + int v_2; + int v_3; + // (, line 191 + // [, line 192 + ket = cursor; + // substring, line 192 + among_var = find_among_b(a_8, 4); + if (among_var == 0) + { + return false; + } + // ], line 192 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 194 + // call RV, line 194 + if (!r_RV()) + { + return false; + } + // delete, line 194 + slice_del(); + // [, line 194 + ket = cursor; + // or, line 194 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // (, line 194 + // literal, line 194 + if (!(eq_s_b(1, "u"))) + { + break lab1; + } + // ], line 194 + bra = cursor; + // test, line 194 + v_2 = limit - cursor; + // literal, line 194 + if (!(eq_s_b(1, "g"))) + { + break lab1; + } + cursor = limit - v_2; + break lab0; + } while (false); + cursor = limit - v_1; + // (, line 195 + // literal, line 195 + if (!(eq_s_b(1, "i"))) + { + return false; + } + // ], line 195 + bra = cursor; + // test, line 195 + v_3 = limit - cursor; + // literal, line 195 + if (!(eq_s_b(1, "c"))) + { + return false; + } + cursor = limit - v_3; + } while (false); + // call RV, line 195 + if (!r_RV()) + { + return false; + } + // delete, line 195 + slice_del(); + break; + case 2: + // (, line 196 + // <-, line 196 + slice_from("c"); + 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 201 + // do, line 202 + v_1 = cursor; + lab0: do { + // call prelude, line 202 + if (!r_prelude()) + { + break lab0; + } + } while (false); + cursor = v_1; + // do, line 203 + v_2 = cursor; + lab1: do { + // call mark_regions, line 203 + if (!r_mark_regions()) + { + break lab1; + } + } while (false); + cursor = v_2; + // backwards, line 204 + limit_backward = cursor; cursor = limit; + // (, line 204 + // do, line 205 + v_3 = limit - cursor; + lab2: do { + // (, line 205 + // or, line 209 + lab3: do { + v_4 = limit - cursor; + lab4: do { + // (, line 206 + // and, line 207 + v_5 = limit - cursor; + // (, line 206 + // or, line 206 + lab5: do { + v_6 = limit - cursor; + lab6: do { + // call standard_suffix, line 206 + if (!r_standard_suffix()) + { + break lab6; + } + break lab5; + } while (false); + cursor = limit - v_6; + // call verb_suffix, line 206 + if (!r_verb_suffix()) + { + break lab4; + } + } while (false); + cursor = limit - v_5; + // do, line 207 + v_7 = limit - cursor; + lab7: do { + // (, line 207 + // [, line 207 + ket = cursor; + // literal, line 207 + if (!(eq_s_b(1, "i"))) + { + break lab7; + } + // ], line 207 + bra = cursor; + // test, line 207 + v_8 = limit - cursor; + // literal, line 207 + if (!(eq_s_b(1, "c"))) + { + break lab7; + } + cursor = limit - v_8; + // call RV, line 207 + if (!r_RV()) + { + break lab7; + } + // delete, line 207 + slice_del(); + } while (false); + cursor = limit - v_7; + break lab3; + } while (false); + cursor = limit - v_4; + // call residual_suffix, line 209 + if (!r_residual_suffix()) + { + break lab2; + } + } while (false); + } while (false); + cursor = limit - v_3; + // do, line 211 + v_9 = limit - cursor; + lab8: do { + // call residual_form, line 211 + if (!r_residual_form()) + { + break lab8; + } + } while (false); + cursor = limit - v_9; + cursor = limit_backward; // do, line 213 + v_10 = cursor; + lab9: do { + // call postlude, line 213 + if (!r_postlude()) + { + break lab9; + } + } while (false); + cursor = v_10; + return true; + } + +} + Index: contrib/snowball/src/java/org/tartarus/snowball/ext/RomanianStemmer.java =================================================================== --- contrib/snowball/src/java/org/tartarus/snowball/ext/RomanianStemmer.java (revision 0) +++ contrib/snowball/src/java/org/tartarus/snowball/ext/RomanianStemmer.java (revision 0) @@ -0,0 +1,1024 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; +import org.tartarus.snowball.SnowballProgram; +import org.tartarus.snowball.Among; + +/** + * Generated class implementing code defined by a snowball script. + */ +public class RomanianStemmer extends SnowballProgram { + + private Among a_0[] = { + new Among ( "", -1, 3, "", this), + new Among ( "I", 0, 1, "", this), + new Among ( "U", 0, 2, "", this) + }; + + private Among a_1[] = { + new Among ( "ea", -1, 3, "", this), + new Among ( "a\u0163ia", -1, 7, "", this), + new Among ( "aua", -1, 2, "", this), + new Among ( "iua", -1, 4, "", this), + new Among ( "a\u0163ie", -1, 7, "", this), + new Among ( "ele", -1, 3, "", this), + new Among ( "ile", -1, 5, "", this), + new Among ( "iile", 6, 4, "", this), + new Among ( "iei", -1, 4, "", this), + new Among ( "atei", -1, 6, "", this), + new Among ( "ii", -1, 4, "", this), + new Among ( "ului", -1, 1, "", this), + new Among ( "ul", -1, 1, "", this), + new Among ( "elor", -1, 3, "", this), + new Among ( "ilor", -1, 4, "", this), + new Among ( "iilor", 14, 4, "", this) + }; + + private Among a_2[] = { + new Among ( "icala", -1, 4, "", this), + new Among ( "iciva", -1, 4, "", this), + new Among ( "ativa", -1, 5, "", this), + new Among ( "itiva", -1, 6, "", this), + new Among ( "icale", -1, 4, "", this), + new Among ( "a\u0163iune", -1, 5, "", this), + new Among ( "i\u0163iune", -1, 6, "", this), + new Among ( "atoare", -1, 5, "", this), + new Among ( "itoare", -1, 6, "", this), + new Among ( "\u0103toare", -1, 5, "", this), + new Among ( "icitate", -1, 4, "", this), + new Among ( "abilitate", -1, 1, "", this), + new Among ( "ibilitate", -1, 2, "", this), + new Among ( "ivitate", -1, 3, "", this), + new Among ( "icive", -1, 4, "", this), + new Among ( "ative", -1, 5, "", this), + new Among ( "itive", -1, 6, "", this), + new Among ( "icali", -1, 4, "", this), + new Among ( "atori", -1, 5, "", this), + new Among ( "icatori", 18, 4, "", this), + new Among ( "itori", -1, 6, "", this), + new Among ( "\u0103tori", -1, 5, "", this), + new Among ( "icitati", -1, 4, "", this), + new Among ( "abilitati", -1, 1, "", this), + new Among ( "ivitati", -1, 3, "", this), + new Among ( "icivi", -1, 4, "", this), + new Among ( "ativi", -1, 5, "", this), + new Among ( "itivi", -1, 6, "", this), + new Among ( "icit\u0103i", -1, 4, "", this), + new Among ( "abilit\u0103i", -1, 1, "", this), + new Among ( "ivit\u0103i", -1, 3, "", this), + new Among ( "icit\u0103\u0163i", -1, 4, "", this), + new Among ( "abilit\u0103\u0163i", -1, 1, "", this), + new Among ( "ivit\u0103\u0163i", -1, 3, "", this), + new Among ( "ical", -1, 4, "", this), + new Among ( "ator", -1, 5, "", this), + new Among ( "icator", 35, 4, "", this), + new Among ( "itor", -1, 6, "", this), + new Among ( "\u0103tor", -1, 5, "", this), + new Among ( "iciv", -1, 4, "", this), + new Among ( "ativ", -1, 5, "", this), + new Among ( "itiv", -1, 6, "", this), + new Among ( "ical\u0103", -1, 4, "", this), + new Among ( "iciv\u0103", -1, 4, "", this), + new Among ( "ativ\u0103", -1, 5, "", this), + new Among ( "itiv\u0103", -1, 6, "", this) + }; + + private Among a_3[] = { + new Among ( "ica", -1, 1, "", this), + new Among ( "abila", -1, 1, "", this), + new Among ( "ibila", -1, 1, "", this), + new Among ( "oasa", -1, 1, "", this), + new Among ( "ata", -1, 1, "", this), + new Among ( "ita", -1, 1, "", this), + new Among ( "anta", -1, 1, "", this), + new Among ( "ista", -1, 3, "", this), + new Among ( "uta", -1, 1, "", this), + new Among ( "iva", -1, 1, "", this), + new Among ( "ic", -1, 1, "", this), + new Among ( "ice", -1, 1, "", this), + new Among ( "abile", -1, 1, "", this), + new Among ( "ibile", -1, 1, "", this), + new Among ( "isme", -1, 3, "", this), + new Among ( "iune", -1, 2, "", this), + new Among ( "oase", -1, 1, "", this), + new Among ( "ate", -1, 1, "", this), + new Among ( "itate", 17, 1, "", this), + new Among ( "ite", -1, 1, "", this), + new Among ( "ante", -1, 1, "", this), + new Among ( "iste", -1, 3, "", this), + new Among ( "ute", -1, 1, "", this), + new Among ( "ive", -1, 1, "", this), + new Among ( "ici", -1, 1, "", this), + new Among ( "abili", -1, 1, "", this), + new Among ( "ibili", -1, 1, "", this), + new Among ( "iuni", -1, 2, "", this), + new Among ( "atori", -1, 1, "", this), + new Among ( "osi", -1, 1, "", this), + new Among ( "ati", -1, 1, "", this), + new Among ( "itati", 30, 1, "", this), + new Among ( "iti", -1, 1, "", this), + new Among ( "anti", -1, 1, "", this), + new Among ( "isti", -1, 3, "", this), + new Among ( "uti", -1, 1, "", this), + new Among ( "i\u015Fti", -1, 3, "", this), + new Among ( "ivi", -1, 1, "", this), + new Among ( "it\u0103i", -1, 1, "", this), + new Among ( "o\u015Fi", -1, 1, "", this), + new Among ( "it\u0103\u0163i", -1, 1, "", this), + new Among ( "abil", -1, 1, "", this), + new Among ( "ibil", -1, 1, "", this), + new Among ( "ism", -1, 3, "", this), + new Among ( "ator", -1, 1, "", this), + new Among ( "os", -1, 1, "", this), + new Among ( "at", -1, 1, "", this), + new Among ( "it", -1, 1, "", this), + new Among ( "ant", -1, 1, "", this), + new Among ( "ist", -1, 3, "", this), + new Among ( "ut", -1, 1, "", this), + new Among ( "iv", -1, 1, "", this), + new Among ( "ic\u0103", -1, 1, "", this), + new Among ( "abil\u0103", -1, 1, "", this), + new Among ( "ibil\u0103", -1, 1, "", this), + new Among ( "oas\u0103", -1, 1, "", this), + new Among ( "at\u0103", -1, 1, "", this), + new Among ( "it\u0103", -1, 1, "", this), + new Among ( "ant\u0103", -1, 1, "", this), + new Among ( "ist\u0103", -1, 3, "", this), + new Among ( "ut\u0103", -1, 1, "", this), + new Among ( "iv\u0103", -1, 1, "", this) + }; + + private Among a_4[] = { + new Among ( "ea", -1, 1, "", this), + new Among ( "ia", -1, 1, "", this), + new Among ( "esc", -1, 1, "", this), + new Among ( "\u0103sc", -1, 1, "", this), + new Among ( "ind", -1, 1, "", this), + new Among ( "\u00E2nd", -1, 1, "", this), + new Among ( "are", -1, 1, "", this), + new Among ( "ere", -1, 1, "", this), + new Among ( "ire", -1, 1, "", this), + new Among ( "\u00E2re", -1, 1, "", this), + new Among ( "se", -1, 2, "", this), + new Among ( "ase", 10, 1, "", this), + new Among ( "sese", 10, 2, "", this), + new Among ( "ise", 10, 1, "", this), + new Among ( "use", 10, 1, "", this), + new Among ( "\u00E2se", 10, 1, "", this), + new Among ( "e\u015Fte", -1, 1, "", this), + new Among ( "\u0103\u015Fte", -1, 1, "", this), + new Among ( "eze", -1, 1, "", this), + new Among ( "ai", -1, 1, "", this), + new Among ( "eai", 19, 1, "", this), + new Among ( "iai", 19, 1, "", this), + new Among ( "sei", -1, 2, "", this), + new Among ( "e\u015Fti", -1, 1, "", this), + new Among ( "\u0103\u015Fti", -1, 1, "", this), + new Among ( "ui", -1, 1, "", this), + new Among ( "ezi", -1, 1, "", this), + new Among ( "\u00E2i", -1, 1, "", this), + new Among ( "a\u015Fi", -1, 1, "", this), + new Among ( "se\u015Fi", -1, 2, "", this), + new Among ( "ase\u015Fi", 29, 1, "", this), + new Among ( "sese\u015Fi", 29, 2, "", this), + new Among ( "ise\u015Fi", 29, 1, "", this), + new Among ( "use\u015Fi", 29, 1, "", this), + new Among ( "\u00E2se\u015Fi", 29, 1, "", this), + new Among ( "i\u015Fi", -1, 1, "", this), + new Among ( "u\u015Fi", -1, 1, "", this), + new Among ( "\u00E2\u015Fi", -1, 1, "", this), + new Among ( "a\u0163i", -1, 2, "", this), + new Among ( "ea\u0163i", 38, 1, "", this), + new Among ( "ia\u0163i", 38, 1, "", this), + new Among ( "e\u0163i", -1, 2, "", this), + new Among ( "i\u0163i", -1, 2, "", this), + new Among ( "\u00E2\u0163i", -1, 2, "", this), + new Among ( "ar\u0103\u0163i", -1, 1, "", this), + new Among ( "ser\u0103\u0163i", -1, 2, "", this), + new Among ( "aser\u0103\u0163i", 45, 1, "", this), + new Among ( "seser\u0103\u0163i", 45, 2, "", this), + new Among ( "iser\u0103\u0163i", 45, 1, "", this), + new Among ( "user\u0103\u0163i", 45, 1, "", this), + new Among ( "\u00E2ser\u0103\u0163i", 45, 1, "", this), + new Among ( "ir\u0103\u0163i", -1, 1, "", this), + new Among ( "ur\u0103\u0163i", -1, 1, "", this), + new Among ( "\u00E2r\u0103\u0163i", -1, 1, "", this), + new Among ( "am", -1, 1, "", this), + new Among ( "eam", 54, 1, "", this), + new Among ( "iam", 54, 1, "", this), + new Among ( "em", -1, 2, "", this), + new Among ( "asem", 57, 1, "", this), + new Among ( "sesem", 57, 2, "", this), + new Among ( "isem", 57, 1, "", this), + new Among ( "usem", 57, 1, "", this), + new Among ( "\u00E2sem", 57, 1, "", this), + new Among ( "im", -1, 2, "", this), + new Among ( "\u00E2m", -1, 2, "", this), + new Among ( "\u0103m", -1, 2, "", this), + new Among ( "ar\u0103m", 65, 1, "", this), + new Among ( "ser\u0103m", 65, 2, "", this), + new Among ( "aser\u0103m", 67, 1, "", this), + new Among ( "seser\u0103m", 67, 2, "", this), + new Among ( "iser\u0103m", 67, 1, "", this), + new Among ( "user\u0103m", 67, 1, "", this), + new Among ( "\u00E2ser\u0103m", 67, 1, "", this), + new Among ( "ir\u0103m", 65, 1, "", this), + new Among ( "ur\u0103m", 65, 1, "", this), + new Among ( "\u00E2r\u0103m", 65, 1, "", this), + new Among ( "au", -1, 1, "", this), + new Among ( "eau", 76, 1, "", this), + new Among ( "iau", 76, 1, "", this), + new Among ( "indu", -1, 1, "", this), + new Among ( "\u00E2ndu", -1, 1, "", this), + new Among ( "ez", -1, 1, "", this), + new Among ( "easc\u0103", -1, 1, "", this), + new Among ( "ar\u0103", -1, 1, "", this), + new Among ( "ser\u0103", -1, 2, "", this), + new Among ( "aser\u0103", 84, 1, "", this), + new Among ( "seser\u0103", 84, 2, "", this), + new Among ( "iser\u0103", 84, 1, "", this), + new Among ( "user\u0103", 84, 1, "", this), + new Among ( "\u00E2ser\u0103", 84, 1, "", this), + new Among ( "ir\u0103", -1, 1, "", this), + new Among ( "ur\u0103", -1, 1, "", this), + new Among ( "\u00E2r\u0103", -1, 1, "", this), + new Among ( "eaz\u0103", -1, 1, "", this) + }; + + private Among a_5[] = { + new Among ( "a", -1, 1, "", this), + new Among ( "e", -1, 1, "", this), + new Among ( "ie", 1, 1, "", this), + new Among ( "i", -1, 1, "", this), + new Among ( "\u0103", -1, 1, "", this) + }; + + private static final char g_v[] = {17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 32, 0, 0, 4 }; + + private boolean B_standard_suffix_removed; + private int I_p2; + private int I_p1; + private int I_pV; + + private void copy_from(RomanianStemmer other) { + B_standard_suffix_removed = other.B_standard_suffix_removed; + I_p2 = other.I_p2; + I_p1 = other.I_p1; + I_pV = other.I_pV; + super.copy_from(other); + } + + private boolean r_prelude() { + int v_1; + int v_2; + int v_3; + // (, line 31 + // repeat, line 32 + replab0: while(true) + { + v_1 = cursor; + lab1: do { + // goto, line 32 + golab2: while(true) + { + v_2 = cursor; + lab3: do { + // (, line 32 + if (!(in_grouping(g_v, 97, 259))) + { + break lab3; + } + // [, line 33 + bra = cursor; + // or, line 33 + lab4: do { + v_3 = cursor; + lab5: do { + // (, line 33 + // literal, line 33 + if (!(eq_s(1, "u"))) + { + break lab5; + } + // ], line 33 + ket = cursor; + if (!(in_grouping(g_v, 97, 259))) + { + break lab5; + } + // <-, line 33 + slice_from("U"); + break lab4; + } while (false); + cursor = v_3; + // (, line 34 + // literal, line 34 + if (!(eq_s(1, "i"))) + { + break lab3; + } + // ], line 34 + ket = cursor; + if (!(in_grouping(g_v, 97, 259))) + { + break lab3; + } + // <-, line 34 + slice_from("I"); + } while (false); + cursor = v_2; + break golab2; + } while (false); + cursor = v_2; + if (cursor >= limit) + { + break lab1; + } + cursor++; + } + continue replab0; + } while (false); + cursor = v_1; + break replab0; + } + return true; + } + + private boolean r_mark_regions() { + int v_1; + int v_2; + int v_3; + int v_6; + int v_8; + // (, line 38 + I_pV = limit; + I_p1 = limit; + I_p2 = limit; + // do, line 44 + v_1 = cursor; + lab0: do { + // (, line 44 + // or, line 46 + lab1: do { + v_2 = cursor; + lab2: do { + // (, line 45 + if (!(in_grouping(g_v, 97, 259))) + { + break lab2; + } + // or, line 45 + lab3: do { + v_3 = cursor; + lab4: do { + // (, line 45 + if (!(out_grouping(g_v, 97, 259))) + { + break lab4; + } + // gopast, line 45 + golab5: while(true) + { + lab6: do { + if (!(in_grouping(g_v, 97, 259))) + { + break lab6; + } + break golab5; + } while (false); + if (cursor >= limit) + { + break lab4; + } + cursor++; + } + break lab3; + } while (false); + cursor = v_3; + // (, line 45 + if (!(in_grouping(g_v, 97, 259))) + { + break lab2; + } + // gopast, line 45 + golab7: while(true) + { + lab8: do { + if (!(out_grouping(g_v, 97, 259))) + { + break lab8; + } + break golab7; + } while (false); + if (cursor >= limit) + { + break lab2; + } + cursor++; + } + } while (false); + break lab1; + } while (false); + cursor = v_2; + // (, line 47 + if (!(out_grouping(g_v, 97, 259))) + { + break lab0; + } + // or, line 47 + lab9: do { + v_6 = cursor; + lab10: do { + // (, line 47 + if (!(out_grouping(g_v, 97, 259))) + { + break lab10; + } + // gopast, line 47 + golab11: while(true) + { + lab12: do { + if (!(in_grouping(g_v, 97, 259))) + { + break lab12; + } + break golab11; + } while (false); + if (cursor >= limit) + { + break lab10; + } + cursor++; + } + break lab9; + } while (false); + cursor = v_6; + // (, line 47 + if (!(in_grouping(g_v, 97, 259))) + { + break lab0; + } + // next, line 47 + if (cursor >= limit) + { + break lab0; + } + cursor++; + } while (false); + } while (false); + // setmark pV, line 48 + I_pV = cursor; + } while (false); + cursor = v_1; + // do, line 50 + v_8 = cursor; + lab13: do { + // (, line 50 + // gopast, line 51 + golab14: while(true) + { + lab15: do { + if (!(in_grouping(g_v, 97, 259))) + { + break lab15; + } + break golab14; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // gopast, line 51 + golab16: while(true) + { + lab17: do { + if (!(out_grouping(g_v, 97, 259))) + { + break lab17; + } + break golab16; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // setmark p1, line 51 + I_p1 = cursor; + // gopast, line 52 + golab18: while(true) + { + lab19: do { + if (!(in_grouping(g_v, 97, 259))) + { + break lab19; + } + break golab18; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // gopast, line 52 + golab20: while(true) + { + lab21: do { + if (!(out_grouping(g_v, 97, 259))) + { + break lab21; + } + break golab20; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // setmark p2, line 52 + I_p2 = cursor; + } while (false); + cursor = v_8; + return true; + } + + private boolean r_postlude() { + int among_var; + int v_1; + // repeat, line 56 + replab0: while(true) + { + v_1 = cursor; + lab1: do { + // (, line 56 + // [, line 58 + bra = cursor; + // substring, line 58 + among_var = find_among(a_0, 3); + if (among_var == 0) + { + break lab1; + } + // ], line 58 + ket = cursor; + switch(among_var) { + case 0: + break lab1; + case 1: + // (, line 59 + // <-, line 59 + slice_from("i"); + break; + case 2: + // (, line 60 + // <-, line 60 + slice_from("u"); + break; + case 3: + // (, line 61 + // next, line 61 + if (cursor >= limit) + { + break lab1; + } + cursor++; + break; + } + continue replab0; + } while (false); + cursor = v_1; + break replab0; + } + return true; + } + + private boolean r_RV() { + if (!(I_pV <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R1() { + if (!(I_p1 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R2() { + if (!(I_p2 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_step_0() { + int among_var; + int v_1; + // (, line 72 + // [, line 73 + ket = cursor; + // substring, line 73 + among_var = find_among_b(a_1, 16); + if (among_var == 0) + { + return false; + } + // ], line 73 + bra = cursor; + // call R1, line 73 + if (!r_R1()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 75 + // delete, line 75 + slice_del(); + break; + case 2: + // (, line 77 + // <-, line 77 + slice_from("a"); + break; + case 3: + // (, line 79 + // <-, line 79 + slice_from("e"); + break; + case 4: + // (, line 81 + // <-, line 81 + slice_from("i"); + break; + case 5: + // (, line 83 + // not, line 83 + { + v_1 = limit - cursor; + lab0: do { + // literal, line 83 + if (!(eq_s_b(2, "ab"))) + { + break lab0; + } + return false; + } while (false); + cursor = limit - v_1; + } + // <-, line 83 + slice_from("i"); + break; + case 6: + // (, line 85 + // <-, line 85 + slice_from("at"); + break; + case 7: + // (, line 87 + // <-, line 87 + slice_from("a\u0163i"); + break; + } + return true; + } + + private boolean r_combo_suffix() { + int among_var; + int v_1; + // test, line 91 + v_1 = limit - cursor; + // (, line 91 + // [, line 92 + ket = cursor; + // substring, line 92 + among_var = find_among_b(a_2, 46); + if (among_var == 0) + { + return false; + } + // ], line 92 + bra = cursor; + // call R1, line 92 + if (!r_R1()) + { + return false; + } + // (, line 92 + switch(among_var) { + case 0: + return false; + case 1: + // (, line 100 + // <-, line 101 + slice_from("abil"); + break; + case 2: + // (, line 103 + // <-, line 104 + slice_from("ibil"); + break; + case 3: + // (, line 106 + // <-, line 107 + slice_from("iv"); + break; + case 4: + // (, line 112 + // <-, line 113 + slice_from("ic"); + break; + case 5: + // (, line 117 + // <-, line 118 + slice_from("at"); + break; + case 6: + // (, line 121 + // <-, line 122 + slice_from("it"); + break; + } + // set standard_suffix_removed, line 125 + B_standard_suffix_removed = true; + cursor = limit - v_1; + return true; + } + + private boolean r_standard_suffix() { + int among_var; + int v_1; + // (, line 129 + // unset standard_suffix_removed, line 130 + B_standard_suffix_removed = false; + // repeat, line 131 + replab0: while(true) + { + v_1 = limit - cursor; + lab1: do { + // call combo_suffix, line 131 + if (!r_combo_suffix()) + { + break lab1; + } + continue replab0; + } while (false); + cursor = limit - v_1; + break replab0; + } + // [, line 132 + ket = cursor; + // substring, line 132 + among_var = find_among_b(a_3, 62); + if (among_var == 0) + { + return false; + } + // ], line 132 + bra = cursor; + // call R2, line 132 + if (!r_R2()) + { + return false; + } + // (, line 132 + switch(among_var) { + case 0: + return false; + case 1: + // (, line 148 + // delete, line 149 + slice_del(); + break; + case 2: + // (, line 151 + // literal, line 152 + if (!(eq_s_b(1, "\u0163"))) + { + return false; + } + // ], line 152 + bra = cursor; + // <-, line 152 + slice_from("t"); + break; + case 3: + // (, line 155 + // <-, line 156 + slice_from("ist"); + break; + } + // set standard_suffix_removed, line 160 + B_standard_suffix_removed = true; + return true; + } + + private boolean r_verb_suffix() { + int among_var; + int v_1; + int v_2; + int v_3; + // setlimit, line 164 + v_1 = limit - cursor; + // tomark, line 164 + if (cursor < I_pV) + { + return false; + } + cursor = I_pV; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 164 + // [, line 165 + ket = cursor; + // substring, line 165 + among_var = find_among_b(a_4, 94); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 165 + bra = cursor; + switch(among_var) { + case 0: + limit_backward = v_2; + return false; + case 1: + // (, line 200 + // or, line 200 + lab0: do { + v_3 = limit - cursor; + lab1: do { + if (!(out_grouping_b(g_v, 97, 259))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_3; + // literal, line 200 + if (!(eq_s_b(1, "u"))) + { + limit_backward = v_2; + return false; + } + } while (false); + // delete, line 200 + slice_del(); + break; + case 2: + // (, line 214 + // delete, line 214 + slice_del(); + break; + } + limit_backward = v_2; + return true; + } + + private boolean r_vowel_suffix() { + int among_var; + // (, line 218 + // [, line 219 + ket = cursor; + // substring, line 219 + among_var = find_among_b(a_5, 5); + if (among_var == 0) + { + return false; + } + // ], line 219 + bra = cursor; + // call RV, line 219 + if (!r_RV()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 220 + // delete, line 220 + 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; + // (, line 225 + // do, line 226 + v_1 = cursor; + lab0: do { + // call prelude, line 226 + if (!r_prelude()) + { + break lab0; + } + } while (false); + cursor = v_1; + // do, line 227 + v_2 = cursor; + lab1: do { + // call mark_regions, line 227 + if (!r_mark_regions()) + { + break lab1; + } + } while (false); + cursor = v_2; + // backwards, line 228 + limit_backward = cursor; cursor = limit; + // (, line 228 + // do, line 229 + v_3 = limit - cursor; + lab2: do { + // call step_0, line 229 + if (!r_step_0()) + { + break lab2; + } + } while (false); + cursor = limit - v_3; + // do, line 230 + v_4 = limit - cursor; + lab3: do { + // call standard_suffix, line 230 + if (!r_standard_suffix()) + { + break lab3; + } + } while (false); + cursor = limit - v_4; + // do, line 231 + v_5 = limit - cursor; + lab4: do { + // (, line 231 + // or, line 231 + lab5: do { + v_6 = limit - cursor; + lab6: do { + // Boolean test standard_suffix_removed, line 231 + if (!(B_standard_suffix_removed)) + { + break lab6; + } + break lab5; + } while (false); + cursor = limit - v_6; + // call verb_suffix, line 231 + if (!r_verb_suffix()) + { + break lab4; + } + } while (false); + } while (false); + cursor = limit - v_5; + // do, line 232 + v_7 = limit - cursor; + lab7: do { + // call vowel_suffix, line 232 + if (!r_vowel_suffix()) + { + break lab7; + } + } while (false); + cursor = limit - v_7; + cursor = limit_backward; // do, line 234 + v_8 = cursor; + lab8: do { + // call postlude, line 234 + if (!r_postlude()) + { + break lab8; + } + } while (false); + cursor = v_8; + return true; + } + +} + Index: contrib/snowball/src/java/org/tartarus/snowball/ext/FrenchStemmer.java =================================================================== --- contrib/snowball/src/java/org/tartarus/snowball/ext/FrenchStemmer.java (revision 0) +++ contrib/snowball/src/java/org/tartarus/snowball/ext/FrenchStemmer.java (revision 0) @@ -0,0 +1,1501 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; +import org.tartarus.snowball.SnowballProgram; +import org.tartarus.snowball.Among; + +/** + * Generated class implementing code defined by a snowball script. + */ +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_2[] = { + new Among ( "iqU", -1, 3, "", this), + new Among ( "abl", -1, 3, "", this), + new Among ( "I\u00E8r", -1, 4, "", this), + new Among ( "i\u00E8r", -1, 4, "", this), + new Among ( "eus", -1, 2, "", this), + new Among ( "iv", -1, 1, "", this) + }; + + 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_4[] = { + new Among ( "iqUe", -1, 1, "", this), + new Among ( "atrice", -1, 2, "", this), + new Among ( "ance", -1, 1, "", this), + new Among ( "ence", -1, 5, "", this), + new Among ( "logie", -1, 3, "", this), + new Among ( "able", -1, 1, "", this), + new Among ( "isme", -1, 1, "", this), + new Among ( "euse", -1, 11, "", this), + new Among ( "iste", -1, 1, "", this), + new Among ( "ive", -1, 8, "", this), + new Among ( "if", -1, 8, "", this), + new Among ( "usion", -1, 4, "", this), + new Among ( "ation", -1, 2, "", this), + new Among ( "ution", -1, 4, "", this), + new Among ( "ateur", -1, 2, "", this), + new Among ( "iqUes", -1, 1, "", this), + new Among ( "atrices", -1, 2, "", this), + new Among ( "ances", -1, 1, "", this), + new Among ( "ences", -1, 5, "", this), + new Among ( "logies", -1, 3, "", this), + new Among ( "ables", -1, 1, "", this), + new Among ( "ismes", -1, 1, "", this), + new Among ( "euses", -1, 11, "", this), + new Among ( "istes", -1, 1, "", this), + new Among ( "ives", -1, 8, "", this), + new Among ( "ifs", -1, 8, "", this), + new Among ( "usions", -1, 4, "", this), + new Among ( "ations", -1, 2, "", this), + new Among ( "utions", -1, 4, "", this), + new Among ( "ateurs", -1, 2, "", this), + new Among ( "ments", -1, 15, "", this), + new Among ( "ements", 30, 6, "", this), + new Among ( "issements", 31, 12, "", this), + new Among ( "it\u00E9s", -1, 7, "", this), + new Among ( "ment", -1, 15, "", this), + new Among ( "ement", 34, 6, "", this), + new Among ( "issement", 35, 12, "", this), + new Among ( "amment", 34, 13, "", this), + new Among ( "emment", 34, 14, "", this), + new Among ( "aux", -1, 10, "", this), + new Among ( "eaux", 39, 9, "", this), + new Among ( "eux", -1, 1, "", this), + new Among ( "it\u00E9", -1, 7, "", this) + }; + + private Among a_5[] = { + new Among ( "ira", -1, 1, "", this), + new Among ( "ie", -1, 1, "", this), + new Among ( "isse", -1, 1, "", this), + new Among ( "issante", -1, 1, "", this), + new Among ( "i", -1, 1, "", this), + new Among ( "irai", 4, 1, "", this), + new Among ( "ir", -1, 1, "", this), + new Among ( "iras", -1, 1, "", this), + new Among ( "ies", -1, 1, "", this), + new Among ( "\u00EEmes", -1, 1, "", this), + new Among ( "isses", -1, 1, "", this), + new Among ( "issantes", -1, 1, "", this), + new Among ( "\u00EEtes", -1, 1, "", this), + new Among ( "is", -1, 1, "", this), + new Among ( "irais", 13, 1, "", this), + new Among ( "issais", 13, 1, "", this), + new Among ( "irions", -1, 1, "", this), + new Among ( "issions", -1, 1, "", this), + new Among ( "irons", -1, 1, "", this), + new Among ( "issons", -1, 1, "", this), + new Among ( "issants", -1, 1, "", this), + new Among ( "it", -1, 1, "", this), + new Among ( "irait", 21, 1, "", this), + new Among ( "issait", 21, 1, "", this), + new Among ( "issant", -1, 1, "", this), + new Among ( "iraIent", -1, 1, "", this), + new Among ( "issaIent", -1, 1, "", this), + new Among ( "irent", -1, 1, "", this), + new Among ( "issent", -1, 1, "", this), + new Among ( "iront", -1, 1, "", this), + new Among ( "\u00EEt", -1, 1, "", this), + new Among ( "iriez", -1, 1, "", this), + new Among ( "issiez", -1, 1, "", this), + new Among ( "irez", -1, 1, "", this), + new Among ( "issez", -1, 1, "", this) + }; + + private Among a_6[] = { + new Among ( "a", -1, 3, "", this), + new Among ( "era", 0, 2, "", this), + new Among ( "asse", -1, 3, "", this), + new Among ( "ante", -1, 3, "", this), + new Among ( "\u00E9e", -1, 2, "", this), + new Among ( "ai", -1, 3, "", this), + new Among ( "erai", 5, 2, "", this), + new Among ( "er", -1, 2, "", this), + new Among ( "as", -1, 3, "", this), + new Among ( "eras", 8, 2, "", this), + new Among ( "\u00E2mes", -1, 3, "", this), + new Among ( "asses", -1, 3, "", this), + new Among ( "antes", -1, 3, "", this), + new Among ( "\u00E2tes", -1, 3, "", this), + new Among ( "\u00E9es", -1, 2, "", this), + new Among ( "ais", -1, 3, "", this), + new Among ( "erais", 15, 2, "", this), + new Among ( "ions", -1, 1, "", this), + new Among ( "erions", 17, 2, "", this), + new Among ( "assions", 17, 3, "", this), + new Among ( "erons", -1, 2, "", this), + new Among ( "ants", -1, 3, "", this), + new Among ( "\u00E9s", -1, 2, "", this), + new Among ( "ait", -1, 3, "", this), + new Among ( "erait", 23, 2, "", this), + new Among ( "ant", -1, 3, "", this), + new Among ( "aIent", -1, 3, "", this), + new Among ( "eraIent", 26, 2, "", this), + new Among ( "\u00E8rent", -1, 2, "", this), + new Among ( "assent", -1, 3, "", this), + new Among ( "eront", -1, 2, "", this), + new Among ( "\u00E2t", -1, 3, "", this), + new Among ( "ez", -1, 2, "", this), + new Among ( "iez", 32, 2, "", this), + new Among ( "eriez", 33, 2, "", this), + new Among ( "assiez", 33, 3, "", this), + new Among ( "erez", 32, 2, "", this), + new Among ( "\u00E9", -1, 2, "", this) + }; + + private Among a_7[] = { + new Among ( "e", -1, 3, "", this), + new Among ( "I\u00E8re", 0, 2, "", this), + new Among ( "i\u00E8re", 0, 2, "", this), + new Among ( "ion", -1, 1, "", this), + new Among ( "Ier", -1, 2, "", this), + new Among ( "ier", -1, 2, "", this), + new Among ( "\u00EB", -1, 4, "", this) + }; + + private Among a_8[] = { + new Among ( "ell", -1, -1, "", this), + new Among ( "eill", -1, -1, "", this), + new Among ( "enn", -1, -1, "", this), + new Among ( "onn", -1, -1, "", this), + new Among ( "ett", -1, -1, "", this) + }; + + private static final char g_v[] = {17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 130, 103, 8, 5 }; + + private static final char g_keep_with_s[] = {1, 65, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 }; + + private int I_p2; + private int I_p1; + private int I_pV; + + private void copy_from(FrenchStemmer other) { + I_p2 = other.I_p2; + I_p1 = other.I_p1; + I_pV = other.I_pV; + super.copy_from(other); + } + + private boolean r_prelude() { + int v_1; + int v_2; + int v_3; + int v_4; + // repeat, line 38 + replab0: while(true) + { + v_1 = cursor; + lab1: do { + // goto, line 38 + golab2: while(true) + { + v_2 = cursor; + lab3: do { + // (, line 38 + // or, line 44 + lab4: do { + v_3 = cursor; + lab5: do { + // (, line 40 + if (!(in_grouping(g_v, 97, 251))) + { + break lab5; + } + // [, line 40 + bra = cursor; + // or, line 40 + lab6: do { + v_4 = cursor; + lab7: do { + // (, line 40 + // literal, line 40 + if (!(eq_s(1, "u"))) + { + break lab7; + } + // ], line 40 + ket = cursor; + if (!(in_grouping(g_v, 97, 251))) + { + break lab7; + } + // <-, line 40 + slice_from("U"); + break lab6; + } while (false); + cursor = v_4; + lab8: do { + // (, line 41 + // literal, line 41 + if (!(eq_s(1, "i"))) + { + break lab8; + } + // ], line 41 + ket = cursor; + if (!(in_grouping(g_v, 97, 251))) + { + break lab8; + } + // <-, line 41 + slice_from("I"); + break lab6; + } while (false); + cursor = v_4; + // (, line 42 + // literal, line 42 + if (!(eq_s(1, "y"))) + { + break lab5; + } + // ], line 42 + ket = cursor; + // <-, line 42 + slice_from("Y"); + } while (false); + break lab4; + } while (false); + cursor = v_3; + lab9: do { + // (, line 45 + // [, line 45 + bra = cursor; + // literal, line 45 + if (!(eq_s(1, "y"))) + { + break lab9; + } + // ], line 45 + ket = cursor; + if (!(in_grouping(g_v, 97, 251))) + { + break lab9; + } + // <-, line 45 + slice_from("Y"); + break lab4; + } while (false); + cursor = v_3; + // (, line 47 + // literal, line 47 + if (!(eq_s(1, "q"))) + { + break lab3; + } + // [, line 47 + bra = cursor; + // literal, line 47 + if (!(eq_s(1, "u"))) + { + break lab3; + } + // ], line 47 + ket = cursor; + // <-, line 47 + slice_from("U"); + } while (false); + cursor = v_2; + break golab2; + } while (false); + cursor = v_2; + if (cursor >= limit) + { + break lab1; + } + cursor++; + } + continue replab0; + } while (false); + cursor = v_1; + break replab0; + } + return true; + } + + private boolean r_mark_regions() { + int v_1; + int v_2; + int v_4; + // (, line 50 + I_pV = limit; + I_p1 = limit; + I_p2 = limit; + // do, line 56 + v_1 = cursor; + lab0: do { + // (, line 56 + // or, line 58 + lab1: do { + v_2 = cursor; + lab2: do { + // (, line 57 + if (!(in_grouping(g_v, 97, 251))) + { + break lab2; + } + if (!(in_grouping(g_v, 97, 251))) + { + break lab2; + } + // next, line 57 + if (cursor >= limit) + { + break lab2; + } + cursor++; + break lab1; + } while (false); + cursor = v_2; + 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 66 + golab4: while(true) + { + lab5: do { + if (!(in_grouping(g_v, 97, 251))) + { + break lab5; + } + break golab4; + } while (false); + if (cursor >= limit) + { + break lab0; + } + cursor++; + } + } while (false); + // setmark pV, line 67 + I_pV = cursor; + } while (false); + cursor = v_1; + // do, line 69 + v_4 = cursor; + lab6: do { + // (, line 69 + // gopast, line 70 + golab7: while(true) + { + lab8: do { + if (!(in_grouping(g_v, 97, 251))) + { + break lab8; + } + break golab7; + } while (false); + if (cursor >= limit) + { + break lab6; + } + cursor++; + } + // gopast, line 70 + golab9: while(true) + { + lab10: do { + if (!(out_grouping(g_v, 97, 251))) + { + break lab10; + } + break golab9; + } while (false); + if (cursor >= limit) + { + break lab6; + } + cursor++; + } + // setmark p1, line 70 + I_p1 = cursor; + // gopast, line 71 + golab11: while(true) + { + lab12: do { + if (!(in_grouping(g_v, 97, 251))) + { + break lab12; + } + break golab11; + } while (false); + if (cursor >= limit) + { + break lab6; + } + cursor++; + } + // gopast, line 71 + golab13: while(true) + { + lab14: do { + if (!(out_grouping(g_v, 97, 251))) + { + break lab14; + } + break golab13; + } while (false); + if (cursor >= limit) + { + break lab6; + } + cursor++; + } + // setmark p2, line 71 + I_p2 = cursor; + } while (false); + cursor = v_4; + return true; + } + + private boolean r_postlude() { + int among_var; + int v_1; + // repeat, line 75 + replab0: while(true) + { + v_1 = cursor; + lab1: do { + // (, line 75 + // [, line 77 + bra = cursor; + // substring, line 77 + among_var = find_among(a_1, 4); + if (among_var == 0) + { + break lab1; + } + // ], line 77 + ket = cursor; + switch(among_var) { + case 0: + break lab1; + case 1: + // (, line 78 + // <-, line 78 + slice_from("i"); + break; + case 2: + // (, line 79 + // <-, line 79 + slice_from("u"); + break; + case 3: + // (, line 80 + // <-, line 80 + slice_from("y"); + break; + case 4: + // (, line 81 + // next, line 81 + if (cursor >= limit) + { + break lab1; + } + cursor++; + break; + } + continue replab0; + } while (false); + cursor = v_1; + break replab0; + } + return true; + } + + private boolean r_RV() { + if (!(I_pV <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R1() { + if (!(I_p1 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R2() { + if (!(I_p2 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_standard_suffix() { + int among_var; + 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; + int v_11; + // (, line 91 + // [, line 92 + ket = cursor; + // substring, line 92 + among_var = find_among_b(a_4, 43); + if (among_var == 0) + { + return false; + } + // ], line 92 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 96 + // call R2, line 96 + if (!r_R2()) + { + return false; + } + // delete, line 96 + slice_del(); + break; + case 2: + // (, line 99 + // call R2, line 99 + if (!r_R2()) + { + return false; + } + // delete, line 99 + slice_del(); + // try, line 100 + v_1 = limit - cursor; + lab0: do { + // (, line 100 + // [, line 100 + ket = cursor; + // literal, line 100 + if (!(eq_s_b(2, "ic"))) + { + cursor = limit - v_1; + break lab0; + } + // ], line 100 + bra = cursor; + // or, line 100 + lab1: do { + v_2 = limit - cursor; + lab2: do { + // (, line 100 + // call R2, line 100 + if (!r_R2()) + { + break lab2; + } + // delete, line 100 + slice_del(); + break lab1; + } while (false); + cursor = limit - v_2; + // <-, line 100 + slice_from("iqU"); + } while (false); + } while (false); + break; + case 3: + // (, line 104 + // call R2, line 104 + if (!r_R2()) + { + return false; + } + // <-, line 104 + slice_from("log"); + break; + case 4: + // (, line 107 + // call R2, line 107 + if (!r_R2()) + { + return false; + } + // <-, line 107 + slice_from("u"); + break; + case 5: + // (, line 110 + // call R2, line 110 + if (!r_R2()) + { + return false; + } + // <-, line 110 + slice_from("ent"); + break; + case 6: + // (, line 113 + // call RV, line 114 + if (!r_RV()) + { + return false; + } + // delete, line 114 + slice_del(); + // try, line 115 + v_3 = limit - cursor; + lab3: do { + // (, line 115 + // [, line 116 + ket = cursor; + // substring, line 116 + among_var = find_among_b(a_2, 6); + if (among_var == 0) + { + cursor = limit - v_3; + break lab3; + } + // ], line 116 + bra = cursor; + switch(among_var) { + case 0: + cursor = limit - v_3; + break lab3; + case 1: + // (, line 117 + // call R2, line 117 + if (!r_R2()) + { + cursor = limit - v_3; + break lab3; + } + // delete, line 117 + slice_del(); + // [, line 117 + ket = cursor; + // literal, line 117 + if (!(eq_s_b(2, "at"))) + { + cursor = limit - v_3; + break lab3; + } + // ], line 117 + bra = cursor; + // call R2, line 117 + if (!r_R2()) + { + cursor = limit - v_3; + break lab3; + } + // delete, line 117 + slice_del(); + break; + case 2: + // (, line 118 + // or, line 118 + lab4: do { + v_4 = limit - cursor; + lab5: do { + // (, line 118 + // call R2, line 118 + if (!r_R2()) + { + break lab5; + } + // delete, line 118 + slice_del(); + break lab4; + } while (false); + cursor = limit - v_4; + // (, line 118 + // call R1, line 118 + if (!r_R1()) + { + cursor = limit - v_3; + break lab3; + } + // <-, line 118 + slice_from("eux"); + } while (false); + break; + case 3: + // (, line 120 + // call R2, line 120 + if (!r_R2()) + { + cursor = limit - v_3; + break lab3; + } + // delete, line 120 + slice_del(); + break; + case 4: + // (, line 122 + // call RV, line 122 + if (!r_RV()) + { + cursor = limit - v_3; + break lab3; + } + // <-, line 122 + slice_from("i"); + break; + } + } while (false); + break; + case 7: + // (, line 128 + // call R2, line 129 + if (!r_R2()) + { + return false; + } + // delete, line 129 + slice_del(); + // try, line 130 + v_5 = limit - cursor; + lab6: do { + // (, line 130 + // [, line 131 + ket = cursor; + // substring, line 131 + among_var = find_among_b(a_3, 3); + if (among_var == 0) + { + cursor = limit - v_5; + break lab6; + } + // ], line 131 + bra = cursor; + switch(among_var) { + case 0: + cursor = limit - v_5; + break lab6; + case 1: + // (, line 132 + // or, line 132 + lab7: do { + v_6 = limit - cursor; + lab8: do { + // (, line 132 + // call R2, line 132 + if (!r_R2()) + { + break lab8; + } + // delete, line 132 + slice_del(); + break lab7; + } while (false); + cursor = limit - v_6; + // <-, line 132 + slice_from("abl"); + } while (false); + break; + case 2: + // (, line 133 + // or, line 133 + lab9: do { + v_7 = limit - cursor; + lab10: do { + // (, line 133 + // call R2, line 133 + if (!r_R2()) + { + break lab10; + } + // delete, line 133 + slice_del(); + break lab9; + } while (false); + cursor = limit - v_7; + // <-, line 133 + slice_from("iqU"); + } while (false); + break; + case 3: + // (, line 134 + // call R2, line 134 + if (!r_R2()) + { + cursor = limit - v_5; + break lab6; + } + // delete, line 134 + slice_del(); + break; + } + } while (false); + break; + case 8: + // (, line 140 + // call R2, line 141 + if (!r_R2()) + { + return false; + } + // delete, line 141 + slice_del(); + // try, line 142 + v_8 = limit - cursor; + lab11: do { + // (, line 142 + // [, line 142 + ket = cursor; + // literal, line 142 + if (!(eq_s_b(2, "at"))) + { + cursor = limit - v_8; + break lab11; + } + // ], line 142 + bra = cursor; + // call R2, line 142 + if (!r_R2()) + { + cursor = limit - v_8; + break lab11; + } + // delete, line 142 + slice_del(); + // [, line 142 + ket = cursor; + // literal, line 142 + if (!(eq_s_b(2, "ic"))) + { + cursor = limit - v_8; + break lab11; + } + // ], line 142 + bra = cursor; + // or, line 142 + lab12: do { + v_9 = limit - cursor; + lab13: do { + // (, line 142 + // call R2, line 142 + if (!r_R2()) + { + break lab13; + } + // delete, line 142 + slice_del(); + break lab12; + } while (false); + cursor = limit - v_9; + // <-, line 142 + slice_from("iqU"); + } while (false); + } while (false); + break; + case 9: + // (, line 144 + // <-, line 144 + slice_from("eau"); + break; + case 10: + // (, line 145 + // call R1, line 145 + if (!r_R1()) + { + return false; + } + // <-, line 145 + slice_from("al"); + break; + case 11: + // (, line 147 + // or, line 147 + lab14: do { + v_10 = limit - cursor; + lab15: do { + // (, line 147 + // call R2, line 147 + if (!r_R2()) + { + break lab15; + } + // delete, line 147 + slice_del(); + break lab14; + } while (false); + cursor = limit - v_10; + // (, line 147 + // call R1, line 147 + if (!r_R1()) + { + return false; + } + // <-, line 147 + slice_from("eux"); + } while (false); + break; + case 12: + // (, line 150 + // call R1, line 150 + if (!r_R1()) + { + return false; + } + if (!(out_grouping_b(g_v, 97, 251))) + { + return false; + } + // delete, line 150 + slice_del(); + break; + case 13: + // (, line 155 + // call RV, line 155 + if (!r_RV()) + { + return false; + } + // fail, line 155 + // (, line 155 + // <-, line 155 + slice_from("ant"); + return false; + case 14: + // (, line 156 + // call RV, line 156 + if (!r_RV()) + { + return false; + } + // fail, line 156 + // (, line 156 + // <-, line 156 + slice_from("ent"); + return false; + case 15: + // (, line 158 + // test, line 158 + v_11 = limit - cursor; + // (, line 158 + if (!(in_grouping_b(g_v, 97, 251))) + { + return false; + } + // call RV, line 158 + if (!r_RV()) + { + return false; + } + cursor = limit - v_11; + // fail, line 158 + // (, line 158 + // delete, line 158 + slice_del(); + return false; + } + return true; + } + + private boolean r_i_verb_suffix() { + int among_var; + int v_1; + int v_2; + // setlimit, line 163 + v_1 = limit - cursor; + // tomark, line 163 + if (cursor < I_pV) + { + return false; + } + cursor = I_pV; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 163 + // [, line 164 + ket = cursor; + // substring, line 164 + among_var = find_among_b(a_5, 35); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 164 + bra = cursor; + switch(among_var) { + case 0: + limit_backward = v_2; + return false; + case 1: + // (, line 170 + if (!(out_grouping_b(g_v, 97, 251))) + { + limit_backward = v_2; + return false; + } + // delete, line 170 + slice_del(); + break; + } + limit_backward = v_2; + return true; + } + + private boolean r_verb_suffix() { + int among_var; + int v_1; + int v_2; + int v_3; + // setlimit, line 174 + v_1 = limit - cursor; + // tomark, line 174 + if (cursor < I_pV) + { + return false; + } + cursor = I_pV; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 174 + // [, line 175 + ket = cursor; + // substring, line 175 + among_var = find_among_b(a_6, 38); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 175 + bra = cursor; + switch(among_var) { + case 0: + limit_backward = v_2; + return false; + case 1: + // (, line 177 + // call R2, line 177 + if (!r_R2()) + { + limit_backward = v_2; + return false; + } + // delete, line 177 + slice_del(); + break; + case 2: + // (, line 185 + // delete, line 185 + slice_del(); + break; + case 3: + // (, line 190 + // delete, line 190 + slice_del(); + // try, line 191 + v_3 = limit - cursor; + lab0: do { + // (, line 191 + // [, line 191 + ket = cursor; + // literal, line 191 + if (!(eq_s_b(1, "e"))) + { + cursor = limit - v_3; + break lab0; + } + // ], line 191 + bra = cursor; + // delete, line 191 + slice_del(); + } while (false); + break; + } + limit_backward = v_2; + return true; + } + + private boolean r_residual_suffix() { + int among_var; + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + // (, line 198 + // try, line 199 + v_1 = limit - cursor; + lab0: do { + // (, line 199 + // [, line 199 + ket = cursor; + // literal, line 199 + if (!(eq_s_b(1, "s"))) + { + cursor = limit - v_1; + break lab0; + } + // ], line 199 + bra = cursor; + // test, line 199 + v_2 = limit - cursor; + if (!(out_grouping_b(g_keep_with_s, 97, 232))) + { + cursor = limit - v_1; + break lab0; + } + cursor = limit - v_2; + // delete, line 199 + slice_del(); + } while (false); + // setlimit, line 200 + v_3 = limit - cursor; + // tomark, line 200 + if (cursor < I_pV) + { + return false; + } + cursor = I_pV; + v_4 = limit_backward; + limit_backward = cursor; + cursor = limit - v_3; + // (, line 200 + // [, line 201 + ket = cursor; + // substring, line 201 + among_var = find_among_b(a_7, 7); + if (among_var == 0) + { + limit_backward = v_4; + return false; + } + // ], line 201 + bra = cursor; + switch(among_var) { + case 0: + limit_backward = v_4; + return false; + case 1: + // (, line 202 + // call R2, line 202 + if (!r_R2()) + { + limit_backward = v_4; + return false; + } + // or, line 202 + lab1: do { + v_5 = limit - cursor; + lab2: do { + // literal, line 202 + if (!(eq_s_b(1, "s"))) + { + break lab2; + } + break lab1; + } while (false); + cursor = limit - v_5; + // literal, line 202 + if (!(eq_s_b(1, "t"))) + { + limit_backward = v_4; + return false; + } + } while (false); + // delete, line 202 + slice_del(); + break; + case 2: + // (, line 204 + // <-, line 204 + slice_from("i"); + break; + case 3: + // (, line 205 + // delete, line 205 + slice_del(); + break; + case 4: + // (, line 206 + // literal, line 206 + if (!(eq_s_b(2, "gu"))) + { + limit_backward = v_4; + return false; + } + // delete, line 206 + slice_del(); + break; + } + limit_backward = v_4; + return true; + } + + private boolean r_un_double() { + int v_1; + // (, line 211 + // test, line 212 + v_1 = limit - cursor; + // among, line 212 + if (find_among_b(a_8, 5) == 0) + { + return false; + } + cursor = limit - v_1; + // [, line 212 + ket = cursor; + // next, line 212 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // ], line 212 + bra = cursor; + // delete, line 212 + slice_del(); + return true; + } + + private boolean r_un_accent() { + int v_3; + // (, line 215 + // atleast, line 216 + { + int v_1 = 1; + // atleast, line 216 + replab0: while(true) + { + lab1: do { + if (!(out_grouping_b(g_v, 97, 251))) + { + break lab1; + } + v_1--; + continue replab0; + } while (false); + break replab0; + } + if (v_1 > 0) + { + return false; + } + } + // [, line 217 + ket = cursor; + // or, line 217 + lab2: do { + v_3 = limit - cursor; + lab3: do { + // literal, line 217 + if (!(eq_s_b(1, "\u00E9"))) + { + break lab3; + } + break lab2; + } while (false); + cursor = limit - v_3; + // literal, line 217 + if (!(eq_s_b(1, "\u00E8"))) + { + return false; + } + } while (false); + // ], line 217 + bra = cursor; + // <-, line 217 + slice_from("e"); + 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; + int v_11; + // (, line 221 + // do, line 223 + v_1 = cursor; + lab0: do { + // call prelude, line 223 + if (!r_prelude()) + { + break lab0; + } + } while (false); + cursor = v_1; + // do, line 224 + v_2 = cursor; + lab1: do { + // call mark_regions, line 224 + if (!r_mark_regions()) + { + break lab1; + } + } while (false); + cursor = v_2; + // backwards, line 225 + limit_backward = cursor; cursor = limit; + // (, line 225 + // do, line 227 + v_3 = limit - cursor; + lab2: do { + // (, line 227 + // or, line 237 + lab3: do { + v_4 = limit - cursor; + lab4: do { + // (, line 228 + // and, line 233 + v_5 = limit - cursor; + // (, line 229 + // or, line 229 + lab5: do { + v_6 = limit - cursor; + lab6: do { + // call standard_suffix, line 229 + if (!r_standard_suffix()) + { + break lab6; + } + break lab5; + } while (false); + cursor = limit - v_6; + lab7: do { + // call i_verb_suffix, line 230 + if (!r_i_verb_suffix()) + { + break lab7; + } + break lab5; + } while (false); + cursor = limit - v_6; + // call verb_suffix, line 231 + if (!r_verb_suffix()) + { + break lab4; + } + } while (false); + cursor = limit - v_5; + // try, line 234 + v_7 = limit - cursor; + lab8: do { + // (, line 234 + // [, line 234 + ket = cursor; + // or, line 234 + lab9: do { + v_8 = limit - cursor; + lab10: do { + // (, line 234 + // literal, line 234 + if (!(eq_s_b(1, "Y"))) + { + break lab10; + } + // ], line 234 + bra = cursor; + // <-, line 234 + slice_from("i"); + break lab9; + } while (false); + cursor = limit - v_8; + // (, line 235 + // literal, line 235 + if (!(eq_s_b(1, "\u00E7"))) + { + cursor = limit - v_7; + break lab8; + } + // ], line 235 + bra = cursor; + // <-, line 235 + slice_from("c"); + } while (false); + } while (false); + break lab3; + } while (false); + cursor = limit - v_4; + // call residual_suffix, line 238 + if (!r_residual_suffix()) + { + break lab2; + } + } while (false); + } while (false); + cursor = limit - v_3; + // do, line 243 + v_9 = limit - cursor; + lab11: do { + // call un_double, line 243 + if (!r_un_double()) + { + break lab11; + } + } while (false); + cursor = limit - v_9; + // do, line 244 + v_10 = limit - cursor; + lab12: do { + // call un_accent, line 244 + if (!r_un_accent()) + { + break lab12; + } + } while (false); + cursor = limit - v_10; + cursor = limit_backward; // do, line 246 + v_11 = cursor; + lab13: do { + // call postlude, line 246 + if (!r_postlude()) + { + break lab13; + } + } while (false); + cursor = v_11; + return true; + } + +} + Index: contrib/snowball/src/java/org/tartarus/snowball/ext/SpanishStemmer.java =================================================================== --- contrib/snowball/src/java/org/tartarus/snowball/ext/SpanishStemmer.java (revision 0) +++ contrib/snowball/src/java/org/tartarus/snowball/ext/SpanishStemmer.java (revision 0) @@ -0,0 +1,1182 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; +import org.tartarus.snowball.SnowballProgram; +import org.tartarus.snowball.Among; + +/** + * Generated class implementing code defined by a snowball script. + */ +public class SpanishStemmer extends SnowballProgram { + + private Among a_0[] = { + new Among ( "", -1, 6, "", this), + new Among ( "\u00E1", 0, 1, "", this), + new Among ( "\u00E9", 0, 2, "", this), + new Among ( "\u00ED", 0, 3, "", this), + new Among ( "\u00F3", 0, 4, "", this), + new Among ( "\u00FA", 0, 5, "", this) + }; + + private Among a_1[] = { + new Among ( "la", -1, -1, "", this), + new Among ( "sela", 0, -1, "", this), + new Among ( "le", -1, -1, "", this), + new Among ( "me", -1, -1, "", this), + new Among ( "se", -1, -1, "", this), + new Among ( "lo", -1, -1, "", this), + new Among ( "selo", 5, -1, "", this), + new Among ( "las", -1, -1, "", this), + new Among ( "selas", 7, -1, "", this), + new Among ( "les", -1, -1, "", this), + new Among ( "los", -1, -1, "", this), + new Among ( "selos", 10, -1, "", this), + new Among ( "nos", -1, -1, "", this) + }; + + private Among a_2[] = { + new Among ( "ando", -1, 6, "", this), + new Among ( "iendo", -1, 6, "", this), + new Among ( "yendo", -1, 7, "", this), + new Among ( "\u00E1ndo", -1, 2, "", this), + new Among ( "i\u00E9ndo", -1, 1, "", this), + new Among ( "ar", -1, 6, "", this), + new Among ( "er", -1, 6, "", this), + new Among ( "ir", -1, 6, "", this), + new Among ( "\u00E1r", -1, 3, "", this), + new Among ( "\u00E9r", -1, 4, "", this), + new Among ( "\u00EDr", -1, 5, "", this) + }; + + private Among a_3[] = { + new Among ( "ic", -1, -1, "", this), + new Among ( "ad", -1, -1, "", this), + new Among ( "os", -1, -1, "", this), + new Among ( "iv", -1, 1, "", this) + }; + + private Among a_4[] = { + new Among ( "able", -1, 1, "", this), + new Among ( "ible", -1, 1, "", this), + new Among ( "ante", -1, 1, "", this) + }; + + private Among a_5[] = { + new Among ( "ic", -1, 1, "", this), + new Among ( "abil", -1, 1, "", this), + new Among ( "iv", -1, 1, "", this) + }; + + 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), + new Among ( "ista", -1, 1, "", this), + new Among ( "iva", -1, 9, "", this), + new Among ( "anza", -1, 1, "", this), + new Among ( "log\u00EDa", -1, 3, "", this), + 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", 13, 6, "", this), + new Among ( "aci\u00F3n", -1, 2, "", this), + new Among ( "uci\u00F3n", -1, 4, "", this), + new Among ( "ico", -1, 1, "", this), + new Among ( "ismo", -1, 1, "", this), + new Among ( "oso", -1, 1, "", this), + new Among ( "amiento", -1, 1, "", this), + new Among ( "imiento", -1, 1, "", this), + 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), + new Among ( "istas", -1, 1, "", this), + new Among ( "ivas", -1, 9, "", this), + new Among ( "anzas", -1, 1, "", this), + new Among ( "log\u00EDas", -1, 3, "", this), + new Among ( "idades", -1, 8, "", this), + new Among ( "ables", -1, 1, "", this), + new Among ( "ibles", -1, 1, "", this), + 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), + new Among ( "amientos", -1, 1, "", this), + new Among ( "imientos", -1, 1, "", this), + new Among ( "ivos", -1, 9, "", this) + }; + + private Among a_7[] = { + new Among ( "ya", -1, 1, "", this), + new Among ( "ye", -1, 1, "", this), + new Among ( "yan", -1, 1, "", this), + new Among ( "yen", -1, 1, "", this), + new Among ( "yeron", -1, 1, "", this), + new Among ( "yendo", -1, 1, "", this), + new Among ( "yo", -1, 1, "", this), + new Among ( "yas", -1, 1, "", this), + new Among ( "yes", -1, 1, "", this), + new Among ( "yais", -1, 1, "", this), + new Among ( "yamos", -1, 1, "", this), + new Among ( "y\u00F3", -1, 1, "", this) + }; + + private Among a_8[] = { + new Among ( "aba", -1, 2, "", this), + new Among ( "ada", -1, 2, "", this), + new Among ( "ida", -1, 2, "", this), + new Among ( "ara", -1, 2, "", this), + new Among ( "iera", -1, 2, "", this), + new Among ( "\u00EDa", -1, 2, "", this), + new Among ( "ar\u00EDa", 5, 2, "", this), + new Among ( "er\u00EDa", 5, 2, "", this), + new Among ( "ir\u00EDa", 5, 2, "", this), + new Among ( "ad", -1, 2, "", this), + new Among ( "ed", -1, 2, "", this), + new Among ( "id", -1, 2, "", this), + new Among ( "ase", -1, 2, "", this), + new Among ( "iese", -1, 2, "", this), + new Among ( "aste", -1, 2, "", this), + new Among ( "iste", -1, 2, "", this), + new Among ( "an", -1, 2, "", this), + new Among ( "aban", 16, 2, "", this), + new Among ( "aran", 16, 2, "", this), + new Among ( "ieran", 16, 2, "", this), + new Among ( "\u00EDan", 16, 2, "", this), + new Among ( "ar\u00EDan", 20, 2, "", this), + new Among ( "er\u00EDan", 20, 2, "", this), + new Among ( "ir\u00EDan", 20, 2, "", this), + new Among ( "en", -1, 1, "", this), + new Among ( "asen", 24, 2, "", this), + new Among ( "iesen", 24, 2, "", this), + new Among ( "aron", -1, 2, "", this), + new Among ( "ieron", -1, 2, "", this), + new Among ( "ar\u00E1n", -1, 2, "", this), + new Among ( "er\u00E1n", -1, 2, "", this), + new Among ( "ir\u00E1n", -1, 2, "", this), + new Among ( "ado", -1, 2, "", this), + new Among ( "ido", -1, 2, "", this), + new Among ( "ando", -1, 2, "", this), + new Among ( "iendo", -1, 2, "", this), + new Among ( "ar", -1, 2, "", this), + new Among ( "er", -1, 2, "", this), + new Among ( "ir", -1, 2, "", this), + new Among ( "as", -1, 2, "", this), + new Among ( "abas", 39, 2, "", this), + new Among ( "adas", 39, 2, "", this), + new Among ( "idas", 39, 2, "", this), + new Among ( "aras", 39, 2, "", this), + new Among ( "ieras", 39, 2, "", this), + new Among ( "\u00EDas", 39, 2, "", this), + new Among ( "ar\u00EDas", 45, 2, "", this), + new Among ( "er\u00EDas", 45, 2, "", this), + new Among ( "ir\u00EDas", 45, 2, "", this), + new Among ( "es", -1, 1, "", this), + new Among ( "ases", 49, 2, "", this), + new Among ( "ieses", 49, 2, "", this), + new Among ( "abais", -1, 2, "", this), + new Among ( "arais", -1, 2, "", this), + new Among ( "ierais", -1, 2, "", this), + new Among ( "\u00EDais", -1, 2, "", this), + new Among ( "ar\u00EDais", 55, 2, "", this), + new Among ( "er\u00EDais", 55, 2, "", this), + new Among ( "ir\u00EDais", 55, 2, "", this), + new Among ( "aseis", -1, 2, "", this), + new Among ( "ieseis", -1, 2, "", this), + new Among ( "asteis", -1, 2, "", this), + new Among ( "isteis", -1, 2, "", this), + new Among ( "\u00E1is", -1, 2, "", this), + new Among ( "\u00E9is", -1, 1, "", this), + new Among ( "ar\u00E9is", 64, 2, "", this), + new Among ( "er\u00E9is", 64, 2, "", this), + new Among ( "ir\u00E9is", 64, 2, "", this), + new Among ( "ados", -1, 2, "", this), + new Among ( "idos", -1, 2, "", this), + new Among ( "amos", -1, 2, "", this), + new Among ( "\u00E1bamos", 70, 2, "", this), + new Among ( "\u00E1ramos", 70, 2, "", this), + new Among ( "i\u00E9ramos", 70, 2, "", this), + new Among ( "\u00EDamos", 70, 2, "", this), + new Among ( "ar\u00EDamos", 74, 2, "", this), + new Among ( "er\u00EDamos", 74, 2, "", this), + new Among ( "ir\u00EDamos", 74, 2, "", this), + new Among ( "emos", -1, 1, "", this), + new Among ( "aremos", 78, 2, "", this), + new Among ( "eremos", 78, 2, "", this), + new Among ( "iremos", 78, 2, "", this), + new Among ( "\u00E1semos", 78, 2, "", this), + new Among ( "i\u00E9semos", 78, 2, "", this), + new Among ( "imos", -1, 2, "", this), + new Among ( "ar\u00E1s", -1, 2, "", this), + new Among ( "er\u00E1s", -1, 2, "", this), + new Among ( "ir\u00E1s", -1, 2, "", this), + new Among ( "\u00EDs", -1, 2, "", this), + new Among ( "ar\u00E1", -1, 2, "", this), + new Among ( "er\u00E1", -1, 2, "", this), + new Among ( "ir\u00E1", -1, 2, "", this), + new Among ( "ar\u00E9", -1, 2, "", this), + new Among ( "er\u00E9", -1, 2, "", this), + new Among ( "ir\u00E9", -1, 2, "", this), + new Among ( "i\u00F3", -1, 2, "", this) + }; + + private Among a_9[] = { + new Among ( "a", -1, 1, "", this), + new Among ( "e", -1, 2, "", this), + new Among ( "o", -1, 1, "", this), + new Among ( "os", -1, 1, "", this), + new Among ( "\u00E1", -1, 1, "", this), + new Among ( "\u00E9", -1, 2, "", this), + new Among ( "\u00ED", -1, 1, "", this), + new Among ( "\u00F3", -1, 1, "", 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, 4, 10 }; + + private int I_p2; + private int I_p1; + private int I_pV; + + private void copy_from(SpanishStemmer other) { + I_p2 = other.I_p2; + I_p1 = other.I_p1; + I_pV = other.I_pV; + super.copy_from(other); + } + + private boolean r_mark_regions() { + int v_1; + int v_2; + int v_3; + int v_6; + int v_8; + // (, line 31 + I_pV = limit; + I_p1 = limit; + I_p2 = limit; + // do, line 37 + v_1 = cursor; + lab0: do { + // (, line 37 + // or, line 39 + lab1: do { + v_2 = cursor; + lab2: do { + // (, line 38 + if (!(in_grouping(g_v, 97, 252))) + { + break lab2; + } + // or, line 38 + lab3: do { + v_3 = cursor; + lab4: do { + // (, line 38 + if (!(out_grouping(g_v, 97, 252))) + { + break lab4; + } + // gopast, line 38 + golab5: while(true) + { + lab6: do { + if (!(in_grouping(g_v, 97, 252))) + { + break lab6; + } + break golab5; + } while (false); + if (cursor >= limit) + { + break lab4; + } + cursor++; + } + break lab3; + } while (false); + cursor = v_3; + // (, line 38 + if (!(in_grouping(g_v, 97, 252))) + { + break lab2; + } + // gopast, line 38 + golab7: while(true) + { + lab8: do { + if (!(out_grouping(g_v, 97, 252))) + { + break lab8; + } + break golab7; + } while (false); + if (cursor >= limit) + { + break lab2; + } + cursor++; + } + } while (false); + break lab1; + } while (false); + cursor = v_2; + // (, line 40 + if (!(out_grouping(g_v, 97, 252))) + { + break lab0; + } + // or, line 40 + lab9: do { + v_6 = cursor; + lab10: do { + // (, line 40 + if (!(out_grouping(g_v, 97, 252))) + { + break lab10; + } + // gopast, line 40 + golab11: while(true) + { + lab12: do { + if (!(in_grouping(g_v, 97, 252))) + { + break lab12; + } + break golab11; + } while (false); + if (cursor >= limit) + { + break lab10; + } + cursor++; + } + break lab9; + } while (false); + cursor = v_6; + // (, line 40 + if (!(in_grouping(g_v, 97, 252))) + { + break lab0; + } + // next, line 40 + if (cursor >= limit) + { + break lab0; + } + cursor++; + } while (false); + } while (false); + // setmark pV, line 41 + I_pV = cursor; + } while (false); + cursor = v_1; + // do, line 43 + v_8 = cursor; + lab13: do { + // (, line 43 + // gopast, line 44 + golab14: while(true) + { + lab15: do { + if (!(in_grouping(g_v, 97, 252))) + { + break lab15; + } + break golab14; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // gopast, line 44 + golab16: while(true) + { + lab17: do { + if (!(out_grouping(g_v, 97, 252))) + { + break lab17; + } + break golab16; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // setmark p1, line 44 + I_p1 = cursor; + // gopast, line 45 + golab18: while(true) + { + lab19: do { + if (!(in_grouping(g_v, 97, 252))) + { + break lab19; + } + break golab18; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // gopast, line 45 + golab20: while(true) + { + lab21: do { + if (!(out_grouping(g_v, 97, 252))) + { + break lab21; + } + break golab20; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // setmark p2, line 45 + I_p2 = cursor; + } while (false); + cursor = v_8; + return true; + } + + private boolean r_postlude() { + int among_var; + int v_1; + // repeat, line 49 + replab0: while(true) + { + v_1 = cursor; + lab1: do { + // (, line 49 + // [, line 50 + bra = cursor; + // substring, line 50 + among_var = find_among(a_0, 6); + if (among_var == 0) + { + break lab1; + } + // ], line 50 + ket = cursor; + switch(among_var) { + case 0: + break lab1; + case 1: + // (, line 51 + // <-, line 51 + slice_from("a"); + break; + case 2: + // (, line 52 + // <-, line 52 + slice_from("e"); + break; + case 3: + // (, line 53 + // <-, line 53 + slice_from("i"); + break; + case 4: + // (, line 54 + // <-, line 54 + slice_from("o"); + break; + case 5: + // (, line 55 + // <-, line 55 + slice_from("u"); + break; + case 6: + // (, line 57 + // next, line 57 + if (cursor >= limit) + { + break lab1; + } + cursor++; + break; + } + continue replab0; + } while (false); + cursor = v_1; + break replab0; + } + return true; + } + + private boolean r_RV() { + if (!(I_pV <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R1() { + if (!(I_p1 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R2() { + if (!(I_p2 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_attached_pronoun() { + int among_var; + // (, line 67 + // [, line 68 + ket = cursor; + // substring, line 68 + if (find_among_b(a_1, 13) == 0) + { + return false; + } + // ], line 68 + bra = cursor; + // substring, line 72 + among_var = find_among_b(a_2, 11); + if (among_var == 0) + { + return false; + } + // call RV, line 72 + if (!r_RV()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 73 + // ], line 73 + bra = cursor; + // <-, line 73 + slice_from("iendo"); + break; + case 2: + // (, line 74 + // ], line 74 + bra = cursor; + // <-, line 74 + slice_from("ando"); + break; + case 3: + // (, line 75 + // ], line 75 + bra = cursor; + // <-, line 75 + slice_from("ar"); + break; + case 4: + // (, line 76 + // ], line 76 + bra = cursor; + // <-, line 76 + slice_from("er"); + break; + case 5: + // (, line 77 + // ], line 77 + bra = cursor; + // <-, line 77 + slice_from("ir"); + break; + case 6: + // (, line 81 + // delete, line 81 + slice_del(); + break; + case 7: + // (, line 82 + // literal, line 82 + if (!(eq_s_b(1, "u"))) + { + return false; + } + // delete, line 82 + slice_del(); + break; + } + return true; + } + + private boolean r_standard_suffix() { + int among_var; + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + // (, line 86 + // [, line 87 + ket = cursor; + // substring, line 87 + among_var = find_among_b(a_6, 46); + if (among_var == 0) + { + return false; + } + // ], line 87 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 98 + // call R2, line 99 + if (!r_R2()) + { + return false; + } + // delete, line 99 + slice_del(); + break; + case 2: + // (, line 104 + // call R2, line 105 + if (!r_R2()) + { + return false; + } + // delete, line 105 + slice_del(); + // try, line 106 + v_1 = limit - cursor; + lab0: do { + // (, line 106 + // [, line 106 + ket = cursor; + // literal, line 106 + if (!(eq_s_b(2, "ic"))) + { + cursor = limit - v_1; + break lab0; + } + // ], line 106 + bra = cursor; + // call R2, line 106 + if (!r_R2()) + { + cursor = limit - v_1; + break lab0; + } + // delete, line 106 + slice_del(); + } while (false); + break; + case 3: + // (, line 110 + // call R2, line 111 + if (!r_R2()) + { + return false; + } + // <-, line 111 + slice_from("log"); + break; + case 4: + // (, line 114 + // call R2, line 115 + if (!r_R2()) + { + return false; + } + // <-, line 115 + slice_from("u"); + break; + case 5: + // (, line 118 + // call R2, line 119 + if (!r_R2()) + { + return false; + } + // <-, line 119 + slice_from("ente"); + break; + case 6: + // (, line 122 + // call R1, line 123 + if (!r_R1()) + { + return false; + } + // delete, line 123 + slice_del(); + // try, line 124 + v_2 = limit - cursor; + lab1: do { + // (, line 124 + // [, line 125 + ket = cursor; + // substring, line 125 + among_var = find_among_b(a_3, 4); + if (among_var == 0) + { + cursor = limit - v_2; + break lab1; + } + // ], line 125 + bra = cursor; + // call R2, line 125 + if (!r_R2()) + { + cursor = limit - v_2; + break lab1; + } + // delete, line 125 + slice_del(); + switch(among_var) { + case 0: + cursor = limit - v_2; + break lab1; + case 1: + // (, line 126 + // [, line 126 + ket = cursor; + // literal, line 126 + if (!(eq_s_b(2, "at"))) + { + cursor = limit - v_2; + break lab1; + } + // ], line 126 + bra = cursor; + // call R2, line 126 + if (!r_R2()) + { + cursor = limit - v_2; + break lab1; + } + // delete, line 126 + slice_del(); + break; + } + } while (false); + break; + case 7: + // (, line 134 + // call R2, line 135 + if (!r_R2()) + { + return false; + } + // delete, line 135 + slice_del(); + // try, line 136 + v_3 = limit - cursor; + lab2: do { + // (, line 136 + // [, line 137 + ket = cursor; + // substring, line 137 + among_var = find_among_b(a_4, 3); + if (among_var == 0) + { + cursor = limit - v_3; + break lab2; + } + // ], line 137 + bra = cursor; + switch(among_var) { + case 0: + cursor = limit - v_3; + break lab2; + case 1: + // (, line 140 + // call R2, line 140 + if (!r_R2()) + { + cursor = limit - v_3; + break lab2; + } + // delete, line 140 + slice_del(); + break; + } + } while (false); + break; + case 8: + // (, line 146 + // call R2, line 147 + if (!r_R2()) + { + return false; + } + // delete, line 147 + slice_del(); + // try, line 148 + v_4 = limit - cursor; + lab3: do { + // (, line 148 + // [, line 149 + ket = cursor; + // substring, line 149 + among_var = find_among_b(a_5, 3); + if (among_var == 0) + { + cursor = limit - v_4; + break lab3; + } + // ], line 149 + bra = cursor; + switch(among_var) { + case 0: + cursor = limit - v_4; + break lab3; + case 1: + // (, line 152 + // call R2, line 152 + if (!r_R2()) + { + cursor = limit - v_4; + break lab3; + } + // delete, line 152 + slice_del(); + break; + } + } while (false); + break; + case 9: + // (, line 158 + // call R2, line 159 + if (!r_R2()) + { + return false; + } + // delete, line 159 + slice_del(); + // try, line 160 + v_5 = limit - cursor; + lab4: do { + // (, line 160 + // [, line 161 + ket = cursor; + // literal, line 161 + if (!(eq_s_b(2, "at"))) + { + cursor = limit - v_5; + break lab4; + } + // ], line 161 + bra = cursor; + // call R2, line 161 + if (!r_R2()) + { + cursor = limit - v_5; + break lab4; + } + // delete, line 161 + slice_del(); + } while (false); + break; + } + return true; + } + + private boolean r_y_verb_suffix() { + int among_var; + int v_1; + int v_2; + // (, line 167 + // setlimit, line 168 + v_1 = limit - cursor; + // tomark, line 168 + if (cursor < I_pV) + { + return false; + } + cursor = I_pV; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 168 + // [, line 168 + ket = cursor; + // substring, line 168 + among_var = find_among_b(a_7, 12); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 168 + bra = cursor; + limit_backward = v_2; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 171 + // literal, line 171 + if (!(eq_s_b(1, "u"))) + { + return false; + } + // delete, line 171 + slice_del(); + break; + } + return true; + } + + private boolean r_verb_suffix() { + int among_var; + int v_1; + int v_2; + int v_3; + int v_4; + // (, line 175 + // setlimit, line 176 + v_1 = limit - cursor; + // tomark, line 176 + if (cursor < I_pV) + { + return false; + } + cursor = I_pV; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 176 + // [, line 176 + ket = cursor; + // substring, line 176 + among_var = find_among_b(a_8, 96); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 176 + bra = cursor; + limit_backward = v_2; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 179 + // try, line 179 + v_3 = limit - cursor; + lab0: do { + // (, line 179 + // literal, line 179 + if (!(eq_s_b(1, "u"))) + { + cursor = limit - v_3; + break lab0; + } + // test, line 179 + v_4 = limit - cursor; + // literal, line 179 + if (!(eq_s_b(1, "g"))) + { + cursor = limit - v_3; + break lab0; + } + cursor = limit - v_4; + } while (false); + // ], line 179 + bra = cursor; + // delete, line 179 + slice_del(); + break; + case 2: + // (, line 200 + // delete, line 200 + slice_del(); + break; + } + return true; + } + + private boolean r_residual_suffix() { + int among_var; + int v_1; + int v_2; + // (, line 204 + // [, line 205 + ket = cursor; + // substring, line 205 + among_var = find_among_b(a_9, 8); + if (among_var == 0) + { + return false; + } + // ], line 205 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 208 + // call RV, line 208 + if (!r_RV()) + { + return false; + } + // delete, line 208 + slice_del(); + break; + case 2: + // (, line 210 + // call RV, line 210 + if (!r_RV()) + { + return false; + } + // delete, line 210 + slice_del(); + // try, line 210 + v_1 = limit - cursor; + lab0: do { + // (, line 210 + // [, line 210 + ket = cursor; + // literal, line 210 + if (!(eq_s_b(1, "u"))) + { + cursor = limit - v_1; + break lab0; + } + // ], line 210 + bra = cursor; + // test, line 210 + v_2 = limit - cursor; + // literal, line 210 + if (!(eq_s_b(1, "g"))) + { + cursor = limit - v_1; + break lab0; + } + cursor = limit - v_2; + // call RV, line 210 + if (!r_RV()) + { + cursor = limit - v_1; + break lab0; + } + // delete, line 210 + slice_del(); + } while (false); + break; + } + return true; + } + + public boolean stem() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + // (, line 215 + // do, line 216 + v_1 = cursor; + lab0: do { + // call mark_regions, line 216 + if (!r_mark_regions()) + { + break lab0; + } + } while (false); + cursor = v_1; + // backwards, line 217 + limit_backward = cursor; cursor = limit; + // (, line 217 + // do, line 218 + v_2 = limit - cursor; + lab1: do { + // call attached_pronoun, line 218 + if (!r_attached_pronoun()) + { + break lab1; + } + } while (false); + cursor = limit - v_2; + // do, line 219 + v_3 = limit - cursor; + lab2: do { + // (, line 219 + // or, line 219 + lab3: do { + v_4 = limit - cursor; + lab4: do { + // call standard_suffix, line 219 + if (!r_standard_suffix()) + { + break lab4; + } + break lab3; + } while (false); + cursor = limit - v_4; + lab5: do { + // call y_verb_suffix, line 220 + if (!r_y_verb_suffix()) + { + break lab5; + } + break lab3; + } while (false); + cursor = limit - v_4; + // call verb_suffix, line 221 + if (!r_verb_suffix()) + { + break lab2; + } + } while (false); + } while (false); + cursor = limit - v_3; + // do, line 223 + v_5 = limit - cursor; + lab6: do { + // call residual_suffix, line 223 + if (!r_residual_suffix()) + { + break lab6; + } + } while (false); + cursor = limit - v_5; + cursor = limit_backward; // do, line 225 + v_6 = cursor; + lab7: do { + // call postlude, line 225 + if (!r_postlude()) + { + break lab7; + } + } while (false); + cursor = v_6; + return true; + } + +} + Index: contrib/snowball/src/java/org/tartarus/snowball/ext/DanishStemmer.java =================================================================== --- contrib/snowball/src/java/org/tartarus/snowball/ext/DanishStemmer.java (revision 0) +++ contrib/snowball/src/java/org/tartarus/snowball/ext/DanishStemmer.java (revision 0) @@ -0,0 +1,423 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; +import org.tartarus.snowball.SnowballProgram; +import org.tartarus.snowball.Among; + +/** + * Generated class implementing code defined by a snowball script. + */ +public class DanishStemmer extends SnowballProgram { + + private Among a_0[] = { + new Among ( "hed", -1, 1, "", this), + new Among ( "ethed", 0, 1, "", this), + new Among ( "ered", -1, 1, "", this), + new Among ( "e", -1, 1, "", this), + new Among ( "erede", 3, 1, "", this), + new Among ( "ende", 3, 1, "", this), + new Among ( "erende", 5, 1, "", this), + new Among ( "ene", 3, 1, "", this), + new Among ( "erne", 3, 1, "", this), + new Among ( "ere", 3, 1, "", this), + new Among ( "en", -1, 1, "", this), + new Among ( "heden", 10, 1, "", this), + new Among ( "eren", 10, 1, "", this), + new Among ( "er", -1, 1, "", this), + new Among ( "heder", 13, 1, "", this), + new Among ( "erer", 13, 1, "", this), + new Among ( "s", -1, 2, "", this), + new Among ( "heds", 16, 1, "", this), + new Among ( "es", 16, 1, "", this), + new Among ( "endes", 18, 1, "", this), + new Among ( "erendes", 19, 1, "", this), + new Among ( "enes", 18, 1, "", this), + new Among ( "ernes", 18, 1, "", this), + new Among ( "eres", 18, 1, "", this), + new Among ( "ens", 16, 1, "", this), + new Among ( "hedens", 24, 1, "", this), + new Among ( "erens", 24, 1, "", this), + new Among ( "ers", 16, 1, "", this), + new Among ( "ets", 16, 1, "", this), + new Among ( "erets", 28, 1, "", this), + new Among ( "et", -1, 1, "", this), + new Among ( "eret", 30, 1, "", this) + }; + + private Among a_1[] = { + new Among ( "gd", -1, -1, "", this), + new Among ( "dt", -1, -1, "", this), + new Among ( "gt", -1, -1, "", this), + new Among ( "kt", -1, -1, "", this) + }; + + private Among a_2[] = { + new Among ( "ig", -1, 1, "", this), + new Among ( "lig", 0, 1, "", this), + new Among ( "elig", 1, 1, "", this), + new Among ( "els", -1, 1, "", this), + new Among ( "l\u00F8st", -1, 2, "", this) + }; + + 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[] = {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); + } + + private boolean r_mark_regions() { + int v_1; + int v_2; + // (, line 29 + I_p1 = limit; + // 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_2 = cursor; + lab1: do { + if (!(in_grouping(g_v, 97, 248))) + { + break lab1; + } + cursor = v_2; + break golab0; + } while (false); + cursor = v_2; + if (cursor >= limit) + { + return false; + } + cursor++; + } + // gopast, line 34 + golab2: while(true) + { + lab3: do { + if (!(out_grouping(g_v, 97, 248))) + { + break lab3; + } + break golab2; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // setmark p1, line 34 + I_p1 = cursor; + // try, line 35 + lab4: do { + // (, line 35 + if (!(I_p1 < I_x)) + { + break lab4; + } + I_p1 = I_x; + } while (false); + return true; + } + + private boolean r_main_suffix() { + int among_var; + int v_1; + int v_2; + // (, line 40 + // setlimit, line 41 + v_1 = limit - cursor; + // tomark, line 41 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 41 + // [, line 41 + ket = cursor; + // substring, line 41 + among_var = find_among_b(a_0, 32); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 41 + bra = cursor; + limit_backward = v_2; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 48 + // delete, line 48 + slice_del(); + break; + case 2: + // (, line 50 + if (!(in_grouping_b(g_s_ending, 97, 229))) + { + return false; + } + // delete, line 50 + slice_del(); + break; + } + return true; + } + + private boolean r_consonant_pair() { + int v_1; + int v_2; + int v_3; + // (, line 54 + // test, line 55 + v_1 = limit - cursor; + // (, line 55 + // setlimit, line 56 + v_2 = limit - cursor; + // tomark, line 56 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_3 = limit_backward; + limit_backward = cursor; + cursor = limit - v_2; + // (, line 56 + // [, line 56 + ket = cursor; + // substring, line 56 + if (find_among_b(a_1, 4) == 0) + { + limit_backward = v_3; + return false; + } + // ], line 56 + bra = cursor; + limit_backward = v_3; + cursor = limit - v_1; + // next, line 62 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // ], line 62 + bra = cursor; + // delete, line 62 + slice_del(); + return true; + } + + private boolean r_other_suffix() { + int among_var; + int v_1; + int v_2; + int v_3; + int v_4; + // (, line 65 + // do, line 66 + v_1 = limit - cursor; + lab0: do { + // (, line 66 + // [, line 66 + ket = cursor; + // literal, line 66 + if (!(eq_s_b(2, "st"))) + { + break lab0; + } + // ], line 66 + bra = cursor; + // literal, line 66 + if (!(eq_s_b(2, "ig"))) + { + break lab0; + } + // delete, line 66 + slice_del(); + } while (false); + cursor = limit - v_1; + // setlimit, line 67 + v_2 = limit - cursor; + // tomark, line 67 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_3 = limit_backward; + limit_backward = cursor; + cursor = limit - v_2; + // (, line 67 + // [, line 67 + ket = cursor; + // substring, line 67 + among_var = find_among_b(a_2, 5); + if (among_var == 0) + { + limit_backward = v_3; + return false; + } + // ], line 67 + bra = cursor; + limit_backward = v_3; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 70 + // delete, line 70 + slice_del(); + // do, line 70 + v_4 = limit - cursor; + lab1: do { + // call consonant_pair, line 70 + if (!r_consonant_pair()) + { + break lab1; + } + } while (false); + cursor = limit - v_4; + break; + case 2: + // (, line 72 + // <-, line 72 + slice_from("l\u00F8s"); + break; + } + return true; + } + + private boolean r_undouble() { + int v_1; + int v_2; + // (, line 75 + // setlimit, line 76 + v_1 = limit - cursor; + // tomark, line 76 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 76 + // [, line 76 + ket = cursor; + if (!(out_grouping_b(g_v, 97, 248))) + { + limit_backward = v_2; + return false; + } + // ], line 76 + bra = cursor; + // -> ch, line 76 + S_ch = slice_to(S_ch); + limit_backward = v_2; + // name ch, line 77 + if (!(eq_v_b(S_ch))) + { + return false; + } + // delete, line 78 + slice_del(); + return true; + } + + public boolean stem() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + // (, line 82 + // do, line 84 + v_1 = cursor; + lab0: do { + // call mark_regions, line 84 + if (!r_mark_regions()) + { + break lab0; + } + } while (false); + cursor = v_1; + // backwards, line 85 + limit_backward = cursor; cursor = limit; + // (, line 85 + // do, line 86 + v_2 = limit - cursor; + lab1: do { + // call main_suffix, line 86 + if (!r_main_suffix()) + { + break lab1; + } + } while (false); + cursor = limit - v_2; + // do, line 87 + v_3 = limit - cursor; + lab2: do { + // call consonant_pair, line 87 + if (!r_consonant_pair()) + { + break lab2; + } + } while (false); + cursor = limit - v_3; + // do, line 88 + v_4 = limit - cursor; + lab3: do { + // call other_suffix, line 88 + if (!r_other_suffix()) + { + break lab3; + } + } while (false); + cursor = limit - v_4; + // do, line 89 + v_5 = limit - cursor; + lab4: do { + // call undouble, line 89 + if (!r_undouble()) + { + break lab4; + } + } while (false); + cursor = limit - v_5; + cursor = limit_backward; return true; + } + +} + Index: contrib/snowball/src/java/org/tartarus/snowball/ext/SwedishStemmer.java =================================================================== --- contrib/snowball/src/java/org/tartarus/snowball/ext/SwedishStemmer.java (revision 0) +++ contrib/snowball/src/java/org/tartarus/snowball/ext/SwedishStemmer.java (revision 0) @@ -0,0 +1,349 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; +import org.tartarus.snowball.SnowballProgram; +import org.tartarus.snowball.Among; + +/** + * Generated class implementing code defined by a snowball script. + */ +public class SwedishStemmer extends SnowballProgram { + + private Among a_0[] = { + new Among ( "a", -1, 1, "", this), + new Among ( "arna", 0, 1, "", this), + new Among ( "erna", 0, 1, "", this), + new Among ( "heterna", 2, 1, "", this), + new Among ( "orna", 0, 1, "", this), + new Among ( "ad", -1, 1, "", this), + new Among ( "e", -1, 1, "", this), + new Among ( "ade", 6, 1, "", this), + new Among ( "ande", 6, 1, "", this), + new Among ( "arne", 6, 1, "", this), + new Among ( "are", 6, 1, "", this), + new Among ( "aste", 6, 1, "", this), + new Among ( "en", -1, 1, "", this), + new Among ( "anden", 12, 1, "", this), + new Among ( "aren", 12, 1, "", this), + new Among ( "heten", 12, 1, "", this), + new Among ( "ern", -1, 1, "", this), + new Among ( "ar", -1, 1, "", this), + new Among ( "er", -1, 1, "", this), + new Among ( "heter", 18, 1, "", this), + new Among ( "or", -1, 1, "", this), + new Among ( "s", -1, 2, "", this), + new Among ( "as", 21, 1, "", this), + new Among ( "arnas", 22, 1, "", this), + new Among ( "ernas", 22, 1, "", this), + new Among ( "ornas", 22, 1, "", this), + new Among ( "es", 21, 1, "", this), + new Among ( "ades", 26, 1, "", this), + new Among ( "andes", 26, 1, "", this), + new Among ( "ens", 21, 1, "", this), + new Among ( "arens", 29, 1, "", this), + new Among ( "hetens", 29, 1, "", this), + new Among ( "erns", 21, 1, "", this), + new Among ( "at", -1, 1, "", this), + new Among ( "andet", -1, 1, "", this), + new Among ( "het", -1, 1, "", this), + new Among ( "ast", -1, 1, "", this) + }; + + private Among a_1[] = { + new Among ( "dd", -1, -1, "", this), + new Among ( "gd", -1, -1, "", this), + new Among ( "nn", -1, -1, "", this), + new Among ( "dt", -1, -1, "", this), + new Among ( "gt", -1, -1, "", this), + new Among ( "kt", -1, -1, "", this), + new Among ( "tt", -1, -1, "", this) + }; + + private Among a_2[] = { + new Among ( "ig", -1, 1, "", this), + new Among ( "lig", 0, 1, "", this), + new Among ( "els", -1, 1, "", this), + new Among ( "fullt", -1, 3, "", this), + new Among ( "l\u00F6st", -1, 2, "", this) + }; + + private static final char g_v[] = {17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 32 }; + + 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_2 = cursor; + lab1: do { + if (!(in_grouping(g_v, 97, 246))) + { + break lab1; + } + cursor = v_2; + break golab0; + } while (false); + cursor = v_2; + if (cursor >= limit) + { + return false; + } + cursor++; + } + // gopast, line 30 + golab2: while(true) + { + lab3: do { + if (!(out_grouping(g_v, 97, 246))) + { + break lab3; + } + break golab2; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // setmark p1, line 30 + I_p1 = cursor; + // try, line 31 + lab4: do { + // (, line 31 + if (!(I_p1 < I_x)) + { + break lab4; + } + I_p1 = I_x; + } while (false); + return true; + } + + private boolean r_main_suffix() { + int among_var; + int v_1; + int v_2; + // (, line 36 + // setlimit, line 37 + v_1 = limit - cursor; + // tomark, line 37 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 37 + // [, line 37 + ket = cursor; + // substring, line 37 + among_var = find_among_b(a_0, 37); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 37 + bra = cursor; + limit_backward = v_2; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 44 + // delete, line 44 + slice_del(); + break; + case 2: + // (, line 46 + if (!(in_grouping_b(g_s_ending, 98, 121))) + { + return false; + } + // delete, line 46 + slice_del(); + break; + } + return true; + } + + private boolean r_consonant_pair() { + int v_1; + int v_2; + int v_3; + // setlimit, line 50 + v_1 = limit - cursor; + // tomark, line 50 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 50 + // and, line 52 + v_3 = limit - cursor; + // among, line 51 + if (find_among_b(a_1, 7) == 0) + { + limit_backward = v_2; + return false; + } + cursor = limit - v_3; + // (, line 52 + // [, line 52 + ket = cursor; + // next, line 52 + if (cursor <= limit_backward) + { + limit_backward = v_2; + return false; + } + cursor--; + // ], line 52 + bra = cursor; + // delete, line 52 + slice_del(); + limit_backward = v_2; + return true; + } + + private boolean r_other_suffix() { + int among_var; + int v_1; + int v_2; + // setlimit, line 55 + v_1 = limit - cursor; + // tomark, line 55 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 55 + // [, line 56 + ket = cursor; + // substring, line 56 + among_var = find_among_b(a_2, 5); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 56 + bra = cursor; + switch(among_var) { + case 0: + limit_backward = v_2; + return false; + case 1: + // (, line 57 + // delete, line 57 + slice_del(); + break; + case 2: + // (, line 58 + // <-, line 58 + slice_from("l\u00F6s"); + break; + case 3: + // (, line 59 + // <-, line 59 + slice_from("full"); + break; + } + limit_backward = v_2; + return true; + } + + public boolean stem() { + int v_1; + int v_2; + int v_3; + int v_4; + // (, line 64 + // do, line 66 + v_1 = cursor; + lab0: do { + // call mark_regions, line 66 + if (!r_mark_regions()) + { + break lab0; + } + } while (false); + cursor = v_1; + // backwards, line 67 + limit_backward = cursor; cursor = limit; + // (, line 67 + // do, line 68 + v_2 = limit - cursor; + lab1: do { + // call main_suffix, line 68 + if (!r_main_suffix()) + { + break lab1; + } + } while (false); + cursor = limit - v_2; + // do, line 69 + v_3 = limit - cursor; + lab2: do { + // call consonant_pair, line 69 + if (!r_consonant_pair()) + { + break lab2; + } + } while (false); + cursor = limit - v_3; + // do, line 70 + v_4 = limit - cursor; + lab3: do { + // call other_suffix, line 70 + if (!r_other_suffix()) + { + break lab3; + } + } while (false); + cursor = limit - v_4; + cursor = limit_backward; return true; + } + +} + Index: contrib/snowball/src/java/org/tartarus/snowball/ext/DutchStemmer.java =================================================================== --- contrib/snowball/src/java/org/tartarus/snowball/ext/DutchStemmer.java (revision 0) +++ contrib/snowball/src/java/org/tartarus/snowball/ext/DutchStemmer.java (revision 0) @@ -0,0 +1,837 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; +import org.tartarus.snowball.SnowballProgram; +import org.tartarus.snowball.Among; + +/** + * Generated class implementing code defined by a snowball script. + */ +public class DutchStemmer extends SnowballProgram { + + private Among a_0[] = { + new Among ( "", -1, 6, "", this), + new Among ( "\u00E1", 0, 1, "", this), + new Among ( "\u00E4", 0, 1, "", this), + new Among ( "\u00E9", 0, 2, "", this), + new Among ( "\u00EB", 0, 2, "", this), + new Among ( "\u00ED", 0, 3, "", this), + new Among ( "\u00EF", 0, 3, "", this), + new Among ( "\u00F3", 0, 4, "", this), + new Among ( "\u00F6", 0, 4, "", this), + new Among ( "\u00FA", 0, 5, "", this), + new Among ( "\u00FC", 0, 5, "", this) + }; + + private Among a_1[] = { + new Among ( "", -1, 3, "", this), + new Among ( "I", 0, 2, "", this), + new Among ( "Y", 0, 1, "", this) + }; + + private Among a_2[] = { + new Among ( "dd", -1, -1, "", this), + new Among ( "kk", -1, -1, "", this), + new Among ( "tt", -1, -1, "", this) + }; + + private Among a_3[] = { + new Among ( "ene", -1, 2, "", this), + new Among ( "se", -1, 3, "", this), + new Among ( "en", -1, 2, "", this), + new Among ( "heden", 2, 1, "", this), + new Among ( "s", -1, 3, "", this) + }; + + private Among a_4[] = { + new Among ( "end", -1, 1, "", this), + new Among ( "ig", -1, 2, "", this), + new Among ( "ing", -1, 1, "", this), + new Among ( "lijk", -1, 3, "", this), + new Among ( "baar", -1, 4, "", this), + new Among ( "bar", -1, 5, "", this) + }; + + private Among a_5[] = { + new Among ( "aa", -1, -1, "", this), + new Among ( "ee", -1, -1, "", this), + new Among ( "oo", -1, -1, "", this), + new Among ( "uu", -1, -1, "", this) + }; + + private static final char g_v[] = {17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 }; + + private static final char g_v_I[] = {1, 0, 0, 17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 }; + + private static final char g_v_j[] = {17, 67, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128 }; + + private int I_p2; + private int I_p1; + private boolean B_e_found; + + private void copy_from(DutchStemmer other) { + I_p2 = other.I_p2; + I_p1 = other.I_p1; + B_e_found = other.B_e_found; + super.copy_from(other); + } + + private boolean r_prelude() { + int among_var; + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + // (, line 41 + // test, line 42 + v_1 = cursor; + // repeat, line 42 + replab0: while(true) + { + v_2 = cursor; + lab1: do { + // (, line 42 + // [, line 43 + bra = cursor; + // substring, line 43 + among_var = find_among(a_0, 11); + if (among_var == 0) + { + break lab1; + } + // ], line 43 + ket = cursor; + switch(among_var) { + case 0: + break lab1; + case 1: + // (, line 45 + // <-, line 45 + slice_from("a"); + break; + case 2: + // (, line 47 + // <-, line 47 + slice_from("e"); + break; + case 3: + // (, line 49 + // <-, line 49 + slice_from("i"); + break; + case 4: + // (, line 51 + // <-, line 51 + slice_from("o"); + break; + case 5: + // (, line 53 + // <-, line 53 + slice_from("u"); + break; + case 6: + // (, line 54 + // next, line 54 + if (cursor >= limit) + { + break lab1; + } + cursor++; + break; + } + continue replab0; + } while (false); + cursor = v_2; + break replab0; + } + cursor = v_1; + // try, line 57 + v_3 = cursor; + lab2: do { + // (, line 57 + // [, line 57 + bra = cursor; + // literal, line 57 + if (!(eq_s(1, "y"))) + { + cursor = v_3; + break lab2; + } + // ], line 57 + ket = cursor; + // <-, line 57 + slice_from("Y"); + } while (false); + // repeat, line 58 + replab3: while(true) + { + v_4 = cursor; + lab4: do { + // goto, line 58 + golab5: while(true) + { + v_5 = cursor; + lab6: do { + // (, line 58 + if (!(in_grouping(g_v, 97, 232))) + { + break lab6; + } + // [, line 59 + bra = cursor; + // or, line 59 + lab7: do { + v_6 = cursor; + lab8: do { + // (, line 59 + // literal, line 59 + if (!(eq_s(1, "i"))) + { + break lab8; + } + // ], line 59 + ket = cursor; + if (!(in_grouping(g_v, 97, 232))) + { + break lab8; + } + // <-, line 59 + slice_from("I"); + break lab7; + } while (false); + cursor = v_6; + // (, line 60 + // literal, line 60 + if (!(eq_s(1, "y"))) + { + break lab6; + } + // ], line 60 + ket = cursor; + // <-, line 60 + slice_from("Y"); + } while (false); + cursor = v_5; + break golab5; + } while (false); + cursor = v_5; + if (cursor >= limit) + { + break lab4; + } + cursor++; + } + continue replab3; + } while (false); + cursor = v_4; + break replab3; + } + return true; + } + + private boolean r_mark_regions() { + // (, line 64 + I_p1 = limit; + I_p2 = limit; + // gopast, line 69 + golab0: while(true) + { + lab1: do { + if (!(in_grouping(g_v, 97, 232))) + { + break lab1; + } + break golab0; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // gopast, line 69 + golab2: while(true) + { + lab3: do { + if (!(out_grouping(g_v, 97, 232))) + { + break lab3; + } + break golab2; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // setmark p1, line 69 + I_p1 = cursor; + // try, line 70 + lab4: do { + // (, line 70 + if (!(I_p1 < 3)) + { + break lab4; + } + I_p1 = 3; + } while (false); + // gopast, line 71 + golab5: while(true) + { + lab6: do { + if (!(in_grouping(g_v, 97, 232))) + { + break lab6; + } + break golab5; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // gopast, line 71 + golab7: while(true) + { + lab8: do { + if (!(out_grouping(g_v, 97, 232))) + { + break lab8; + } + break golab7; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // setmark p2, line 71 + I_p2 = cursor; + return true; + } + + private boolean r_postlude() { + int among_var; + int v_1; + // repeat, line 75 + replab0: while(true) + { + v_1 = cursor; + lab1: do { + // (, line 75 + // [, line 77 + bra = cursor; + // substring, line 77 + among_var = find_among(a_1, 3); + if (among_var == 0) + { + break lab1; + } + // ], line 77 + ket = cursor; + switch(among_var) { + case 0: + break lab1; + case 1: + // (, line 78 + // <-, line 78 + slice_from("y"); + break; + case 2: + // (, line 79 + // <-, line 79 + slice_from("i"); + break; + case 3: + // (, line 80 + // next, line 80 + if (cursor >= limit) + { + break lab1; + } + cursor++; + break; + } + continue replab0; + } while (false); + cursor = v_1; + break replab0; + } + return true; + } + + private boolean r_R1() { + if (!(I_p1 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R2() { + if (!(I_p2 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_undouble() { + int v_1; + // (, line 90 + // test, line 91 + v_1 = limit - cursor; + // among, line 91 + if (find_among_b(a_2, 3) == 0) + { + return false; + } + cursor = limit - v_1; + // [, line 91 + ket = cursor; + // next, line 91 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // ], line 91 + bra = cursor; + // delete, line 91 + slice_del(); + return true; + } + + private boolean r_e_ending() { + int v_1; + // (, line 94 + // unset e_found, line 95 + B_e_found = false; + // [, line 96 + ket = cursor; + // literal, line 96 + if (!(eq_s_b(1, "e"))) + { + return false; + } + // ], line 96 + bra = cursor; + // call R1, line 96 + if (!r_R1()) + { + return false; + } + // test, line 96 + v_1 = limit - cursor; + if (!(out_grouping_b(g_v, 97, 232))) + { + return false; + } + cursor = limit - v_1; + // delete, line 96 + slice_del(); + // set e_found, line 97 + B_e_found = true; + // call undouble, line 98 + if (!r_undouble()) + { + return false; + } + return true; + } + + private boolean r_en_ending() { + int v_1; + int v_2; + // (, line 101 + // call R1, line 102 + if (!r_R1()) + { + return false; + } + // and, line 102 + v_1 = limit - cursor; + if (!(out_grouping_b(g_v, 97, 232))) + { + return false; + } + cursor = limit - v_1; + // not, line 102 + { + v_2 = limit - cursor; + lab0: do { + // literal, line 102 + if (!(eq_s_b(3, "gem"))) + { + break lab0; + } + return false; + } while (false); + cursor = limit - v_2; + } + // delete, line 102 + slice_del(); + // call undouble, line 103 + if (!r_undouble()) + { + return false; + } + return true; + } + + private boolean r_standard_suffix() { + int among_var; + 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 106 + // do, line 107 + v_1 = limit - cursor; + lab0: do { + // (, line 107 + // [, line 108 + ket = cursor; + // substring, line 108 + among_var = find_among_b(a_3, 5); + if (among_var == 0) + { + break lab0; + } + // ], line 108 + bra = cursor; + switch(among_var) { + case 0: + break lab0; + case 1: + // (, line 110 + // call R1, line 110 + if (!r_R1()) + { + break lab0; + } + // <-, line 110 + slice_from("heid"); + break; + case 2: + // (, line 113 + // call en_ending, line 113 + if (!r_en_ending()) + { + break lab0; + } + break; + case 3: + // (, line 116 + // call R1, line 116 + if (!r_R1()) + { + break lab0; + } + if (!(out_grouping_b(g_v_j, 97, 232))) + { + break lab0; + } + // delete, line 116 + slice_del(); + break; + } + } while (false); + cursor = limit - v_1; + // do, line 120 + v_2 = limit - cursor; + lab1: do { + // call e_ending, line 120 + if (!r_e_ending()) + { + break lab1; + } + } while (false); + cursor = limit - v_2; + // do, line 122 + v_3 = limit - cursor; + lab2: do { + // (, line 122 + // [, line 122 + ket = cursor; + // literal, line 122 + if (!(eq_s_b(4, "heid"))) + { + break lab2; + } + // ], line 122 + bra = cursor; + // call R2, line 122 + if (!r_R2()) + { + break lab2; + } + // not, line 122 + { + v_4 = limit - cursor; + lab3: do { + // literal, line 122 + if (!(eq_s_b(1, "c"))) + { + break lab3; + } + break lab2; + } while (false); + cursor = limit - v_4; + } + // delete, line 122 + slice_del(); + // [, line 123 + ket = cursor; + // literal, line 123 + if (!(eq_s_b(2, "en"))) + { + break lab2; + } + // ], line 123 + bra = cursor; + // call en_ending, line 123 + if (!r_en_ending()) + { + break lab2; + } + } while (false); + cursor = limit - v_3; + // do, line 126 + v_5 = limit - cursor; + lab4: do { + // (, line 126 + // [, line 127 + ket = cursor; + // substring, line 127 + among_var = find_among_b(a_4, 6); + if (among_var == 0) + { + break lab4; + } + // ], line 127 + bra = cursor; + switch(among_var) { + case 0: + break lab4; + case 1: + // (, line 129 + // call R2, line 129 + if (!r_R2()) + { + break lab4; + } + // delete, line 129 + slice_del(); + // or, line 130 + lab5: do { + v_6 = limit - cursor; + lab6: do { + // (, line 130 + // [, line 130 + ket = cursor; + // literal, line 130 + if (!(eq_s_b(2, "ig"))) + { + break lab6; + } + // ], line 130 + bra = cursor; + // call R2, line 130 + if (!r_R2()) + { + break lab6; + } + // not, line 130 + { + v_7 = limit - cursor; + lab7: do { + // literal, line 130 + if (!(eq_s_b(1, "e"))) + { + break lab7; + } + break lab6; + } while (false); + cursor = limit - v_7; + } + // delete, line 130 + slice_del(); + break lab5; + } while (false); + cursor = limit - v_6; + // call undouble, line 130 + if (!r_undouble()) + { + break lab4; + } + } while (false); + break; + case 2: + // (, line 133 + // call R2, line 133 + if (!r_R2()) + { + break lab4; + } + // not, line 133 + { + v_8 = limit - cursor; + lab8: do { + // literal, line 133 + if (!(eq_s_b(1, "e"))) + { + break lab8; + } + break lab4; + } while (false); + cursor = limit - v_8; + } + // delete, line 133 + slice_del(); + break; + case 3: + // (, line 136 + // call R2, line 136 + if (!r_R2()) + { + break lab4; + } + // delete, line 136 + slice_del(); + // call e_ending, line 136 + if (!r_e_ending()) + { + break lab4; + } + break; + case 4: + // (, line 139 + // call R2, line 139 + if (!r_R2()) + { + break lab4; + } + // delete, line 139 + slice_del(); + break; + case 5: + // (, line 142 + // call R2, line 142 + if (!r_R2()) + { + break lab4; + } + // Boolean test e_found, line 142 + if (!(B_e_found)) + { + break lab4; + } + // delete, line 142 + slice_del(); + break; + } + } while (false); + cursor = limit - v_5; + // do, line 146 + v_9 = limit - cursor; + lab9: do { + // (, line 146 + if (!(out_grouping_b(g_v_I, 73, 232))) + { + break lab9; + } + // test, line 148 + v_10 = limit - cursor; + // (, line 148 + // among, line 149 + if (find_among_b(a_5, 4) == 0) + { + break lab9; + } + if (!(out_grouping_b(g_v, 97, 232))) + { + break lab9; + } + cursor = limit - v_10; + // [, line 152 + ket = cursor; + // next, line 152 + if (cursor <= limit_backward) + { + break lab9; + } + cursor--; + // ], line 152 + bra = cursor; + // delete, line 152 + slice_del(); + } while (false); + cursor = limit - v_9; + return true; + } + + public boolean stem() { + int v_1; + int v_2; + int v_3; + int v_4; + // (, line 157 + // do, line 159 + v_1 = cursor; + lab0: do { + // call prelude, line 159 + if (!r_prelude()) + { + break lab0; + } + } while (false); + cursor = v_1; + // do, line 160 + v_2 = cursor; + lab1: do { + // call mark_regions, line 160 + if (!r_mark_regions()) + { + break lab1; + } + } while (false); + cursor = v_2; + // backwards, line 161 + limit_backward = cursor; cursor = limit; + // do, line 162 + v_3 = limit - cursor; + lab2: do { + // call standard_suffix, line 162 + if (!r_standard_suffix()) + { + break lab2; + } + } while (false); + cursor = limit - v_3; + cursor = limit_backward; // do, line 163 + v_4 = cursor; + lab3: do { + // call postlude, line 163 + if (!r_postlude()) + { + break lab3; + } + } while (false); + cursor = v_4; + return true; + } + +} + Index: contrib/snowball/src/java/org/tartarus/snowball/ext/GermanStemmer.java =================================================================== --- contrib/snowball/src/java/org/tartarus/snowball/ext/GermanStemmer.java (revision 0) +++ contrib/snowball/src/java/org/tartarus/snowball/ext/GermanStemmer.java (revision 0) @@ -0,0 +1,688 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; +import org.tartarus.snowball.SnowballProgram; +import org.tartarus.snowball.Among; + +/** + * Generated class implementing code defined by a snowball script. + */ +public class GermanStemmer extends SnowballProgram { + + private Among a_0[] = { + new Among ( "", -1, 6, "", this), + new Among ( "U", 0, 2, "", this), + new Among ( "Y", 0, 1, "", this), + new Among ( "\u00E4", 0, 3, "", this), + new Among ( "\u00F6", 0, 4, "", this), + new Among ( "\u00FC", 0, 5, "", this) + }; + + private Among a_1[] = { + new Among ( "e", -1, 1, "", this), + new Among ( "em", -1, 1, "", this), + new Among ( "en", -1, 1, "", this), + new Among ( "ern", -1, 1, "", this), + new Among ( "er", -1, 1, "", this), + new Among ( "s", -1, 2, "", this), + new Among ( "es", 5, 1, "", this) + }; + + private Among a_2[] = { + new Among ( "en", -1, 1, "", this), + new Among ( "er", -1, 1, "", this), + new Among ( "st", -1, 2, "", this), + new Among ( "est", 2, 1, "", this) + }; + + private Among a_3[] = { + new Among ( "ig", -1, 1, "", this), + new Among ( "lich", -1, 1, "", this) + }; + + private Among a_4[] = { + new Among ( "end", -1, 1, "", this), + new Among ( "ig", -1, 2, "", this), + new Among ( "ung", -1, 1, "", this), + new Among ( "lich", -1, 3, "", this), + new Among ( "isch", -1, 2, "", this), + new Among ( "ik", -1, 2, "", this), + new Among ( "heit", -1, 3, "", this), + new Among ( "keit", -1, 4, "", this) + }; + + 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, 8 }; + + private static final char g_s_ending[] = {117, 30, 5 }; + + 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); + } + + private boolean r_prelude() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + // (, line 28 + // test, line 30 + v_1 = cursor; + // repeat, line 30 + replab0: while(true) + { + v_2 = cursor; + lab1: do { + // (, line 30 + // or, line 33 + lab2: do { + v_3 = cursor; + lab3: do { + // (, line 31 + // [, line 32 + bra = cursor; + // literal, line 32 + if (!(eq_s(1, "\u00DF"))) + { + break lab3; + } + // ], line 32 + ket = cursor; + // <-, line 32 + slice_from("ss"); + break lab2; + } while (false); + cursor = v_3; + // next, line 33 + if (cursor >= limit) + { + break lab1; + } + cursor++; + } while (false); + continue replab0; + } while (false); + cursor = v_2; + break replab0; + } + cursor = v_1; + // repeat, line 36 + replab4: while(true) + { + v_4 = cursor; + lab5: do { + // goto, line 36 + golab6: while(true) + { + v_5 = cursor; + lab7: do { + // (, line 36 + if (!(in_grouping(g_v, 97, 252))) + { + break lab7; + } + // [, line 37 + bra = cursor; + // or, line 37 + lab8: do { + v_6 = cursor; + lab9: do { + // (, line 37 + // literal, line 37 + if (!(eq_s(1, "u"))) + { + break lab9; + } + // ], line 37 + ket = cursor; + if (!(in_grouping(g_v, 97, 252))) + { + break lab9; + } + // <-, line 37 + slice_from("U"); + break lab8; + } while (false); + cursor = v_6; + // (, line 38 + // literal, line 38 + if (!(eq_s(1, "y"))) + { + break lab7; + } + // ], line 38 + ket = cursor; + if (!(in_grouping(g_v, 97, 252))) + { + break lab7; + } + // <-, line 38 + slice_from("Y"); + } while (false); + cursor = v_5; + break golab6; + } while (false); + cursor = v_5; + if (cursor >= limit) + { + break lab5; + } + cursor++; + } + continue replab4; + } while (false); + cursor = v_4; + break replab4; + } + return true; + } + + private boolean r_mark_regions() { + int v_1; + // (, line 42 + I_p1 = limit; + I_p2 = limit; + // 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 { + if (!(in_grouping(g_v, 97, 252))) + { + break lab1; + } + break golab0; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // gopast, line 49 + golab2: while(true) + { + lab3: do { + if (!(out_grouping(g_v, 97, 252))) + { + break lab3; + } + break golab2; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // setmark p1, line 49 + I_p1 = cursor; + // try, line 50 + lab4: do { + // (, line 50 + if (!(I_p1 < I_x)) + { + break lab4; + } + I_p1 = I_x; + } while (false); + // gopast, line 51 + golab5: while(true) + { + lab6: do { + if (!(in_grouping(g_v, 97, 252))) + { + break lab6; + } + break golab5; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // gopast, line 51 + golab7: while(true) + { + lab8: do { + if (!(out_grouping(g_v, 97, 252))) + { + break lab8; + } + break golab7; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // setmark p2, line 51 + I_p2 = cursor; + return true; + } + + private boolean r_postlude() { + int among_var; + int v_1; + // repeat, line 55 + replab0: while(true) + { + v_1 = cursor; + lab1: do { + // (, line 55 + // [, line 57 + bra = cursor; + // substring, line 57 + among_var = find_among(a_0, 6); + if (among_var == 0) + { + break lab1; + } + // ], line 57 + ket = cursor; + switch(among_var) { + case 0: + break lab1; + case 1: + // (, line 58 + // <-, line 58 + slice_from("y"); + break; + case 2: + // (, line 59 + // <-, line 59 + slice_from("u"); + break; + case 3: + // (, line 60 + // <-, line 60 + slice_from("a"); + break; + case 4: + // (, line 61 + // <-, line 61 + slice_from("o"); + break; + case 5: + // (, line 62 + // <-, line 62 + slice_from("u"); + break; + case 6: + // (, line 63 + // next, line 63 + if (cursor >= limit) + { + break lab1; + } + cursor++; + break; + } + continue replab0; + } while (false); + cursor = v_1; + break replab0; + } + return true; + } + + private boolean r_R1() { + if (!(I_p1 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R2() { + if (!(I_p2 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_standard_suffix() { + int among_var; + 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; + // (, line 73 + // do, line 74 + v_1 = limit - cursor; + lab0: do { + // (, line 74 + // [, line 75 + ket = cursor; + // substring, line 75 + among_var = find_among_b(a_1, 7); + if (among_var == 0) + { + break lab0; + } + // ], line 75 + bra = cursor; + // call R1, line 75 + if (!r_R1()) + { + break lab0; + } + switch(among_var) { + case 0: + break lab0; + case 1: + // (, line 77 + // delete, line 77 + slice_del(); + break; + case 2: + // (, line 80 + if (!(in_grouping_b(g_s_ending, 98, 116))) + { + break lab0; + } + // delete, line 80 + slice_del(); + break; + } + } while (false); + cursor = limit - v_1; + // do, line 84 + v_2 = limit - cursor; + lab1: do { + // (, line 84 + // [, line 85 + ket = cursor; + // substring, line 85 + among_var = find_among_b(a_2, 4); + if (among_var == 0) + { + break lab1; + } + // ], line 85 + bra = cursor; + // call R1, line 85 + if (!r_R1()) + { + break lab1; + } + switch(among_var) { + case 0: + break lab1; + case 1: + // (, line 87 + // delete, line 87 + slice_del(); + break; + case 2: + // (, line 90 + if (!(in_grouping_b(g_st_ending, 98, 116))) + { + break lab1; + } + // hop, line 90 + { + int c = cursor - 3; + if (limit_backward > c || c > limit) + { + break lab1; + } + cursor = c; + } + // delete, line 90 + slice_del(); + break; + } + } while (false); + cursor = limit - v_2; + // do, line 94 + v_3 = limit - cursor; + lab2: do { + // (, line 94 + // [, line 95 + ket = cursor; + // substring, line 95 + among_var = find_among_b(a_4, 8); + if (among_var == 0) + { + break lab2; + } + // ], line 95 + bra = cursor; + // call R2, line 95 + if (!r_R2()) + { + break lab2; + } + switch(among_var) { + case 0: + break lab2; + case 1: + // (, line 97 + // delete, line 97 + slice_del(); + // try, line 98 + v_4 = limit - cursor; + lab3: do { + // (, line 98 + // [, line 98 + ket = cursor; + // literal, line 98 + if (!(eq_s_b(2, "ig"))) + { + cursor = limit - v_4; + break lab3; + } + // ], line 98 + bra = cursor; + // not, line 98 + { + v_5 = limit - cursor; + lab4: do { + // literal, line 98 + if (!(eq_s_b(1, "e"))) + { + break lab4; + } + cursor = limit - v_4; + break lab3; + } while (false); + cursor = limit - v_5; + } + // call R2, line 98 + if (!r_R2()) + { + cursor = limit - v_4; + break lab3; + } + // delete, line 98 + slice_del(); + } while (false); + break; + case 2: + // (, line 101 + // not, line 101 + { + v_6 = limit - cursor; + lab5: do { + // literal, line 101 + if (!(eq_s_b(1, "e"))) + { + break lab5; + } + break lab2; + } while (false); + cursor = limit - v_6; + } + // delete, line 101 + slice_del(); + break; + case 3: + // (, line 104 + // delete, line 104 + slice_del(); + // try, line 105 + v_7 = limit - cursor; + lab6: do { + // (, line 105 + // [, line 106 + ket = cursor; + // or, line 106 + lab7: do { + v_8 = limit - cursor; + lab8: do { + // literal, line 106 + if (!(eq_s_b(2, "er"))) + { + break lab8; + } + break lab7; + } while (false); + cursor = limit - v_8; + // literal, line 106 + if (!(eq_s_b(2, "en"))) + { + cursor = limit - v_7; + break lab6; + } + } while (false); + // ], line 106 + bra = cursor; + // call R1, line 106 + if (!r_R1()) + { + cursor = limit - v_7; + break lab6; + } + // delete, line 106 + slice_del(); + } while (false); + break; + case 4: + // (, line 110 + // delete, line 110 + slice_del(); + // try, line 111 + v_9 = limit - cursor; + lab9: do { + // (, line 111 + // [, line 112 + ket = cursor; + // substring, line 112 + among_var = find_among_b(a_3, 2); + if (among_var == 0) + { + cursor = limit - v_9; + break lab9; + } + // ], line 112 + bra = cursor; + // call R2, line 112 + if (!r_R2()) + { + cursor = limit - v_9; + break lab9; + } + switch(among_var) { + case 0: + cursor = limit - v_9; + break lab9; + case 1: + // (, line 114 + // delete, line 114 + slice_del(); + break; + } + } while (false); + break; + } + } while (false); + cursor = limit - v_3; + return true; + } + + public boolean stem() { + int v_1; + int v_2; + int v_3; + int v_4; + // (, line 124 + // do, line 125 + v_1 = cursor; + lab0: do { + // call prelude, line 125 + if (!r_prelude()) + { + break lab0; + } + } while (false); + cursor = v_1; + // do, line 126 + v_2 = cursor; + lab1: do { + // call mark_regions, line 126 + if (!r_mark_regions()) + { + break lab1; + } + } while (false); + cursor = v_2; + // backwards, line 127 + limit_backward = cursor; cursor = limit; + // do, line 128 + v_3 = limit - cursor; + lab2: do { + // call standard_suffix, line 128 + if (!r_standard_suffix()) + { + break lab2; + } + } while (false); + cursor = limit - v_3; + cursor = limit_backward; // do, line 129 + v_4 = cursor; + lab3: do { + // call postlude, line 129 + if (!r_postlude()) + { + break lab3; + } + } while (false); + cursor = v_4; + return true; + } + +} + Index: contrib/snowball/src/java/org/tartarus/snowball/ext/LovinsStemmer.java =================================================================== --- contrib/snowball/src/java/org/tartarus/snowball/ext/LovinsStemmer.java (revision 0) +++ contrib/snowball/src/java/org/tartarus/snowball/ext/LovinsStemmer.java (revision 0) @@ -0,0 +1,1908 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; +import org.tartarus.snowball.SnowballProgram; +import org.tartarus.snowball.Among; + +/** + * Generated class implementing code defined by a snowball script. + */ +public class LovinsStemmer extends SnowballProgram { + + private Among a_0[] = { + new Among ( "d", -1, -1, "", this), + new Among ( "f", -1, -1, "", this), + new Among ( "ph", -1, -1, "", this), + new Among ( "th", -1, -1, "", this), + new Among ( "l", -1, -1, "", this), + new Among ( "er", -1, -1, "", this), + new Among ( "or", -1, -1, "", this), + new Among ( "es", -1, -1, "", this), + new Among ( "t", -1, -1, "", this) + }; + + private Among a_1[] = { + new Among ( "s'", -1, 1, "r_A", this), + new Among ( "a", -1, 1, "r_A", this), + new Among ( "ia", 1, 1, "r_A", this), + new Among ( "ata", 1, 1, "r_A", this), + new Among ( "ic", -1, 1, "r_A", this), + new Among ( "aic", 4, 1, "r_A", this), + new Among ( "allic", 4, 1, "r_BB", this), + new Among ( "aric", 4, 1, "r_A", this), + new Among ( "atic", 4, 1, "r_B", this), + new Among ( "itic", 4, 1, "r_H", this), + new Among ( "antic", 4, 1, "r_C", this), + new Among ( "istic", 4, 1, "r_A", this), + new Among ( "alistic", 11, 1, "r_B", this), + new Among ( "aristic", 11, 1, "r_A", this), + new Among ( "ivistic", 11, 1, "r_A", this), + new Among ( "ed", -1, 1, "r_E", this), + new Among ( "anced", 15, 1, "r_B", this), + new Among ( "enced", 15, 1, "r_A", this), + new Among ( "ished", 15, 1, "r_A", this), + new Among ( "ied", 15, 1, "r_A", this), + new Among ( "ened", 15, 1, "r_E", this), + new Among ( "ioned", 15, 1, "r_A", this), + new Among ( "ated", 15, 1, "r_I", this), + new Among ( "ented", 15, 1, "r_C", this), + new Among ( "ized", 15, 1, "r_F", this), + new Among ( "arized", 24, 1, "r_A", this), + new Among ( "oid", -1, 1, "r_A", this), + new Among ( "aroid", 26, 1, "r_A", this), + new Among ( "hood", -1, 1, "r_A", this), + new Among ( "ehood", 28, 1, "r_A", this), + new Among ( "ihood", 28, 1, "r_A", this), + new Among ( "elihood", 30, 1, "r_E", this), + new Among ( "ward", -1, 1, "r_A", this), + new Among ( "e", -1, 1, "r_A", this), + new Among ( "ae", 33, 1, "r_A", this), + new Among ( "ance", 33, 1, "r_B", this), + new Among ( "icance", 35, 1, "r_A", this), + new Among ( "ence", 33, 1, "r_A", this), + new Among ( "ide", 33, 1, "r_L", this), + new Among ( "icide", 38, 1, "r_A", this), + new Among ( "otide", 38, 1, "r_A", this), + new Among ( "age", 33, 1, "r_B", this), + new Among ( "able", 33, 1, "r_A", this), + new Among ( "atable", 42, 1, "r_A", this), + new Among ( "izable", 42, 1, "r_E", this), + new Among ( "arizable", 44, 1, "r_A", this), + new Among ( "ible", 33, 1, "r_A", this), + new Among ( "encible", 46, 1, "r_A", this), + new Among ( "ene", 33, 1, "r_E", this), + new Among ( "ine", 33, 1, "r_M", this), + new Among ( "idine", 49, 1, "r_I", this), + new Among ( "one", 33, 1, "r_R", this), + new Among ( "ature", 33, 1, "r_E", this), + new Among ( "eature", 52, 1, "r_Z", this), + new Among ( "ese", 33, 1, "r_A", this), + new Among ( "wise", 33, 1, "r_A", this), + new Among ( "ate", 33, 1, "r_A", this), + new Among ( "entiate", 56, 1, "r_A", this), + new Among ( "inate", 56, 1, "r_A", this), + new Among ( "ionate", 56, 1, "r_D", this), + new Among ( "ite", 33, 1, "r_AA", this), + new Among ( "ive", 33, 1, "r_A", this), + new Among ( "ative", 61, 1, "r_A", this), + new Among ( "ize", 33, 1, "r_F", this), + new Among ( "alize", 63, 1, "r_A", this), + new Among ( "icalize", 64, 1, "r_A", this), + new Among ( "ialize", 64, 1, "r_A", this), + new Among ( "entialize", 66, 1, "r_A", this), + new Among ( "ionalize", 64, 1, "r_A", this), + new Among ( "arize", 63, 1, "r_A", this), + new Among ( "ing", -1, 1, "r_N", this), + new Among ( "ancing", 70, 1, "r_B", this), + new Among ( "encing", 70, 1, "r_A", this), + new Among ( "aging", 70, 1, "r_B", this), + new Among ( "ening", 70, 1, "r_E", this), + new Among ( "ioning", 70, 1, "r_A", this), + new Among ( "ating", 70, 1, "r_I", this), + new Among ( "enting", 70, 1, "r_C", this), + new Among ( "ying", 70, 1, "r_B", this), + new Among ( "izing", 70, 1, "r_F", this), + new Among ( "arizing", 79, 1, "r_A", this), + new Among ( "ish", -1, 1, "r_C", this), + new Among ( "yish", 81, 1, "r_A", this), + new Among ( "i", -1, 1, "r_A", this), + new Among ( "al", -1, 1, "r_BB", this), + new Among ( "ical", 84, 1, "r_A", this), + new Among ( "aical", 85, 1, "r_A", this), + new Among ( "istical", 85, 1, "r_A", this), + new Among ( "oidal", 84, 1, "r_A", this), + new Among ( "eal", 84, 1, "r_Y", this), + new Among ( "ial", 84, 1, "r_A", this), + new Among ( "ancial", 90, 1, "r_A", this), + new Among ( "arial", 90, 1, "r_A", this), + new Among ( "ential", 90, 1, "r_A", this), + new Among ( "ional", 84, 1, "r_A", this), + new Among ( "ational", 94, 1, "r_B", this), + new Among ( "izational", 95, 1, "r_A", this), + new Among ( "ental", 84, 1, "r_A", this), + new Among ( "ful", -1, 1, "r_A", this), + new Among ( "eful", 98, 1, "r_A", this), + new Among ( "iful", 98, 1, "r_A", this), + new Among ( "yl", -1, 1, "r_R", this), + new Among ( "ism", -1, 1, "r_B", this), + new Among ( "icism", 102, 1, "r_A", this), + new Among ( "oidism", 102, 1, "r_A", this), + new Among ( "alism", 102, 1, "r_B", this), + new Among ( "icalism", 105, 1, "r_A", this), + new Among ( "ionalism", 105, 1, "r_A", this), + new Among ( "inism", 102, 1, "r_J", this), + new Among ( "ativism", 102, 1, "r_A", this), + new Among ( "um", -1, 1, "r_U", this), + new Among ( "ium", 110, 1, "r_A", this), + new Among ( "ian", -1, 1, "r_A", this), + new Among ( "ician", 112, 1, "r_A", this), + new Among ( "en", -1, 1, "r_F", this), + new Among ( "ogen", 114, 1, "r_A", this), + new Among ( "on", -1, 1, "r_S", this), + new Among ( "ion", 116, 1, "r_Q", this), + new Among ( "ation", 117, 1, "r_B", this), + new Among ( "ication", 118, 1, "r_G", this), + new Among ( "entiation", 118, 1, "r_A", this), + new Among ( "ination", 118, 1, "r_A", this), + new Among ( "isation", 118, 1, "r_A", this), + new Among ( "arisation", 122, 1, "r_A", this), + new Among ( "entation", 118, 1, "r_A", this), + new Among ( "ization", 118, 1, "r_F", this), + new Among ( "arization", 125, 1, "r_A", this), + new Among ( "action", 117, 1, "r_G", this), + new Among ( "o", -1, 1, "r_A", this), + new Among ( "ar", -1, 1, "r_X", this), + new Among ( "ear", 129, 1, "r_Y", this), + new Among ( "ier", -1, 1, "r_A", this), + new Among ( "ariser", -1, 1, "r_A", this), + new Among ( "izer", -1, 1, "r_F", this), + new Among ( "arizer", 133, 1, "r_A", this), + new Among ( "or", -1, 1, "r_T", this), + new Among ( "ator", 135, 1, "r_A", this), + new Among ( "s", -1, 1, "r_W", this), + new Among ( "'s", 137, 1, "r_A", this), + new Among ( "as", 137, 1, "r_B", this), + new Among ( "ics", 137, 1, "r_A", this), + new Among ( "istics", 140, 1, "r_A", this), + new Among ( "es", 137, 1, "r_E", this), + new Among ( "ances", 142, 1, "r_B", this), + new Among ( "ences", 142, 1, "r_A", this), + new Among ( "ides", 142, 1, "r_L", this), + new Among ( "oides", 145, 1, "r_A", this), + new Among ( "ages", 142, 1, "r_B", this), + new Among ( "ies", 142, 1, "r_P", this), + new Among ( "acies", 148, 1, "r_A", this), + new Among ( "ancies", 148, 1, "r_A", this), + new Among ( "encies", 148, 1, "r_A", this), + new Among ( "aries", 148, 1, "r_A", this), + new Among ( "ities", 148, 1, "r_A", this), + new Among ( "alities", 153, 1, "r_A", this), + new Among ( "ivities", 153, 1, "r_A", this), + new Among ( "ines", 142, 1, "r_M", this), + new Among ( "nesses", 142, 1, "r_A", this), + new Among ( "ates", 142, 1, "r_A", this), + new Among ( "atives", 142, 1, "r_A", this), + new Among ( "ings", 137, 1, "r_N", this), + new Among ( "is", 137, 1, "r_A", this), + new Among ( "als", 137, 1, "r_BB", this), + new Among ( "ials", 162, 1, "r_A", this), + new Among ( "entials", 163, 1, "r_A", this), + new Among ( "ionals", 162, 1, "r_A", this), + new Among ( "isms", 137, 1, "r_B", this), + new Among ( "ians", 137, 1, "r_A", this), + new Among ( "icians", 167, 1, "r_A", this), + new Among ( "ions", 137, 1, "r_B", this), + new Among ( "ations", 169, 1, "r_B", this), + new Among ( "arisations", 170, 1, "r_A", this), + new Among ( "entations", 170, 1, "r_A", this), + new Among ( "izations", 170, 1, "r_A", this), + new Among ( "arizations", 173, 1, "r_A", this), + new Among ( "ars", 137, 1, "r_O", this), + new Among ( "iers", 137, 1, "r_A", this), + new Among ( "izers", 137, 1, "r_F", this), + new Among ( "ators", 137, 1, "r_A", this), + new Among ( "less", 137, 1, "r_A", this), + new Among ( "eless", 179, 1, "r_A", this), + new Among ( "ness", 137, 1, "r_A", this), + new Among ( "eness", 181, 1, "r_E", this), + new Among ( "ableness", 182, 1, "r_A", this), + new Among ( "eableness", 183, 1, "r_E", this), + new Among ( "ibleness", 182, 1, "r_A", this), + new Among ( "ateness", 182, 1, "r_A", this), + new Among ( "iteness", 182, 1, "r_A", this), + new Among ( "iveness", 182, 1, "r_A", this), + new Among ( "ativeness", 188, 1, "r_A", this), + new Among ( "ingness", 181, 1, "r_A", this), + new Among ( "ishness", 181, 1, "r_A", this), + new Among ( "iness", 181, 1, "r_A", this), + new Among ( "ariness", 192, 1, "r_E", this), + new Among ( "alness", 181, 1, "r_A", this), + new Among ( "icalness", 194, 1, "r_A", this), + new Among ( "antialness", 194, 1, "r_A", this), + new Among ( "entialness", 194, 1, "r_A", this), + new Among ( "ionalness", 194, 1, "r_A", this), + new Among ( "fulness", 181, 1, "r_A", this), + new Among ( "lessness", 181, 1, "r_A", this), + new Among ( "ousness", 181, 1, "r_A", this), + new Among ( "eousness", 201, 1, "r_A", this), + new Among ( "iousness", 201, 1, "r_A", this), + new Among ( "itousness", 201, 1, "r_A", this), + new Among ( "entness", 181, 1, "r_A", this), + new Among ( "ants", 137, 1, "r_B", this), + new Among ( "ists", 137, 1, "r_A", this), + new Among ( "icists", 207, 1, "r_A", this), + new Among ( "us", 137, 1, "r_V", this), + new Among ( "ous", 209, 1, "r_A", this), + new Among ( "eous", 210, 1, "r_A", this), + new Among ( "aceous", 211, 1, "r_A", this), + new Among ( "antaneous", 211, 1, "r_A", this), + new Among ( "ious", 210, 1, "r_A", this), + new Among ( "acious", 214, 1, "r_B", this), + new Among ( "itous", 210, 1, "r_A", this), + new Among ( "ant", -1, 1, "r_B", this), + new Among ( "icant", 217, 1, "r_A", this), + new Among ( "ent", -1, 1, "r_C", this), + new Among ( "ement", 219, 1, "r_A", this), + new Among ( "izement", 220, 1, "r_A", this), + new Among ( "ist", -1, 1, "r_A", this), + new Among ( "icist", 222, 1, "r_A", this), + new Among ( "alist", 222, 1, "r_A", this), + new Among ( "icalist", 224, 1, "r_A", this), + new Among ( "ialist", 224, 1, "r_A", this), + new Among ( "ionist", 222, 1, "r_A", this), + new Among ( "entist", 222, 1, "r_A", this), + new Among ( "y", -1, 1, "r_B", this), + new Among ( "acy", 229, 1, "r_A", this), + new Among ( "ancy", 229, 1, "r_B", this), + new Among ( "ency", 229, 1, "r_A", this), + new Among ( "ly", 229, 1, "r_B", this), + new Among ( "ealy", 233, 1, "r_Y", this), + new Among ( "ably", 233, 1, "r_A", this), + new Among ( "ibly", 233, 1, "r_A", this), + new Among ( "edly", 233, 1, "r_E", this), + new Among ( "iedly", 237, 1, "r_A", this), + new Among ( "ely", 233, 1, "r_E", this), + new Among ( "ately", 239, 1, "r_A", this), + new Among ( "ively", 239, 1, "r_A", this), + new Among ( "atively", 241, 1, "r_A", this), + new Among ( "ingly", 233, 1, "r_B", this), + new Among ( "atingly", 243, 1, "r_A", this), + new Among ( "ily", 233, 1, "r_A", this), + new Among ( "lily", 245, 1, "r_A", this), + new Among ( "arily", 245, 1, "r_A", this), + new Among ( "ally", 233, 1, "r_B", this), + new Among ( "ically", 248, 1, "r_A", this), + new Among ( "aically", 249, 1, "r_A", this), + new Among ( "allically", 249, 1, "r_C", this), + new Among ( "istically", 249, 1, "r_A", this), + new Among ( "alistically", 252, 1, "r_B", this), + new Among ( "oidally", 248, 1, "r_A", this), + new Among ( "ially", 248, 1, "r_A", this), + new Among ( "entially", 255, 1, "r_A", this), + new Among ( "ionally", 248, 1, "r_A", this), + new Among ( "ationally", 257, 1, "r_B", this), + new Among ( "izationally", 258, 1, "r_B", this), + new Among ( "entally", 248, 1, "r_A", this), + new Among ( "fully", 233, 1, "r_A", this), + new Among ( "efully", 261, 1, "r_A", this), + new Among ( "ifully", 261, 1, "r_A", this), + new Among ( "enly", 233, 1, "r_E", this), + new Among ( "arly", 233, 1, "r_K", this), + new Among ( "early", 265, 1, "r_Y", this), + new Among ( "lessly", 233, 1, "r_A", this), + new Among ( "ously", 233, 1, "r_A", this), + new Among ( "eously", 268, 1, "r_A", this), + new Among ( "iously", 268, 1, "r_A", this), + new Among ( "ently", 233, 1, "r_A", this), + new Among ( "ary", 229, 1, "r_F", this), + new Among ( "ery", 229, 1, "r_E", this), + new Among ( "icianry", 229, 1, "r_A", this), + new Among ( "atory", 229, 1, "r_A", this), + new Among ( "ity", 229, 1, "r_A", this), + new Among ( "acity", 276, 1, "r_A", this), + new Among ( "icity", 276, 1, "r_A", this), + new Among ( "eity", 276, 1, "r_A", this), + new Among ( "ality", 276, 1, "r_A", this), + new Among ( "icality", 280, 1, "r_A", this), + new Among ( "iality", 280, 1, "r_A", this), + new Among ( "antiality", 282, 1, "r_A", this), + new Among ( "entiality", 282, 1, "r_A", this), + new Among ( "ionality", 280, 1, "r_A", this), + new Among ( "elity", 276, 1, "r_A", this), + new Among ( "ability", 276, 1, "r_A", this), + new Among ( "izability", 287, 1, "r_A", this), + new Among ( "arizability", 288, 1, "r_A", this), + new Among ( "ibility", 276, 1, "r_A", this), + new Among ( "inity", 276, 1, "r_CC", this), + new Among ( "arity", 276, 1, "r_B", this), + new Among ( "ivity", 276, 1, "r_A", this) + }; + + private Among a_2[] = { + new Among ( "bb", -1, -1, "", this), + new Among ( "dd", -1, -1, "", this), + new Among ( "gg", -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 ( "ss", -1, -1, "", this), + new Among ( "tt", -1, -1, "", this) + }; + + private Among a_3[] = { + new Among ( "uad", -1, 18, "", this), + new Among ( "vad", -1, 19, "", this), + new Among ( "cid", -1, 20, "", this), + new Among ( "lid", -1, 21, "", this), + new Among ( "erid", -1, 22, "", this), + new Among ( "pand", -1, 23, "", this), + new Among ( "end", -1, 24, "", this), + new Among ( "ond", -1, 25, "", this), + new Among ( "lud", -1, 26, "", this), + new Among ( "rud", -1, 27, "", this), + new Among ( "ul", -1, 9, "", this), + new Among ( "her", -1, 28, "", this), + new Among ( "metr", -1, 7, "", this), + new Among ( "istr", -1, 6, "", this), + new Among ( "urs", -1, 5, "", this), + new Among ( "uct", -1, 2, "", this), + new Among ( "et", -1, 32, "", this), + new Among ( "mit", -1, 29, "", this), + new Among ( "ent", -1, 30, "", this), + new Among ( "umpt", -1, 3, "", this), + new Among ( "rpt", -1, 4, "", this), + new Among ( "ert", -1, 31, "", this), + new Among ( "yt", -1, 33, "", this), + new Among ( "iev", -1, 1, "", this), + new Among ( "olv", -1, 8, "", this), + new Among ( "ax", -1, 14, "", this), + new Among ( "ex", -1, 15, "", this), + new Among ( "bex", 26, 10, "", this), + new Among ( "dex", 26, 11, "", this), + new Among ( "pex", 26, 12, "", this), + new Among ( "tex", 26, 13, "", this), + new Among ( "ix", -1, 16, "", this), + new Among ( "lux", -1, 17, "", this), + new Among ( "yz", -1, 34, "", this) + }; + + + private void copy_from(LovinsStemmer other) { + super.copy_from(other); + } + + private boolean r_A() { + // (, line 21 + // hop, line 21 + { + int c = cursor - 2; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + return true; + } + + private boolean r_B() { + // (, line 22 + // hop, line 22 + { + int c = cursor - 3; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + return true; + } + + private boolean r_C() { + // (, line 23 + // hop, line 23 + { + int c = cursor - 4; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + return true; + } + + private boolean r_D() { + // (, line 24 + // hop, line 24 + { + int c = cursor - 5; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + return true; + } + + private boolean r_E() { + int v_1; + int v_2; + // (, line 25 + // test, line 25 + v_1 = limit - cursor; + // hop, line 25 + { + int c = cursor - 2; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + cursor = limit - v_1; + // not, line 25 + { + v_2 = limit - cursor; + lab0: do { + // literal, line 25 + if (!(eq_s_b(1, "e"))) + { + break lab0; + } + return false; + } while (false); + cursor = limit - v_2; + } + return true; + } + + private boolean r_F() { + int v_1; + int v_2; + // (, line 26 + // test, line 26 + v_1 = limit - cursor; + // hop, line 26 + { + int c = cursor - 3; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + cursor = limit - v_1; + // not, line 26 + { + v_2 = limit - cursor; + lab0: do { + // literal, line 26 + if (!(eq_s_b(1, "e"))) + { + break lab0; + } + return false; + } while (false); + cursor = limit - v_2; + } + return true; + } + + private boolean r_G() { + int v_1; + // (, line 27 + // test, line 27 + v_1 = limit - cursor; + // hop, line 27 + { + int c = cursor - 3; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + cursor = limit - v_1; + // literal, line 27 + if (!(eq_s_b(1, "f"))) + { + return false; + } + return true; + } + + private boolean r_H() { + int v_1; + int v_2; + // (, line 28 + // test, line 28 + v_1 = limit - cursor; + // hop, line 28 + { + int c = cursor - 2; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + cursor = limit - v_1; + // or, line 28 + lab0: do { + v_2 = limit - cursor; + lab1: do { + // literal, line 28 + if (!(eq_s_b(1, "t"))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_2; + // literal, line 28 + if (!(eq_s_b(2, "ll"))) + { + return false; + } + } while (false); + return true; + } + + private boolean r_I() { + int v_1; + int v_2; + int v_3; + // (, line 29 + // test, line 29 + v_1 = limit - cursor; + // hop, line 29 + { + int c = cursor - 2; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + cursor = limit - v_1; + // not, line 29 + { + v_2 = limit - cursor; + lab0: do { + // literal, line 29 + if (!(eq_s_b(1, "o"))) + { + break lab0; + } + return false; + } while (false); + cursor = limit - v_2; + } + // not, line 29 + { + v_3 = limit - cursor; + lab1: do { + // literal, line 29 + if (!(eq_s_b(1, "e"))) + { + break lab1; + } + return false; + } while (false); + cursor = limit - v_3; + } + return true; + } + + private boolean r_J() { + int v_1; + int v_2; + int v_3; + // (, line 30 + // test, line 30 + v_1 = limit - cursor; + // hop, line 30 + { + int c = cursor - 2; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + cursor = limit - v_1; + // not, line 30 + { + v_2 = limit - cursor; + lab0: do { + // literal, line 30 + if (!(eq_s_b(1, "a"))) + { + break lab0; + } + return false; + } while (false); + cursor = limit - v_2; + } + // not, line 30 + { + v_3 = limit - cursor; + lab1: do { + // literal, line 30 + if (!(eq_s_b(1, "e"))) + { + break lab1; + } + return false; + } while (false); + cursor = limit - v_3; + } + return true; + } + + private boolean r_K() { + int v_1; + int v_2; + // (, line 31 + // test, line 31 + v_1 = limit - cursor; + // hop, line 31 + { + int c = cursor - 3; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + cursor = limit - v_1; + // or, line 31 + lab0: do { + v_2 = limit - cursor; + lab1: do { + // literal, line 31 + if (!(eq_s_b(1, "l"))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_2; + lab2: do { + // literal, line 31 + if (!(eq_s_b(1, "i"))) + { + break lab2; + } + break lab0; + } while (false); + cursor = limit - v_2; + // (, line 31 + // literal, line 31 + if (!(eq_s_b(1, "e"))) + { + return false; + } + // next, line 31 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // literal, line 31 + if (!(eq_s_b(1, "u"))) + { + return false; + } + } while (false); + return true; + } + + private boolean r_L() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + // (, line 32 + // test, line 32 + v_1 = limit - cursor; + // hop, line 32 + { + int c = cursor - 2; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + cursor = limit - v_1; + // not, line 32 + { + v_2 = limit - cursor; + lab0: do { + // literal, line 32 + if (!(eq_s_b(1, "u"))) + { + break lab0; + } + return false; + } while (false); + cursor = limit - v_2; + } + // not, line 32 + { + v_3 = limit - cursor; + lab1: do { + // literal, line 32 + if (!(eq_s_b(1, "x"))) + { + break lab1; + } + return false; + } while (false); + cursor = limit - v_3; + } + // not, line 32 + { + v_4 = limit - cursor; + lab2: do { + // (, line 32 + // literal, line 32 + if (!(eq_s_b(1, "s"))) + { + break lab2; + } + // not, line 32 + { + v_5 = limit - cursor; + lab3: do { + // literal, line 32 + if (!(eq_s_b(1, "o"))) + { + break lab3; + } + break lab2; + } while (false); + cursor = limit - v_5; + } + return false; + } while (false); + cursor = limit - v_4; + } + return true; + } + + private boolean r_M() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + // (, line 33 + // test, line 33 + v_1 = limit - cursor; + // hop, line 33 + { + int c = cursor - 2; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + cursor = limit - v_1; + // not, line 33 + { + v_2 = limit - cursor; + lab0: do { + // literal, line 33 + if (!(eq_s_b(1, "a"))) + { + break lab0; + } + return false; + } while (false); + cursor = limit - v_2; + } + // not, line 33 + { + v_3 = limit - cursor; + lab1: do { + // literal, line 33 + if (!(eq_s_b(1, "c"))) + { + break lab1; + } + return false; + } while (false); + cursor = limit - v_3; + } + // not, line 33 + { + v_4 = limit - cursor; + lab2: do { + // literal, line 33 + if (!(eq_s_b(1, "e"))) + { + break lab2; + } + return false; + } while (false); + cursor = limit - v_4; + } + // not, line 33 + { + v_5 = limit - cursor; + lab3: do { + // literal, line 33 + if (!(eq_s_b(1, "m"))) + { + break lab3; + } + return false; + } while (false); + cursor = limit - v_5; + } + return true; + } + + private boolean r_N() { + int v_1; + int v_2; + int v_3; + // (, line 34 + // test, line 34 + v_1 = limit - cursor; + // hop, line 34 + { + int c = cursor - 3; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + cursor = limit - v_1; + // (, line 34 + // hop, line 34 + { + int c = cursor - 2; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + // or, line 34 + lab0: do { + v_2 = limit - cursor; + lab1: do { + // not, line 34 + { + v_3 = limit - cursor; + lab2: do { + // literal, line 34 + if (!(eq_s_b(1, "s"))) + { + break lab2; + } + break lab1; + } while (false); + cursor = limit - v_3; + } + break lab0; + } while (false); + cursor = limit - v_2; + // hop, line 34 + { + int c = cursor - 2; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + } while (false); + return true; + } + + private boolean r_O() { + int v_1; + int v_2; + // (, line 35 + // test, line 35 + v_1 = limit - cursor; + // hop, line 35 + { + int c = cursor - 2; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + cursor = limit - v_1; + // or, line 35 + lab0: do { + v_2 = limit - cursor; + lab1: do { + // literal, line 35 + if (!(eq_s_b(1, "l"))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_2; + // literal, line 35 + if (!(eq_s_b(1, "i"))) + { + return false; + } + } while (false); + return true; + } + + private boolean r_P() { + int v_1; + int v_2; + // (, line 36 + // test, line 36 + v_1 = limit - cursor; + // hop, line 36 + { + int c = cursor - 2; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + cursor = limit - v_1; + // not, line 36 + { + v_2 = limit - cursor; + lab0: do { + // literal, line 36 + if (!(eq_s_b(1, "c"))) + { + break lab0; + } + return false; + } while (false); + cursor = limit - v_2; + } + return true; + } + + private boolean r_Q() { + int v_1; + int v_2; + int v_3; + int v_4; + // (, line 37 + // test, line 37 + v_1 = limit - cursor; + // hop, line 37 + { + int c = cursor - 2; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + cursor = limit - v_1; + // test, line 37 + v_2 = limit - cursor; + // hop, line 37 + { + int c = cursor - 3; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + cursor = limit - v_2; + // not, line 37 + { + v_3 = limit - cursor; + lab0: do { + // literal, line 37 + if (!(eq_s_b(1, "l"))) + { + break lab0; + } + return false; + } while (false); + cursor = limit - v_3; + } + // not, line 37 + { + v_4 = limit - cursor; + lab1: do { + // literal, line 37 + if (!(eq_s_b(1, "n"))) + { + break lab1; + } + return false; + } while (false); + cursor = limit - v_4; + } + return true; + } + + private boolean r_R() { + int v_1; + int v_2; + // (, line 38 + // test, line 38 + v_1 = limit - cursor; + // hop, line 38 + { + int c = cursor - 2; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + cursor = limit - v_1; + // or, line 38 + lab0: do { + v_2 = limit - cursor; + lab1: do { + // literal, line 38 + if (!(eq_s_b(1, "n"))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_2; + // literal, line 38 + if (!(eq_s_b(1, "r"))) + { + return false; + } + } while (false); + return true; + } + + private boolean r_S() { + int v_1; + int v_2; + int v_3; + // (, line 39 + // test, line 39 + v_1 = limit - cursor; + // hop, line 39 + { + int c = cursor - 2; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + cursor = limit - v_1; + // or, line 39 + lab0: do { + v_2 = limit - cursor; + lab1: do { + // literal, line 39 + if (!(eq_s_b(2, "dr"))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_2; + // (, line 39 + // literal, line 39 + if (!(eq_s_b(1, "t"))) + { + return false; + } + // not, line 39 + { + v_3 = limit - cursor; + lab2: do { + // literal, line 39 + if (!(eq_s_b(1, "t"))) + { + break lab2; + } + return false; + } while (false); + cursor = limit - v_3; + } + } while (false); + return true; + } + + private boolean r_T() { + int v_1; + int v_2; + int v_3; + // (, line 40 + // test, line 40 + v_1 = limit - cursor; + // hop, line 40 + { + int c = cursor - 2; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + cursor = limit - v_1; + // or, line 40 + lab0: do { + v_2 = limit - cursor; + lab1: do { + // literal, line 40 + if (!(eq_s_b(1, "s"))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_2; + // (, line 40 + // literal, line 40 + if (!(eq_s_b(1, "t"))) + { + return false; + } + // not, line 40 + { + v_3 = limit - cursor; + lab2: do { + // literal, line 40 + if (!(eq_s_b(1, "o"))) + { + break lab2; + } + return false; + } while (false); + cursor = limit - v_3; + } + } while (false); + return true; + } + + private boolean r_U() { + int v_1; + int v_2; + // (, line 41 + // test, line 41 + v_1 = limit - cursor; + // hop, line 41 + { + int c = cursor - 2; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + cursor = limit - v_1; + // or, line 41 + lab0: do { + v_2 = limit - cursor; + lab1: do { + // literal, line 41 + if (!(eq_s_b(1, "l"))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_2; + lab2: do { + // literal, line 41 + if (!(eq_s_b(1, "m"))) + { + break lab2; + } + break lab0; + } while (false); + cursor = limit - v_2; + lab3: do { + // literal, line 41 + if (!(eq_s_b(1, "n"))) + { + break lab3; + } + break lab0; + } while (false); + cursor = limit - v_2; + // literal, line 41 + if (!(eq_s_b(1, "r"))) + { + return false; + } + } while (false); + return true; + } + + private boolean r_V() { + int v_1; + // (, line 42 + // test, line 42 + v_1 = limit - cursor; + // hop, line 42 + { + int c = cursor - 2; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + cursor = limit - v_1; + // literal, line 42 + if (!(eq_s_b(1, "c"))) + { + return false; + } + return true; + } + + private boolean r_W() { + int v_1; + int v_2; + int v_3; + // (, line 43 + // test, line 43 + v_1 = limit - cursor; + // hop, line 43 + { + int c = cursor - 2; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + cursor = limit - v_1; + // not, line 43 + { + v_2 = limit - cursor; + lab0: do { + // literal, line 43 + if (!(eq_s_b(1, "s"))) + { + break lab0; + } + return false; + } while (false); + cursor = limit - v_2; + } + // not, line 43 + { + v_3 = limit - cursor; + lab1: do { + // literal, line 43 + if (!(eq_s_b(1, "u"))) + { + break lab1; + } + return false; + } while (false); + cursor = limit - v_3; + } + return true; + } + + private boolean r_X() { + int v_1; + int v_2; + // (, line 44 + // test, line 44 + v_1 = limit - cursor; + // hop, line 44 + { + int c = cursor - 2; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + cursor = limit - v_1; + // or, line 44 + lab0: do { + v_2 = limit - cursor; + lab1: do { + // literal, line 44 + if (!(eq_s_b(1, "l"))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_2; + lab2: do { + // literal, line 44 + if (!(eq_s_b(1, "i"))) + { + break lab2; + } + break lab0; + } while (false); + cursor = limit - v_2; + // (, line 44 + // literal, line 44 + if (!(eq_s_b(1, "e"))) + { + return false; + } + // next, line 44 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // literal, line 44 + if (!(eq_s_b(1, "u"))) + { + return false; + } + } while (false); + return true; + } + + private boolean r_Y() { + int v_1; + // (, line 45 + // test, line 45 + v_1 = limit - cursor; + // hop, line 45 + { + int c = cursor - 2; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + cursor = limit - v_1; + // literal, line 45 + if (!(eq_s_b(2, "in"))) + { + return false; + } + return true; + } + + private boolean r_Z() { + int v_1; + int v_2; + // (, line 46 + // test, line 46 + v_1 = limit - cursor; + // hop, line 46 + { + int c = cursor - 2; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + cursor = limit - v_1; + // not, line 46 + { + v_2 = limit - cursor; + lab0: do { + // literal, line 46 + if (!(eq_s_b(1, "f"))) + { + break lab0; + } + return false; + } while (false); + cursor = limit - v_2; + } + return true; + } + + private boolean r_AA() { + int v_1; + // (, line 47 + // test, line 47 + v_1 = limit - cursor; + // hop, line 47 + { + int c = cursor - 2; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + cursor = limit - v_1; + // among, line 47 + if (find_among_b(a_0, 9) == 0) + { + return false; + } + return true; + } + + private boolean r_BB() { + int v_1; + int v_2; + int v_3; + // (, line 49 + // test, line 49 + v_1 = limit - cursor; + // hop, line 49 + { + int c = cursor - 3; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + cursor = limit - v_1; + // not, line 49 + { + v_2 = limit - cursor; + lab0: do { + // literal, line 49 + if (!(eq_s_b(3, "met"))) + { + break lab0; + } + return false; + } while (false); + cursor = limit - v_2; + } + // not, line 49 + { + v_3 = limit - cursor; + lab1: do { + // literal, line 49 + if (!(eq_s_b(4, "ryst"))) + { + break lab1; + } + return false; + } while (false); + cursor = limit - v_3; + } + return true; + } + + private boolean r_CC() { + int v_1; + // (, line 50 + // test, line 50 + v_1 = limit - cursor; + // hop, line 50 + { + int c = cursor - 2; + if (limit_backward > c || c > limit) + { + return false; + } + cursor = c; + } + cursor = limit - v_1; + // literal, line 50 + if (!(eq_s_b(1, "l"))) + { + return false; + } + return true; + } + + private boolean r_endings() { + int among_var; + // (, line 55 + // [, line 56 + ket = cursor; + // substring, line 56 + among_var = find_among_b(a_1, 294); + if (among_var == 0) + { + return false; + } + // ], line 56 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 145 + // delete, line 145 + slice_del(); + break; + } + return true; + } + + private boolean r_undouble() { + int v_1; + // (, line 151 + // test, line 152 + v_1 = limit - cursor; + // substring, line 152 + if (find_among_b(a_2, 10) == 0) + { + return false; + } + cursor = limit - v_1; + // [, line 154 + ket = cursor; + // next, line 154 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // ], line 154 + bra = cursor; + // delete, line 154 + slice_del(); + return true; + } + + private boolean r_respell() { + int among_var; + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + int v_7; + int v_8; + // (, line 159 + // [, line 160 + ket = cursor; + // substring, line 160 + among_var = find_among_b(a_3, 34); + if (among_var == 0) + { + return false; + } + // ], line 160 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 161 + // <-, line 161 + slice_from("ief"); + break; + case 2: + // (, line 162 + // <-, line 162 + slice_from("uc"); + break; + case 3: + // (, line 163 + // <-, line 163 + slice_from("um"); + break; + case 4: + // (, line 164 + // <-, line 164 + slice_from("rb"); + break; + case 5: + // (, line 165 + // <-, line 165 + slice_from("ur"); + break; + case 6: + // (, line 166 + // <-, line 166 + slice_from("ister"); + break; + case 7: + // (, line 167 + // <-, line 167 + slice_from("meter"); + break; + case 8: + // (, line 168 + // <-, line 168 + slice_from("olut"); + break; + case 9: + // (, line 169 + // not, line 169 + { + v_1 = limit - cursor; + lab0: do { + // literal, line 169 + if (!(eq_s_b(1, "a"))) + { + break lab0; + } + return false; + } while (false); + cursor = limit - v_1; + } + // not, line 169 + { + v_2 = limit - cursor; + lab1: do { + // literal, line 169 + if (!(eq_s_b(1, "i"))) + { + break lab1; + } + return false; + } while (false); + cursor = limit - v_2; + } + // not, line 169 + { + v_3 = limit - cursor; + lab2: do { + // literal, line 169 + if (!(eq_s_b(1, "o"))) + { + break lab2; + } + return false; + } while (false); + cursor = limit - v_3; + } + // <-, line 169 + slice_from("l"); + break; + case 10: + // (, line 170 + // <-, line 170 + slice_from("bic"); + break; + case 11: + // (, line 171 + // <-, line 171 + slice_from("dic"); + break; + case 12: + // (, line 172 + // <-, line 172 + slice_from("pic"); + break; + case 13: + // (, line 173 + // <-, line 173 + slice_from("tic"); + break; + case 14: + // (, line 174 + // <-, line 174 + slice_from("ac"); + break; + case 15: + // (, line 175 + // <-, line 175 + slice_from("ec"); + break; + case 16: + // (, line 176 + // <-, line 176 + slice_from("ic"); + break; + case 17: + // (, line 177 + // <-, line 177 + slice_from("luc"); + break; + case 18: + // (, line 178 + // <-, line 178 + slice_from("uas"); + break; + case 19: + // (, line 179 + // <-, line 179 + slice_from("vas"); + break; + case 20: + // (, line 180 + // <-, line 180 + slice_from("cis"); + break; + case 21: + // (, line 181 + // <-, line 181 + slice_from("lis"); + break; + case 22: + // (, line 182 + // <-, line 182 + slice_from("eris"); + break; + case 23: + // (, line 183 + // <-, line 183 + slice_from("pans"); + break; + case 24: + // (, line 184 + // not, line 184 + { + v_4 = limit - cursor; + lab3: do { + // literal, line 184 + if (!(eq_s_b(1, "s"))) + { + break lab3; + } + return false; + } while (false); + cursor = limit - v_4; + } + // <-, line 184 + slice_from("ens"); + break; + case 25: + // (, line 185 + // <-, line 185 + slice_from("ons"); + break; + case 26: + // (, line 186 + // <-, line 186 + slice_from("lus"); + break; + case 27: + // (, line 187 + // <-, line 187 + slice_from("rus"); + break; + case 28: + // (, line 188 + // not, line 188 + { + v_5 = limit - cursor; + lab4: do { + // literal, line 188 + if (!(eq_s_b(1, "p"))) + { + break lab4; + } + return false; + } while (false); + cursor = limit - v_5; + } + // not, line 188 + { + v_6 = limit - cursor; + lab5: do { + // literal, line 188 + if (!(eq_s_b(1, "t"))) + { + break lab5; + } + return false; + } while (false); + cursor = limit - v_6; + } + // <-, line 188 + slice_from("hes"); + break; + case 29: + // (, line 189 + // <-, line 189 + slice_from("mis"); + break; + case 30: + // (, line 190 + // not, line 190 + { + v_7 = limit - cursor; + lab6: do { + // literal, line 190 + if (!(eq_s_b(1, "m"))) + { + break lab6; + } + return false; + } while (false); + cursor = limit - v_7; + } + // <-, line 190 + slice_from("ens"); + break; + case 31: + // (, line 192 + // <-, line 192 + slice_from("ers"); + break; + case 32: + // (, line 193 + // not, line 193 + { + v_8 = limit - cursor; + lab7: do { + // literal, line 193 + if (!(eq_s_b(1, "n"))) + { + break lab7; + } + return false; + } while (false); + cursor = limit - v_8; + } + // <-, line 193 + slice_from("es"); + break; + case 33: + // (, line 194 + // <-, line 194 + slice_from("ys"); + break; + case 34: + // (, line 195 + // <-, line 195 + slice_from("ys"); + break; + } + return true; + } + + public boolean stem() { + int v_1; + int v_2; + int v_3; + // (, line 200 + // backwards, line 202 + limit_backward = cursor; cursor = limit; + // (, line 202 + // do, line 203 + v_1 = limit - cursor; + lab0: do { + // call endings, line 203 + if (!r_endings()) + { + break lab0; + } + } while (false); + cursor = limit - v_1; + // do, line 204 + v_2 = limit - cursor; + lab1: do { + // call undouble, line 204 + if (!r_undouble()) + { + break lab1; + } + } while (false); + cursor = limit - v_2; + // do, line 205 + v_3 = limit - cursor; + lab2: do { + // call respell, line 205 + if (!r_respell()) + { + break lab2; + } + } while (false); + cursor = limit - v_3; + cursor = limit_backward; return true; + } + +} + Index: contrib/snowball/src/java/org/tartarus/snowball/ext/KpStemmer.java =================================================================== --- contrib/snowball/src/java/org/tartarus/snowball/ext/KpStemmer.java (revision 0) +++ contrib/snowball/src/java/org/tartarus/snowball/ext/KpStemmer.java (revision 0) @@ -0,0 +1,2181 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; +import org.tartarus.snowball.SnowballProgram; +import org.tartarus.snowball.Among; + +/** + * Generated class implementing code defined by a snowball script. + */ +public class KpStemmer extends SnowballProgram { + + private Among a_0[] = { + new Among ( "nde", -1, 7, "", this), + new Among ( "en", -1, 6, "", this), + new Among ( "s", -1, 2, "", this), + new Among ( "'s", 2, 1, "", this), + new Among ( "es", 2, 4, "", this), + new Among ( "ies", 4, 3, "", this), + new Among ( "aus", 2, 5, "", this) + }; + + private Among a_1[] = { + new Among ( "de", -1, 5, "", this), + new Among ( "ge", -1, 2, "", this), + new Among ( "ische", -1, 4, "", this), + new Among ( "je", -1, 1, "", this), + new Among ( "lijke", -1, 3, "", this), + new Among ( "le", -1, 9, "", this), + new Among ( "ene", -1, 10, "", this), + new Among ( "re", -1, 8, "", this), + new Among ( "se", -1, 7, "", this), + new Among ( "te", -1, 6, "", this), + new Among ( "ieve", -1, 11, "", this) + }; + + private Among a_2[] = { + new Among ( "heid", -1, 3, "", this), + new Among ( "fie", -1, 7, "", this), + new Among ( "gie", -1, 8, "", this), + new Among ( "atie", -1, 1, "", this), + new Among ( "isme", -1, 5, "", this), + new Among ( "ing", -1, 5, "", this), + new Among ( "arij", -1, 6, "", this), + new Among ( "erij", -1, 5, "", this), + new Among ( "sel", -1, 3, "", this), + new Among ( "rder", -1, 4, "", this), + new Among ( "ster", -1, 3, "", this), + new Among ( "iteit", -1, 2, "", this), + new Among ( "dst", -1, 10, "", this), + new Among ( "tst", -1, 9, "", this) + }; + + private Among a_3[] = { + new Among ( "end", -1, 10, "", this), + new Among ( "atief", -1, 2, "", this), + new Among ( "erig", -1, 10, "", this), + new Among ( "achtig", -1, 9, "", this), + new Among ( "ioneel", -1, 1, "", this), + new Among ( "baar", -1, 3, "", this), + new Among ( "laar", -1, 5, "", this), + new Among ( "naar", -1, 4, "", this), + new Among ( "raar", -1, 6, "", this), + new Among ( "eriger", -1, 10, "", this), + new Among ( "achtiger", -1, 9, "", this), + new Among ( "lijker", -1, 8, "", this), + new Among ( "tant", -1, 7, "", this), + new Among ( "erigst", -1, 10, "", this), + new Among ( "achtigst", -1, 9, "", this), + new Among ( "lijkst", -1, 8, "", this) + }; + + private Among a_4[] = { + new Among ( "ig", -1, 1, "", this), + new Among ( "iger", -1, 1, "", this), + new Among ( "igst", -1, 1, "", this) + }; + + private Among a_5[] = { + new Among ( "ft", -1, 2, "", this), + new Among ( "kt", -1, 1, "", this), + new Among ( "pt", -1, 3, "", this) + }; + + private Among a_6[] = { + new Among ( "bb", -1, 1, "", this), + new Among ( "cc", -1, 2, "", this), + new Among ( "dd", -1, 3, "", this), + new Among ( "ff", -1, 4, "", this), + new Among ( "gg", -1, 5, "", this), + new Among ( "hh", -1, 6, "", this), + new Among ( "jj", -1, 7, "", this), + new Among ( "kk", -1, 8, "", this), + new Among ( "ll", -1, 9, "", this), + new Among ( "mm", -1, 10, "", this), + new Among ( "nn", -1, 11, "", this), + new Among ( "pp", -1, 12, "", this), + new Among ( "qq", -1, 13, "", this), + new Among ( "rr", -1, 14, "", this), + new Among ( "ss", -1, 15, "", this), + new Among ( "tt", -1, 16, "", this), + new Among ( "v", -1, 21, "", this), + new Among ( "vv", 16, 17, "", this), + new Among ( "ww", -1, 18, "", this), + new Among ( "xx", -1, 19, "", this), + new Among ( "z", -1, 22, "", this), + new Among ( "zz", 20, 20, "", this) + }; + + private Among a_7[] = { + new Among ( "d", -1, 1, "", this), + new Among ( "t", -1, 2, "", this) + }; + + private static final char g_v[] = {17, 65, 16, 1 }; + + private static final char g_v_WX[] = {17, 65, 208, 1 }; + + private static final char g_AOU[] = {1, 64, 16 }; + + private static final char g_AIOU[] = {1, 65, 16 }; + + private boolean B_GE_removed; + private boolean B_stemmed; + private boolean B_Y_found; + private int I_p2; + private int I_p1; + private int I_x; + private StringBuffer S_ch = new StringBuffer(); + + private void copy_from(KpStemmer other) { + B_GE_removed = other.B_GE_removed; + B_stemmed = other.B_stemmed; + B_Y_found = other.B_Y_found; + I_p2 = other.I_p2; + I_p1 = other.I_p1; + I_x = other.I_x; + S_ch = other.S_ch; + super.copy_from(other); + } + + private boolean r_R1() { + // (, line 32 + // setmark x, line 32 + I_x = cursor; + if (!(I_x >= I_p1)) + { + return false; + } + return true; + } + + private boolean r_R2() { + // (, line 33 + // setmark x, line 33 + I_x = cursor; + if (!(I_x >= I_p2)) + { + return false; + } + return true; + } + + private boolean r_V() { + int v_1; + int v_2; + // test, line 35 + v_1 = limit - cursor; + // (, line 35 + // or, line 35 + lab0: do { + v_2 = limit - cursor; + lab1: do { + if (!(in_grouping_b(g_v, 97, 121))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_2; + // literal, line 35 + if (!(eq_s_b(2, "ij"))) + { + return false; + } + } while (false); + cursor = limit - v_1; + return true; + } + + private boolean r_VX() { + int v_1; + int v_2; + // test, line 36 + v_1 = limit - cursor; + // (, line 36 + // next, line 36 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // or, line 36 + lab0: do { + v_2 = limit - cursor; + lab1: do { + if (!(in_grouping_b(g_v, 97, 121))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_2; + // literal, line 36 + if (!(eq_s_b(2, "ij"))) + { + return false; + } + } while (false); + cursor = limit - v_1; + return true; + } + + private boolean r_C() { + int v_1; + int v_2; + // test, line 37 + v_1 = limit - cursor; + // (, line 37 + // not, line 37 + { + v_2 = limit - cursor; + lab0: do { + // literal, line 37 + if (!(eq_s_b(2, "ij"))) + { + break lab0; + } + return false; + } while (false); + cursor = limit - v_2; + } + if (!(out_grouping_b(g_v, 97, 121))) + { + return false; + } + cursor = limit - v_1; + return true; + } + + private boolean r_lengthen_V() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + int v_7; + int v_8; + // do, line 39 + v_1 = limit - cursor; + lab0: do { + // (, line 39 + if (!(out_grouping_b(g_v_WX, 97, 121))) + { + break lab0; + } + // [, line 40 + ket = cursor; + // or, line 40 + lab1: do { + v_2 = limit - cursor; + lab2: do { + // (, line 40 + if (!(in_grouping_b(g_AOU, 97, 117))) + { + break lab2; + } + // ], line 40 + bra = cursor; + // test, line 40 + v_3 = limit - cursor; + // (, line 40 + // or, line 40 + lab3: do { + v_4 = limit - cursor; + lab4: do { + if (!(out_grouping_b(g_v, 97, 121))) + { + break lab4; + } + break lab3; + } while (false); + cursor = limit - v_4; + // atlimit, line 40 + if (cursor > limit_backward) + { + break lab2; + } + } while (false); + cursor = limit - v_3; + break lab1; + } while (false); + cursor = limit - v_2; + // (, line 41 + // literal, line 41 + if (!(eq_s_b(1, "e"))) + { + break lab0; + } + // ], line 41 + bra = cursor; + // test, line 41 + v_5 = limit - cursor; + // (, line 41 + // or, line 41 + lab5: do { + v_6 = limit - cursor; + lab6: do { + if (!(out_grouping_b(g_v, 97, 121))) + { + break lab6; + } + break lab5; + } while (false); + cursor = limit - v_6; + // atlimit, line 41 + if (cursor > limit_backward) + { + break lab0; + } + } while (false); + // not, line 42 + { + v_7 = limit - cursor; + lab7: do { + if (!(in_grouping_b(g_AIOU, 97, 117))) + { + break lab7; + } + break lab0; + } while (false); + cursor = limit - v_7; + } + // not, line 43 + { + v_8 = limit - cursor; + lab8: do { + // (, line 43 + // next, line 43 + if (cursor <= limit_backward) + { + break lab8; + } + cursor--; + if (!(in_grouping_b(g_AIOU, 97, 117))) + { + break lab8; + } + if (!(out_grouping_b(g_v, 97, 121))) + { + break lab8; + } + break lab0; + } while (false); + cursor = limit - v_8; + } + cursor = limit - v_5; + } while (false); + // -> ch, line 44 + S_ch = slice_to(S_ch); + // <+ ch, line 44 + { + int c = cursor; + insert(cursor, cursor, S_ch); + cursor = c; + } + } while (false); + cursor = limit - v_1; + return true; + } + + private boolean r_Step_1() { + int among_var; + int v_1; + int v_2; + int v_3; + int v_4; + // (, line 48 + // [, line 49 + ket = cursor; + // among, line 49 + among_var = find_among_b(a_0, 7); + if (among_var == 0) + { + return false; + } + // (, line 49 + // ], line 49 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 51 + // delete, line 51 + slice_del(); + break; + case 2: + // (, line 52 + // call R1, line 52 + if (!r_R1()) + { + return false; + } + // not, line 52 + { + v_1 = limit - cursor; + lab0: do { + // (, line 52 + // literal, line 52 + if (!(eq_s_b(1, "t"))) + { + break lab0; + } + // call R1, line 52 + if (!r_R1()) + { + break lab0; + } + return false; + } while (false); + cursor = limit - v_1; + } + // call C, line 52 + if (!r_C()) + { + return false; + } + // delete, line 52 + slice_del(); + break; + case 3: + // (, line 53 + // call R1, line 53 + if (!r_R1()) + { + return false; + } + // <-, line 53 + slice_from("ie"); + break; + case 4: + // (, line 55 + // or, line 55 + lab1: do { + v_2 = limit - cursor; + lab2: do { + // (, line 55 + // literal, line 55 + if (!(eq_s_b(2, "ar"))) + { + break lab2; + } + // call R1, line 55 + if (!r_R1()) + { + break lab2; + } + // call C, line 55 + if (!r_C()) + { + break lab2; + } + // ], line 55 + bra = cursor; + // delete, line 55 + slice_del(); + // call lengthen_V, line 55 + if (!r_lengthen_V()) + { + break lab2; + } + break lab1; + } while (false); + cursor = limit - v_2; + lab3: do { + // (, line 56 + // literal, line 56 + if (!(eq_s_b(2, "er"))) + { + break lab3; + } + // call R1, line 56 + if (!r_R1()) + { + break lab3; + } + // call C, line 56 + if (!r_C()) + { + break lab3; + } + // ], line 56 + bra = cursor; + // delete, line 56 + slice_del(); + break lab1; + } while (false); + cursor = limit - v_2; + // (, line 57 + // call R1, line 57 + if (!r_R1()) + { + return false; + } + // call C, line 57 + if (!r_C()) + { + return false; + } + // <-, line 57 + slice_from("e"); + } while (false); + break; + case 5: + // (, line 59 + // call R1, line 59 + if (!r_R1()) + { + return false; + } + // call V, line 59 + if (!r_V()) + { + return false; + } + // <-, line 59 + slice_from("au"); + break; + case 6: + // (, line 60 + // or, line 60 + lab4: do { + v_3 = limit - cursor; + lab5: do { + // (, line 60 + // literal, line 60 + if (!(eq_s_b(3, "hed"))) + { + break lab5; + } + // call R1, line 60 + if (!r_R1()) + { + break lab5; + } + // ], line 60 + bra = cursor; + // <-, line 60 + slice_from("heid"); + break lab4; + } while (false); + cursor = limit - v_3; + lab6: do { + // (, line 61 + // literal, line 61 + if (!(eq_s_b(2, "nd"))) + { + break lab6; + } + // delete, line 61 + slice_del(); + break lab4; + } while (false); + cursor = limit - v_3; + lab7: do { + // (, line 62 + // literal, line 62 + if (!(eq_s_b(1, "d"))) + { + break lab7; + } + // call R1, line 62 + if (!r_R1()) + { + break lab7; + } + // call C, line 62 + if (!r_C()) + { + break lab7; + } + // ], line 62 + bra = cursor; + // delete, line 62 + slice_del(); + break lab4; + } while (false); + cursor = limit - v_3; + lab8: do { + // (, line 63 + // or, line 63 + lab9: do { + v_4 = limit - cursor; + lab10: do { + // literal, line 63 + if (!(eq_s_b(1, "i"))) + { + break lab10; + } + break lab9; + } while (false); + cursor = limit - v_4; + // literal, line 63 + if (!(eq_s_b(1, "j"))) + { + break lab8; + } + } while (false); + // call V, line 63 + if (!r_V()) + { + break lab8; + } + // delete, line 63 + slice_del(); + break lab4; + } while (false); + cursor = limit - v_3; + // (, line 64 + // call R1, line 64 + if (!r_R1()) + { + return false; + } + // call C, line 64 + if (!r_C()) + { + return false; + } + // delete, line 64 + slice_del(); + // call lengthen_V, line 64 + if (!r_lengthen_V()) + { + return false; + } + } while (false); + break; + case 7: + // (, line 65 + // <-, line 65 + slice_from("nd"); + break; + } + return true; + } + + private boolean r_Step_2() { + int among_var; + int v_1; + // (, line 70 + // [, line 71 + ket = cursor; + // among, line 71 + among_var = find_among_b(a_1, 11); + if (among_var == 0) + { + return false; + } + // (, line 71 + // ], line 71 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 72 + // or, line 72 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // (, line 72 + // literal, line 72 + if (!(eq_s_b(2, "'t"))) + { + break lab1; + } + // ], line 72 + bra = cursor; + // delete, line 72 + slice_del(); + break lab0; + } while (false); + cursor = limit - v_1; + lab2: do { + // (, line 73 + // literal, line 73 + if (!(eq_s_b(2, "et"))) + { + break lab2; + } + // ], line 73 + bra = cursor; + // call R1, line 73 + if (!r_R1()) + { + break lab2; + } + // call C, line 73 + if (!r_C()) + { + break lab2; + } + // delete, line 73 + slice_del(); + break lab0; + } while (false); + cursor = limit - v_1; + lab3: do { + // (, line 74 + // literal, line 74 + if (!(eq_s_b(3, "rnt"))) + { + break lab3; + } + // ], line 74 + bra = cursor; + // <-, line 74 + slice_from("rn"); + break lab0; + } while (false); + cursor = limit - v_1; + lab4: do { + // (, line 75 + // literal, line 75 + if (!(eq_s_b(1, "t"))) + { + break lab4; + } + // ], line 75 + bra = cursor; + // call R1, line 75 + if (!r_R1()) + { + break lab4; + } + // call VX, line 75 + if (!r_VX()) + { + break lab4; + } + // delete, line 75 + slice_del(); + break lab0; + } while (false); + cursor = limit - v_1; + lab5: do { + // (, line 76 + // literal, line 76 + if (!(eq_s_b(3, "ink"))) + { + break lab5; + } + // ], line 76 + bra = cursor; + // <-, line 76 + slice_from("ing"); + break lab0; + } while (false); + cursor = limit - v_1; + lab6: do { + // (, line 77 + // literal, line 77 + if (!(eq_s_b(2, "mp"))) + { + break lab6; + } + // ], line 77 + bra = cursor; + // <-, line 77 + slice_from("m"); + break lab0; + } while (false); + cursor = limit - v_1; + lab7: do { + // (, line 78 + // literal, line 78 + if (!(eq_s_b(1, "'"))) + { + break lab7; + } + // ], line 78 + bra = cursor; + // call R1, line 78 + if (!r_R1()) + { + break lab7; + } + // delete, line 78 + slice_del(); + break lab0; + } while (false); + cursor = limit - v_1; + // (, line 79 + // ], line 79 + bra = cursor; + // call R1, line 79 + if (!r_R1()) + { + return false; + } + // call C, line 79 + if (!r_C()) + { + return false; + } + // delete, line 79 + slice_del(); + } while (false); + break; + case 2: + // (, line 80 + // call R1, line 80 + if (!r_R1()) + { + return false; + } + // <-, line 80 + slice_from("g"); + break; + case 3: + // (, line 81 + // call R1, line 81 + if (!r_R1()) + { + return false; + } + // <-, line 81 + slice_from("lijk"); + break; + case 4: + // (, line 82 + // call R1, line 82 + if (!r_R1()) + { + return false; + } + // <-, line 82 + slice_from("isch"); + break; + case 5: + // (, line 83 + // call R1, line 83 + if (!r_R1()) + { + return false; + } + // call C, line 83 + if (!r_C()) + { + return false; + } + // delete, line 83 + slice_del(); + break; + case 6: + // (, line 84 + // call R1, line 84 + if (!r_R1()) + { + return false; + } + // <-, line 84 + slice_from("t"); + break; + case 7: + // (, line 85 + // call R1, line 85 + if (!r_R1()) + { + return false; + } + // <-, line 85 + slice_from("s"); + break; + case 8: + // (, line 86 + // call R1, line 86 + if (!r_R1()) + { + return false; + } + // <-, line 86 + slice_from("r"); + break; + case 9: + // (, line 87 + // call R1, line 87 + if (!r_R1()) + { + return false; + } + // delete, line 87 + slice_del(); + // attach, line 87 + insert(cursor, cursor, "l"); + // call lengthen_V, line 87 + if (!r_lengthen_V()) + { + return false; + } + break; + case 10: + // (, line 88 + // call R1, line 88 + if (!r_R1()) + { + return false; + } + // call C, line 88 + if (!r_C()) + { + return false; + } + // delete, line 88 + slice_del(); + // attach, line 88 + insert(cursor, cursor, "en"); + // call lengthen_V, line 88 + if (!r_lengthen_V()) + { + return false; + } + break; + case 11: + // (, line 89 + // call R1, line 89 + if (!r_R1()) + { + return false; + } + // call C, line 89 + if (!r_C()) + { + return false; + } + // <-, line 89 + slice_from("ief"); + break; + } + return true; + } + + private boolean r_Step_3() { + int among_var; + // (, line 94 + // [, line 95 + ket = cursor; + // among, line 95 + among_var = find_among_b(a_2, 14); + if (among_var == 0) + { + return false; + } + // (, line 95 + // ], line 95 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 96 + // call R1, line 96 + if (!r_R1()) + { + return false; + } + // <-, line 96 + slice_from("eer"); + break; + case 2: + // (, line 97 + // call R1, line 97 + if (!r_R1()) + { + return false; + } + // delete, line 97 + slice_del(); + // call lengthen_V, line 97 + if (!r_lengthen_V()) + { + return false; + } + break; + case 3: + // (, line 100 + // call R1, line 100 + if (!r_R1()) + { + return false; + } + // delete, line 100 + slice_del(); + break; + case 4: + // (, line 101 + // <-, line 101 + slice_from("r"); + break; + case 5: + // (, line 104 + // call R1, line 104 + if (!r_R1()) + { + return false; + } + // delete, line 104 + slice_del(); + // call lengthen_V, line 104 + if (!r_lengthen_V()) + { + return false; + } + break; + case 6: + // (, line 105 + // call R1, line 105 + if (!r_R1()) + { + return false; + } + // call C, line 105 + if (!r_C()) + { + return false; + } + // <-, line 105 + slice_from("aar"); + break; + case 7: + // (, line 106 + // call R2, line 106 + if (!r_R2()) + { + return false; + } + // delete, line 106 + slice_del(); + // attach, line 106 + insert(cursor, cursor, "f"); + // call lengthen_V, line 106 + if (!r_lengthen_V()) + { + return false; + } + break; + case 8: + // (, line 107 + // call R2, line 107 + if (!r_R2()) + { + return false; + } + // delete, line 107 + slice_del(); + // attach, line 107 + insert(cursor, cursor, "g"); + // call lengthen_V, line 107 + if (!r_lengthen_V()) + { + return false; + } + break; + case 9: + // (, line 108 + // call R1, line 108 + if (!r_R1()) + { + return false; + } + // call C, line 108 + if (!r_C()) + { + return false; + } + // <-, line 108 + slice_from("t"); + break; + case 10: + // (, line 109 + // call R1, line 109 + if (!r_R1()) + { + return false; + } + // call C, line 109 + if (!r_C()) + { + return false; + } + // <-, line 109 + slice_from("d"); + break; + } + return true; + } + + private boolean r_Step_4() { + int among_var; + int v_1; + // (, line 114 + // or, line 134 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // (, line 115 + // [, line 115 + ket = cursor; + // among, line 115 + among_var = find_among_b(a_3, 16); + if (among_var == 0) + { + break lab1; + } + // (, line 115 + // ], line 115 + bra = cursor; + switch(among_var) { + case 0: + break lab1; + case 1: + // (, line 116 + // call R1, line 116 + if (!r_R1()) + { + break lab1; + } + // <-, line 116 + slice_from("ie"); + break; + case 2: + // (, line 117 + // call R1, line 117 + if (!r_R1()) + { + break lab1; + } + // <-, line 117 + slice_from("eer"); + break; + case 3: + // (, line 118 + // call R1, line 118 + if (!r_R1()) + { + break lab1; + } + // delete, line 118 + slice_del(); + break; + case 4: + // (, line 119 + // call R1, line 119 + if (!r_R1()) + { + break lab1; + } + // call V, line 119 + if (!r_V()) + { + break lab1; + } + // <-, line 119 + slice_from("n"); + break; + case 5: + // (, line 120 + // call R1, line 120 + if (!r_R1()) + { + break lab1; + } + // call V, line 120 + if (!r_V()) + { + break lab1; + } + // <-, line 120 + slice_from("l"); + break; + case 6: + // (, line 121 + // call R1, line 121 + if (!r_R1()) + { + break lab1; + } + // call V, line 121 + if (!r_V()) + { + break lab1; + } + // <-, line 121 + slice_from("r"); + break; + case 7: + // (, line 122 + // call R1, line 122 + if (!r_R1()) + { + break lab1; + } + // <-, line 122 + slice_from("teer"); + break; + case 8: + // (, line 124 + // call R1, line 124 + if (!r_R1()) + { + break lab1; + } + // <-, line 124 + slice_from("lijk"); + break; + case 9: + // (, line 127 + // call R1, line 127 + if (!r_R1()) + { + break lab1; + } + // delete, line 127 + slice_del(); + break; + case 10: + // (, line 131 + // call R1, line 131 + if (!r_R1()) + { + break lab1; + } + // call C, line 131 + if (!r_C()) + { + break lab1; + } + // delete, line 131 + slice_del(); + // call lengthen_V, line 131 + if (!r_lengthen_V()) + { + break lab1; + } + break; + } + break lab0; + } while (false); + cursor = limit - v_1; + // (, line 135 + // [, line 135 + ket = cursor; + // among, line 135 + among_var = find_among_b(a_4, 3); + if (among_var == 0) + { + return false; + } + // (, line 135 + // ], line 135 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 138 + // call R1, line 138 + if (!r_R1()) + { + return false; + } + // call C, line 138 + if (!r_C()) + { + return false; + } + // delete, line 138 + slice_del(); + // call lengthen_V, line 138 + if (!r_lengthen_V()) + { + return false; + } + break; + } + } while (false); + return true; + } + + private boolean r_Step_7() { + int among_var; + // (, line 144 + // [, line 145 + ket = cursor; + // among, line 145 + among_var = find_among_b(a_5, 3); + if (among_var == 0) + { + return false; + } + // (, line 145 + // ], line 145 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 146 + // <-, line 146 + slice_from("k"); + break; + case 2: + // (, line 147 + // <-, line 147 + slice_from("f"); + break; + case 3: + // (, line 148 + // <-, line 148 + slice_from("p"); + break; + } + return true; + } + + private boolean r_Step_6() { + int among_var; + // (, line 153 + // [, line 154 + ket = cursor; + // among, line 154 + among_var = find_among_b(a_6, 22); + if (among_var == 0) + { + return false; + } + // (, line 154 + // ], line 154 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 155 + // <-, line 155 + slice_from("b"); + break; + case 2: + // (, line 156 + // <-, line 156 + slice_from("c"); + break; + case 3: + // (, line 157 + // <-, line 157 + slice_from("d"); + break; + case 4: + // (, line 158 + // <-, line 158 + slice_from("f"); + break; + case 5: + // (, line 159 + // <-, line 159 + slice_from("g"); + break; + case 6: + // (, line 160 + // <-, line 160 + slice_from("h"); + break; + case 7: + // (, line 161 + // <-, line 161 + slice_from("j"); + break; + case 8: + // (, line 162 + // <-, line 162 + slice_from("k"); + break; + case 9: + // (, line 163 + // <-, line 163 + slice_from("l"); + break; + case 10: + // (, line 164 + // <-, line 164 + slice_from("m"); + break; + case 11: + // (, line 165 + // <-, line 165 + slice_from("n"); + break; + case 12: + // (, line 166 + // <-, line 166 + slice_from("p"); + break; + case 13: + // (, line 167 + // <-, line 167 + slice_from("q"); + break; + case 14: + // (, line 168 + // <-, line 168 + slice_from("r"); + break; + case 15: + // (, line 169 + // <-, line 169 + slice_from("s"); + break; + case 16: + // (, line 170 + // <-, line 170 + slice_from("t"); + break; + case 17: + // (, line 171 + // <-, line 171 + slice_from("v"); + break; + case 18: + // (, line 172 + // <-, line 172 + slice_from("w"); + break; + case 19: + // (, line 173 + // <-, line 173 + slice_from("x"); + break; + case 20: + // (, line 174 + // <-, line 174 + slice_from("z"); + break; + case 21: + // (, line 175 + // <-, line 175 + slice_from("f"); + break; + case 22: + // (, line 176 + // <-, line 176 + slice_from("s"); + break; + } + return true; + } + + private boolean r_Step_1c() { + int among_var; + int v_1; + int v_2; + // (, line 181 + // [, line 182 + ket = cursor; + // among, line 182 + among_var = find_among_b(a_7, 2); + if (among_var == 0) + { + return false; + } + // (, line 182 + // ], line 182 + bra = cursor; + // call R1, line 182 + if (!r_R1()) + { + return false; + } + // call C, line 182 + if (!r_C()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 183 + // not, line 183 + { + v_1 = limit - cursor; + lab0: do { + // (, line 183 + // literal, line 183 + if (!(eq_s_b(1, "n"))) + { + break lab0; + } + // call R1, line 183 + if (!r_R1()) + { + break lab0; + } + return false; + } while (false); + cursor = limit - v_1; + } + // delete, line 183 + slice_del(); + break; + case 2: + // (, line 184 + // not, line 184 + { + v_2 = limit - cursor; + lab1: do { + // (, line 184 + // literal, line 184 + if (!(eq_s_b(1, "h"))) + { + break lab1; + } + // call R1, line 184 + if (!r_R1()) + { + break lab1; + } + return false; + } while (false); + cursor = limit - v_2; + } + // delete, line 184 + slice_del(); + break; + } + return true; + } + + private boolean r_Lose_prefix() { + int v_1; + int v_2; + int v_3; + // (, line 189 + // [, line 190 + bra = cursor; + // literal, line 190 + if (!(eq_s(2, "ge"))) + { + return false; + } + // ], line 190 + ket = cursor; + // test, line 190 + v_1 = cursor; + // hop, line 190 + { + int c = cursor + 3; + if (0 > c || c > limit) + { + return false; + } + cursor = c; + } + cursor = v_1; + // (, line 190 + // goto, line 190 + golab0: while(true) + { + v_2 = cursor; + lab1: do { + if (!(in_grouping(g_v, 97, 121))) + { + break lab1; + } + cursor = v_2; + break golab0; + } while (false); + cursor = v_2; + if (cursor >= limit) + { + return false; + } + cursor++; + } + // goto, line 190 + golab2: while(true) + { + v_3 = cursor; + lab3: do { + if (!(out_grouping(g_v, 97, 121))) + { + break lab3; + } + cursor = v_3; + break golab2; + } while (false); + cursor = v_3; + if (cursor >= limit) + { + return false; + } + cursor++; + } + // set GE_removed, line 191 + B_GE_removed = true; + // delete, line 192 + slice_del(); + return true; + } + + private boolean r_Lose_infix() { + int v_2; + int v_3; + int v_4; + // (, line 195 + // next, line 196 + if (cursor >= limit) + { + return false; + } + cursor++; + // gopast, line 197 + golab0: while(true) + { + lab1: do { + // (, line 197 + // [, line 197 + bra = cursor; + // literal, line 197 + if (!(eq_s(2, "ge"))) + { + break lab1; + } + // ], line 197 + ket = cursor; + break golab0; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // test, line 197 + v_2 = cursor; + // hop, line 197 + { + int c = cursor + 3; + if (0 > c || c > limit) + { + return false; + } + cursor = c; + } + cursor = v_2; + // (, line 197 + // goto, line 197 + golab2: while(true) + { + v_3 = cursor; + lab3: do { + if (!(in_grouping(g_v, 97, 121))) + { + break lab3; + } + cursor = v_3; + break golab2; + } while (false); + cursor = v_3; + if (cursor >= limit) + { + return false; + } + cursor++; + } + // goto, line 197 + golab4: while(true) + { + v_4 = cursor; + lab5: do { + if (!(out_grouping(g_v, 97, 121))) + { + break lab5; + } + cursor = v_4; + break golab4; + } while (false); + cursor = v_4; + if (cursor >= limit) + { + return false; + } + cursor++; + } + // set GE_removed, line 198 + B_GE_removed = true; + // delete, line 199 + slice_del(); + return true; + } + + private boolean r_measure() { + int v_1; + int v_2; + int v_5; + int v_6; + int v_9; + int v_10; + // (, line 202 + // do, line 203 + v_1 = cursor; + lab0: do { + // (, line 203 + // tolimit, line 204 + cursor = limit; + // setmark p1, line 205 + I_p1 = cursor; + // setmark p2, line 206 + I_p2 = cursor; + } while (false); + cursor = v_1; + // do, line 208 + v_2 = cursor; + lab1: do { + // (, line 208 + // repeat, line 209 + replab2: while(true) + { + lab3: do { + if (!(out_grouping(g_v, 97, 121))) + { + break lab3; + } + continue replab2; + } while (false); + break replab2; + } + // atleast, line 209 + { + int v_4 = 1; + // atleast, line 209 + replab4: while(true) + { + v_5 = cursor; + lab5: do { + // (, line 209 + // or, line 209 + lab6: do { + v_6 = cursor; + lab7: do { + // literal, line 209 + if (!(eq_s(2, "ij"))) + { + break lab7; + } + break lab6; + } while (false); + cursor = v_6; + if (!(in_grouping(g_v, 97, 121))) + { + break lab5; + } + } while (false); + v_4--; + continue replab4; + } while (false); + cursor = v_5; + break replab4; + } + if (v_4 > 0) + { + break lab1; + } + } + if (!(out_grouping(g_v, 97, 121))) + { + break lab1; + } + // setmark p1, line 209 + I_p1 = cursor; + // repeat, line 210 + replab8: while(true) + { + lab9: do { + if (!(out_grouping(g_v, 97, 121))) + { + break lab9; + } + continue replab8; + } while (false); + break replab8; + } + // atleast, line 210 + { + int v_8 = 1; + // atleast, line 210 + replab10: while(true) + { + v_9 = cursor; + lab11: do { + // (, line 210 + // or, line 210 + lab12: do { + v_10 = cursor; + lab13: do { + // literal, line 210 + if (!(eq_s(2, "ij"))) + { + break lab13; + } + break lab12; + } while (false); + cursor = v_10; + if (!(in_grouping(g_v, 97, 121))) + { + break lab11; + } + } while (false); + v_8--; + continue replab10; + } while (false); + cursor = v_9; + break replab10; + } + if (v_8 > 0) + { + break lab1; + } + } + if (!(out_grouping(g_v, 97, 121))) + { + break lab1; + } + // setmark p2, line 210 + I_p2 = cursor; + } while (false); + cursor = v_2; + 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; + int v_11; + int v_12; + int v_13; + int v_14; + int v_15; + int v_16; + int v_18; + int v_19; + int v_20; + // (, line 214 + // unset Y_found, line 216 + B_Y_found = false; + // unset stemmed, line 217 + B_stemmed = false; + // do, line 218 + v_1 = cursor; + lab0: do { + // (, line 218 + // [, line 218 + bra = cursor; + // literal, line 218 + if (!(eq_s(1, "y"))) + { + break lab0; + } + // ], line 218 + ket = cursor; + // <-, line 218 + slice_from("Y"); + // set Y_found, line 218 + B_Y_found = true; + } while (false); + cursor = v_1; + // do, line 219 + v_2 = cursor; + lab1: do { + // repeat, line 219 + replab2: while(true) + { + v_3 = cursor; + lab3: do { + // (, line 219 + // goto, line 219 + golab4: while(true) + { + v_4 = cursor; + lab5: do { + // (, line 219 + if (!(in_grouping(g_v, 97, 121))) + { + break lab5; + } + // [, line 219 + bra = cursor; + // literal, line 219 + if (!(eq_s(1, "y"))) + { + break lab5; + } + // ], line 219 + ket = cursor; + cursor = v_4; + break golab4; + } while (false); + cursor = v_4; + if (cursor >= limit) + { + break lab3; + } + cursor++; + } + // <-, line 219 + slice_from("Y"); + // set Y_found, line 219 + B_Y_found = true; + continue replab2; + } while (false); + cursor = v_3; + break replab2; + } + } while (false); + cursor = v_2; + // call measure, line 221 + if (!r_measure()) + { + return false; + } + // backwards, line 223 + limit_backward = cursor; cursor = limit; + // (, line 223 + // do, line 224 + v_5 = limit - cursor; + lab6: do { + // (, line 224 + // call Step_1, line 224 + if (!r_Step_1()) + { + break lab6; + } + // set stemmed, line 224 + B_stemmed = true; + } while (false); + cursor = limit - v_5; + // do, line 225 + v_6 = limit - cursor; + lab7: do { + // (, line 225 + // call Step_2, line 225 + if (!r_Step_2()) + { + break lab7; + } + // set stemmed, line 225 + B_stemmed = true; + } while (false); + cursor = limit - v_6; + // do, line 226 + v_7 = limit - cursor; + lab8: do { + // (, line 226 + // call Step_3, line 226 + if (!r_Step_3()) + { + break lab8; + } + // set stemmed, line 226 + B_stemmed = true; + } while (false); + cursor = limit - v_7; + // do, line 227 + v_8 = limit - cursor; + lab9: do { + // (, line 227 + // call Step_4, line 227 + if (!r_Step_4()) + { + break lab9; + } + // set stemmed, line 227 + B_stemmed = true; + } while (false); + cursor = limit - v_8; + cursor = limit_backward; // unset GE_removed, line 229 + B_GE_removed = false; + // do, line 230 + v_9 = cursor; + lab10: do { + // (, line 230 + // and, line 230 + v_10 = cursor; + // call Lose_prefix, line 230 + if (!r_Lose_prefix()) + { + break lab10; + } + cursor = v_10; + // call measure, line 230 + if (!r_measure()) + { + break lab10; + } + } while (false); + cursor = v_9; + // backwards, line 231 + limit_backward = cursor; cursor = limit; + // (, line 231 + // do, line 232 + v_11 = limit - cursor; + lab11: do { + // (, line 232 + // Boolean test GE_removed, line 232 + if (!(B_GE_removed)) + { + break lab11; + } + // call Step_1c, line 232 + if (!r_Step_1c()) + { + break lab11; + } + } while (false); + cursor = limit - v_11; + cursor = limit_backward; // unset GE_removed, line 234 + B_GE_removed = false; + // do, line 235 + v_12 = cursor; + lab12: do { + // (, line 235 + // and, line 235 + v_13 = cursor; + // call Lose_infix, line 235 + if (!r_Lose_infix()) + { + break lab12; + } + cursor = v_13; + // call measure, line 235 + if (!r_measure()) + { + break lab12; + } + } while (false); + cursor = v_12; + // backwards, line 236 + limit_backward = cursor; cursor = limit; + // (, line 236 + // do, line 237 + v_14 = limit - cursor; + lab13: do { + // (, line 237 + // Boolean test GE_removed, line 237 + if (!(B_GE_removed)) + { + break lab13; + } + // call Step_1c, line 237 + if (!r_Step_1c()) + { + break lab13; + } + } while (false); + cursor = limit - v_14; + cursor = limit_backward; // backwards, line 239 + limit_backward = cursor; cursor = limit; + // (, line 239 + // do, line 240 + v_15 = limit - cursor; + lab14: do { + // (, line 240 + // call Step_7, line 240 + if (!r_Step_7()) + { + break lab14; + } + // set stemmed, line 240 + B_stemmed = true; + } while (false); + cursor = limit - v_15; + // do, line 241 + v_16 = limit - cursor; + lab15: do { + // (, line 241 + // or, line 241 + lab16: do { + lab17: do { + // Boolean test stemmed, line 241 + if (!(B_stemmed)) + { + break lab17; + } + break lab16; + } while (false); + // Boolean test GE_removed, line 241 + if (!(B_GE_removed)) + { + break lab15; + } + } while (false); + // call Step_6, line 241 + if (!r_Step_6()) + { + break lab15; + } + } while (false); + cursor = limit - v_16; + cursor = limit_backward; // do, line 243 + v_18 = cursor; + lab18: do { + // (, line 243 + // Boolean test Y_found, line 243 + if (!(B_Y_found)) + { + break lab18; + } + // repeat, line 243 + replab19: while(true) + { + v_19 = cursor; + lab20: do { + // (, line 243 + // goto, line 243 + golab21: while(true) + { + v_20 = cursor; + lab22: do { + // (, line 243 + // [, line 243 + bra = cursor; + // literal, line 243 + if (!(eq_s(1, "Y"))) + { + break lab22; + } + // ], line 243 + ket = cursor; + cursor = v_20; + break golab21; + } while (false); + cursor = v_20; + if (cursor >= limit) + { + break lab20; + } + cursor++; + } + // <-, line 243 + slice_from("y"); + continue replab19; + } while (false); + cursor = v_19; + break replab19; + } + } while (false); + cursor = v_18; + return true; + } + +} + Index: contrib/snowball/src/java/org/tartarus/snowball/ext/PorterStemmer.java =================================================================== --- contrib/snowball/src/java/org/tartarus/snowball/ext/PorterStemmer.java (revision 0) +++ contrib/snowball/src/java/org/tartarus/snowball/ext/PorterStemmer.java (revision 0) @@ -0,0 +1,906 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; +import org.tartarus.snowball.SnowballProgram; +import org.tartarus.snowball.Among; + +/** + * Generated class implementing code defined by a snowball script. + */ +public class PorterStemmer extends SnowballProgram { + + private Among a_0[] = { + new Among ( "s", -1, 3, "", this), + new Among ( "ies", 0, 2, "", this), + new Among ( "sses", 0, 1, "", this), + new Among ( "ss", 0, -1, "", this) + }; + + private Among a_1[] = { + new Among ( "", -1, 3, "", this), + new Among ( "bb", 0, 2, "", this), + new Among ( "dd", 0, 2, "", this), + new Among ( "ff", 0, 2, "", this), + new Among ( "gg", 0, 2, "", this), + new Among ( "bl", 0, 1, "", this), + new Among ( "mm", 0, 2, "", this), + new Among ( "nn", 0, 2, "", this), + new Among ( "pp", 0, 2, "", this), + new Among ( "rr", 0, 2, "", this), + new Among ( "at", 0, 1, "", this), + new Among ( "tt", 0, 2, "", this), + new Among ( "iz", 0, 1, "", this) + }; + + private Among a_2[] = { + new Among ( "ed", -1, 2, "", this), + new Among ( "eed", 0, 1, "", this), + new Among ( "ing", -1, 2, "", this) + }; + + private Among a_3[] = { + new Among ( "anci", -1, 3, "", this), + new Among ( "enci", -1, 2, "", this), + new Among ( "abli", -1, 4, "", this), + new Among ( "eli", -1, 6, "", this), + new Among ( "alli", -1, 9, "", this), + new Among ( "ousli", -1, 12, "", this), + new Among ( "entli", -1, 5, "", this), + new Among ( "aliti", -1, 10, "", this), + new Among ( "biliti", -1, 14, "", this), + new Among ( "iviti", -1, 13, "", this), + new Among ( "tional", -1, 1, "", this), + new Among ( "ational", 10, 8, "", this), + new Among ( "alism", -1, 10, "", this), + new Among ( "ation", -1, 8, "", this), + new Among ( "ization", 13, 7, "", this), + new Among ( "izer", -1, 7, "", this), + new Among ( "ator", -1, 8, "", this), + new Among ( "iveness", -1, 13, "", this), + new Among ( "fulness", -1, 11, "", this), + new Among ( "ousness", -1, 12, "", this) + }; + + private Among a_4[] = { + new Among ( "icate", -1, 2, "", this), + new Among ( "ative", -1, 3, "", this), + new Among ( "alize", -1, 1, "", this), + new Among ( "iciti", -1, 2, "", this), + new Among ( "ical", -1, 2, "", this), + new Among ( "ful", -1, 3, "", this), + new Among ( "ness", -1, 3, "", this) + }; + + private Among a_5[] = { + new Among ( "ic", -1, 1, "", this), + new Among ( "ance", -1, 1, "", this), + new Among ( "ence", -1, 1, "", this), + new Among ( "able", -1, 1, "", this), + new Among ( "ible", -1, 1, "", this), + new Among ( "ate", -1, 1, "", this), + new Among ( "ive", -1, 1, "", this), + new Among ( "ize", -1, 1, "", this), + new Among ( "iti", -1, 1, "", this), + new Among ( "al", -1, 1, "", this), + new Among ( "ism", -1, 1, "", this), + new Among ( "ion", -1, 2, "", this), + new Among ( "er", -1, 1, "", this), + new Among ( "ous", -1, 1, "", this), + new Among ( "ant", -1, 1, "", this), + new Among ( "ent", -1, 1, "", this), + new Among ( "ment", 15, 1, "", this), + new Among ( "ement", 16, 1, "", this), + new Among ( "ou", -1, 1, "", this) + }; + + private static final char g_v[] = {17, 65, 16, 1 }; + + private static final char g_v_WXY[] = {1, 17, 65, 208, 1 }; + + private boolean B_Y_found; + private int I_p2; + private int I_p1; + + private void copy_from(PorterStemmer other) { + B_Y_found = other.B_Y_found; + I_p2 = other.I_p2; + I_p1 = other.I_p1; + super.copy_from(other); + } + + private boolean r_shortv() { + // (, line 19 + if (!(out_grouping_b(g_v_WXY, 89, 121))) + { + return false; + } + if (!(in_grouping_b(g_v, 97, 121))) + { + return false; + } + if (!(out_grouping_b(g_v, 97, 121))) + { + return false; + } + return true; + } + + private boolean r_R1() { + if (!(I_p1 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R2() { + if (!(I_p2 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_Step_1a() { + int among_var; + // (, line 24 + // [, line 25 + ket = cursor; + // substring, line 25 + among_var = find_among_b(a_0, 4); + if (among_var == 0) + { + return false; + } + // ], line 25 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 26 + // <-, line 26 + slice_from("ss"); + break; + case 2: + // (, line 27 + // <-, line 27 + slice_from("i"); + break; + case 3: + // (, line 29 + // delete, line 29 + slice_del(); + break; + } + return true; + } + + private boolean r_Step_1b() { + int among_var; + int v_1; + int v_3; + int v_4; + // (, line 33 + // [, line 34 + ket = cursor; + // substring, line 34 + among_var = find_among_b(a_2, 3); + if (among_var == 0) + { + return false; + } + // ], line 34 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 35 + // call R1, line 35 + if (!r_R1()) + { + return false; + } + // <-, line 35 + slice_from("ee"); + break; + case 2: + // (, line 37 + // test, line 38 + v_1 = limit - cursor; + // gopast, line 38 + golab0: while(true) + { + lab1: do { + if (!(in_grouping_b(g_v, 97, 121))) + { + break lab1; + } + break golab0; + } while (false); + if (cursor <= limit_backward) + { + return false; + } + cursor--; + } + cursor = limit - v_1; + // delete, line 38 + slice_del(); + // test, line 39 + v_3 = limit - cursor; + // substring, line 39 + among_var = find_among_b(a_1, 13); + if (among_var == 0) + { + return false; + } + cursor = limit - v_3; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 41 + // <+, line 41 + { + int c = cursor; + insert(cursor, cursor, "e"); + cursor = c; + } + break; + case 2: + // (, line 44 + // [, line 44 + ket = cursor; + // next, line 44 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // ], line 44 + bra = cursor; + // delete, line 44 + slice_del(); + break; + case 3: + // (, line 45 + // atmark, line 45 + if (cursor != I_p1) + { + return false; + } + // test, line 45 + v_4 = limit - cursor; + // call shortv, line 45 + if (!r_shortv()) + { + return false; + } + cursor = limit - v_4; + // <+, line 45 + { + int c = cursor; + insert(cursor, cursor, "e"); + cursor = c; + } + break; + } + break; + } + return true; + } + + private boolean r_Step_1c() { + int v_1; + // (, line 51 + // [, line 52 + ket = cursor; + // or, line 52 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // literal, line 52 + if (!(eq_s_b(1, "y"))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_1; + // literal, line 52 + if (!(eq_s_b(1, "Y"))) + { + return false; + } + } while (false); + // ], line 52 + bra = cursor; + // gopast, line 53 + golab2: while(true) + { + lab3: do { + if (!(in_grouping_b(g_v, 97, 121))) + { + break lab3; + } + break golab2; + } while (false); + if (cursor <= limit_backward) + { + return false; + } + cursor--; + } + // <-, line 54 + slice_from("i"); + return true; + } + + private boolean r_Step_2() { + int among_var; + // (, line 57 + // [, line 58 + ket = cursor; + // substring, line 58 + among_var = find_among_b(a_3, 20); + if (among_var == 0) + { + return false; + } + // ], line 58 + bra = cursor; + // call R1, line 58 + if (!r_R1()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 59 + // <-, line 59 + slice_from("tion"); + break; + case 2: + // (, line 60 + // <-, line 60 + slice_from("ence"); + break; + case 3: + // (, line 61 + // <-, line 61 + slice_from("ance"); + break; + case 4: + // (, line 62 + // <-, line 62 + slice_from("able"); + break; + case 5: + // (, line 63 + // <-, line 63 + slice_from("ent"); + break; + case 6: + // (, line 64 + // <-, line 64 + slice_from("e"); + break; + case 7: + // (, line 66 + // <-, line 66 + slice_from("ize"); + break; + case 8: + // (, line 68 + // <-, line 68 + slice_from("ate"); + break; + case 9: + // (, line 69 + // <-, line 69 + slice_from("al"); + break; + case 10: + // (, line 71 + // <-, line 71 + slice_from("al"); + break; + case 11: + // (, line 72 + // <-, line 72 + slice_from("ful"); + break; + case 12: + // (, line 74 + // <-, line 74 + slice_from("ous"); + break; + case 13: + // (, line 76 + // <-, line 76 + slice_from("ive"); + break; + case 14: + // (, line 77 + // <-, line 77 + slice_from("ble"); + break; + } + return true; + } + + private boolean r_Step_3() { + int among_var; + // (, line 81 + // [, line 82 + ket = cursor; + // substring, line 82 + among_var = find_among_b(a_4, 7); + if (among_var == 0) + { + return false; + } + // ], line 82 + bra = cursor; + // call R1, line 82 + if (!r_R1()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 83 + // <-, line 83 + slice_from("al"); + break; + case 2: + // (, line 85 + // <-, line 85 + slice_from("ic"); + break; + case 3: + // (, line 87 + // delete, line 87 + slice_del(); + break; + } + return true; + } + + private boolean r_Step_4() { + int among_var; + int v_1; + // (, line 91 + // [, line 92 + ket = cursor; + // substring, line 92 + among_var = find_among_b(a_5, 19); + if (among_var == 0) + { + return false; + } + // ], line 92 + bra = cursor; + // call R2, line 92 + if (!r_R2()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 95 + // delete, line 95 + slice_del(); + break; + case 2: + // (, line 96 + // or, line 96 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // literal, line 96 + if (!(eq_s_b(1, "s"))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_1; + // literal, line 96 + if (!(eq_s_b(1, "t"))) + { + return false; + } + } while (false); + // delete, line 96 + slice_del(); + break; + } + return true; + } + + private boolean r_Step_5a() { + int v_1; + int v_2; + // (, line 100 + // [, line 101 + ket = cursor; + // literal, line 101 + if (!(eq_s_b(1, "e"))) + { + return false; + } + // ], line 101 + bra = cursor; + // or, line 102 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // call R2, line 102 + if (!r_R2()) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_1; + // (, line 102 + // call R1, line 102 + if (!r_R1()) + { + return false; + } + // not, line 102 + { + v_2 = limit - cursor; + lab2: do { + // call shortv, line 102 + if (!r_shortv()) + { + break lab2; + } + return false; + } while (false); + cursor = limit - v_2; + } + } while (false); + // delete, line 103 + slice_del(); + return true; + } + + private boolean r_Step_5b() { + // (, line 106 + // [, line 107 + ket = cursor; + // literal, line 107 + if (!(eq_s_b(1, "l"))) + { + return false; + } + // ], line 107 + bra = cursor; + // call R2, line 108 + if (!r_R2()) + { + return false; + } + // literal, line 108 + if (!(eq_s_b(1, "l"))) + { + return false; + } + // delete, line 109 + slice_del(); + return true; + } + + public boolean stem() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_10; + int v_11; + int v_12; + int v_13; + int v_14; + int v_15; + int v_16; + int v_17; + int v_18; + int v_19; + int v_20; + // (, line 113 + // unset Y_found, line 115 + B_Y_found = false; + // do, line 116 + v_1 = cursor; + lab0: do { + // (, line 116 + // [, line 116 + bra = cursor; + // literal, line 116 + if (!(eq_s(1, "y"))) + { + break lab0; + } + // ], line 116 + ket = cursor; + // <-, line 116 + slice_from("Y"); + // set Y_found, line 116 + B_Y_found = true; + } while (false); + cursor = v_1; + // do, line 117 + v_2 = cursor; + lab1: do { + // repeat, line 117 + replab2: while(true) + { + v_3 = cursor; + lab3: do { + // (, line 117 + // goto, line 117 + golab4: while(true) + { + v_4 = cursor; + lab5: do { + // (, line 117 + if (!(in_grouping(g_v, 97, 121))) + { + break lab5; + } + // [, line 117 + bra = cursor; + // literal, line 117 + if (!(eq_s(1, "y"))) + { + break lab5; + } + // ], line 117 + ket = cursor; + cursor = v_4; + break golab4; + } while (false); + cursor = v_4; + if (cursor >= limit) + { + break lab3; + } + cursor++; + } + // <-, line 117 + slice_from("Y"); + // set Y_found, line 117 + B_Y_found = true; + continue replab2; + } while (false); + cursor = v_3; + break replab2; + } + } while (false); + cursor = v_2; + I_p1 = limit; + I_p2 = limit; + // do, line 121 + v_5 = cursor; + lab6: do { + // (, line 121 + // gopast, line 122 + golab7: while(true) + { + lab8: do { + if (!(in_grouping(g_v, 97, 121))) + { + break lab8; + } + break golab7; + } while (false); + if (cursor >= limit) + { + break lab6; + } + cursor++; + } + // gopast, line 122 + golab9: while(true) + { + lab10: do { + if (!(out_grouping(g_v, 97, 121))) + { + break lab10; + } + break golab9; + } while (false); + if (cursor >= limit) + { + break lab6; + } + cursor++; + } + // setmark p1, line 122 + I_p1 = cursor; + // gopast, line 123 + golab11: while(true) + { + lab12: do { + if (!(in_grouping(g_v, 97, 121))) + { + break lab12; + } + break golab11; + } while (false); + if (cursor >= limit) + { + break lab6; + } + cursor++; + } + // gopast, line 123 + golab13: while(true) + { + lab14: do { + if (!(out_grouping(g_v, 97, 121))) + { + break lab14; + } + break golab13; + } while (false); + if (cursor >= limit) + { + break lab6; + } + cursor++; + } + // setmark p2, line 123 + I_p2 = cursor; + } while (false); + cursor = v_5; + // backwards, line 126 + limit_backward = cursor; cursor = limit; + // (, line 126 + // do, line 127 + v_10 = limit - cursor; + lab15: do { + // call Step_1a, line 127 + if (!r_Step_1a()) + { + break lab15; + } + } while (false); + cursor = limit - v_10; + // do, line 128 + v_11 = limit - cursor; + lab16: do { + // call Step_1b, line 128 + if (!r_Step_1b()) + { + break lab16; + } + } while (false); + cursor = limit - v_11; + // do, line 129 + v_12 = limit - cursor; + lab17: do { + // call Step_1c, line 129 + if (!r_Step_1c()) + { + break lab17; + } + } while (false); + cursor = limit - v_12; + // do, line 130 + v_13 = limit - cursor; + lab18: do { + // call Step_2, line 130 + if (!r_Step_2()) + { + break lab18; + } + } while (false); + cursor = limit - v_13; + // do, line 131 + v_14 = limit - cursor; + lab19: do { + // call Step_3, line 131 + if (!r_Step_3()) + { + break lab19; + } + } while (false); + cursor = limit - v_14; + // do, line 132 + v_15 = limit - cursor; + lab20: do { + // call Step_4, line 132 + if (!r_Step_4()) + { + break lab20; + } + } while (false); + cursor = limit - v_15; + // do, line 133 + v_16 = limit - cursor; + lab21: do { + // call Step_5a, line 133 + if (!r_Step_5a()) + { + break lab21; + } + } while (false); + cursor = limit - v_16; + // do, line 134 + v_17 = limit - cursor; + lab22: do { + // call Step_5b, line 134 + if (!r_Step_5b()) + { + break lab22; + } + } while (false); + cursor = limit - v_17; + cursor = limit_backward; // do, line 137 + v_18 = cursor; + lab23: do { + // (, line 137 + // Boolean test Y_found, line 137 + if (!(B_Y_found)) + { + break lab23; + } + // repeat, line 137 + replab24: while(true) + { + v_19 = cursor; + lab25: do { + // (, line 137 + // goto, line 137 + golab26: while(true) + { + v_20 = cursor; + lab27: do { + // (, line 137 + // [, line 137 + bra = cursor; + // literal, line 137 + if (!(eq_s(1, "Y"))) + { + break lab27; + } + // ], line 137 + ket = cursor; + cursor = v_20; + break golab26; + } while (false); + cursor = v_20; + if (cursor >= limit) + { + break lab25; + } + cursor++; + } + // <-, line 137 + slice_from("y"); + continue replab24; + } while (false); + cursor = v_19; + break replab24; + } + } while (false); + cursor = v_18; + return true; + } + +} + Index: contrib/snowball/src/java/org/tartarus/snowball/ext/HungarianStemmer.java =================================================================== --- contrib/snowball/src/java/org/tartarus/snowball/ext/HungarianStemmer.java (revision 0) +++ contrib/snowball/src/java/org/tartarus/snowball/ext/HungarianStemmer.java (revision 0) @@ -0,0 +1,1158 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; +import org.tartarus.snowball.SnowballProgram; +import org.tartarus.snowball.Among; + +/** + * 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; + } + +} + Index: contrib/snowball/src/java/org/tartarus/snowball/ext/ItalianStemmer.java =================================================================== --- contrib/snowball/src/java/org/tartarus/snowball/ext/ItalianStemmer.java (revision 0) +++ contrib/snowball/src/java/org/tartarus/snowball/ext/ItalianStemmer.java (revision 0) @@ -0,0 +1,1180 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; +import org.tartarus.snowball.SnowballProgram; +import org.tartarus.snowball.Among; + +/** + * Generated class implementing code defined by a snowball script. + */ +public class ItalianStemmer extends SnowballProgram { + + private Among a_0[] = { + new Among ( "", -1, 7, "", this), + new Among ( "qu", 0, 6, "", this), + new Among ( "\u00E1", 0, 1, "", this), + new Among ( "\u00E9", 0, 2, "", this), + new Among ( "\u00ED", 0, 3, "", this), + new Among ( "\u00F3", 0, 4, "", this), + new Among ( "\u00FA", 0, 5, "", this) + }; + + private Among a_1[] = { + new Among ( "", -1, 3, "", this), + new Among ( "I", 0, 1, "", this), + new Among ( "U", 0, 2, "", this) + }; + + private Among a_2[] = { + new Among ( "la", -1, -1, "", this), + new Among ( "cela", 0, -1, "", this), + new Among ( "gliela", 0, -1, "", this), + new Among ( "mela", 0, -1, "", this), + new Among ( "tela", 0, -1, "", this), + new Among ( "vela", 0, -1, "", this), + new Among ( "le", -1, -1, "", this), + new Among ( "cele", 6, -1, "", this), + new Among ( "gliele", 6, -1, "", this), + new Among ( "mele", 6, -1, "", this), + new Among ( "tele", 6, -1, "", this), + new Among ( "vele", 6, -1, "", this), + new Among ( "ne", -1, -1, "", this), + new Among ( "cene", 12, -1, "", this), + new Among ( "gliene", 12, -1, "", this), + new Among ( "mene", 12, -1, "", this), + new Among ( "sene", 12, -1, "", this), + new Among ( "tene", 12, -1, "", this), + new Among ( "vene", 12, -1, "", this), + new Among ( "ci", -1, -1, "", this), + new Among ( "li", -1, -1, "", this), + new Among ( "celi", 20, -1, "", this), + new Among ( "glieli", 20, -1, "", this), + new Among ( "meli", 20, -1, "", this), + new Among ( "teli", 20, -1, "", this), + new Among ( "veli", 20, -1, "", this), + new Among ( "gli", 20, -1, "", this), + new Among ( "mi", -1, -1, "", this), + new Among ( "si", -1, -1, "", this), + new Among ( "ti", -1, -1, "", this), + new Among ( "vi", -1, -1, "", this), + new Among ( "lo", -1, -1, "", this), + new Among ( "celo", 31, -1, "", this), + new Among ( "glielo", 31, -1, "", this), + new Among ( "melo", 31, -1, "", this), + new Among ( "telo", 31, -1, "", this), + new Among ( "velo", 31, -1, "", this) + }; + + private Among a_3[] = { + new Among ( "ando", -1, 1, "", this), + new Among ( "endo", -1, 1, "", this), + new Among ( "ar", -1, 2, "", this), + new Among ( "er", -1, 2, "", this), + new Among ( "ir", -1, 2, "", this) + }; + + private Among a_4[] = { + new Among ( "ic", -1, -1, "", this), + new Among ( "abil", -1, -1, "", this), + new Among ( "os", -1, -1, "", this), + new Among ( "iv", -1, 1, "", this) + }; + + private Among a_5[] = { + new Among ( "ic", -1, 1, "", this), + new Among ( "abil", -1, 1, "", this), + new Among ( "iv", -1, 1, "", this) + }; + + private Among a_6[] = { + new Among ( "ica", -1, 1, "", this), + new Among ( "logia", -1, 3, "", this), + new Among ( "osa", -1, 1, "", this), + new Among ( "ista", -1, 1, "", this), + new Among ( "iva", -1, 9, "", this), + new Among ( "anza", -1, 1, "", this), + new Among ( "enza", -1, 5, "", this), + new Among ( "ice", -1, 1, "", this), + new Among ( "atrice", 7, 1, "", this), + new Among ( "iche", -1, 1, "", this), + new Among ( "logie", -1, 3, "", this), + new Among ( "abile", -1, 1, "", this), + new Among ( "ibile", -1, 1, "", this), + new Among ( "usione", -1, 4, "", this), + new Among ( "azione", -1, 2, "", this), + 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", 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", 25, 1, "", this), + new Among ( "ichi", -1, 1, "", this), + new Among ( "abili", -1, 1, "", this), + new Among ( "ibili", -1, 1, "", this), + new Among ( "ismi", -1, 1, "", this), + new Among ( "usioni", -1, 4, "", this), + new Among ( "azioni", -1, 2, "", this), + 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), + new Among ( "ivi", -1, 9, "", this), + new Among ( "ico", -1, 1, "", this), + new Among ( "ismo", -1, 1, "", this), + new Among ( "oso", -1, 1, "", this), + new Among ( "amento", -1, 6, "", this), + new Among ( "imento", -1, 6, "", this), + new Among ( "ivo", -1, 9, "", this), + new Among ( "it\u00E0", -1, 8, "", this), + new Among ( "ist\u00E0", -1, 1, "", this), + new Among ( "ist\u00E8", -1, 1, "", this), + new Among ( "ist\u00EC", -1, 1, "", this) + }; + + private Among a_7[] = { + new Among ( "isca", -1, 1, "", this), + new Among ( "enda", -1, 1, "", this), + new Among ( "ata", -1, 1, "", this), + new Among ( "ita", -1, 1, "", this), + new Among ( "uta", -1, 1, "", this), + new Among ( "ava", -1, 1, "", this), + new Among ( "eva", -1, 1, "", this), + new Among ( "iva", -1, 1, "", this), + new Among ( "erebbe", -1, 1, "", this), + new Among ( "irebbe", -1, 1, "", this), + new Among ( "isce", -1, 1, "", this), + new Among ( "ende", -1, 1, "", this), + new Among ( "are", -1, 1, "", this), + new Among ( "ere", -1, 1, "", this), + new Among ( "ire", -1, 1, "", this), + new Among ( "asse", -1, 1, "", this), + new Among ( "ate", -1, 1, "", this), + new Among ( "avate", 16, 1, "", this), + new Among ( "evate", 16, 1, "", this), + new Among ( "ivate", 16, 1, "", this), + new Among ( "ete", -1, 1, "", this), + new Among ( "erete", 20, 1, "", this), + new Among ( "irete", 20, 1, "", this), + new Among ( "ite", -1, 1, "", this), + new Among ( "ereste", -1, 1, "", this), + new Among ( "ireste", -1, 1, "", this), + new Among ( "ute", -1, 1, "", this), + new Among ( "erai", -1, 1, "", this), + new Among ( "irai", -1, 1, "", this), + new Among ( "isci", -1, 1, "", this), + new Among ( "endi", -1, 1, "", this), + new Among ( "erei", -1, 1, "", this), + new Among ( "irei", -1, 1, "", this), + new Among ( "assi", -1, 1, "", this), + new Among ( "ati", -1, 1, "", this), + new Among ( "iti", -1, 1, "", this), + new Among ( "eresti", -1, 1, "", this), + new Among ( "iresti", -1, 1, "", this), + new Among ( "uti", -1, 1, "", this), + new Among ( "avi", -1, 1, "", this), + new Among ( "evi", -1, 1, "", this), + new Among ( "ivi", -1, 1, "", this), + new Among ( "isco", -1, 1, "", this), + new Among ( "ando", -1, 1, "", this), + new Among ( "endo", -1, 1, "", this), + new Among ( "Yamo", -1, 1, "", this), + new Among ( "iamo", -1, 1, "", this), + new Among ( "avamo", -1, 1, "", this), + new Among ( "evamo", -1, 1, "", this), + new Among ( "ivamo", -1, 1, "", this), + new Among ( "eremo", -1, 1, "", this), + new Among ( "iremo", -1, 1, "", this), + new Among ( "assimo", -1, 1, "", this), + new Among ( "ammo", -1, 1, "", this), + new Among ( "emmo", -1, 1, "", this), + new Among ( "eremmo", 54, 1, "", this), + new Among ( "iremmo", 54, 1, "", this), + new Among ( "immo", -1, 1, "", this), + new Among ( "ano", -1, 1, "", this), + new Among ( "iscano", 58, 1, "", this), + new Among ( "avano", 58, 1, "", this), + new Among ( "evano", 58, 1, "", this), + new Among ( "ivano", 58, 1, "", this), + new Among ( "eranno", -1, 1, "", this), + new Among ( "iranno", -1, 1, "", this), + new Among ( "ono", -1, 1, "", this), + new Among ( "iscono", 65, 1, "", this), + new Among ( "arono", 65, 1, "", this), + new Among ( "erono", 65, 1, "", this), + new Among ( "irono", 65, 1, "", this), + new Among ( "erebbero", -1, 1, "", this), + new Among ( "irebbero", -1, 1, "", this), + new Among ( "assero", -1, 1, "", this), + new Among ( "essero", -1, 1, "", this), + new Among ( "issero", -1, 1, "", this), + new Among ( "ato", -1, 1, "", this), + new Among ( "ito", -1, 1, "", this), + new Among ( "uto", -1, 1, "", this), + new Among ( "avo", -1, 1, "", this), + new Among ( "evo", -1, 1, "", this), + new Among ( "ivo", -1, 1, "", this), + new Among ( "ar", -1, 1, "", this), + new Among ( "ir", -1, 1, "", this), + new Among ( "er\u00E0", -1, 1, "", this), + new Among ( "ir\u00E0", -1, 1, "", this), + new Among ( "er\u00F2", -1, 1, "", this), + new Among ( "ir\u00F2", -1, 1, "", this) + }; + + private static final char g_v[] = {17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2, 1 }; + + private static final char g_AEIO[] = {17, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2 }; + + private static final char g_CG[] = {17 }; + + private int I_p2; + private int I_p1; + private int I_pV; + + private void copy_from(ItalianStemmer other) { + I_p2 = other.I_p2; + I_p1 = other.I_p1; + I_pV = other.I_pV; + super.copy_from(other); + } + + private boolean r_prelude() { + int among_var; + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + // (, line 34 + // test, line 35 + v_1 = cursor; + // repeat, line 35 + replab0: while(true) + { + v_2 = cursor; + lab1: do { + // (, line 35 + // [, line 36 + bra = cursor; + // substring, line 36 + among_var = find_among(a_0, 7); + if (among_var == 0) + { + break lab1; + } + // ], line 36 + ket = cursor; + switch(among_var) { + case 0: + break lab1; + case 1: + // (, line 37 + // <-, line 37 + slice_from("\u00E0"); + break; + case 2: + // (, line 38 + // <-, line 38 + slice_from("\u00E8"); + break; + case 3: + // (, line 39 + // <-, line 39 + slice_from("\u00EC"); + break; + case 4: + // (, line 40 + // <-, line 40 + slice_from("\u00F2"); + break; + case 5: + // (, line 41 + // <-, line 41 + slice_from("\u00F9"); + break; + case 6: + // (, line 42 + // <-, line 42 + slice_from("qU"); + break; + case 7: + // (, line 43 + // next, line 43 + if (cursor >= limit) + { + break lab1; + } + cursor++; + break; + } + continue replab0; + } while (false); + cursor = v_2; + break replab0; + } + cursor = v_1; + // repeat, line 46 + replab2: while(true) + { + v_3 = cursor; + lab3: do { + // goto, line 46 + golab4: while(true) + { + v_4 = cursor; + lab5: do { + // (, line 46 + if (!(in_grouping(g_v, 97, 249))) + { + break lab5; + } + // [, line 47 + bra = cursor; + // or, line 47 + lab6: do { + v_5 = cursor; + lab7: do { + // (, line 47 + // literal, line 47 + if (!(eq_s(1, "u"))) + { + break lab7; + } + // ], line 47 + ket = cursor; + if (!(in_grouping(g_v, 97, 249))) + { + break lab7; + } + // <-, line 47 + slice_from("U"); + break lab6; + } while (false); + cursor = v_5; + // (, line 48 + // literal, line 48 + if (!(eq_s(1, "i"))) + { + break lab5; + } + // ], line 48 + ket = cursor; + if (!(in_grouping(g_v, 97, 249))) + { + break lab5; + } + // <-, line 48 + slice_from("I"); + } while (false); + cursor = v_4; + break golab4; + } while (false); + cursor = v_4; + if (cursor >= limit) + { + break lab3; + } + cursor++; + } + continue replab2; + } while (false); + cursor = v_3; + break replab2; + } + return true; + } + + private boolean r_mark_regions() { + int v_1; + int v_2; + int v_3; + int v_6; + int v_8; + // (, line 52 + I_pV = limit; + I_p1 = limit; + I_p2 = limit; + // do, line 58 + v_1 = cursor; + lab0: do { + // (, line 58 + // or, line 60 + lab1: do { + v_2 = cursor; + lab2: do { + // (, line 59 + if (!(in_grouping(g_v, 97, 249))) + { + break lab2; + } + // or, line 59 + lab3: do { + v_3 = cursor; + lab4: do { + // (, line 59 + if (!(out_grouping(g_v, 97, 249))) + { + break lab4; + } + // gopast, line 59 + golab5: while(true) + { + lab6: do { + if (!(in_grouping(g_v, 97, 249))) + { + break lab6; + } + break golab5; + } while (false); + if (cursor >= limit) + { + break lab4; + } + cursor++; + } + break lab3; + } while (false); + cursor = v_3; + // (, line 59 + if (!(in_grouping(g_v, 97, 249))) + { + break lab2; + } + // gopast, line 59 + golab7: while(true) + { + lab8: do { + if (!(out_grouping(g_v, 97, 249))) + { + break lab8; + } + break golab7; + } while (false); + if (cursor >= limit) + { + break lab2; + } + cursor++; + } + } while (false); + break lab1; + } while (false); + cursor = v_2; + // (, line 61 + if (!(out_grouping(g_v, 97, 249))) + { + break lab0; + } + // or, line 61 + lab9: do { + v_6 = cursor; + lab10: do { + // (, line 61 + if (!(out_grouping(g_v, 97, 249))) + { + break lab10; + } + // gopast, line 61 + golab11: while(true) + { + lab12: do { + if (!(in_grouping(g_v, 97, 249))) + { + break lab12; + } + break golab11; + } while (false); + if (cursor >= limit) + { + break lab10; + } + cursor++; + } + break lab9; + } while (false); + cursor = v_6; + // (, line 61 + if (!(in_grouping(g_v, 97, 249))) + { + break lab0; + } + // next, line 61 + if (cursor >= limit) + { + break lab0; + } + cursor++; + } while (false); + } while (false); + // setmark pV, line 62 + I_pV = cursor; + } while (false); + cursor = v_1; + // do, line 64 + v_8 = cursor; + lab13: do { + // (, line 64 + // gopast, line 65 + golab14: while(true) + { + lab15: do { + if (!(in_grouping(g_v, 97, 249))) + { + break lab15; + } + break golab14; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // gopast, line 65 + golab16: while(true) + { + lab17: do { + if (!(out_grouping(g_v, 97, 249))) + { + break lab17; + } + break golab16; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // setmark p1, line 65 + I_p1 = cursor; + // gopast, line 66 + golab18: while(true) + { + lab19: do { + if (!(in_grouping(g_v, 97, 249))) + { + break lab19; + } + break golab18; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // gopast, line 66 + golab20: while(true) + { + lab21: do { + if (!(out_grouping(g_v, 97, 249))) + { + break lab21; + } + break golab20; + } while (false); + if (cursor >= limit) + { + break lab13; + } + cursor++; + } + // setmark p2, line 66 + I_p2 = cursor; + } while (false); + cursor = v_8; + return true; + } + + private boolean r_postlude() { + int among_var; + int v_1; + // repeat, line 70 + replab0: while(true) + { + v_1 = cursor; + lab1: do { + // (, line 70 + // [, line 72 + bra = cursor; + // substring, line 72 + among_var = find_among(a_1, 3); + if (among_var == 0) + { + break lab1; + } + // ], line 72 + ket = cursor; + switch(among_var) { + case 0: + break lab1; + case 1: + // (, line 73 + // <-, line 73 + slice_from("i"); + break; + case 2: + // (, line 74 + // <-, line 74 + slice_from("u"); + break; + case 3: + // (, line 75 + // next, line 75 + if (cursor >= limit) + { + break lab1; + } + cursor++; + break; + } + continue replab0; + } while (false); + cursor = v_1; + break replab0; + } + return true; + } + + private boolean r_RV() { + if (!(I_pV <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R1() { + if (!(I_p1 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R2() { + if (!(I_p2 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_attached_pronoun() { + int among_var; + // (, line 86 + // [, line 87 + ket = cursor; + // substring, line 87 + if (find_among_b(a_2, 37) == 0) + { + return false; + } + // ], line 87 + bra = cursor; + // among, line 97 + among_var = find_among_b(a_3, 5); + if (among_var == 0) + { + return false; + } + // (, line 97 + // call RV, line 97 + if (!r_RV()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 98 + // delete, line 98 + slice_del(); + break; + case 2: + // (, line 99 + // <-, line 99 + slice_from("e"); + break; + } + return true; + } + + private boolean r_standard_suffix() { + int among_var; + int v_1; + int v_2; + int v_3; + int v_4; + // (, line 103 + // [, line 104 + ket = cursor; + // substring, line 104 + among_var = find_among_b(a_6, 51); + if (among_var == 0) + { + return false; + } + // ], line 104 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 111 + // call R2, line 111 + if (!r_R2()) + { + return false; + } + // delete, line 111 + slice_del(); + break; + case 2: + // (, line 113 + // call R2, line 113 + if (!r_R2()) + { + return false; + } + // delete, line 113 + slice_del(); + // try, line 114 + v_1 = limit - cursor; + lab0: do { + // (, line 114 + // [, line 114 + ket = cursor; + // literal, line 114 + if (!(eq_s_b(2, "ic"))) + { + cursor = limit - v_1; + break lab0; + } + // ], line 114 + bra = cursor; + // call R2, line 114 + if (!r_R2()) + { + cursor = limit - v_1; + break lab0; + } + // delete, line 114 + slice_del(); + } while (false); + break; + case 3: + // (, line 117 + // call R2, line 117 + if (!r_R2()) + { + return false; + } + // <-, line 117 + slice_from("log"); + break; + case 4: + // (, line 119 + // call R2, line 119 + if (!r_R2()) + { + return false; + } + // <-, line 119 + slice_from("u"); + break; + case 5: + // (, line 121 + // call R2, line 121 + if (!r_R2()) + { + return false; + } + // <-, line 121 + slice_from("ente"); + break; + case 6: + // (, line 123 + // call RV, line 123 + if (!r_RV()) + { + return false; + } + // delete, line 123 + slice_del(); + break; + case 7: + // (, line 124 + // call R1, line 125 + if (!r_R1()) + { + return false; + } + // delete, line 125 + slice_del(); + // try, line 126 + v_2 = limit - cursor; + lab1: do { + // (, line 126 + // [, line 127 + ket = cursor; + // substring, line 127 + among_var = find_among_b(a_4, 4); + if (among_var == 0) + { + cursor = limit - v_2; + break lab1; + } + // ], line 127 + bra = cursor; + // call R2, line 127 + if (!r_R2()) + { + cursor = limit - v_2; + break lab1; + } + // delete, line 127 + slice_del(); + switch(among_var) { + case 0: + cursor = limit - v_2; + break lab1; + case 1: + // (, line 128 + // [, line 128 + ket = cursor; + // literal, line 128 + if (!(eq_s_b(2, "at"))) + { + cursor = limit - v_2; + break lab1; + } + // ], line 128 + bra = cursor; + // call R2, line 128 + if (!r_R2()) + { + cursor = limit - v_2; + break lab1; + } + // delete, line 128 + slice_del(); + break; + } + } while (false); + break; + case 8: + // (, line 133 + // call R2, line 134 + if (!r_R2()) + { + return false; + } + // delete, line 134 + slice_del(); + // try, line 135 + v_3 = limit - cursor; + lab2: do { + // (, line 135 + // [, line 136 + ket = cursor; + // substring, line 136 + among_var = find_among_b(a_5, 3); + if (among_var == 0) + { + cursor = limit - v_3; + break lab2; + } + // ], line 136 + bra = cursor; + switch(among_var) { + case 0: + cursor = limit - v_3; + break lab2; + case 1: + // (, line 137 + // call R2, line 137 + if (!r_R2()) + { + cursor = limit - v_3; + break lab2; + } + // delete, line 137 + slice_del(); + break; + } + } while (false); + break; + case 9: + // (, line 141 + // call R2, line 142 + if (!r_R2()) + { + return false; + } + // delete, line 142 + slice_del(); + // try, line 143 + v_4 = limit - cursor; + lab3: do { + // (, line 143 + // [, line 143 + ket = cursor; + // literal, line 143 + if (!(eq_s_b(2, "at"))) + { + cursor = limit - v_4; + break lab3; + } + // ], line 143 + bra = cursor; + // call R2, line 143 + if (!r_R2()) + { + cursor = limit - v_4; + break lab3; + } + // delete, line 143 + slice_del(); + // [, line 143 + ket = cursor; + // literal, line 143 + if (!(eq_s_b(2, "ic"))) + { + cursor = limit - v_4; + break lab3; + } + // ], line 143 + bra = cursor; + // call R2, line 143 + if (!r_R2()) + { + cursor = limit - v_4; + break lab3; + } + // delete, line 143 + slice_del(); + } while (false); + break; + } + return true; + } + + private boolean r_verb_suffix() { + int among_var; + int v_1; + int v_2; + // setlimit, line 148 + v_1 = limit - cursor; + // tomark, line 148 + if (cursor < I_pV) + { + return false; + } + cursor = I_pV; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 148 + // [, line 149 + ket = cursor; + // substring, line 149 + among_var = find_among_b(a_7, 87); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 149 + bra = cursor; + switch(among_var) { + case 0: + limit_backward = v_2; + return false; + case 1: + // (, line 163 + // delete, line 163 + slice_del(); + break; + } + limit_backward = v_2; + return true; + } + + private boolean r_vowel_suffix() { + int v_1; + int v_2; + // (, line 170 + // try, line 171 + v_1 = limit - cursor; + lab0: do { + // (, line 171 + // [, line 172 + ket = cursor; + if (!(in_grouping_b(g_AEIO, 97, 242))) + { + cursor = limit - v_1; + break lab0; + } + // ], line 172 + bra = cursor; + // call RV, line 172 + if (!r_RV()) + { + cursor = limit - v_1; + break lab0; + } + // delete, line 172 + slice_del(); + // [, line 173 + ket = cursor; + // literal, line 173 + if (!(eq_s_b(1, "i"))) + { + cursor = limit - v_1; + break lab0; + } + // ], line 173 + bra = cursor; + // call RV, line 173 + if (!r_RV()) + { + cursor = limit - v_1; + break lab0; + } + // delete, line 173 + slice_del(); + } while (false); + // try, line 175 + v_2 = limit - cursor; + lab1: do { + // (, line 175 + // [, line 176 + ket = cursor; + // literal, line 176 + if (!(eq_s_b(1, "h"))) + { + cursor = limit - v_2; + break lab1; + } + // ], line 176 + bra = cursor; + if (!(in_grouping_b(g_CG, 99, 103))) + { + cursor = limit - v_2; + break lab1; + } + // call RV, line 176 + if (!r_RV()) + { + cursor = limit - v_2; + break lab1; + } + // delete, line 176 + slice_del(); + } while (false); + 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; + // (, line 181 + // do, line 182 + v_1 = cursor; + lab0: do { + // call prelude, line 182 + if (!r_prelude()) + { + break lab0; + } + } while (false); + cursor = v_1; + // do, line 183 + v_2 = cursor; + lab1: do { + // call mark_regions, line 183 + if (!r_mark_regions()) + { + break lab1; + } + } while (false); + cursor = v_2; + // backwards, line 184 + limit_backward = cursor; cursor = limit; + // (, line 184 + // do, line 185 + v_3 = limit - cursor; + lab2: do { + // call attached_pronoun, line 185 + if (!r_attached_pronoun()) + { + break lab2; + } + } while (false); + cursor = limit - v_3; + // do, line 186 + v_4 = limit - cursor; + lab3: do { + // (, line 186 + // or, line 186 + lab4: do { + v_5 = limit - cursor; + lab5: do { + // call standard_suffix, line 186 + if (!r_standard_suffix()) + { + break lab5; + } + break lab4; + } while (false); + cursor = limit - v_5; + // call verb_suffix, line 186 + if (!r_verb_suffix()) + { + break lab3; + } + } while (false); + } while (false); + cursor = limit - v_4; + // do, line 187 + v_6 = limit - cursor; + lab6: do { + // call vowel_suffix, line 187 + if (!r_vowel_suffix()) + { + break lab6; + } + } while (false); + cursor = limit - v_6; + cursor = limit_backward; // do, line 189 + v_7 = cursor; + lab7: do { + // call postlude, line 189 + if (!r_postlude()) + { + break lab7; + } + } while (false); + cursor = v_7; + return true; + } + +} + Index: contrib/snowball/src/java/org/tartarus/snowball/ext/RussianStemmer.java =================================================================== --- contrib/snowball/src/java/org/tartarus/snowball/ext/RussianStemmer.java (revision 0) +++ contrib/snowball/src/java/org/tartarus/snowball/ext/RussianStemmer.java (revision 0) @@ -0,0 +1,727 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; +import org.tartarus.snowball.SnowballProgram; +import org.tartarus.snowball.Among; + +/** + * Generated class implementing code defined by a snowball script. + */ +public class RussianStemmer extends SnowballProgram { + + private Among a_0[] = { + 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 ( "\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 ( "\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 ( "\u0441\u044C", -1, 1, "", this), + new Among ( "\u0441\u044F", -1, 1, "", this) + }; + + private Among a_4[] = { + 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 ( "\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 ( "\u043E\u0441\u0442", -1, 1, "", this), + new Among ( "\u043E\u0441\u0442\u044C", -1, 1, "", this) + }; + + private Among a_7[] = { + 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[] = {33, 65, 8, 232 }; + + private int I_p2; + private int I_pV; + + private void copy_from(RussianStemmer other) { + I_p2 = other.I_p2; + I_pV = other.I_pV; + super.copy_from(other); + } + + private boolean r_mark_regions() { + int v_1; + // (, line 57 + I_pV = limit; + I_p2 = limit; + // do, line 61 + v_1 = cursor; + lab0: do { + // (, line 61 + // gopast, line 62 + golab1: while(true) + { + lab2: do { + if (!(in_grouping(g_v, 1072, 1103))) + { + break lab2; + } + break golab1; + } while (false); + if (cursor >= limit) + { + break lab0; + } + cursor++; + } + // setmark pV, line 62 + I_pV = cursor; + // gopast, line 62 + golab3: while(true) + { + lab4: do { + if (!(out_grouping(g_v, 1072, 1103))) + { + break lab4; + } + break golab3; + } while (false); + if (cursor >= limit) + { + break lab0; + } + cursor++; + } + // gopast, line 63 + golab5: while(true) + { + lab6: do { + if (!(in_grouping(g_v, 1072, 1103))) + { + break lab6; + } + break golab5; + } while (false); + if (cursor >= limit) + { + break lab0; + } + cursor++; + } + // gopast, line 63 + golab7: while(true) + { + lab8: do { + if (!(out_grouping(g_v, 1072, 1103))) + { + break lab8; + } + break golab7; + } while (false); + if (cursor >= limit) + { + break lab0; + } + cursor++; + } + // setmark p2, line 63 + I_p2 = cursor; + } while (false); + cursor = v_1; + return true; + } + + private boolean r_R2() { + if (!(I_p2 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_perfective_gerund() { + int among_var; + int v_1; + // (, line 71 + // [, line 72 + ket = cursor; + // substring, line 72 + among_var = find_among_b(a_0, 9); + if (among_var == 0) + { + return false; + } + // ], line 72 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 76 + // or, line 76 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // literal, line 76 + if (!(eq_s_b(1, "\u0430"))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_1; + // literal, line 76 + if (!(eq_s_b(1, "\u044F"))) + { + return false; + } + } while (false); + // delete, line 76 + slice_del(); + break; + case 2: + // (, line 83 + // delete, line 83 + slice_del(); + break; + } + return true; + } + + private boolean r_adjective() { + int among_var; + // (, line 87 + // [, line 88 + ket = cursor; + // substring, line 88 + among_var = find_among_b(a_1, 26); + if (among_var == 0) + { + return false; + } + // ], line 88 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 97 + // delete, line 97 + slice_del(); + break; + } + return true; + } + + private boolean r_adjectival() { + int among_var; + int v_1; + int v_2; + // (, line 101 + // call adjective, line 102 + if (!r_adjective()) + { + return false; + } + // try, line 109 + v_1 = limit - cursor; + lab0: do { + // (, line 109 + // [, line 110 + ket = cursor; + // substring, line 110 + among_var = find_among_b(a_2, 8); + if (among_var == 0) + { + cursor = limit - v_1; + break lab0; + } + // ], line 110 + bra = cursor; + switch(among_var) { + case 0: + cursor = limit - v_1; + break lab0; + case 1: + // (, line 115 + // or, line 115 + lab1: do { + v_2 = limit - cursor; + lab2: do { + // literal, line 115 + if (!(eq_s_b(1, "\u0430"))) + { + break lab2; + } + break lab1; + } while (false); + cursor = limit - v_2; + // literal, line 115 + if (!(eq_s_b(1, "\u044F"))) + { + cursor = limit - v_1; + break lab0; + } + } while (false); + // delete, line 115 + slice_del(); + break; + case 2: + // (, line 122 + // delete, line 122 + slice_del(); + break; + } + } while (false); + return true; + } + + private boolean r_reflexive() { + int among_var; + // (, line 128 + // [, line 129 + ket = cursor; + // substring, line 129 + among_var = find_among_b(a_3, 2); + if (among_var == 0) + { + return false; + } + // ], line 129 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 132 + // delete, line 132 + slice_del(); + break; + } + return true; + } + + private boolean r_verb() { + int among_var; + int v_1; + // (, line 136 + // [, line 137 + ket = cursor; + // substring, line 137 + among_var = find_among_b(a_4, 46); + if (among_var == 0) + { + return false; + } + // ], line 137 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 143 + // or, line 143 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // literal, line 143 + if (!(eq_s_b(1, "\u0430"))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_1; + // literal, line 143 + if (!(eq_s_b(1, "\u044F"))) + { + return false; + } + } while (false); + // delete, line 143 + slice_del(); + break; + case 2: + // (, line 151 + // delete, line 151 + slice_del(); + break; + } + return true; + } + + private boolean r_noun() { + int among_var; + // (, line 159 + // [, line 160 + ket = cursor; + // substring, line 160 + among_var = find_among_b(a_5, 36); + if (among_var == 0) + { + return false; + } + // ], line 160 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 167 + // delete, line 167 + slice_del(); + break; + } + return true; + } + + private boolean r_derivational() { + int among_var; + // (, line 175 + // [, line 176 + ket = cursor; + // substring, line 176 + among_var = find_among_b(a_6, 2); + if (among_var == 0) + { + return false; + } + // ], line 176 + bra = cursor; + // call R2, line 176 + if (!r_R2()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 179 + // delete, line 179 + slice_del(); + break; + } + return true; + } + + private boolean r_tidy_up() { + int among_var; + // (, line 183 + // [, line 184 + ket = cursor; + // substring, line 184 + among_var = find_among_b(a_7, 4); + if (among_var == 0) + { + return false; + } + // ], line 184 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 188 + // delete, line 188 + slice_del(); + // [, line 189 + ket = cursor; + // literal, line 189 + if (!(eq_s_b(1, "\u043D"))) + { + return false; + } + // ], line 189 + bra = cursor; + // literal, line 189 + if (!(eq_s_b(1, "\u043D"))) + { + return false; + } + // delete, line 189 + slice_del(); + break; + case 2: + // (, line 192 + // literal, line 192 + if (!(eq_s_b(1, "\u043D"))) + { + return false; + } + // delete, line 192 + slice_del(); + break; + case 3: + // (, line 194 + // delete, line 194 + 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 199 + // do, line 201 + v_1 = cursor; + lab0: do { + // call mark_regions, line 201 + if (!r_mark_regions()) + { + break lab0; + } + } while (false); + cursor = v_1; + // backwards, line 202 + limit_backward = cursor; cursor = limit; + // setlimit, line 202 + v_2 = limit - cursor; + // tomark, line 202 + if (cursor < I_pV) + { + return false; + } + cursor = I_pV; + v_3 = limit_backward; + limit_backward = cursor; + cursor = limit - v_2; + // (, line 202 + // do, line 203 + v_4 = limit - cursor; + lab1: do { + // (, line 203 + // or, line 204 + lab2: do { + v_5 = limit - cursor; + lab3: do { + // call perfective_gerund, line 204 + if (!r_perfective_gerund()) + { + break lab3; + } + break lab2; + } while (false); + cursor = limit - v_5; + // (, line 205 + // try, line 205 + v_6 = limit - cursor; + lab4: do { + // call reflexive, line 205 + if (!r_reflexive()) + { + cursor = limit - v_6; + break lab4; + } + } while (false); + // or, line 206 + lab5: do { + v_7 = limit - cursor; + lab6: do { + // call adjectival, line 206 + if (!r_adjectival()) + { + break lab6; + } + break lab5; + } while (false); + cursor = limit - v_7; + lab7: do { + // call verb, line 206 + if (!r_verb()) + { + break lab7; + } + break lab5; + } while (false); + cursor = limit - v_7; + // call noun, line 206 + if (!r_noun()) + { + break lab1; + } + } while (false); + } while (false); + } while (false); + cursor = limit - v_4; + // try, line 209 + v_8 = limit - cursor; + lab8: do { + // (, line 209 + // [, line 209 + ket = cursor; + // literal, line 209 + if (!(eq_s_b(1, "\u0438"))) + { + cursor = limit - v_8; + break lab8; + } + // ], line 209 + bra = cursor; + // delete, line 209 + slice_del(); + } while (false); + // do, line 212 + v_9 = limit - cursor; + lab9: do { + // call derivational, line 212 + if (!r_derivational()) + { + break lab9; + } + } while (false); + cursor = limit - v_9; + // do, line 213 + v_10 = limit - cursor; + lab10: do { + // call tidy_up, line 213 + if (!r_tidy_up()) + { + break lab10; + } + } while (false); + cursor = limit - v_10; + limit_backward = v_3; + cursor = limit_backward; return true; + } + +} + Index: contrib/snowball/src/java/org/tartarus/snowball/ext/NorwegianStemmer.java =================================================================== --- contrib/snowball/src/java/org/tartarus/snowball/ext/NorwegianStemmer.java (revision 0) +++ contrib/snowball/src/java/org/tartarus/snowball/ext/NorwegianStemmer.java (revision 0) @@ -0,0 +1,358 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; +import org.tartarus.snowball.SnowballProgram; +import org.tartarus.snowball.Among; + +/** + * Generated class implementing code defined by a snowball script. + */ +public class NorwegianStemmer extends SnowballProgram { + + private Among a_0[] = { + new Among ( "a", -1, 1, "", this), + new Among ( "e", -1, 1, "", this), + new Among ( "ede", 1, 1, "", this), + new Among ( "ande", 1, 1, "", this), + new Among ( "ende", 1, 1, "", this), + new Among ( "ane", 1, 1, "", this), + new Among ( "ene", 1, 1, "", this), + new Among ( "hetene", 6, 1, "", this), + new Among ( "erte", 1, 3, "", this), + new Among ( "en", -1, 1, "", this), + new Among ( "heten", 9, 1, "", this), + new Among ( "ar", -1, 1, "", this), + new Among ( "er", -1, 1, "", this), + new Among ( "heter", 12, 1, "", this), + new Among ( "s", -1, 2, "", this), + new Among ( "as", 14, 1, "", this), + new Among ( "es", 14, 1, "", this), + new Among ( "edes", 16, 1, "", this), + new Among ( "endes", 16, 1, "", this), + new Among ( "enes", 16, 1, "", this), + new Among ( "hetenes", 19, 1, "", this), + new Among ( "ens", 14, 1, "", this), + new Among ( "hetens", 21, 1, "", this), + new Among ( "ers", 14, 1, "", this), + new Among ( "ets", 14, 1, "", this), + new Among ( "et", -1, 1, "", this), + new Among ( "het", 25, 1, "", this), + new Among ( "ert", -1, 3, "", this), + new Among ( "ast", -1, 1, "", this) + }; + + private Among a_1[] = { + new Among ( "dt", -1, -1, "", this), + new Among ( "vt", -1, -1, "", this) + }; + + private Among a_2[] = { + new Among ( "leg", -1, 1, "", this), + new Among ( "eleg", 0, 1, "", this), + new Among ( "ig", -1, 1, "", this), + new Among ( "eig", 2, 1, "", this), + new Among ( "lig", 2, 1, "", this), + new Among ( "elig", 4, 1, "", this), + new Among ( "els", -1, 1, "", this), + new Among ( "lov", -1, 1, "", this), + new Among ( "elov", 7, 1, "", this), + new Among ( "slov", 7, 1, "", this), + new Among ( "hetslov", 9, 1, "", this) + }; + + 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, 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; + // 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_2 = cursor; + lab1: do { + if (!(in_grouping(g_v, 97, 248))) + { + break lab1; + } + cursor = v_2; + break golab0; + } while (false); + cursor = v_2; + if (cursor >= limit) + { + return false; + } + cursor++; + } + // gopast, line 31 + golab2: while(true) + { + lab3: do { + if (!(out_grouping(g_v, 97, 248))) + { + break lab3; + } + break golab2; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // setmark p1, line 31 + I_p1 = cursor; + // try, line 32 + lab4: do { + // (, line 32 + if (!(I_p1 < I_x)) + { + break lab4; + } + I_p1 = I_x; + } while (false); + return true; + } + + private boolean r_main_suffix() { + int among_var; + int v_1; + int v_2; + int v_3; + // (, line 37 + // setlimit, line 38 + v_1 = limit - cursor; + // tomark, line 38 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 38 + // [, line 38 + ket = cursor; + // substring, line 38 + among_var = find_among_b(a_0, 29); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 38 + bra = cursor; + limit_backward = v_2; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 44 + // delete, line 44 + slice_del(); + break; + case 2: + // (, 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 48 + // <-, line 48 + slice_from("er"); + break; + } + return true; + } + + private boolean r_consonant_pair() { + int v_1; + int v_2; + int v_3; + // (, line 52 + // test, line 53 + v_1 = limit - cursor; + // (, line 53 + // setlimit, line 54 + v_2 = limit - cursor; + // tomark, line 54 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_3 = limit_backward; + limit_backward = cursor; + cursor = limit - v_2; + // (, line 54 + // [, line 54 + ket = cursor; + // substring, line 54 + if (find_among_b(a_1, 2) == 0) + { + limit_backward = v_3; + return false; + } + // ], line 54 + bra = cursor; + limit_backward = v_3; + cursor = limit - v_1; + // next, line 59 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // ], line 59 + bra = cursor; + // delete, line 59 + slice_del(); + return true; + } + + private boolean r_other_suffix() { + int among_var; + int v_1; + int v_2; + // (, line 62 + // setlimit, line 63 + v_1 = limit - cursor; + // tomark, line 63 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 63 + // [, line 63 + ket = cursor; + // substring, line 63 + among_var = find_among_b(a_2, 11); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 63 + bra = cursor; + limit_backward = v_2; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 67 + // delete, line 67 + slice_del(); + break; + } + return true; + } + + public boolean stem() { + int v_1; + int v_2; + int v_3; + int v_4; + // (, line 72 + // do, line 74 + v_1 = cursor; + lab0: do { + // call mark_regions, line 74 + if (!r_mark_regions()) + { + break lab0; + } + } while (false); + cursor = v_1; + // backwards, line 75 + limit_backward = cursor; cursor = limit; + // (, line 75 + // do, line 76 + v_2 = limit - cursor; + lab1: do { + // call main_suffix, line 76 + if (!r_main_suffix()) + { + break lab1; + } + } while (false); + cursor = limit - v_2; + // do, line 77 + v_3 = limit - cursor; + lab2: do { + // call consonant_pair, line 77 + if (!r_consonant_pair()) + { + break lab2; + } + } while (false); + cursor = limit - v_3; + // do, line 78 + v_4 = limit - cursor; + lab3: do { + // call other_suffix, line 78 + if (!r_other_suffix()) + { + break lab3; + } + } while (false); + cursor = limit - v_4; + cursor = limit_backward; return true; + } + +} + Index: contrib/snowball/src/java/org/tartarus/snowball/ext/EnglishStemmer.java =================================================================== --- contrib/snowball/src/java/org/tartarus/snowball/ext/EnglishStemmer.java (revision 0) +++ contrib/snowball/src/java/org/tartarus/snowball/ext/EnglishStemmer.java (revision 0) @@ -0,0 +1,1314 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; +import org.tartarus.snowball.SnowballProgram; +import org.tartarus.snowball.Among; + +/** + * Generated class implementing code defined by a snowball script. + */ +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), + new Among ( "sses", 1, 1, "", this), + new Among ( "ss", 1, -1, "", this), + new Among ( "us", 1, -1, "", this) + }; + + private Among a_3[] = { + new Among ( "", -1, 3, "", this), + new Among ( "bb", 0, 2, "", this), + new Among ( "dd", 0, 2, "", this), + new Among ( "ff", 0, 2, "", this), + new Among ( "gg", 0, 2, "", this), + new Among ( "bl", 0, 1, "", this), + new Among ( "mm", 0, 2, "", this), + new Among ( "nn", 0, 2, "", this), + new Among ( "pp", 0, 2, "", this), + new Among ( "rr", 0, 2, "", this), + new Among ( "at", 0, 1, "", this), + new Among ( "tt", 0, 2, "", this), + new Among ( "iz", 0, 1, "", this) + }; + + private Among a_4[] = { + new Among ( "ed", -1, 2, "", this), + new Among ( "eed", 0, 1, "", this), + new Among ( "ing", -1, 2, "", this), + new Among ( "edly", -1, 2, "", this), + new Among ( "eedly", 3, 1, "", this), + new Among ( "ingly", -1, 2, "", this) + }; + + private Among a_5[] = { + new Among ( "anci", -1, 3, "", this), + new Among ( "enci", -1, 2, "", this), + new Among ( "ogi", -1, 13, "", this), + new Among ( "li", -1, 16, "", this), + new Among ( "bli", 3, 12, "", this), + new Among ( "abli", 4, 4, "", this), + new Among ( "alli", 3, 8, "", this), + new Among ( "fulli", 3, 14, "", this), + new Among ( "lessli", 3, 15, "", this), + new Among ( "ousli", 3, 10, "", this), + new Among ( "entli", 3, 5, "", this), + new Among ( "aliti", -1, 8, "", this), + new Among ( "biliti", -1, 12, "", this), + new Among ( "iviti", -1, 11, "", this), + new Among ( "tional", -1, 1, "", this), + new Among ( "ational", 14, 7, "", this), + new Among ( "alism", -1, 8, "", this), + new Among ( "ation", -1, 7, "", this), + new Among ( "ization", 17, 6, "", this), + new Among ( "izer", -1, 6, "", this), + new Among ( "ator", -1, 7, "", this), + new Among ( "iveness", -1, 11, "", this), + new Among ( "fulness", -1, 9, "", this), + new Among ( "ousness", -1, 10, "", this) + }; + + private Among a_6[] = { + new Among ( "icate", -1, 4, "", this), + new Among ( "ative", -1, 6, "", this), + new Among ( "alize", -1, 3, "", this), + new Among ( "iciti", -1, 4, "", this), + new Among ( "ical", -1, 4, "", this), + new Among ( "tional", -1, 1, "", this), + new Among ( "ational", 5, 2, "", this), + new Among ( "ful", -1, 5, "", this), + new Among ( "ness", -1, 5, "", this) + }; + + private Among a_7[] = { + new Among ( "ic", -1, 1, "", this), + new Among ( "ance", -1, 1, "", this), + new Among ( "ence", -1, 1, "", this), + new Among ( "able", -1, 1, "", this), + new Among ( "ible", -1, 1, "", this), + new Among ( "ate", -1, 1, "", this), + new Among ( "ive", -1, 1, "", this), + new Among ( "ize", -1, 1, "", this), + new Among ( "iti", -1, 1, "", this), + new Among ( "al", -1, 1, "", this), + new Among ( "ism", -1, 1, "", this), + new Among ( "ion", -1, 2, "", this), + new Among ( "er", -1, 1, "", this), + new Among ( "ous", -1, 1, "", this), + new Among ( "ant", -1, 1, "", this), + new Among ( "ent", -1, 1, "", this), + new Among ( "ment", 15, 1, "", this), + new Among ( "ement", 16, 1, "", this) + }; + + private Among a_8[] = { + new Among ( "e", -1, 1, "", this), + new Among ( "l", -1, 2, "", this) + }; + + private Among a_9[] = { + new Among ( "succeed", -1, -1, "", this), + new Among ( "proceed", -1, -1, "", this), + new Among ( "exceed", -1, -1, "", this), + new Among ( "canning", -1, -1, "", this), + new Among ( "inning", -1, -1, "", this), + new Among ( "earring", -1, -1, "", this), + new Among ( "herring", -1, -1, "", this), + new Among ( "outing", -1, -1, "", this) + }; + + private Among a_10[] = { + new Among ( "andes", -1, -1, "", this), + new Among ( "atlas", -1, -1, "", this), + new Among ( "bias", -1, -1, "", this), + new Among ( "cosmos", -1, -1, "", this), + new Among ( "dying", -1, 3, "", this), + new Among ( "early", -1, 9, "", this), + new Among ( "gently", -1, 7, "", this), + new Among ( "howe", -1, -1, "", this), + new Among ( "idly", -1, 6, "", this), + new Among ( "lying", -1, 4, "", this), + new Among ( "news", -1, -1, "", this), + new Among ( "only", -1, 10, "", this), + new Among ( "singly", -1, 11, "", this), + new Among ( "skies", -1, 2, "", this), + new Among ( "skis", -1, 1, "", this), + new Among ( "sky", -1, -1, "", this), + new Among ( "tying", -1, 5, "", this), + new Among ( "ugly", -1, 8, "", this) + }; + + private static final char g_v[] = {17, 65, 16, 1 }; + + private static final char g_v_WXY[] = {1, 17, 65, 208, 1 }; + + private static final char g_valid_LI[] = {55, 141, 2 }; + + private boolean B_Y_found; + private int I_p2; + private int I_p1; + + private void copy_from(EnglishStemmer other) { + B_Y_found = other.B_Y_found; + I_p2 = other.I_p2; + I_p1 = other.I_p1; + super.copy_from(other); + } + + private boolean r_prelude() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + // (, line 25 + // unset Y_found, line 26 + B_Y_found = false; + // do, line 27 + v_1 = cursor; + lab0: do { + // (, line 27 + // [, line 27 + bra = cursor; + // literal, line 27 + if (!(eq_s(1, "'"))) + { + break lab0; + } + // ], line 27 + ket = cursor; + // 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 lab1; + } + // ], line 28 + ket = cursor; + // <-, line 28 + slice_from("Y"); + // set Y_found, line 28 + B_Y_found = true; + } while (false); + cursor = v_2; + // do, line 29 + v_3 = cursor; + lab2: do { + // repeat, line 29 + replab3: while(true) + { + v_4 = cursor; + lab4: do { + // (, line 29 + // goto, line 29 + golab5: while(true) + { + v_5 = cursor; + lab6: do { + // (, line 29 + if (!(in_grouping(g_v, 97, 121))) + { + break lab6; + } + // [, line 29 + bra = cursor; + // literal, line 29 + if (!(eq_s(1, "y"))) + { + break lab6; + } + // ], line 29 + ket = cursor; + cursor = v_5; + break golab5; + } while (false); + cursor = v_5; + if (cursor >= limit) + { + break lab4; + } + cursor++; + } + // <-, line 29 + slice_from("Y"); + // set Y_found, line 29 + B_Y_found = true; + continue replab3; + } while (false); + cursor = v_4; + break replab3; + } + } while (false); + cursor = v_3; + return true; + } + + private boolean r_mark_regions() { + int v_1; + int v_2; + // (, line 32 + I_p1 = limit; + I_p2 = limit; + // do, line 35 + v_1 = cursor; + lab0: do { + // (, line 35 + // or, line 41 + lab1: do { + v_2 = cursor; + lab2: do { + // among, line 36 + if (find_among(a_0, 3) == 0) + { + break lab2; + } + break lab1; + } while (false); + cursor = v_2; + // (, line 41 + // gopast, line 41 + golab3: while(true) + { + lab4: do { + if (!(in_grouping(g_v, 97, 121))) + { + break lab4; + } + break golab3; + } while (false); + if (cursor >= limit) + { + break lab0; + } + cursor++; + } + // gopast, line 41 + golab5: while(true) + { + lab6: do { + if (!(out_grouping(g_v, 97, 121))) + { + break lab6; + } + break golab5; + } while (false); + if (cursor >= limit) + { + break lab0; + } + cursor++; + } + } while (false); + // setmark p1, line 42 + I_p1 = cursor; + // gopast, line 43 + golab7: while(true) + { + lab8: do { + if (!(in_grouping(g_v, 97, 121))) + { + break lab8; + } + break golab7; + } while (false); + if (cursor >= limit) + { + break lab0; + } + cursor++; + } + // gopast, line 43 + golab9: while(true) + { + lab10: do { + if (!(out_grouping(g_v, 97, 121))) + { + break lab10; + } + break golab9; + } while (false); + if (cursor >= limit) + { + break lab0; + } + cursor++; + } + // setmark p2, line 43 + I_p2 = cursor; + } while (false); + cursor = v_1; + return true; + } + + private boolean r_shortv() { + int v_1; + // (, line 49 + // or, line 51 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // (, line 50 + if (!(out_grouping_b(g_v_WXY, 89, 121))) + { + break lab1; + } + if (!(in_grouping_b(g_v, 97, 121))) + { + break lab1; + } + if (!(out_grouping_b(g_v, 97, 121))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_1; + // (, line 52 + if (!(out_grouping_b(g_v, 97, 121))) + { + return false; + } + if (!(in_grouping_b(g_v, 97, 121))) + { + return false; + } + // atlimit, line 52 + if (cursor > limit_backward) + { + return false; + } + } while (false); + return true; + } + + private boolean r_R1() { + if (!(I_p1 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R2() { + if (!(I_p2 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_Step_1a() { + int among_var; + int v_1; + 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 65 + among_var = find_among_b(a_2, 6); + if (among_var == 0) + { + return false; + } + // ], line 65 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 66 + // <-, line 66 + slice_from("ss"); + break; + case 2: + // (, line 68 + // or, line 68 + lab1: do { + v_2 = limit - cursor; + lab2: do { + // (, line 68 + // hop, line 68 + { + int c = cursor - 2; + if (limit_backward > c || c > limit) + { + break lab2; + } + cursor = c; + } + // <-, line 68 + slice_from("i"); + break lab1; + } while (false); + cursor = limit - v_2; + // <-, line 68 + slice_from("ie"); + } while (false); + break; + case 3: + // (, line 69 + // next, line 69 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // gopast, line 69 + golab3: while(true) + { + lab4: do { + if (!(in_grouping_b(g_v, 97, 121))) + { + break lab4; + } + break golab3; + } while (false); + if (cursor <= limit_backward) + { + return false; + } + cursor--; + } + // delete, line 69 + slice_del(); + break; + } + return true; + } + + private boolean r_Step_1b() { + int among_var; + int v_1; + int v_3; + int v_4; + // (, line 74 + // [, line 75 + ket = cursor; + // substring, line 75 + among_var = find_among_b(a_4, 6); + if (among_var == 0) + { + return false; + } + // ], line 75 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 77 + // call R1, line 77 + if (!r_R1()) + { + return false; + } + // <-, line 77 + slice_from("ee"); + break; + case 2: + // (, line 79 + // test, line 80 + v_1 = limit - cursor; + // gopast, line 80 + golab0: while(true) + { + lab1: do { + if (!(in_grouping_b(g_v, 97, 121))) + { + break lab1; + } + break golab0; + } while (false); + if (cursor <= limit_backward) + { + return false; + } + cursor--; + } + cursor = limit - v_1; + // delete, line 80 + slice_del(); + // test, line 81 + v_3 = limit - cursor; + // substring, line 81 + among_var = find_among_b(a_3, 13); + if (among_var == 0) + { + return false; + } + cursor = limit - v_3; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 83 + // <+, line 83 + { + int c = cursor; + insert(cursor, cursor, "e"); + cursor = c; + } + break; + case 2: + // (, line 86 + // [, line 86 + ket = cursor; + // next, line 86 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // ], line 86 + bra = cursor; + // delete, line 86 + slice_del(); + break; + case 3: + // (, line 87 + // atmark, line 87 + if (cursor != I_p1) + { + return false; + } + // test, line 87 + v_4 = limit - cursor; + // call shortv, line 87 + if (!r_shortv()) + { + return false; + } + cursor = limit - v_4; + // <+, line 87 + { + int c = cursor; + insert(cursor, cursor, "e"); + cursor = c; + } + break; + } + break; + } + return true; + } + + private boolean r_Step_1c() { + int v_1; + int v_2; + // (, line 93 + // [, line 94 + ket = cursor; + // or, line 94 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // literal, line 94 + if (!(eq_s_b(1, "y"))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_1; + // literal, line 94 + if (!(eq_s_b(1, "Y"))) + { + return false; + } + } while (false); + // ], line 94 + bra = cursor; + if (!(out_grouping_b(g_v, 97, 121))) + { + return false; + } + // not, line 95 + { + v_2 = limit - cursor; + lab2: do { + // atlimit, line 95 + if (cursor > limit_backward) + { + break lab2; + } + return false; + } while (false); + cursor = limit - v_2; + } + // <-, line 96 + slice_from("i"); + return true; + } + + private boolean r_Step_2() { + int among_var; + // (, line 99 + // [, line 100 + ket = cursor; + // substring, line 100 + among_var = find_among_b(a_5, 24); + if (among_var == 0) + { + return false; + } + // ], line 100 + bra = cursor; + // call R1, line 100 + if (!r_R1()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 101 + // <-, line 101 + slice_from("tion"); + break; + case 2: + // (, line 102 + // <-, line 102 + slice_from("ence"); + break; + case 3: + // (, line 103 + // <-, line 103 + slice_from("ance"); + break; + case 4: + // (, line 104 + // <-, line 104 + slice_from("able"); + break; + case 5: + // (, line 105 + // <-, line 105 + slice_from("ent"); + break; + case 6: + // (, line 107 + // <-, line 107 + slice_from("ize"); + break; + case 7: + // (, line 109 + // <-, line 109 + slice_from("ate"); + break; + case 8: + // (, line 111 + // <-, line 111 + slice_from("al"); + break; + case 9: + // (, line 112 + // <-, line 112 + slice_from("ful"); + break; + case 10: + // (, line 114 + // <-, line 114 + slice_from("ous"); + break; + case 11: + // (, line 116 + // <-, line 116 + slice_from("ive"); + break; + case 12: + // (, line 118 + // <-, line 118 + slice_from("ble"); + break; + case 13: + // (, line 119 + // literal, line 119 + if (!(eq_s_b(1, "l"))) + { + return false; + } + // <-, line 119 + slice_from("og"); + break; + case 14: + // (, line 120 + // <-, line 120 + slice_from("ful"); + break; + case 15: + // (, line 121 + // <-, line 121 + slice_from("less"); + break; + case 16: + // (, line 122 + if (!(in_grouping_b(g_valid_LI, 99, 116))) + { + return false; + } + // delete, line 122 + slice_del(); + break; + } + return true; + } + + private boolean r_Step_3() { + int among_var; + // (, line 126 + // [, line 127 + ket = cursor; + // substring, line 127 + among_var = find_among_b(a_6, 9); + if (among_var == 0) + { + return false; + } + // ], line 127 + bra = cursor; + // call R1, line 127 + if (!r_R1()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 128 + // <-, line 128 + slice_from("tion"); + break; + case 2: + // (, line 129 + // <-, line 129 + slice_from("ate"); + break; + case 3: + // (, line 130 + // <-, line 130 + slice_from("al"); + break; + case 4: + // (, line 132 + // <-, line 132 + slice_from("ic"); + break; + case 5: + // (, line 134 + // delete, line 134 + slice_del(); + break; + case 6: + // (, line 136 + // call R2, line 136 + if (!r_R2()) + { + return false; + } + // delete, line 136 + slice_del(); + break; + } + return true; + } + + private boolean r_Step_4() { + int among_var; + int v_1; + // (, line 140 + // [, line 141 + ket = cursor; + // substring, line 141 + among_var = find_among_b(a_7, 18); + if (among_var == 0) + { + return false; + } + // ], line 141 + bra = cursor; + // call R2, line 141 + if (!r_R2()) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 144 + // delete, line 144 + slice_del(); + break; + case 2: + // (, line 145 + // or, line 145 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // literal, line 145 + if (!(eq_s_b(1, "s"))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_1; + // literal, line 145 + if (!(eq_s_b(1, "t"))) + { + return false; + } + } while (false); + // delete, line 145 + slice_del(); + break; + } + return true; + } + + private boolean r_Step_5() { + int among_var; + int v_1; + int v_2; + // (, line 149 + // [, line 150 + ket = cursor; + // substring, line 150 + among_var = find_among_b(a_8, 2); + if (among_var == 0) + { + return false; + } + // ], line 150 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 151 + // or, line 151 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // call R2, line 151 + if (!r_R2()) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_1; + // (, line 151 + // call R1, line 151 + if (!r_R1()) + { + return false; + } + // not, line 151 + { + v_2 = limit - cursor; + lab2: do { + // call shortv, line 151 + if (!r_shortv()) + { + break lab2; + } + return false; + } while (false); + cursor = limit - v_2; + } + } while (false); + // delete, line 151 + slice_del(); + break; + case 2: + // (, line 152 + // call R2, line 152 + if (!r_R2()) + { + return false; + } + // literal, line 152 + if (!(eq_s_b(1, "l"))) + { + return false; + } + // delete, line 152 + slice_del(); + break; + } + return true; + } + + private boolean r_exception2() { + // (, line 156 + // [, line 158 + ket = cursor; + // substring, line 158 + if (find_among_b(a_9, 8) == 0) + { + return false; + } + // ], line 158 + bra = cursor; + // atlimit, line 158 + if (cursor > limit_backward) + { + return false; + } + return true; + } + + private boolean r_exception1() { + int among_var; + // (, line 168 + // [, line 170 + bra = cursor; + // substring, line 170 + among_var = find_among(a_10, 18); + if (among_var == 0) + { + return false; + } + // ], line 170 + ket = cursor; + // atlimit, line 170 + if (cursor < limit) + { + return false; + } + switch(among_var) { + case 0: + return false; + case 1: + // (, line 174 + // <-, line 174 + slice_from("ski"); + break; + case 2: + // (, line 175 + // <-, line 175 + slice_from("sky"); + break; + case 3: + // (, line 176 + // <-, line 176 + slice_from("die"); + break; + case 4: + // (, line 177 + // <-, line 177 + slice_from("lie"); + break; + case 5: + // (, line 178 + // <-, line 178 + slice_from("tie"); + break; + case 6: + // (, line 182 + // <-, line 182 + slice_from("idl"); + break; + case 7: + // (, line 183 + // <-, line 183 + slice_from("gentl"); + break; + case 8: + // (, line 184 + // <-, line 184 + slice_from("ugli"); + break; + case 9: + // (, line 185 + // <-, line 185 + slice_from("earli"); + break; + case 10: + // (, line 186 + // <-, line 186 + slice_from("onli"); + break; + case 11: + // (, line 187 + // <-, line 187 + slice_from("singl"); + break; + } + return true; + } + + private boolean r_postlude() { + int v_1; + int v_2; + // (, line 203 + // Boolean test Y_found, line 203 + if (!(B_Y_found)) + { + return false; + } + // repeat, line 203 + replab0: while(true) + { + v_1 = cursor; + lab1: do { + // (, line 203 + // goto, line 203 + golab2: while(true) + { + v_2 = cursor; + lab3: do { + // (, line 203 + // [, line 203 + bra = cursor; + // literal, line 203 + if (!(eq_s(1, "Y"))) + { + break lab3; + } + // ], line 203 + ket = cursor; + cursor = v_2; + break golab2; + } while (false); + cursor = v_2; + if (cursor >= limit) + { + break lab1; + } + cursor++; + } + // <-, line 203 + slice_from("y"); + continue replab0; + } while (false); + cursor = v_1; + break replab0; + } + 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; + int v_11; + int v_12; + int v_13; + // (, line 205 + // or, line 207 + lab0: do { + v_1 = cursor; + lab1: do { + // call exception1, line 207 + if (!r_exception1()) + { + break lab1; + } + break lab0; + } while (false); + cursor = v_1; + lab2: do { + // not, line 208 + { + 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; + } + break lab0; + } while (false); + cursor = v_1; + // (, line 208 + // do, line 209 + v_3 = cursor; + lab4: do { + // call prelude, line 209 + if (!r_prelude()) + { + break lab4; + } + } while (false); + cursor = v_3; + // do, line 210 + v_4 = cursor; + lab5: do { + // call mark_regions, line 210 + if (!r_mark_regions()) + { + break lab5; + } + } while (false); + cursor = v_4; + // backwards, line 211 + limit_backward = cursor; cursor = limit; + // (, line 211 + // do, line 213 + v_5 = limit - cursor; + lab6: do { + // call Step_1a, line 213 + if (!r_Step_1a()) + { + break lab6; + } + } while (false); + cursor = limit - v_5; + // or, line 215 + lab7: do { + v_6 = limit - cursor; + lab8: do { + // call exception2, line 215 + if (!r_exception2()) + { + break lab8; + } + break lab7; + } while (false); + cursor = limit - v_6; + // (, line 215 + // do, line 217 + v_7 = limit - cursor; + lab9: do { + // call Step_1b, line 217 + if (!r_Step_1b()) + { + break lab9; + } + } while (false); + cursor = limit - v_7; + // do, line 218 + v_8 = limit - cursor; + lab10: do { + // call Step_1c, line 218 + if (!r_Step_1c()) + { + break lab10; + } + } while (false); + cursor = limit - v_8; + // do, line 220 + v_9 = limit - cursor; + lab11: do { + // call Step_2, line 220 + if (!r_Step_2()) + { + break lab11; + } + } while (false); + cursor = limit - v_9; + // do, line 221 + v_10 = limit - cursor; + lab12: do { + // call Step_3, line 221 + if (!r_Step_3()) + { + break lab12; + } + } while (false); + cursor = limit - v_10; + // do, line 222 + v_11 = limit - cursor; + lab13: do { + // call Step_4, line 222 + if (!r_Step_4()) + { + break lab13; + } + } while (false); + cursor = limit - v_11; + // do, line 224 + v_12 = limit - cursor; + lab14: do { + // call Step_5, line 224 + if (!r_Step_5()) + { + break lab14; + } + } while (false); + cursor = limit - v_12; + } while (false); + cursor = limit_backward; // do, line 227 + v_13 = cursor; + lab15: do { + // call postlude, line 227 + if (!r_postlude()) + { + break lab15; + } + } while (false); + cursor = v_13; + } while (false); + return true; + } + +} + Index: contrib/snowball/src/java/org/tartarus/snowball/ext/TurkishStemmer.java =================================================================== --- contrib/snowball/src/java/org/tartarus/snowball/ext/TurkishStemmer.java (revision 0) +++ contrib/snowball/src/java/org/tartarus/snowball/ext/TurkishStemmer.java (revision 0) @@ -0,0 +1,3130 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; +import org.tartarus.snowball.SnowballProgram; +import org.tartarus.snowball.Among; + +/** + * Generated class implementing code defined by a snowball script. + */ +public class TurkishStemmer extends SnowballProgram { + + private Among a_0[] = { + new Among ( "m", -1, -1, "", this), + new Among ( "n", -1, -1, "", this), + new Among ( "miz", -1, -1, "", this), + new Among ( "niz", -1, -1, "", this), + new Among ( "muz", -1, -1, "", this), + new Among ( "nuz", -1, -1, "", this), + new Among ( "m\u00FCz", -1, -1, "", this), + new Among ( "n\u00FCz", -1, -1, "", this), + new Among ( "m\u0131z", -1, -1, "", this), + new Among ( "n\u0131z", -1, -1, "", this) + }; + + private Among a_1[] = { + new Among ( "leri", -1, -1, "", this), + new Among ( "lar\u0131", -1, -1, "", this) + }; + + private Among a_2[] = { + new Among ( "ni", -1, -1, "", this), + new Among ( "nu", -1, -1, "", this), + new Among ( "n\u00FC", -1, -1, "", this), + new Among ( "n\u0131", -1, -1, "", this) + }; + + private Among a_3[] = { + new Among ( "in", -1, -1, "", this), + new Among ( "un", -1, -1, "", this), + new Among ( "\u00FCn", -1, -1, "", this), + new Among ( "\u0131n", -1, -1, "", this) + }; + + private Among a_4[] = { + new Among ( "a", -1, -1, "", this), + new Among ( "e", -1, -1, "", this) + }; + + private Among a_5[] = { + new Among ( "na", -1, -1, "", this), + new Among ( "ne", -1, -1, "", this) + }; + + private Among a_6[] = { + new Among ( "da", -1, -1, "", this), + new Among ( "ta", -1, -1, "", this), + new Among ( "de", -1, -1, "", this), + new Among ( "te", -1, -1, "", this) + }; + + private Among a_7[] = { + new Among ( "nda", -1, -1, "", this), + new Among ( "nde", -1, -1, "", this) + }; + + private Among a_8[] = { + new Among ( "dan", -1, -1, "", this), + new Among ( "tan", -1, -1, "", this), + new Among ( "den", -1, -1, "", this), + new Among ( "ten", -1, -1, "", this) + }; + + private Among a_9[] = { + new Among ( "ndan", -1, -1, "", this), + new Among ( "nden", -1, -1, "", this) + }; + + private Among a_10[] = { + new Among ( "la", -1, -1, "", this), + new Among ( "le", -1, -1, "", this) + }; + + private Among a_11[] = { + new Among ( "ca", -1, -1, "", this), + new Among ( "ce", -1, -1, "", this) + }; + + private Among a_12[] = { + new Among ( "im", -1, -1, "", this), + new Among ( "um", -1, -1, "", this), + new Among ( "\u00FCm", -1, -1, "", this), + new Among ( "\u0131m", -1, -1, "", this) + }; + + private Among a_13[] = { + new Among ( "sin", -1, -1, "", this), + new Among ( "sun", -1, -1, "", this), + new Among ( "s\u00FCn", -1, -1, "", this), + new Among ( "s\u0131n", -1, -1, "", this) + }; + + private Among a_14[] = { + new Among ( "iz", -1, -1, "", this), + new Among ( "uz", -1, -1, "", this), + new Among ( "\u00FCz", -1, -1, "", this), + new Among ( "\u0131z", -1, -1, "", this) + }; + + private Among a_15[] = { + new Among ( "siniz", -1, -1, "", this), + new Among ( "sunuz", -1, -1, "", this), + new Among ( "s\u00FCn\u00FCz", -1, -1, "", this), + new Among ( "s\u0131n\u0131z", -1, -1, "", this) + }; + + private Among a_16[] = { + new Among ( "lar", -1, -1, "", this), + new Among ( "ler", -1, -1, "", this) + }; + + private Among a_17[] = { + new Among ( "niz", -1, -1, "", this), + new Among ( "nuz", -1, -1, "", this), + new Among ( "n\u00FCz", -1, -1, "", this), + new Among ( "n\u0131z", -1, -1, "", this) + }; + + private Among a_18[] = { + new Among ( "dir", -1, -1, "", this), + new Among ( "tir", -1, -1, "", this), + new Among ( "dur", -1, -1, "", this), + new Among ( "tur", -1, -1, "", this), + new Among ( "d\u00FCr", -1, -1, "", this), + new Among ( "t\u00FCr", -1, -1, "", this), + new Among ( "d\u0131r", -1, -1, "", this), + new Among ( "t\u0131r", -1, -1, "", this) + }; + + private Among a_19[] = { + new Among ( "cas\u0131na", -1, -1, "", this), + new Among ( "cesine", -1, -1, "", this) + }; + + private Among a_20[] = { + new Among ( "di", -1, -1, "", this), + new Among ( "ti", -1, -1, "", this), + new Among ( "dik", -1, -1, "", this), + new Among ( "tik", -1, -1, "", this), + new Among ( "duk", -1, -1, "", this), + new Among ( "tuk", -1, -1, "", this), + new Among ( "d\u00FCk", -1, -1, "", this), + new Among ( "t\u00FCk", -1, -1, "", this), + new Among ( "d\u0131k", -1, -1, "", this), + new Among ( "t\u0131k", -1, -1, "", this), + new Among ( "dim", -1, -1, "", this), + new Among ( "tim", -1, -1, "", this), + new Among ( "dum", -1, -1, "", this), + new Among ( "tum", -1, -1, "", this), + new Among ( "d\u00FCm", -1, -1, "", this), + new Among ( "t\u00FCm", -1, -1, "", this), + new Among ( "d\u0131m", -1, -1, "", this), + new Among ( "t\u0131m", -1, -1, "", this), + new Among ( "din", -1, -1, "", this), + new Among ( "tin", -1, -1, "", this), + new Among ( "dun", -1, -1, "", this), + new Among ( "tun", -1, -1, "", this), + new Among ( "d\u00FCn", -1, -1, "", this), + new Among ( "t\u00FCn", -1, -1, "", this), + new Among ( "d\u0131n", -1, -1, "", this), + new Among ( "t\u0131n", -1, -1, "", this), + new Among ( "du", -1, -1, "", this), + new Among ( "tu", -1, -1, "", this), + new Among ( "d\u00FC", -1, -1, "", this), + new Among ( "t\u00FC", -1, -1, "", this), + new Among ( "d\u0131", -1, -1, "", this), + new Among ( "t\u0131", -1, -1, "", this) + }; + + private Among a_21[] = { + new Among ( "sa", -1, -1, "", this), + new Among ( "se", -1, -1, "", this), + new Among ( "sak", -1, -1, "", this), + new Among ( "sek", -1, -1, "", this), + new Among ( "sam", -1, -1, "", this), + new Among ( "sem", -1, -1, "", this), + new Among ( "san", -1, -1, "", this), + new Among ( "sen", -1, -1, "", this) + }; + + private Among a_22[] = { + new Among ( "mi\u015F", -1, -1, "", this), + new Among ( "mu\u015F", -1, -1, "", this), + new Among ( "m\u00FC\u015F", -1, -1, "", this), + new Among ( "m\u0131\u015F", -1, -1, "", this) + }; + + private Among a_23[] = { + new Among ( "b", -1, 1, "", this), + new Among ( "c", -1, 2, "", this), + new Among ( "d", -1, 3, "", this), + new Among ( "\u011F", -1, 4, "", this) + }; + + private static final char g_vowel[] = {17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 8, 0, 0, 0, 0, 0, 0, 1 }; + + private static final char g_U[] = {1, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 1 }; + + private static final char g_vowel1[] = {1, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }; + + private static final char g_vowel2[] = {17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130 }; + + private static final char g_vowel3[] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }; + + private static final char g_vowel4[] = {17 }; + + private static final char g_vowel5[] = {65 }; + + private static final char g_vowel6[] = {65 }; + + private boolean B_continue_stemming_noun_suffixes; + private int I_strlen; + + private void copy_from(TurkishStemmer other) { + B_continue_stemming_noun_suffixes = other.B_continue_stemming_noun_suffixes; + I_strlen = other.I_strlen; + super.copy_from(other); + } + + private boolean r_check_vowel_harmony() { + 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; + int v_11; + // (, line 111 + // test, line 112 + v_1 = limit - cursor; + // (, line 113 + // (, line 114 + // goto, line 114 + golab0: while(true) + { + v_2 = limit - cursor; + lab1: do { + if (!(in_grouping_b(g_vowel, 97, 305))) + { + break lab1; + } + cursor = limit - v_2; + break golab0; + } while (false); + cursor = limit - v_2; + if (cursor <= limit_backward) + { + return false; + } + cursor--; + } + // (, line 115 + // or, line 116 + lab2: do { + v_3 = limit - cursor; + lab3: do { + // (, line 116 + // literal, line 116 + if (!(eq_s_b(1, "a"))) + { + break lab3; + } + // goto, line 116 + golab4: while(true) + { + v_4 = limit - cursor; + lab5: do { + if (!(in_grouping_b(g_vowel1, 97, 305))) + { + break lab5; + } + cursor = limit - v_4; + break golab4; + } while (false); + cursor = limit - v_4; + if (cursor <= limit_backward) + { + break lab3; + } + cursor--; + } + break lab2; + } while (false); + cursor = limit - v_3; + lab6: do { + // (, line 117 + // literal, line 117 + if (!(eq_s_b(1, "e"))) + { + break lab6; + } + // goto, line 117 + golab7: while(true) + { + v_5 = limit - cursor; + lab8: do { + if (!(in_grouping_b(g_vowel2, 101, 252))) + { + break lab8; + } + cursor = limit - v_5; + break golab7; + } while (false); + cursor = limit - v_5; + if (cursor <= limit_backward) + { + break lab6; + } + cursor--; + } + break lab2; + } while (false); + cursor = limit - v_3; + lab9: do { + // (, line 118 + // literal, line 118 + if (!(eq_s_b(1, "\u0131"))) + { + break lab9; + } + // goto, line 118 + golab10: while(true) + { + v_6 = limit - cursor; + lab11: do { + if (!(in_grouping_b(g_vowel3, 97, 305))) + { + break lab11; + } + cursor = limit - v_6; + break golab10; + } while (false); + cursor = limit - v_6; + if (cursor <= limit_backward) + { + break lab9; + } + cursor--; + } + break lab2; + } while (false); + cursor = limit - v_3; + lab12: do { + // (, line 119 + // literal, line 119 + if (!(eq_s_b(1, "i"))) + { + break lab12; + } + // goto, line 119 + golab13: while(true) + { + v_7 = limit - cursor; + lab14: do { + if (!(in_grouping_b(g_vowel4, 101, 105))) + { + break lab14; + } + cursor = limit - v_7; + break golab13; + } while (false); + cursor = limit - v_7; + if (cursor <= limit_backward) + { + break lab12; + } + cursor--; + } + break lab2; + } while (false); + cursor = limit - v_3; + lab15: do { + // (, line 120 + // literal, line 120 + if (!(eq_s_b(1, "o"))) + { + break lab15; + } + // goto, line 120 + golab16: while(true) + { + v_8 = limit - cursor; + lab17: do { + if (!(in_grouping_b(g_vowel5, 111, 117))) + { + break lab17; + } + cursor = limit - v_8; + break golab16; + } while (false); + cursor = limit - v_8; + if (cursor <= limit_backward) + { + break lab15; + } + cursor--; + } + break lab2; + } while (false); + cursor = limit - v_3; + lab18: do { + // (, line 121 + // literal, line 121 + if (!(eq_s_b(1, "\u00F6"))) + { + break lab18; + } + // goto, line 121 + golab19: while(true) + { + v_9 = limit - cursor; + lab20: do { + if (!(in_grouping_b(g_vowel6, 246, 252))) + { + break lab20; + } + cursor = limit - v_9; + break golab19; + } while (false); + cursor = limit - v_9; + if (cursor <= limit_backward) + { + break lab18; + } + cursor--; + } + break lab2; + } while (false); + cursor = limit - v_3; + lab21: do { + // (, line 122 + // literal, line 122 + if (!(eq_s_b(1, "u"))) + { + break lab21; + } + // goto, line 122 + golab22: while(true) + { + v_10 = limit - cursor; + lab23: do { + if (!(in_grouping_b(g_vowel5, 111, 117))) + { + break lab23; + } + cursor = limit - v_10; + break golab22; + } while (false); + cursor = limit - v_10; + if (cursor <= limit_backward) + { + break lab21; + } + cursor--; + } + break lab2; + } while (false); + cursor = limit - v_3; + // (, line 123 + // literal, line 123 + if (!(eq_s_b(1, "\u00FC"))) + { + return false; + } + // goto, line 123 + golab24: while(true) + { + v_11 = limit - cursor; + lab25: do { + if (!(in_grouping_b(g_vowel6, 246, 252))) + { + break lab25; + } + cursor = limit - v_11; + break golab24; + } while (false); + cursor = limit - v_11; + if (cursor <= limit_backward) + { + return false; + } + cursor--; + } + } while (false); + cursor = limit - v_1; + return true; + } + + private boolean r_mark_suffix_with_optional_n_consonant() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + int v_7; + // (, line 132 + // or, line 134 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // (, line 133 + // (, line 133 + // test, line 133 + v_2 = limit - cursor; + // literal, line 133 + if (!(eq_s_b(1, "n"))) + { + break lab1; + } + cursor = limit - v_2; + // next, line 133 + if (cursor <= limit_backward) + { + break lab1; + } + cursor--; + // (, line 133 + // test, line 133 + v_3 = limit - cursor; + if (!(in_grouping_b(g_vowel, 97, 305))) + { + break lab1; + } + cursor = limit - v_3; + break lab0; + } while (false); + cursor = limit - v_1; + // (, line 135 + // (, line 135 + // not, line 135 + { + v_4 = limit - cursor; + lab2: do { + // (, line 135 + // test, line 135 + v_5 = limit - cursor; + // literal, line 135 + if (!(eq_s_b(1, "n"))) + { + break lab2; + } + cursor = limit - v_5; + return false; + } while (false); + cursor = limit - v_4; + } + // test, line 135 + v_6 = limit - cursor; + // (, line 135 + // next, line 135 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // (, line 135 + // test, line 135 + v_7 = limit - cursor; + if (!(in_grouping_b(g_vowel, 97, 305))) + { + return false; + } + cursor = limit - v_7; + cursor = limit - v_6; + } while (false); + return true; + } + + private boolean r_mark_suffix_with_optional_s_consonant() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + int v_7; + // (, line 143 + // or, line 145 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // (, line 144 + // (, line 144 + // test, line 144 + v_2 = limit - cursor; + // literal, line 144 + if (!(eq_s_b(1, "s"))) + { + break lab1; + } + cursor = limit - v_2; + // next, line 144 + if (cursor <= limit_backward) + { + break lab1; + } + cursor--; + // (, line 144 + // test, line 144 + v_3 = limit - cursor; + if (!(in_grouping_b(g_vowel, 97, 305))) + { + break lab1; + } + cursor = limit - v_3; + break lab0; + } while (false); + cursor = limit - v_1; + // (, line 146 + // (, line 146 + // not, line 146 + { + v_4 = limit - cursor; + lab2: do { + // (, line 146 + // test, line 146 + v_5 = limit - cursor; + // literal, line 146 + if (!(eq_s_b(1, "s"))) + { + break lab2; + } + cursor = limit - v_5; + return false; + } while (false); + cursor = limit - v_4; + } + // test, line 146 + v_6 = limit - cursor; + // (, line 146 + // next, line 146 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // (, line 146 + // test, line 146 + v_7 = limit - cursor; + if (!(in_grouping_b(g_vowel, 97, 305))) + { + return false; + } + cursor = limit - v_7; + cursor = limit - v_6; + } while (false); + return true; + } + + private boolean r_mark_suffix_with_optional_y_consonant() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + int v_7; + // (, line 153 + // or, line 155 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // (, line 154 + // (, line 154 + // test, line 154 + v_2 = limit - cursor; + // literal, line 154 + if (!(eq_s_b(1, "y"))) + { + break lab1; + } + cursor = limit - v_2; + // next, line 154 + if (cursor <= limit_backward) + { + break lab1; + } + cursor--; + // (, line 154 + // test, line 154 + v_3 = limit - cursor; + if (!(in_grouping_b(g_vowel, 97, 305))) + { + break lab1; + } + cursor = limit - v_3; + break lab0; + } while (false); + cursor = limit - v_1; + // (, line 156 + // (, line 156 + // not, line 156 + { + v_4 = limit - cursor; + lab2: do { + // (, line 156 + // test, line 156 + v_5 = limit - cursor; + // literal, line 156 + if (!(eq_s_b(1, "y"))) + { + break lab2; + } + cursor = limit - v_5; + return false; + } while (false); + cursor = limit - v_4; + } + // test, line 156 + v_6 = limit - cursor; + // (, line 156 + // next, line 156 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // (, line 156 + // test, line 156 + v_7 = limit - cursor; + if (!(in_grouping_b(g_vowel, 97, 305))) + { + return false; + } + cursor = limit - v_7; + cursor = limit - v_6; + } while (false); + return true; + } + + private boolean r_mark_suffix_with_optional_U_vowel() { + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + int v_7; + // (, line 159 + // or, line 161 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // (, line 160 + // (, line 160 + // test, line 160 + v_2 = limit - cursor; + if (!(in_grouping_b(g_U, 105, 305))) + { + break lab1; + } + cursor = limit - v_2; + // next, line 160 + if (cursor <= limit_backward) + { + break lab1; + } + cursor--; + // (, line 160 + // test, line 160 + v_3 = limit - cursor; + if (!(out_grouping_b(g_vowel, 97, 305))) + { + break lab1; + } + cursor = limit - v_3; + break lab0; + } while (false); + cursor = limit - v_1; + // (, line 162 + // (, line 162 + // not, line 162 + { + v_4 = limit - cursor; + lab2: do { + // (, line 162 + // test, line 162 + v_5 = limit - cursor; + if (!(in_grouping_b(g_U, 105, 305))) + { + break lab2; + } + cursor = limit - v_5; + return false; + } while (false); + cursor = limit - v_4; + } + // test, line 162 + v_6 = limit - cursor; + // (, line 162 + // next, line 162 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // (, line 162 + // test, line 162 + v_7 = limit - cursor; + if (!(out_grouping_b(g_vowel, 97, 305))) + { + return false; + } + cursor = limit - v_7; + cursor = limit - v_6; + } while (false); + return true; + } + + private boolean r_mark_possessives() { + // (, line 166 + // among, line 167 + if (find_among_b(a_0, 10) == 0) + { + return false; + } + // (, line 169 + // call mark_suffix_with_optional_U_vowel, line 169 + if (!r_mark_suffix_with_optional_U_vowel()) + { + return false; + } + return true; + } + + private boolean r_mark_sU() { + // (, line 172 + // call check_vowel_harmony, line 173 + if (!r_check_vowel_harmony()) + { + return false; + } + if (!(in_grouping_b(g_U, 105, 305))) + { + return false; + } + // (, line 175 + // call mark_suffix_with_optional_s_consonant, line 175 + if (!r_mark_suffix_with_optional_s_consonant()) + { + return false; + } + return true; + } + + private boolean r_mark_lArI() { + // (, line 178 + // among, line 179 + if (find_among_b(a_1, 2) == 0) + { + return false; + } + return true; + } + + private boolean r_mark_yU() { + // (, line 182 + // call check_vowel_harmony, line 183 + if (!r_check_vowel_harmony()) + { + return false; + } + if (!(in_grouping_b(g_U, 105, 305))) + { + return false; + } + // (, line 185 + // call mark_suffix_with_optional_y_consonant, line 185 + if (!r_mark_suffix_with_optional_y_consonant()) + { + return false; + } + return true; + } + + private boolean r_mark_nU() { + // (, line 188 + // call check_vowel_harmony, line 189 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 190 + if (find_among_b(a_2, 4) == 0) + { + return false; + } + return true; + } + + private boolean r_mark_nUn() { + // (, line 193 + // call check_vowel_harmony, line 194 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 195 + if (find_among_b(a_3, 4) == 0) + { + return false; + } + // (, line 196 + // call mark_suffix_with_optional_n_consonant, line 196 + if (!r_mark_suffix_with_optional_n_consonant()) + { + return false; + } + return true; + } + + private boolean r_mark_yA() { + // (, line 199 + // call check_vowel_harmony, line 200 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 201 + if (find_among_b(a_4, 2) == 0) + { + return false; + } + // (, line 202 + // call mark_suffix_with_optional_y_consonant, line 202 + if (!r_mark_suffix_with_optional_y_consonant()) + { + return false; + } + return true; + } + + private boolean r_mark_nA() { + // (, line 205 + // call check_vowel_harmony, line 206 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 207 + if (find_among_b(a_5, 2) == 0) + { + return false; + } + return true; + } + + private boolean r_mark_DA() { + // (, line 210 + // call check_vowel_harmony, line 211 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 212 + if (find_among_b(a_6, 4) == 0) + { + return false; + } + return true; + } + + private boolean r_mark_ndA() { + // (, line 215 + // call check_vowel_harmony, line 216 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 217 + if (find_among_b(a_7, 2) == 0) + { + return false; + } + return true; + } + + private boolean r_mark_DAn() { + // (, line 220 + // call check_vowel_harmony, line 221 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 222 + if (find_among_b(a_8, 4) == 0) + { + return false; + } + return true; + } + + private boolean r_mark_ndAn() { + // (, line 225 + // call check_vowel_harmony, line 226 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 227 + if (find_among_b(a_9, 2) == 0) + { + return false; + } + return true; + } + + private boolean r_mark_ylA() { + // (, line 230 + // call check_vowel_harmony, line 231 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 232 + if (find_among_b(a_10, 2) == 0) + { + return false; + } + // (, line 233 + // call mark_suffix_with_optional_y_consonant, line 233 + if (!r_mark_suffix_with_optional_y_consonant()) + { + return false; + } + return true; + } + + private boolean r_mark_ki() { + // (, line 236 + // literal, line 237 + if (!(eq_s_b(2, "ki"))) + { + return false; + } + return true; + } + + private boolean r_mark_ncA() { + // (, line 240 + // call check_vowel_harmony, line 241 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 242 + if (find_among_b(a_11, 2) == 0) + { + return false; + } + // (, line 243 + // call mark_suffix_with_optional_n_consonant, line 243 + if (!r_mark_suffix_with_optional_n_consonant()) + { + return false; + } + return true; + } + + private boolean r_mark_yUm() { + // (, line 246 + // call check_vowel_harmony, line 247 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 248 + if (find_among_b(a_12, 4) == 0) + { + return false; + } + // (, line 249 + // call mark_suffix_with_optional_y_consonant, line 249 + if (!r_mark_suffix_with_optional_y_consonant()) + { + return false; + } + return true; + } + + private boolean r_mark_sUn() { + // (, line 252 + // call check_vowel_harmony, line 253 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 254 + if (find_among_b(a_13, 4) == 0) + { + return false; + } + return true; + } + + private boolean r_mark_yUz() { + // (, line 257 + // call check_vowel_harmony, line 258 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 259 + if (find_among_b(a_14, 4) == 0) + { + return false; + } + // (, line 260 + // call mark_suffix_with_optional_y_consonant, line 260 + if (!r_mark_suffix_with_optional_y_consonant()) + { + return false; + } + return true; + } + + private boolean r_mark_sUnUz() { + // (, line 263 + // among, line 264 + if (find_among_b(a_15, 4) == 0) + { + return false; + } + return true; + } + + private boolean r_mark_lAr() { + // (, line 267 + // call check_vowel_harmony, line 268 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 269 + if (find_among_b(a_16, 2) == 0) + { + return false; + } + return true; + } + + private boolean r_mark_nUz() { + // (, line 272 + // call check_vowel_harmony, line 273 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 274 + if (find_among_b(a_17, 4) == 0) + { + return false; + } + return true; + } + + private boolean r_mark_DUr() { + // (, line 277 + // call check_vowel_harmony, line 278 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 279 + if (find_among_b(a_18, 8) == 0) + { + return false; + } + return true; + } + + private boolean r_mark_cAsInA() { + // (, line 282 + // among, line 283 + if (find_among_b(a_19, 2) == 0) + { + return false; + } + return true; + } + + private boolean r_mark_yDU() { + // (, line 286 + // call check_vowel_harmony, line 287 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 288 + if (find_among_b(a_20, 32) == 0) + { + return false; + } + // (, line 292 + // call mark_suffix_with_optional_y_consonant, line 292 + if (!r_mark_suffix_with_optional_y_consonant()) + { + return false; + } + return true; + } + + private boolean r_mark_ysA() { + // (, line 296 + // among, line 297 + if (find_among_b(a_21, 8) == 0) + { + return false; + } + // (, line 298 + // call mark_suffix_with_optional_y_consonant, line 298 + if (!r_mark_suffix_with_optional_y_consonant()) + { + return false; + } + return true; + } + + private boolean r_mark_ymUs_() { + // (, line 301 + // call check_vowel_harmony, line 302 + if (!r_check_vowel_harmony()) + { + return false; + } + // among, line 303 + if (find_among_b(a_22, 4) == 0) + { + return false; + } + // (, line 304 + // call mark_suffix_with_optional_y_consonant, line 304 + if (!r_mark_suffix_with_optional_y_consonant()) + { + return false; + } + return true; + } + + private boolean r_mark_yken() { + // (, line 307 + // literal, line 308 + if (!(eq_s_b(3, "ken"))) + { + return false; + } + // (, line 308 + // call mark_suffix_with_optional_y_consonant, line 308 + if (!r_mark_suffix_with_optional_y_consonant()) + { + return false; + } + return true; + } + + private boolean r_stem_nominal_verb_suffixes() { + 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 311 + // [, line 312 + ket = cursor; + // set continue_stemming_noun_suffixes, line 313 + B_continue_stemming_noun_suffixes = true; + // or, line 315 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // (, line 314 + // or, line 314 + lab2: do { + v_2 = limit - cursor; + lab3: do { + // call mark_ymUs_, line 314 + if (!r_mark_ymUs_()) + { + break lab3; + } + break lab2; + } while (false); + cursor = limit - v_2; + lab4: do { + // call mark_yDU, line 314 + if (!r_mark_yDU()) + { + break lab4; + } + break lab2; + } while (false); + cursor = limit - v_2; + lab5: do { + // call mark_ysA, line 314 + if (!r_mark_ysA()) + { + break lab5; + } + break lab2; + } while (false); + cursor = limit - v_2; + // call mark_yken, line 314 + if (!r_mark_yken()) + { + break lab1; + } + } while (false); + break lab0; + } while (false); + cursor = limit - v_1; + lab6: do { + // (, line 316 + // call mark_cAsInA, line 316 + if (!r_mark_cAsInA()) + { + break lab6; + } + // (, line 316 + // or, line 316 + lab7: do { + v_3 = limit - cursor; + lab8: do { + // call mark_sUnUz, line 316 + if (!r_mark_sUnUz()) + { + break lab8; + } + break lab7; + } while (false); + cursor = limit - v_3; + lab9: do { + // call mark_lAr, line 316 + if (!r_mark_lAr()) + { + break lab9; + } + break lab7; + } while (false); + cursor = limit - v_3; + lab10: do { + // call mark_yUm, line 316 + if (!r_mark_yUm()) + { + break lab10; + } + break lab7; + } while (false); + cursor = limit - v_3; + lab11: do { + // call mark_sUn, line 316 + if (!r_mark_sUn()) + { + break lab11; + } + break lab7; + } while (false); + cursor = limit - v_3; + lab12: do { + // call mark_yUz, line 316 + if (!r_mark_yUz()) + { + break lab12; + } + break lab7; + } while (false); + cursor = limit - v_3; + } while (false); + // call mark_ymUs_, line 316 + if (!r_mark_ymUs_()) + { + break lab6; + } + break lab0; + } while (false); + cursor = limit - v_1; + lab13: do { + // (, line 318 + // call mark_lAr, line 319 + if (!r_mark_lAr()) + { + break lab13; + } + // ], line 319 + bra = cursor; + // delete, line 319 + slice_del(); + // try, line 319 + v_4 = limit - cursor; + lab14: do { + // (, line 319 + // [, line 319 + ket = cursor; + // (, line 319 + // or, line 319 + lab15: do { + v_5 = limit - cursor; + lab16: do { + // call mark_DUr, line 319 + if (!r_mark_DUr()) + { + break lab16; + } + break lab15; + } while (false); + cursor = limit - v_5; + lab17: do { + // call mark_yDU, line 319 + if (!r_mark_yDU()) + { + break lab17; + } + break lab15; + } while (false); + cursor = limit - v_5; + lab18: do { + // call mark_ysA, line 319 + if (!r_mark_ysA()) + { + break lab18; + } + break lab15; + } while (false); + cursor = limit - v_5; + // call mark_ymUs_, line 319 + if (!r_mark_ymUs_()) + { + cursor = limit - v_4; + break lab14; + } + } while (false); + } while (false); + // unset continue_stemming_noun_suffixes, line 320 + B_continue_stemming_noun_suffixes = false; + break lab0; + } while (false); + cursor = limit - v_1; + lab19: do { + // (, line 323 + // call mark_nUz, line 323 + if (!r_mark_nUz()) + { + break lab19; + } + // (, line 323 + // or, line 323 + lab20: do { + v_6 = limit - cursor; + lab21: do { + // call mark_yDU, line 323 + if (!r_mark_yDU()) + { + break lab21; + } + break lab20; + } while (false); + cursor = limit - v_6; + // call mark_ysA, line 323 + if (!r_mark_ysA()) + { + break lab19; + } + } while (false); + break lab0; + } while (false); + cursor = limit - v_1; + lab22: do { + // (, line 325 + // (, line 325 + // or, line 325 + lab23: do { + v_7 = limit - cursor; + lab24: do { + // call mark_sUnUz, line 325 + if (!r_mark_sUnUz()) + { + break lab24; + } + break lab23; + } while (false); + cursor = limit - v_7; + lab25: do { + // call mark_yUz, line 325 + if (!r_mark_yUz()) + { + break lab25; + } + break lab23; + } while (false); + cursor = limit - v_7; + lab26: do { + // call mark_sUn, line 325 + if (!r_mark_sUn()) + { + break lab26; + } + break lab23; + } while (false); + cursor = limit - v_7; + // call mark_yUm, line 325 + if (!r_mark_yUm()) + { + break lab22; + } + } while (false); + // ], line 325 + bra = cursor; + // delete, line 325 + slice_del(); + // try, line 325 + v_8 = limit - cursor; + lab27: do { + // (, line 325 + // [, line 325 + ket = cursor; + // call mark_ymUs_, line 325 + if (!r_mark_ymUs_()) + { + cursor = limit - v_8; + break lab27; + } + } while (false); + break lab0; + } while (false); + cursor = limit - v_1; + // (, line 327 + // call mark_DUr, line 327 + if (!r_mark_DUr()) + { + return false; + } + // ], line 327 + bra = cursor; + // delete, line 327 + slice_del(); + // try, line 327 + v_9 = limit - cursor; + lab28: do { + // (, line 327 + // [, line 327 + ket = cursor; + // (, line 327 + // or, line 327 + lab29: do { + v_10 = limit - cursor; + lab30: do { + // call mark_sUnUz, line 327 + if (!r_mark_sUnUz()) + { + break lab30; + } + break lab29; + } while (false); + cursor = limit - v_10; + lab31: do { + // call mark_lAr, line 327 + if (!r_mark_lAr()) + { + break lab31; + } + break lab29; + } while (false); + cursor = limit - v_10; + lab32: do { + // call mark_yUm, line 327 + if (!r_mark_yUm()) + { + break lab32; + } + break lab29; + } while (false); + cursor = limit - v_10; + lab33: do { + // call mark_sUn, line 327 + if (!r_mark_sUn()) + { + break lab33; + } + break lab29; + } while (false); + cursor = limit - v_10; + lab34: do { + // call mark_yUz, line 327 + if (!r_mark_yUz()) + { + break lab34; + } + break lab29; + } while (false); + cursor = limit - v_10; + } while (false); + // call mark_ymUs_, line 327 + if (!r_mark_ymUs_()) + { + cursor = limit - v_9; + break lab28; + } + } while (false); + } while (false); + // ], line 328 + bra = cursor; + // delete, line 328 + slice_del(); + return true; + } + + private boolean r_stem_suffix_chain_before_ki() { + 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; + int v_11; + // (, line 332 + // [, line 333 + ket = cursor; + // call mark_ki, line 334 + if (!r_mark_ki()) + { + return false; + } + // (, line 335 + // or, line 342 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // (, line 336 + // call mark_DA, line 336 + if (!r_mark_DA()) + { + break lab1; + } + // ], line 336 + bra = cursor; + // delete, line 336 + slice_del(); + // try, line 336 + v_2 = limit - cursor; + lab2: do { + // (, line 336 + // [, line 336 + ket = cursor; + // or, line 338 + lab3: do { + v_3 = limit - cursor; + lab4: do { + // (, line 337 + // call mark_lAr, line 337 + if (!r_mark_lAr()) + { + break lab4; + } + // ], line 337 + bra = cursor; + // delete, line 337 + slice_del(); + // try, line 337 + v_4 = limit - cursor; + lab5: do { + // (, line 337 + // call stem_suffix_chain_before_ki, line 337 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_4; + break lab5; + } + } while (false); + break lab3; + } while (false); + cursor = limit - v_3; + // (, line 339 + // call mark_possessives, line 339 + if (!r_mark_possessives()) + { + cursor = limit - v_2; + break lab2; + } + // ], line 339 + bra = cursor; + // delete, line 339 + slice_del(); + // try, line 339 + v_5 = limit - cursor; + lab6: do { + // (, line 339 + // [, line 339 + ket = cursor; + // call mark_lAr, line 339 + if (!r_mark_lAr()) + { + cursor = limit - v_5; + break lab6; + } + // ], line 339 + bra = cursor; + // delete, line 339 + slice_del(); + // call stem_suffix_chain_before_ki, line 339 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_5; + break lab6; + } + } while (false); + } while (false); + } while (false); + break lab0; + } while (false); + cursor = limit - v_1; + lab7: do { + // (, line 343 + // call mark_nUn, line 343 + if (!r_mark_nUn()) + { + break lab7; + } + // ], line 343 + bra = cursor; + // delete, line 343 + slice_del(); + // try, line 343 + v_6 = limit - cursor; + lab8: do { + // (, line 343 + // [, line 343 + ket = cursor; + // or, line 345 + lab9: do { + v_7 = limit - cursor; + lab10: do { + // (, line 344 + // call mark_lArI, line 344 + if (!r_mark_lArI()) + { + break lab10; + } + // ], line 344 + bra = cursor; + // delete, line 344 + slice_del(); + break lab9; + } while (false); + cursor = limit - v_7; + lab11: do { + // (, line 346 + // [, line 346 + ket = cursor; + // or, line 346 + lab12: do { + v_8 = limit - cursor; + lab13: do { + // call mark_possessives, line 346 + if (!r_mark_possessives()) + { + break lab13; + } + break lab12; + } while (false); + cursor = limit - v_8; + // call mark_sU, line 346 + if (!r_mark_sU()) + { + break lab11; + } + } while (false); + // ], line 346 + bra = cursor; + // delete, line 346 + slice_del(); + // try, line 346 + v_9 = limit - cursor; + lab14: do { + // (, line 346 + // [, line 346 + ket = cursor; + // call mark_lAr, line 346 + if (!r_mark_lAr()) + { + cursor = limit - v_9; + break lab14; + } + // ], line 346 + bra = cursor; + // delete, line 346 + slice_del(); + // call stem_suffix_chain_before_ki, line 346 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_9; + break lab14; + } + } while (false); + break lab9; + } while (false); + cursor = limit - v_7; + // (, line 348 + // call stem_suffix_chain_before_ki, line 348 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_6; + break lab8; + } + } while (false); + } while (false); + break lab0; + } while (false); + cursor = limit - v_1; + // (, line 351 + // call mark_ndA, line 351 + if (!r_mark_ndA()) + { + return false; + } + // (, line 351 + // or, line 353 + lab15: do { + v_10 = limit - cursor; + lab16: do { + // (, line 352 + // call mark_lArI, line 352 + if (!r_mark_lArI()) + { + break lab16; + } + // ], line 352 + bra = cursor; + // delete, line 352 + slice_del(); + break lab15; + } while (false); + cursor = limit - v_10; + lab17: do { + // (, line 354 + // (, line 354 + // call mark_sU, line 354 + if (!r_mark_sU()) + { + break lab17; + } + // ], line 354 + bra = cursor; + // delete, line 354 + slice_del(); + // try, line 354 + v_11 = limit - cursor; + lab18: do { + // (, line 354 + // [, line 354 + ket = cursor; + // call mark_lAr, line 354 + if (!r_mark_lAr()) + { + cursor = limit - v_11; + break lab18; + } + // ], line 354 + bra = cursor; + // delete, line 354 + slice_del(); + // call stem_suffix_chain_before_ki, line 354 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_11; + break lab18; + } + } while (false); + break lab15; + } while (false); + cursor = limit - v_10; + // (, line 356 + // call stem_suffix_chain_before_ki, line 356 + if (!r_stem_suffix_chain_before_ki()) + { + return false; + } + } while (false); + } while (false); + return true; + } + + private boolean r_stem_noun_suffixes() { + 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; + int v_11; + int v_12; + int v_13; + int v_14; + int v_15; + int v_16; + int v_17; + int v_18; + int v_19; + int v_20; + int v_21; + int v_22; + int v_23; + int v_24; + int v_25; + int v_26; + int v_27; + // (, line 361 + // or, line 363 + lab0: do { + v_1 = limit - cursor; + lab1: do { + // (, line 362 + // [, line 362 + ket = cursor; + // call mark_lAr, line 362 + if (!r_mark_lAr()) + { + break lab1; + } + // ], line 362 + bra = cursor; + // delete, line 362 + slice_del(); + // try, line 362 + v_2 = limit - cursor; + lab2: do { + // (, line 362 + // call stem_suffix_chain_before_ki, line 362 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_2; + break lab2; + } + } while (false); + break lab0; + } while (false); + cursor = limit - v_1; + lab3: do { + // (, line 364 + // [, line 364 + ket = cursor; + // call mark_ncA, line 364 + if (!r_mark_ncA()) + { + break lab3; + } + // ], line 364 + bra = cursor; + // delete, line 364 + slice_del(); + // try, line 365 + v_3 = limit - cursor; + lab4: do { + // (, line 365 + // or, line 367 + lab5: do { + v_4 = limit - cursor; + lab6: do { + // (, line 366 + // [, line 366 + ket = cursor; + // call mark_lArI, line 366 + if (!r_mark_lArI()) + { + break lab6; + } + // ], line 366 + bra = cursor; + // delete, line 366 + slice_del(); + break lab5; + } while (false); + cursor = limit - v_4; + lab7: do { + // (, line 368 + // [, line 368 + ket = cursor; + // or, line 368 + lab8: do { + v_5 = limit - cursor; + lab9: do { + // call mark_possessives, line 368 + if (!r_mark_possessives()) + { + break lab9; + } + break lab8; + } while (false); + cursor = limit - v_5; + // call mark_sU, line 368 + if (!r_mark_sU()) + { + break lab7; + } + } while (false); + // ], line 368 + bra = cursor; + // delete, line 368 + slice_del(); + // try, line 368 + v_6 = limit - cursor; + lab10: do { + // (, line 368 + // [, line 368 + ket = cursor; + // call mark_lAr, line 368 + if (!r_mark_lAr()) + { + cursor = limit - v_6; + break lab10; + } + // ], line 368 + bra = cursor; + // delete, line 368 + slice_del(); + // call stem_suffix_chain_before_ki, line 368 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_6; + break lab10; + } + } while (false); + break lab5; + } while (false); + cursor = limit - v_4; + // (, line 370 + // [, line 370 + ket = cursor; + // call mark_lAr, line 370 + if (!r_mark_lAr()) + { + cursor = limit - v_3; + break lab4; + } + // ], line 370 + bra = cursor; + // delete, line 370 + slice_del(); + // call stem_suffix_chain_before_ki, line 370 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_3; + break lab4; + } + } while (false); + } while (false); + break lab0; + } while (false); + cursor = limit - v_1; + lab11: do { + // (, line 374 + // [, line 374 + ket = cursor; + // (, line 374 + // or, line 374 + lab12: do { + v_7 = limit - cursor; + lab13: do { + // call mark_ndA, line 374 + if (!r_mark_ndA()) + { + break lab13; + } + break lab12; + } while (false); + cursor = limit - v_7; + // call mark_nA, line 374 + if (!r_mark_nA()) + { + break lab11; + } + } while (false); + // (, line 375 + // or, line 377 + lab14: do { + v_8 = limit - cursor; + lab15: do { + // (, line 376 + // call mark_lArI, line 376 + if (!r_mark_lArI()) + { + break lab15; + } + // ], line 376 + bra = cursor; + // delete, line 376 + slice_del(); + break lab14; + } while (false); + cursor = limit - v_8; + lab16: do { + // (, line 378 + // call mark_sU, line 378 + if (!r_mark_sU()) + { + break lab16; + } + // ], line 378 + bra = cursor; + // delete, line 378 + slice_del(); + // try, line 378 + v_9 = limit - cursor; + lab17: do { + // (, line 378 + // [, line 378 + ket = cursor; + // call mark_lAr, line 378 + if (!r_mark_lAr()) + { + cursor = limit - v_9; + break lab17; + } + // ], line 378 + bra = cursor; + // delete, line 378 + slice_del(); + // call stem_suffix_chain_before_ki, line 378 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_9; + break lab17; + } + } while (false); + break lab14; + } while (false); + cursor = limit - v_8; + // (, line 380 + // call stem_suffix_chain_before_ki, line 380 + if (!r_stem_suffix_chain_before_ki()) + { + break lab11; + } + } while (false); + break lab0; + } while (false); + cursor = limit - v_1; + lab18: do { + // (, line 384 + // [, line 384 + ket = cursor; + // (, line 384 + // or, line 384 + lab19: do { + v_10 = limit - cursor; + lab20: do { + // call mark_ndAn, line 384 + if (!r_mark_ndAn()) + { + break lab20; + } + break lab19; + } while (false); + cursor = limit - v_10; + // call mark_nU, line 384 + if (!r_mark_nU()) + { + break lab18; + } + } while (false); + // (, line 384 + // or, line 384 + lab21: do { + v_11 = limit - cursor; + lab22: do { + // (, line 384 + // call mark_sU, line 384 + if (!r_mark_sU()) + { + break lab22; + } + // ], line 384 + bra = cursor; + // delete, line 384 + slice_del(); + // try, line 384 + v_12 = limit - cursor; + lab23: do { + // (, line 384 + // [, line 384 + ket = cursor; + // call mark_lAr, line 384 + if (!r_mark_lAr()) + { + cursor = limit - v_12; + break lab23; + } + // ], line 384 + bra = cursor; + // delete, line 384 + slice_del(); + // call stem_suffix_chain_before_ki, line 384 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_12; + break lab23; + } + } while (false); + break lab21; + } while (false); + cursor = limit - v_11; + // (, line 384 + // call mark_lArI, line 384 + if (!r_mark_lArI()) + { + break lab18; + } + } while (false); + break lab0; + } while (false); + cursor = limit - v_1; + lab24: do { + // (, line 386 + // [, line 386 + ket = cursor; + // call mark_DAn, line 386 + if (!r_mark_DAn()) + { + break lab24; + } + // ], line 386 + bra = cursor; + // delete, line 386 + slice_del(); + // try, line 386 + v_13 = limit - cursor; + lab25: do { + // (, line 386 + // [, line 386 + ket = cursor; + // (, line 387 + // or, line 389 + lab26: do { + v_14 = limit - cursor; + lab27: do { + // (, line 388 + // call mark_possessives, line 388 + if (!r_mark_possessives()) + { + break lab27; + } + // ], line 388 + bra = cursor; + // delete, line 388 + slice_del(); + // try, line 388 + v_15 = limit - cursor; + lab28: do { + // (, line 388 + // [, line 388 + ket = cursor; + // call mark_lAr, line 388 + if (!r_mark_lAr()) + { + cursor = limit - v_15; + break lab28; + } + // ], line 388 + bra = cursor; + // delete, line 388 + slice_del(); + // call stem_suffix_chain_before_ki, line 388 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_15; + break lab28; + } + } while (false); + break lab26; + } while (false); + cursor = limit - v_14; + lab29: do { + // (, line 390 + // call mark_lAr, line 390 + if (!r_mark_lAr()) + { + break lab29; + } + // ], line 390 + bra = cursor; + // delete, line 390 + slice_del(); + // try, line 390 + v_16 = limit - cursor; + lab30: do { + // (, line 390 + // call stem_suffix_chain_before_ki, line 390 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_16; + break lab30; + } + } while (false); + break lab26; + } while (false); + cursor = limit - v_14; + // (, line 392 + // call stem_suffix_chain_before_ki, line 392 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_13; + break lab25; + } + } while (false); + } while (false); + break lab0; + } while (false); + cursor = limit - v_1; + lab31: do { + // (, line 396 + // [, line 396 + ket = cursor; + // or, line 396 + lab32: do { + v_17 = limit - cursor; + lab33: do { + // call mark_nUn, line 396 + if (!r_mark_nUn()) + { + break lab33; + } + break lab32; + } while (false); + cursor = limit - v_17; + // call mark_ylA, line 396 + if (!r_mark_ylA()) + { + break lab31; + } + } while (false); + // ], line 396 + bra = cursor; + // delete, line 396 + slice_del(); + // try, line 397 + v_18 = limit - cursor; + lab34: do { + // (, line 397 + // or, line 399 + lab35: do { + v_19 = limit - cursor; + lab36: do { + // (, line 398 + // [, line 398 + ket = cursor; + // call mark_lAr, line 398 + if (!r_mark_lAr()) + { + break lab36; + } + // ], line 398 + bra = cursor; + // delete, line 398 + slice_del(); + // call stem_suffix_chain_before_ki, line 398 + if (!r_stem_suffix_chain_before_ki()) + { + break lab36; + } + break lab35; + } while (false); + cursor = limit - v_19; + lab37: do { + // (, line 400 + // [, line 400 + ket = cursor; + // or, line 400 + lab38: do { + v_20 = limit - cursor; + lab39: do { + // call mark_possessives, line 400 + if (!r_mark_possessives()) + { + break lab39; + } + break lab38; + } while (false); + cursor = limit - v_20; + // call mark_sU, line 400 + if (!r_mark_sU()) + { + break lab37; + } + } while (false); + // ], line 400 + bra = cursor; + // delete, line 400 + slice_del(); + // try, line 400 + v_21 = limit - cursor; + lab40: do { + // (, line 400 + // [, line 400 + ket = cursor; + // call mark_lAr, line 400 + if (!r_mark_lAr()) + { + cursor = limit - v_21; + break lab40; + } + // ], line 400 + bra = cursor; + // delete, line 400 + slice_del(); + // call stem_suffix_chain_before_ki, line 400 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_21; + break lab40; + } + } while (false); + break lab35; + } while (false); + cursor = limit - v_19; + // call stem_suffix_chain_before_ki, line 402 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_18; + break lab34; + } + } while (false); + } while (false); + break lab0; + } while (false); + cursor = limit - v_1; + lab41: do { + // (, line 406 + // [, line 406 + ket = cursor; + // call mark_lArI, line 406 + if (!r_mark_lArI()) + { + break lab41; + } + // ], line 406 + bra = cursor; + // delete, line 406 + slice_del(); + break lab0; + } while (false); + cursor = limit - v_1; + lab42: do { + // (, line 408 + // call stem_suffix_chain_before_ki, line 408 + if (!r_stem_suffix_chain_before_ki()) + { + break lab42; + } + break lab0; + } while (false); + cursor = limit - v_1; + lab43: do { + // (, line 410 + // [, line 410 + ket = cursor; + // or, line 410 + lab44: do { + v_22 = limit - cursor; + lab45: do { + // call mark_DA, line 410 + if (!r_mark_DA()) + { + break lab45; + } + break lab44; + } while (false); + cursor = limit - v_22; + lab46: do { + // call mark_yU, line 410 + if (!r_mark_yU()) + { + break lab46; + } + break lab44; + } while (false); + cursor = limit - v_22; + // call mark_yA, line 410 + if (!r_mark_yA()) + { + break lab43; + } + } while (false); + // ], line 410 + bra = cursor; + // delete, line 410 + slice_del(); + // try, line 410 + v_23 = limit - cursor; + lab47: do { + // (, line 410 + // [, line 410 + ket = cursor; + // (, line 410 + // or, line 410 + lab48: do { + v_24 = limit - cursor; + lab49: do { + // (, line 410 + // call mark_possessives, line 410 + if (!r_mark_possessives()) + { + break lab49; + } + // ], line 410 + bra = cursor; + // delete, line 410 + slice_del(); + // try, line 410 + v_25 = limit - cursor; + lab50: do { + // (, line 410 + // [, line 410 + ket = cursor; + // call mark_lAr, line 410 + if (!r_mark_lAr()) + { + cursor = limit - v_25; + break lab50; + } + } while (false); + break lab48; + } while (false); + cursor = limit - v_24; + // call mark_lAr, line 410 + if (!r_mark_lAr()) + { + cursor = limit - v_23; + break lab47; + } + } while (false); + // ], line 410 + bra = cursor; + // delete, line 410 + slice_del(); + // [, line 410 + ket = cursor; + // call stem_suffix_chain_before_ki, line 410 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_23; + break lab47; + } + } while (false); + break lab0; + } while (false); + cursor = limit - v_1; + // (, line 412 + // [, line 412 + ket = cursor; + // or, line 412 + lab51: do { + v_26 = limit - cursor; + lab52: do { + // call mark_possessives, line 412 + if (!r_mark_possessives()) + { + break lab52; + } + break lab51; + } while (false); + cursor = limit - v_26; + // call mark_sU, line 412 + if (!r_mark_sU()) + { + return false; + } + } while (false); + // ], line 412 + bra = cursor; + // delete, line 412 + slice_del(); + // try, line 412 + v_27 = limit - cursor; + lab53: do { + // (, line 412 + // [, line 412 + ket = cursor; + // call mark_lAr, line 412 + if (!r_mark_lAr()) + { + cursor = limit - v_27; + break lab53; + } + // ], line 412 + bra = cursor; + // delete, line 412 + slice_del(); + // call stem_suffix_chain_before_ki, line 412 + if (!r_stem_suffix_chain_before_ki()) + { + cursor = limit - v_27; + break lab53; + } + } while (false); + } while (false); + return true; + } + + private boolean r_post_process_last_consonants() { + int among_var; + // (, line 415 + // [, line 416 + ket = cursor; + // substring, line 416 + among_var = find_among_b(a_23, 4); + if (among_var == 0) + { + return false; + } + // ], line 416 + bra = cursor; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 417 + // <-, line 417 + slice_from("p"); + break; + case 2: + // (, line 418 + // <-, line 418 + slice_from("\u00E7"); + break; + case 3: + // (, line 419 + // <-, line 419 + slice_from("t"); + break; + case 4: + // (, line 420 + // <-, line 420 + slice_from("k"); + break; + } + return true; + } + + private boolean r_append_U_to_stems_ending_with_d_or_g() { + 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; + int v_11; + int v_12; + int v_13; + int v_14; + int v_15; + // (, line 430 + // test, line 431 + v_1 = limit - cursor; + // (, line 431 + // or, line 431 + lab0: do { + v_2 = limit - cursor; + lab1: do { + // literal, line 431 + if (!(eq_s_b(1, "d"))) + { + break lab1; + } + break lab0; + } while (false); + cursor = limit - v_2; + // literal, line 431 + if (!(eq_s_b(1, "g"))) + { + return false; + } + } while (false); + cursor = limit - v_1; + // or, line 433 + lab2: do { + v_3 = limit - cursor; + lab3: do { + // (, line 432 + // test, line 432 + v_4 = limit - cursor; + // (, line 432 + // (, line 432 + // goto, line 432 + golab4: while(true) + { + v_5 = limit - cursor; + lab5: do { + if (!(in_grouping_b(g_vowel, 97, 305))) + { + break lab5; + } + cursor = limit - v_5; + break golab4; + } while (false); + cursor = limit - v_5; + if (cursor <= limit_backward) + { + break lab3; + } + cursor--; + } + // or, line 432 + lab6: do { + v_6 = limit - cursor; + lab7: do { + // literal, line 432 + if (!(eq_s_b(1, "a"))) + { + break lab7; + } + break lab6; + } while (false); + cursor = limit - v_6; + // literal, line 432 + if (!(eq_s_b(1, "\u0131"))) + { + break lab3; + } + } while (false); + cursor = limit - v_4; + // <+, line 432 + { + int c = cursor; + insert(cursor, cursor, "\u0131"); + cursor = c; + } + break lab2; + } while (false); + cursor = limit - v_3; + lab8: do { + // (, line 434 + // test, line 434 + v_7 = limit - cursor; + // (, line 434 + // (, line 434 + // goto, line 434 + golab9: while(true) + { + v_8 = limit - cursor; + lab10: do { + if (!(in_grouping_b(g_vowel, 97, 305))) + { + break lab10; + } + cursor = limit - v_8; + break golab9; + } while (false); + cursor = limit - v_8; + if (cursor <= limit_backward) + { + break lab8; + } + cursor--; + } + // or, line 434 + lab11: do { + v_9 = limit - cursor; + lab12: do { + // literal, line 434 + if (!(eq_s_b(1, "e"))) + { + break lab12; + } + break lab11; + } while (false); + cursor = limit - v_9; + // literal, line 434 + if (!(eq_s_b(1, "i"))) + { + break lab8; + } + } while (false); + cursor = limit - v_7; + // <+, line 434 + { + int c = cursor; + insert(cursor, cursor, "i"); + cursor = c; + } + break lab2; + } while (false); + cursor = limit - v_3; + lab13: do { + // (, line 436 + // test, line 436 + v_10 = limit - cursor; + // (, line 436 + // (, line 436 + // goto, line 436 + golab14: while(true) + { + v_11 = limit - cursor; + lab15: do { + if (!(in_grouping_b(g_vowel, 97, 305))) + { + break lab15; + } + cursor = limit - v_11; + break golab14; + } while (false); + cursor = limit - v_11; + if (cursor <= limit_backward) + { + break lab13; + } + cursor--; + } + // or, line 436 + lab16: do { + v_12 = limit - cursor; + lab17: do { + // literal, line 436 + if (!(eq_s_b(1, "o"))) + { + break lab17; + } + break lab16; + } while (false); + cursor = limit - v_12; + // literal, line 436 + if (!(eq_s_b(1, "u"))) + { + break lab13; + } + } while (false); + cursor = limit - v_10; + // <+, line 436 + { + int c = cursor; + insert(cursor, cursor, "u"); + cursor = c; + } + break lab2; + } while (false); + cursor = limit - v_3; + // (, line 438 + // test, line 438 + v_13 = limit - cursor; + // (, line 438 + // (, line 438 + // goto, line 438 + golab18: while(true) + { + v_14 = limit - cursor; + lab19: do { + if (!(in_grouping_b(g_vowel, 97, 305))) + { + break lab19; + } + cursor = limit - v_14; + break golab18; + } while (false); + cursor = limit - v_14; + if (cursor <= limit_backward) + { + return false; + } + cursor--; + } + // or, line 438 + lab20: do { + v_15 = limit - cursor; + lab21: do { + // literal, line 438 + if (!(eq_s_b(1, "\u00F6"))) + { + break lab21; + } + break lab20; + } while (false); + cursor = limit - v_15; + // literal, line 438 + if (!(eq_s_b(1, "\u00FC"))) + { + return false; + } + } while (false); + cursor = limit - v_13; + // <+, line 438 + { + int c = cursor; + insert(cursor, cursor, "\u00FC"); + cursor = c; + } + } while (false); + return true; + } + + private boolean r_more_than_one_syllable_word() { + int v_1; + int v_3; + // (, line 445 + // test, line 446 + v_1 = cursor; + // (, line 446 + // atleast, line 446 + { + int v_2 = 2; + // atleast, line 446 + replab0: while(true) + { + v_3 = cursor; + lab1: do { + // (, line 446 + // gopast, line 446 + golab2: while(true) + { + lab3: do { + if (!(in_grouping(g_vowel, 97, 305))) + { + break lab3; + } + break golab2; + } while (false); + if (cursor >= limit) + { + break lab1; + } + cursor++; + } + v_2--; + continue replab0; + } while (false); + cursor = v_3; + break replab0; + } + if (v_2 > 0) + { + return false; + } + } + cursor = v_1; + return true; + } + + private boolean r_is_reserved_word() { + int v_1; + int v_2; + int v_4; + // (, line 449 + // or, line 451 + lab0: do { + v_1 = cursor; + lab1: do { + // test, line 450 + v_2 = cursor; + // (, line 450 + // gopast, line 450 + golab2: while(true) + { + lab3: do { + // literal, line 450 + if (!(eq_s(2, "ad"))) + { + break lab3; + } + break golab2; + } while (false); + if (cursor >= limit) + { + break lab1; + } + cursor++; + } + // (, line 450 + I_strlen = 2; + // (, line 450 + if (!(I_strlen == limit)) + { + break lab1; + } + cursor = v_2; + break lab0; + } while (false); + cursor = v_1; + // test, line 452 + v_4 = cursor; + // (, line 452 + // gopast, line 452 + golab4: while(true) + { + lab5: do { + // literal, line 452 + if (!(eq_s(5, "soyad"))) + { + break lab5; + } + break golab4; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // (, line 452 + I_strlen = 5; + // (, line 452 + if (!(I_strlen == limit)) + { + return false; + } + cursor = v_4; + } while (false); + return true; + } + + private boolean r_postlude() { + int v_1; + int v_2; + int v_3; + // (, line 455 + // not, line 456 + { + v_1 = cursor; + lab0: do { + // (, line 456 + // call is_reserved_word, line 456 + if (!r_is_reserved_word()) + { + break lab0; + } + return false; + } while (false); + cursor = v_1; + } + // backwards, line 457 + limit_backward = cursor; cursor = limit; + // (, line 457 + // do, line 458 + v_2 = limit - cursor; + lab1: do { + // call append_U_to_stems_ending_with_d_or_g, line 458 + if (!r_append_U_to_stems_ending_with_d_or_g()) + { + break lab1; + } + } while (false); + cursor = limit - v_2; + // do, line 459 + v_3 = limit - cursor; + lab2: do { + // call post_process_last_consonants, line 459 + if (!r_post_process_last_consonants()) + { + break lab2; + } + } while (false); + cursor = limit - v_3; + cursor = limit_backward; return true; + } + + public boolean stem() { + int v_1; + int v_2; + // (, line 464 + // (, line 465 + // call more_than_one_syllable_word, line 465 + if (!r_more_than_one_syllable_word()) + { + return false; + } + // (, line 466 + // backwards, line 467 + limit_backward = cursor; cursor = limit; + // (, line 467 + // do, line 468 + v_1 = limit - cursor; + lab0: do { + // call stem_nominal_verb_suffixes, line 468 + if (!r_stem_nominal_verb_suffixes()) + { + break lab0; + } + } while (false); + cursor = limit - v_1; + // Boolean test continue_stemming_noun_suffixes, line 469 + if (!(B_continue_stemming_noun_suffixes)) + { + return false; + } + // do, line 470 + v_2 = limit - cursor; + lab1: do { + // call stem_noun_suffixes, line 470 + if (!r_stem_noun_suffixes()) + { + break lab1; + } + } while (false); + cursor = limit - v_2; + cursor = limit_backward; // call postlude, line 473 + if (!r_postlude()) + { + return false; + } + return true; + } + +} + Index: contrib/snowball/src/java/org/tartarus/snowball/ext/German2Stemmer.java =================================================================== --- contrib/snowball/src/java/org/tartarus/snowball/ext/German2Stemmer.java (revision 0) +++ contrib/snowball/src/java/org/tartarus/snowball/ext/German2Stemmer.java (revision 0) @@ -0,0 +1,726 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; +import org.tartarus.snowball.SnowballProgram; +import org.tartarus.snowball.Among; + +/** + * Generated class implementing code defined by a snowball script. + */ +public class German2Stemmer extends SnowballProgram { + + private Among a_0[] = { + new Among ( "", -1, 6, "", this), + new Among ( "ae", 0, 2, "", this), + new Among ( "oe", 0, 3, "", this), + new Among ( "qu", 0, 5, "", this), + new Among ( "ue", 0, 4, "", this), + new Among ( "\u00DF", 0, 1, "", this) + }; + + private Among a_1[] = { + new Among ( "", -1, 6, "", this), + new Among ( "U", 0, 2, "", this), + new Among ( "Y", 0, 1, "", this), + new Among ( "\u00E4", 0, 3, "", this), + new Among ( "\u00F6", 0, 4, "", this), + new Among ( "\u00FC", 0, 5, "", this) + }; + + private Among a_2[] = { + new Among ( "e", -1, 1, "", this), + new Among ( "em", -1, 1, "", this), + new Among ( "en", -1, 1, "", this), + new Among ( "ern", -1, 1, "", this), + new Among ( "er", -1, 1, "", this), + new Among ( "s", -1, 2, "", this), + new Among ( "es", 5, 1, "", this) + }; + + private Among a_3[] = { + new Among ( "en", -1, 1, "", this), + new Among ( "er", -1, 1, "", this), + new Among ( "st", -1, 2, "", this), + new Among ( "est", 2, 1, "", this) + }; + + private Among a_4[] = { + new Among ( "ig", -1, 1, "", this), + new Among ( "lich", -1, 1, "", this) + }; + + private Among a_5[] = { + new Among ( "end", -1, 1, "", this), + new Among ( "ig", -1, 2, "", this), + new Among ( "ung", -1, 1, "", this), + new Among ( "lich", -1, 3, "", this), + new Among ( "isch", -1, 2, "", this), + new Among ( "ik", -1, 2, "", this), + new Among ( "heit", -1, 3, "", this), + new Among ( "keit", -1, 4, "", this) + }; + + 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, 8 }; + + private static final char g_s_ending[] = {117, 30, 5 }; + + 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(German2Stemmer other) { + I_x = other.I_x; + I_p2 = other.I_p2; + I_p1 = other.I_p1; + super.copy_from(other); + } + + private boolean r_prelude() { + int among_var; + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + // (, line 28 + // test, line 30 + v_1 = cursor; + // repeat, line 30 + replab0: while(true) + { + v_2 = cursor; + lab1: do { + // goto, line 30 + golab2: while(true) + { + v_3 = cursor; + lab3: do { + // (, line 30 + if (!(in_grouping(g_v, 97, 252))) + { + break lab3; + } + // [, line 31 + bra = cursor; + // or, line 31 + lab4: do { + v_4 = cursor; + lab5: do { + // (, line 31 + // literal, line 31 + if (!(eq_s(1, "u"))) + { + break lab5; + } + // ], line 31 + ket = cursor; + if (!(in_grouping(g_v, 97, 252))) + { + break lab5; + } + // <-, line 31 + slice_from("U"); + break lab4; + } while (false); + cursor = v_4; + // (, line 32 + // literal, line 32 + if (!(eq_s(1, "y"))) + { + break lab3; + } + // ], line 32 + ket = cursor; + if (!(in_grouping(g_v, 97, 252))) + { + break lab3; + } + // <-, line 32 + slice_from("Y"); + } while (false); + cursor = v_3; + break golab2; + } while (false); + cursor = v_3; + if (cursor >= limit) + { + break lab1; + } + cursor++; + } + continue replab0; + } while (false); + cursor = v_2; + break replab0; + } + cursor = v_1; + // repeat, line 35 + replab6: while(true) + { + v_5 = cursor; + lab7: do { + // (, line 35 + // [, line 36 + bra = cursor; + // substring, line 36 + among_var = find_among(a_0, 6); + if (among_var == 0) + { + break lab7; + } + // ], line 36 + ket = cursor; + switch(among_var) { + case 0: + break lab7; + case 1: + // (, line 37 + // <-, line 37 + slice_from("ss"); + break; + case 2: + // (, line 38 + // <-, line 38 + slice_from("\u00E4"); + break; + case 3: + // (, line 39 + // <-, line 39 + slice_from("\u00F6"); + break; + case 4: + // (, line 40 + // <-, line 40 + slice_from("\u00FC"); + break; + case 5: + // (, line 41 + // hop, line 41 + { + int c = cursor + 2; + if (0 > c || c > limit) + { + break lab7; + } + cursor = c; + } + break; + case 6: + // (, line 42 + // next, line 42 + if (cursor >= limit) + { + break lab7; + } + cursor++; + break; + } + continue replab6; + } while (false); + cursor = v_5; + break replab6; + } + return true; + } + + private boolean r_mark_regions() { + int v_1; + // (, line 48 + I_p1 = limit; + I_p2 = limit; + // test, line 53 + v_1 = cursor; + // (, line 53 + // hop, line 53 + { + int c = cursor + 3; + if (0 > c || c > limit) + { + return false; + } + cursor = c; + } + // setmark x, line 53 + I_x = cursor; + cursor = v_1; + // gopast, line 55 + golab0: while(true) + { + lab1: do { + if (!(in_grouping(g_v, 97, 252))) + { + break lab1; + } + break golab0; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // gopast, line 55 + golab2: while(true) + { + lab3: do { + if (!(out_grouping(g_v, 97, 252))) + { + break lab3; + } + break golab2; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // setmark p1, line 55 + I_p1 = cursor; + // try, line 56 + lab4: do { + // (, line 56 + if (!(I_p1 < I_x)) + { + break lab4; + } + I_p1 = I_x; + } while (false); + // gopast, line 57 + golab5: while(true) + { + lab6: do { + if (!(in_grouping(g_v, 97, 252))) + { + break lab6; + } + break golab5; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // gopast, line 57 + golab7: while(true) + { + lab8: do { + if (!(out_grouping(g_v, 97, 252))) + { + break lab8; + } + break golab7; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // setmark p2, line 57 + I_p2 = cursor; + return true; + } + + private boolean r_postlude() { + int among_var; + int v_1; + // repeat, line 61 + replab0: while(true) + { + v_1 = cursor; + lab1: do { + // (, line 61 + // [, line 63 + bra = cursor; + // substring, line 63 + among_var = find_among(a_1, 6); + if (among_var == 0) + { + break lab1; + } + // ], line 63 + ket = cursor; + switch(among_var) { + case 0: + break lab1; + case 1: + // (, line 64 + // <-, line 64 + slice_from("y"); + break; + case 2: + // (, line 65 + // <-, line 65 + slice_from("u"); + break; + case 3: + // (, line 66 + // <-, line 66 + slice_from("a"); + break; + case 4: + // (, line 67 + // <-, line 67 + slice_from("o"); + break; + case 5: + // (, line 68 + // <-, line 68 + slice_from("u"); + break; + case 6: + // (, line 69 + // next, line 69 + if (cursor >= limit) + { + break lab1; + } + cursor++; + break; + } + continue replab0; + } while (false); + cursor = v_1; + break replab0; + } + return true; + } + + private boolean r_R1() { + if (!(I_p1 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_R2() { + if (!(I_p2 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_standard_suffix() { + int among_var; + 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; + // (, line 79 + // do, line 80 + v_1 = limit - cursor; + lab0: do { + // (, line 80 + // [, line 81 + ket = cursor; + // substring, line 81 + among_var = find_among_b(a_2, 7); + if (among_var == 0) + { + break lab0; + } + // ], line 81 + bra = cursor; + // call R1, line 81 + if (!r_R1()) + { + break lab0; + } + switch(among_var) { + case 0: + break lab0; + case 1: + // (, line 83 + // delete, line 83 + slice_del(); + break; + case 2: + // (, line 86 + if (!(in_grouping_b(g_s_ending, 98, 116))) + { + break lab0; + } + // delete, line 86 + slice_del(); + break; + } + } while (false); + cursor = limit - v_1; + // do, line 90 + v_2 = limit - cursor; + lab1: do { + // (, line 90 + // [, line 91 + ket = cursor; + // substring, line 91 + among_var = find_among_b(a_3, 4); + if (among_var == 0) + { + break lab1; + } + // ], line 91 + bra = cursor; + // call R1, line 91 + if (!r_R1()) + { + break lab1; + } + switch(among_var) { + case 0: + break lab1; + case 1: + // (, line 93 + // delete, line 93 + slice_del(); + break; + case 2: + // (, line 96 + if (!(in_grouping_b(g_st_ending, 98, 116))) + { + break lab1; + } + // hop, line 96 + { + int c = cursor - 3; + if (limit_backward > c || c > limit) + { + break lab1; + } + cursor = c; + } + // delete, line 96 + slice_del(); + break; + } + } while (false); + cursor = limit - v_2; + // do, line 100 + v_3 = limit - cursor; + lab2: do { + // (, line 100 + // [, line 101 + ket = cursor; + // substring, line 101 + among_var = find_among_b(a_5, 8); + if (among_var == 0) + { + break lab2; + } + // ], line 101 + bra = cursor; + // call R2, line 101 + if (!r_R2()) + { + break lab2; + } + switch(among_var) { + case 0: + break lab2; + case 1: + // (, line 103 + // delete, line 103 + slice_del(); + // try, line 104 + v_4 = limit - cursor; + lab3: do { + // (, line 104 + // [, line 104 + ket = cursor; + // literal, line 104 + if (!(eq_s_b(2, "ig"))) + { + cursor = limit - v_4; + break lab3; + } + // ], line 104 + bra = cursor; + // not, line 104 + { + v_5 = limit - cursor; + lab4: do { + // literal, line 104 + if (!(eq_s_b(1, "e"))) + { + break lab4; + } + cursor = limit - v_4; + break lab3; + } while (false); + cursor = limit - v_5; + } + // call R2, line 104 + if (!r_R2()) + { + cursor = limit - v_4; + break lab3; + } + // delete, line 104 + slice_del(); + } while (false); + break; + case 2: + // (, line 107 + // not, line 107 + { + v_6 = limit - cursor; + lab5: do { + // literal, line 107 + if (!(eq_s_b(1, "e"))) + { + break lab5; + } + break lab2; + } while (false); + cursor = limit - v_6; + } + // delete, line 107 + slice_del(); + break; + case 3: + // (, line 110 + // delete, line 110 + slice_del(); + // try, line 111 + v_7 = limit - cursor; + lab6: do { + // (, line 111 + // [, line 112 + ket = cursor; + // or, line 112 + lab7: do { + v_8 = limit - cursor; + lab8: do { + // literal, line 112 + if (!(eq_s_b(2, "er"))) + { + break lab8; + } + break lab7; + } while (false); + cursor = limit - v_8; + // literal, line 112 + if (!(eq_s_b(2, "en"))) + { + cursor = limit - v_7; + break lab6; + } + } while (false); + // ], line 112 + bra = cursor; + // call R1, line 112 + if (!r_R1()) + { + cursor = limit - v_7; + break lab6; + } + // delete, line 112 + slice_del(); + } while (false); + break; + case 4: + // (, line 116 + // delete, line 116 + slice_del(); + // try, line 117 + v_9 = limit - cursor; + lab9: do { + // (, line 117 + // [, line 118 + ket = cursor; + // substring, line 118 + among_var = find_among_b(a_4, 2); + if (among_var == 0) + { + cursor = limit - v_9; + break lab9; + } + // ], line 118 + bra = cursor; + // call R2, line 118 + if (!r_R2()) + { + cursor = limit - v_9; + break lab9; + } + switch(among_var) { + case 0: + cursor = limit - v_9; + break lab9; + case 1: + // (, line 120 + // delete, line 120 + slice_del(); + break; + } + } while (false); + break; + } + } while (false); + cursor = limit - v_3; + return true; + } + + public boolean stem() { + int v_1; + int v_2; + int v_3; + int v_4; + // (, line 130 + // do, line 131 + v_1 = cursor; + lab0: do { + // call prelude, line 131 + if (!r_prelude()) + { + break lab0; + } + } while (false); + cursor = v_1; + // do, line 132 + v_2 = cursor; + lab1: do { + // call mark_regions, line 132 + if (!r_mark_regions()) + { + break lab1; + } + } while (false); + cursor = v_2; + // backwards, line 133 + limit_backward = cursor; cursor = limit; + // do, line 134 + v_3 = limit - cursor; + lab2: do { + // call standard_suffix, line 134 + if (!r_standard_suffix()) + { + break lab2; + } + } while (false); + cursor = limit - v_3; + cursor = limit_backward; // do, line 135 + v_4 = cursor; + lab3: do { + // call postlude, line 135 + if (!r_postlude()) + { + break lab3; + } + } while (false); + cursor = v_4; + return true; + } + +} + Index: contrib/snowball/src/java/org/tartarus/snowball/ext/FinnishStemmer.java =================================================================== --- contrib/snowball/src/java/org/tartarus/snowball/ext/FinnishStemmer.java (revision 0) +++ contrib/snowball/src/java/org/tartarus/snowball/ext/FinnishStemmer.java (revision 0) @@ -0,0 +1,1034 @@ +// This file was generated automatically by the Snowball to Java compiler + +package org.tartarus.snowball.ext; +import org.tartarus.snowball.SnowballProgram; +import org.tartarus.snowball.Among; + +/** + * Generated class implementing code defined by a snowball script. + */ +public class FinnishStemmer extends SnowballProgram { + + private Among a_0[] = { + new Among ( "pa", -1, 1, "", this), + new Among ( "sti", -1, 2, "", this), + new Among ( "kaan", -1, 1, "", this), + new Among ( "han", -1, 1, "", this), + new Among ( "kin", -1, 1, "", this), + new Among ( "h\u00E4n", -1, 1, "", this), + new Among ( "k\u00E4\u00E4n", -1, 1, "", this), + new Among ( "ko", -1, 1, "", this), + new Among ( "p\u00E4", -1, 1, "", this), + new Among ( "k\u00F6", -1, 1, "", this) + }; + + private Among a_1[] = { + new Among ( "lla", -1, -1, "", this), + new Among ( "na", -1, -1, "", this), + new Among ( "ssa", -1, -1, "", this), + new Among ( "ta", -1, -1, "", this), + new Among ( "lta", 3, -1, "", this), + new Among ( "sta", 3, -1, "", this) + }; + + private Among a_2[] = { + new Among ( "ll\u00E4", -1, -1, "", this), + new Among ( "n\u00E4", -1, -1, "", this), + new Among ( "ss\u00E4", -1, -1, "", this), + new Among ( "t\u00E4", -1, -1, "", this), + new Among ( "lt\u00E4", 3, -1, "", this), + new Among ( "st\u00E4", 3, -1, "", this) + }; + + private Among a_3[] = { + new Among ( "lle", -1, -1, "", this), + new Among ( "ine", -1, -1, "", this) + }; + + private Among a_4[] = { + new Among ( "nsa", -1, 3, "", this), + new Among ( "mme", -1, 3, "", this), + new Among ( "nne", -1, 3, "", this), + new Among ( "ni", -1, 2, "", this), + new Among ( "si", -1, 1, "", this), + new Among ( "an", -1, 4, "", this), + new Among ( "en", -1, 6, "", this), + new Among ( "\u00E4n", -1, 5, "", this), + new Among ( "ns\u00E4", -1, 3, "", this) + }; + + private Among a_5[] = { + new Among ( "aa", -1, -1, "", this), + new Among ( "ee", -1, -1, "", this), + new Among ( "ii", -1, -1, "", this), + new Among ( "oo", -1, -1, "", this), + new Among ( "uu", -1, -1, "", this), + new Among ( "\u00E4\u00E4", -1, -1, "", this), + new Among ( "\u00F6\u00F6", -1, -1, "", this) + }; + + private Among a_6[] = { + new Among ( "a", -1, 8, "", this), + new Among ( "lla", 0, -1, "", this), + new Among ( "na", 0, -1, "", this), + new Among ( "ssa", 0, -1, "", this), + new Among ( "ta", 0, -1, "", this), + new Among ( "lta", 4, -1, "", this), + new Among ( "sta", 4, -1, "", this), + new Among ( "tta", 4, 9, "", this), + new Among ( "lle", -1, -1, "", this), + new Among ( "ine", -1, -1, "", this), + new Among ( "ksi", -1, -1, "", this), + new Among ( "n", -1, 7, "", this), + new Among ( "han", 11, 1, "", this), + new Among ( "den", 11, -1, "r_VI", this), + new Among ( "seen", 11, -1, "r_LONG", this), + new Among ( "hen", 11, 2, "", this), + new Among ( "tten", 11, -1, "r_VI", this), + new Among ( "hin", 11, 3, "", this), + new Among ( "siin", 11, -1, "r_VI", this), + new Among ( "hon", 11, 4, "", this), + new Among ( "h\u00E4n", 11, 5, "", this), + new Among ( "h\u00F6n", 11, 6, "", this), + new Among ( "\u00E4", -1, 8, "", this), + new Among ( "ll\u00E4", 22, -1, "", this), + new Among ( "n\u00E4", 22, -1, "", this), + new Among ( "ss\u00E4", 22, -1, "", this), + new Among ( "t\u00E4", 22, -1, "", this), + new Among ( "lt\u00E4", 26, -1, "", this), + new Among ( "st\u00E4", 26, -1, "", this), + new Among ( "tt\u00E4", 26, 9, "", this) + }; + + private Among a_7[] = { + new Among ( "eja", -1, -1, "", this), + new Among ( "mma", -1, 1, "", this), + new Among ( "imma", 1, -1, "", this), + new Among ( "mpa", -1, 1, "", this), + new Among ( "impa", 3, -1, "", this), + new Among ( "mmi", -1, 1, "", this), + new Among ( "immi", 5, -1, "", this), + new Among ( "mpi", -1, 1, "", this), + new Among ( "impi", 7, -1, "", this), + new Among ( "ej\u00E4", -1, -1, "", this), + new Among ( "mm\u00E4", -1, 1, "", this), + new Among ( "imm\u00E4", 10, -1, "", this), + new Among ( "mp\u00E4", -1, 1, "", this), + new Among ( "imp\u00E4", 12, -1, "", this) + }; + + private Among a_8[] = { + new Among ( "i", -1, -1, "", this), + new Among ( "j", -1, -1, "", this) + }; + + private Among a_9[] = { + new Among ( "mma", -1, 1, "", this), + new Among ( "imma", 0, -1, "", this) + }; + + 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_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_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 }; + + private boolean B_ending_removed; + private StringBuffer S_x = new StringBuffer(); + private int I_p2; + private int I_p1; + + private void copy_from(FinnishStemmer other) { + B_ending_removed = other.B_ending_removed; + S_x = other.S_x; + I_p2 = other.I_p2; + I_p1 = other.I_p1; + super.copy_from(other); + } + + private boolean r_mark_regions() { + int v_1; + int v_3; + // (, line 41 + I_p1 = limit; + I_p2 = limit; + // goto, line 46 + golab0: while(true) + { + v_1 = cursor; + lab1: do { + if (!(in_grouping(g_V1, 97, 246))) + { + break lab1; + } + cursor = v_1; + break golab0; + } while (false); + cursor = v_1; + if (cursor >= limit) + { + return false; + } + cursor++; + } + // gopast, line 46 + golab2: while(true) + { + lab3: do { + if (!(out_grouping(g_V1, 97, 246))) + { + break lab3; + } + break golab2; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // setmark p1, line 46 + I_p1 = cursor; + // goto, line 47 + golab4: while(true) + { + v_3 = cursor; + lab5: do { + if (!(in_grouping(g_V1, 97, 246))) + { + break lab5; + } + cursor = v_3; + break golab4; + } while (false); + cursor = v_3; + if (cursor >= limit) + { + return false; + } + cursor++; + } + // gopast, line 47 + golab6: while(true) + { + lab7: do { + if (!(out_grouping(g_V1, 97, 246))) + { + break lab7; + } + break golab6; + } while (false); + if (cursor >= limit) + { + return false; + } + cursor++; + } + // setmark p2, line 47 + I_p2 = cursor; + return true; + } + + private boolean r_R2() { + if (!(I_p2 <= cursor)) + { + return false; + } + return true; + } + + private boolean r_particle_etc() { + int among_var; + int v_1; + int v_2; + // (, line 54 + // setlimit, line 55 + v_1 = limit - cursor; + // tomark, line 55 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 55 + // [, line 55 + ket = cursor; + // substring, line 55 + among_var = find_among_b(a_0, 10); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 55 + bra = cursor; + limit_backward = v_2; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 62 + if (!(in_grouping_b(g_particle_end, 97, 246))) + { + return false; + } + break; + case 2: + // (, line 64 + // call R2, line 64 + if (!r_R2()) + { + return false; + } + break; + } + // delete, line 66 + slice_del(); + return true; + } + + private boolean r_possessive() { + int among_var; + int v_1; + int v_2; + int v_3; + // (, line 68 + // setlimit, line 69 + v_1 = limit - cursor; + // tomark, line 69 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 69 + // [, line 69 + ket = cursor; + // substring, line 69 + among_var = find_among_b(a_4, 9); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 69 + bra = cursor; + limit_backward = v_2; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 72 + // not, line 72 + { + v_3 = limit - cursor; + lab0: do { + // literal, line 72 + if (!(eq_s_b(1, "k"))) + { + break lab0; + } + return false; + } while (false); + cursor = limit - v_3; + } + // delete, line 72 + slice_del(); + break; + case 2: + // (, line 74 + // delete, line 74 + slice_del(); + // [, line 74 + ket = cursor; + // literal, line 74 + if (!(eq_s_b(3, "kse"))) + { + return false; + } + // ], line 74 + bra = cursor; + // <-, line 74 + slice_from("ksi"); + break; + case 3: + // (, line 78 + // delete, line 78 + slice_del(); + break; + case 4: + // (, line 81 + // among, line 81 + if (find_among_b(a_1, 6) == 0) + { + return false; + } + // delete, line 81 + slice_del(); + break; + case 5: + // (, line 83 + // among, line 83 + if (find_among_b(a_2, 6) == 0) + { + return false; + } + // delete, line 84 + slice_del(); + break; + case 6: + // (, line 86 + // among, line 86 + if (find_among_b(a_3, 2) == 0) + { + return false; + } + // delete, line 86 + slice_del(); + break; + } + return true; + } + + private boolean r_LONG() { + // among, line 91 + if (find_among_b(a_5, 7) == 0) + { + return false; + } + return true; + } + + private boolean r_VI() { + // (, line 93 + // literal, line 93 + if (!(eq_s_b(1, "i"))) + { + return false; + } + if (!(in_grouping_b(g_V2, 97, 246))) + { + return false; + } + return true; + } + + private boolean r_case_ending() { + int among_var; + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + // (, line 95 + // setlimit, line 96 + v_1 = limit - cursor; + // tomark, line 96 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 96 + // [, line 96 + ket = cursor; + // substring, line 96 + among_var = find_among_b(a_6, 30); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 96 + bra = cursor; + limit_backward = v_2; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 98 + // literal, line 98 + if (!(eq_s_b(1, "a"))) + { + return false; + } + break; + case 2: + // (, line 99 + // literal, line 99 + if (!(eq_s_b(1, "e"))) + { + return false; + } + break; + case 3: + // (, line 100 + // literal, line 100 + if (!(eq_s_b(1, "i"))) + { + return false; + } + break; + case 4: + // (, line 101 + // literal, line 101 + if (!(eq_s_b(1, "o"))) + { + return false; + } + break; + case 5: + // (, line 102 + // literal, line 102 + if (!(eq_s_b(1, "\u00E4"))) + { + return false; + } + break; + case 6: + // (, line 103 + // literal, line 103 + if (!(eq_s_b(1, "\u00F6"))) + { + return false; + } + break; + case 7: + // (, line 111 + // try, line 111 + v_3 = limit - cursor; + lab0: do { + // (, line 111 + // and, line 113 + v_4 = limit - cursor; + // or, line 112 + lab1: do { + v_5 = limit - cursor; + lab2: do { + // call LONG, line 111 + if (!r_LONG()) + { + break lab2; + } + break lab1; + } while (false); + cursor = limit - v_5; + // literal, line 112 + if (!(eq_s_b(2, "ie"))) + { + cursor = limit - v_3; + break lab0; + } + } while (false); + cursor = limit - v_4; + // next, line 113 + if (cursor <= limit_backward) + { + cursor = limit - v_3; + break lab0; + } + cursor--; + // ], line 113 + bra = cursor; + } while (false); + break; + case 8: + // (, line 119 + if (!(in_grouping_b(g_V1, 97, 246))) + { + return false; + } + if (!(out_grouping_b(g_V1, 97, 246))) + { + return false; + } + break; + case 9: + // (, line 121 + // literal, line 121 + if (!(eq_s_b(1, "e"))) + { + return false; + } + break; + } + // delete, line 138 + slice_del(); + // set ending_removed, line 139 + B_ending_removed = true; + return true; + } + + private boolean r_other_endings() { + int among_var; + int v_1; + int v_2; + int v_3; + // (, line 141 + // setlimit, line 142 + v_1 = limit - cursor; + // tomark, line 142 + if (cursor < I_p2) + { + return false; + } + cursor = I_p2; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 142 + // [, line 142 + ket = cursor; + // substring, line 142 + among_var = find_among_b(a_7, 14); + if (among_var == 0) + { + limit_backward = v_2; + return false; + } + // ], line 142 + bra = cursor; + limit_backward = v_2; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 146 + // not, line 146 + { + v_3 = limit - cursor; + lab0: do { + // literal, line 146 + if (!(eq_s_b(2, "po"))) + { + break lab0; + } + return false; + } while (false); + cursor = limit - v_3; + } + break; + } + // delete, line 151 + slice_del(); + return true; + } + + private boolean r_i_plural() { + int v_1; + int v_2; + // (, line 153 + // setlimit, line 154 + v_1 = limit - cursor; + // tomark, line 154 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 154 + // [, line 154 + ket = cursor; + // substring, line 154 + if (find_among_b(a_8, 2) == 0) + { + limit_backward = v_2; + return false; + } + // ], line 154 + bra = cursor; + limit_backward = v_2; + // delete, line 158 + slice_del(); + return true; + } + + private boolean r_t_plural() { + int among_var; + int v_1; + int v_2; + int v_3; + int v_4; + int v_5; + int v_6; + // (, line 160 + // setlimit, line 161 + v_1 = limit - cursor; + // tomark, line 161 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 161 + // [, line 162 + ket = cursor; + // literal, line 162 + if (!(eq_s_b(1, "t"))) + { + limit_backward = v_2; + return false; + } + // ], line 162 + bra = cursor; + // test, line 162 + v_3 = limit - cursor; + if (!(in_grouping_b(g_V1, 97, 246))) + { + limit_backward = v_2; + return false; + } + cursor = limit - v_3; + // delete, line 163 + slice_del(); + limit_backward = v_2; + // setlimit, line 165 + v_4 = limit - cursor; + // tomark, line 165 + if (cursor < I_p2) + { + return false; + } + cursor = I_p2; + v_5 = limit_backward; + limit_backward = cursor; + cursor = limit - v_4; + // (, line 165 + // [, line 165 + ket = cursor; + // substring, line 165 + among_var = find_among_b(a_9, 2); + if (among_var == 0) + { + limit_backward = v_5; + return false; + } + // ], line 165 + bra = cursor; + limit_backward = v_5; + switch(among_var) { + case 0: + return false; + case 1: + // (, line 167 + // not, line 167 + { + v_6 = limit - cursor; + lab0: do { + // literal, line 167 + if (!(eq_s_b(2, "po"))) + { + break lab0; + } + return false; + } while (false); + cursor = limit - v_6; + } + break; + } + // delete, line 170 + slice_del(); + return true; + } + + private boolean r_tidy() { + 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; + // (, line 172 + // setlimit, line 173 + v_1 = limit - cursor; + // tomark, line 173 + if (cursor < I_p1) + { + return false; + } + cursor = I_p1; + v_2 = limit_backward; + limit_backward = cursor; + cursor = limit - v_1; + // (, line 173 + // do, line 174 + v_3 = limit - cursor; + lab0: do { + // (, line 174 + // and, line 174 + v_4 = limit - cursor; + // call LONG, line 174 + if (!r_LONG()) + { + break lab0; + } + cursor = limit - v_4; + // (, line 174 + // [, line 174 + ket = cursor; + // next, line 174 + if (cursor <= limit_backward) + { + break lab0; + } + cursor--; + // ], line 174 + bra = cursor; + // delete, line 174 + slice_del(); + } while (false); + cursor = limit - v_3; + // do, line 175 + v_5 = limit - cursor; + lab1: do { + // (, line 175 + // [, line 175 + ket = cursor; + if (!(in_grouping_b(g_AEI, 97, 228))) + { + break lab1; + } + // ], line 175 + bra = cursor; + if (!(out_grouping_b(g_V1, 97, 246))) + { + break lab1; + } + // delete, line 175 + slice_del(); + } while (false); + cursor = limit - v_5; + // do, line 176 + v_6 = limit - cursor; + lab2: do { + // (, line 176 + // [, line 176 + ket = cursor; + // literal, line 176 + if (!(eq_s_b(1, "j"))) + { + break lab2; + } + // ], line 176 + bra = cursor; + // or, line 176 + lab3: do { + v_7 = limit - cursor; + lab4: do { + // literal, line 176 + if (!(eq_s_b(1, "o"))) + { + break lab4; + } + break lab3; + } while (false); + cursor = limit - v_7; + // literal, line 176 + if (!(eq_s_b(1, "u"))) + { + break lab2; + } + } while (false); + // delete, line 176 + slice_del(); + } while (false); + cursor = limit - v_6; + // do, line 177 + v_8 = limit - cursor; + lab5: do { + // (, line 177 + // [, line 177 + ket = cursor; + // literal, line 177 + if (!(eq_s_b(1, "o"))) + { + break lab5; + } + // ], line 177 + bra = cursor; + // literal, line 177 + if (!(eq_s_b(1, "j"))) + { + break lab5; + } + // delete, line 177 + slice_del(); + } while (false); + cursor = limit - v_8; + limit_backward = v_2; + // goto, line 179 + golab6: while(true) + { + v_9 = limit - cursor; + lab7: do { + if (!(out_grouping_b(g_V1, 97, 246))) + { + break lab7; + } + cursor = limit - v_9; + break golab6; + } while (false); + cursor = limit - v_9; + if (cursor <= limit_backward) + { + return false; + } + cursor--; + } + // [, line 179 + ket = cursor; + // next, line 179 + if (cursor <= limit_backward) + { + return false; + } + cursor--; + // ], line 179 + bra = cursor; + // -> x, line 179 + S_x = slice_to(S_x); + // name x, line 179 + if (!(eq_v_b(S_x))) + { + return false; + } + // delete, line 179 + slice_del(); + 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; + // (, line 183 + // do, line 185 + v_1 = cursor; + lab0: do { + // call mark_regions, line 185 + if (!r_mark_regions()) + { + break lab0; + } + } while (false); + cursor = v_1; + // unset ending_removed, line 186 + B_ending_removed = false; + // backwards, line 187 + limit_backward = cursor; cursor = limit; + // (, line 187 + // do, line 188 + v_2 = limit - cursor; + lab1: do { + // call particle_etc, line 188 + if (!r_particle_etc()) + { + break lab1; + } + } while (false); + cursor = limit - v_2; + // do, line 189 + v_3 = limit - cursor; + lab2: do { + // call possessive, line 189 + if (!r_possessive()) + { + break lab2; + } + } while (false); + cursor = limit - v_3; + // do, line 190 + v_4 = limit - cursor; + lab3: do { + // call case_ending, line 190 + if (!r_case_ending()) + { + break lab3; + } + } while (false); + cursor = limit - v_4; + // do, line 191 + v_5 = limit - cursor; + lab4: do { + // call other_endings, line 191 + if (!r_other_endings()) + { + break lab4; + } + } while (false); + cursor = limit - v_5; + // or, line 192 + lab5: do { + v_6 = limit - cursor; + lab6: do { + // (, line 192 + // Boolean test ending_removed, line 192 + if (!(B_ending_removed)) + { + break lab6; + } + // do, line 192 + v_7 = limit - cursor; + lab7: do { + // call i_plural, line 192 + if (!r_i_plural()) + { + break lab7; + } + } while (false); + cursor = limit - v_7; + break lab5; + } while (false); + cursor = limit - v_6; + // do, line 192 + v_8 = limit - cursor; + lab8: do { + // call t_plural, line 192 + if (!r_t_plural()) + { + break lab8; + } + } while (false); + cursor = limit - v_8; + } while (false); + // do, line 193 + v_9 = limit - cursor; + lab9: do { + // call tidy, line 193 + if (!r_tidy()) + { + break lab9; + } + } while (false); + cursor = limit - v_9; + cursor = limit_backward; return true; + } + +} + Index: contrib/snowball/src/java/org/tartarus/snowball/Among.java =================================================================== --- contrib/snowball/src/java/org/tartarus/snowball/Among.java (revision 0) +++ contrib/snowball/src/java/org/tartarus/snowball/Among.java (revision 0) @@ -0,0 +1,34 @@ + +package org.tartarus.snowball; + +import java.lang.reflect.Method; + +public class Among { + public Among (String s, int substring_i, int result, + String methodname, SnowballProgram methodobject) { + this.s_size = s.length(); + this.s = s; + this.substring_i = substring_i; + this.result = result; + this.methodobject = methodobject; + if (methodname.length() == 0) { + this.method = null; + } else { + try { + this.method = methodobject.getClass(). + getDeclaredMethod(methodname, new Class[0]); + } catch (NoSuchMethodException e) { + // FIXME - debug message + this.method = null; + } + } + } + + public int s_size; /* search string */ + public String s; /* search string */ + public int substring_i; /* index to longest matching substring */ + public int result; /* result of the lookup */ + public Method method; /* method to use if substring matches */ + public SnowballProgram methodobject; /* object to invoke method on */ + +}; Index: contrib/snowball/src/java/org/tartarus/snowball/SnowballProgram.java =================================================================== --- contrib/snowball/src/java/org/tartarus/snowball/SnowballProgram.java (revision 0) +++ contrib/snowball/src/java/org/tartarus/snowball/SnowballProgram.java (revision 0) @@ -0,0 +1,426 @@ + +package org.tartarus.snowball; +import java.lang.reflect.InvocationTargetException; + +/** + * This is the rev 500 of the Snowball SVN trunk, + * but modified: + * made abstract and introduced abstract method stem + * to avoid expensive + */ +public abstract class SnowballProgram { + protected SnowballProgram() + { + current = new StringBuffer(); + setCurrent(""); + } + + public abstract boolean stem(); + + /** + * Set the current string. + */ + public void setCurrent(String value) + { + current.replace(0, current.length(), value); + cursor = 0; + limit = current.length(); + limit_backward = 0; + bra = cursor; + ket = limit; + } + + /** + * Get the current string. + */ + public String getCurrent() + { + 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 + protected StringBuffer current; + + protected int cursor; + protected int limit; + protected int limit_backward; + protected int bra; + protected int ket; + + protected void copy_from(SnowballProgram other) + { + current = other.current; + cursor = other.cursor; + limit = other.limit; + limit_backward = other.limit_backward; + bra = other.bra; + ket = other.ket; + } + + protected boolean in_grouping(char [] s, int min, int max) + { + if (cursor >= limit) return false; + char ch = current.charAt(cursor); + if (ch > max || ch < min) return false; + ch -= min; + if ((s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) return false; + cursor++; + return true; + } + + protected boolean in_grouping_b(char [] s, int min, int max) + { + if (cursor <= limit_backward) return false; + char ch = current.charAt(cursor - 1); + if (ch > max || ch < min) return false; + ch -= min; + if ((s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) return false; + cursor--; + return true; + } + + protected boolean out_grouping(char [] s, int min, int max) + { + if (cursor >= limit) return false; + char ch = current.charAt(cursor); + if (ch > max || ch < min) { + cursor++; + return true; + } + ch -= min; + if ((s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) { + cursor ++; + return true; + } + return false; + } + + protected boolean out_grouping_b(char [] s, int min, int max) + { + if (cursor <= limit_backward) return false; + char ch = current.charAt(cursor - 1); + if (ch > max || ch < min) { + cursor--; + return true; + } + ch -= min; + if ((s[ch >> 3] & (0X1 << (ch & 0X7))) == 0) { + cursor--; + return true; + } + return false; + } + + protected boolean in_range(int min, int max) + { + if (cursor >= limit) return false; + char ch = current.charAt(cursor); + if (ch > max || ch < min) return false; + cursor++; + return true; + } + + protected boolean in_range_b(int min, int max) + { + if (cursor <= limit_backward) return false; + char ch = current.charAt(cursor - 1); + if (ch > max || ch < min) return false; + cursor--; + return true; + } + + protected boolean out_range(int min, int max) + { + if (cursor >= limit) return false; + char ch = current.charAt(cursor); + if (!(ch > max || ch < min)) return false; + cursor++; + return true; + } + + protected boolean out_range_b(int min, int max) + { + if (cursor <= limit_backward) return false; + char ch = current.charAt(cursor - 1); + if(!(ch > max || ch < min)) return false; + cursor--; + return true; + } + + protected boolean eq_s(int s_size, String s) + { + if (limit - cursor < s_size) return false; + int i; + for (i = 0; i != s_size; i++) { + if (current.charAt(cursor + i) != s.charAt(i)) return false; + } + cursor += s_size; + return true; + } + + protected boolean eq_s_b(int s_size, String s) + { + if (cursor - limit_backward < s_size) return false; + int i; + for (i = 0; i != s_size; i++) { + if (current.charAt(cursor - s_size + i) != s.charAt(i)) return false; + } + cursor -= s_size; + return true; + } + + protected boolean eq_v(StringBuffer s) + { + return eq_s(s.length(), s.toString()); + } + + protected boolean eq_v_b(StringBuffer s) + { return eq_s_b(s.length(), s.toString()); + } + + protected int find_among(Among v[], int v_size) + { + int i = 0; + int j = v_size; + + int c = cursor; + int l = limit; + + int common_i = 0; + int common_j = 0; + + boolean first_key_inspected = false; + + while(true) { + int k = i + ((j - i) >> 1); + int diff = 0; + int common = common_i < common_j ? common_i : common_j; // smaller + Among w = v[k]; + int i2; + for (i2 = common; i2 < w.s_size; i2++) { + if (c + common == l) { + diff = -1; + break; + } + diff = current.charAt(c + common) - w.s.charAt(i2); + if (diff != 0) break; + common++; + } + if (diff < 0) { + j = k; + common_j = common; + } else { + i = k; + common_i = common; + } + if (j - i <= 1) { + if (i > 0) break; // v->s has been inspected + if (j == i) break; // only one item in v + + // - but now we need to go round once more to get + // v->s inspected. This looks messy, but is actually + // the optimal approach. + + if (first_key_inspected) break; + first_key_inspected = true; + } + } + while(true) { + Among w = v[i]; + if (common_i >= w.s_size) { + cursor = c + w.s_size; + if (w.method == null) return w.result; + boolean res; + try { + Object resobj = w.method.invoke(w.methodobject, + new Object[0]); + res = resobj.toString().equals("true"); + } catch (InvocationTargetException e) { + res = false; + // FIXME - debug message + } catch (IllegalAccessException e) { + res = false; + // FIXME - debug message + } + cursor = c + w.s_size; + if (res) return w.result; + } + i = w.substring_i; + if (i < 0) return 0; + } + } + + // find_among_b is for backwards processing. Same comments apply + protected int find_among_b(Among v[], int v_size) + { + int i = 0; + int j = v_size; + + int c = cursor; + int lb = limit_backward; + + int common_i = 0; + int common_j = 0; + + boolean first_key_inspected = false; + + while(true) { + int k = i + ((j - i) >> 1); + int diff = 0; + int common = common_i < common_j ? common_i : common_j; + Among w = v[k]; + int i2; + for (i2 = w.s_size - 1 - common; i2 >= 0; i2--) { + if (c - common == lb) { + diff = -1; + break; + } + diff = current.charAt(c - 1 - common) - w.s.charAt(i2); + if (diff != 0) break; + common++; + } + if (diff < 0) { + j = k; + common_j = common; + } else { + i = k; + common_i = common; + } + if (j - i <= 1) { + if (i > 0) break; + if (j == i) break; + if (first_key_inspected) break; + first_key_inspected = true; + } + } + while(true) { + Among w = v[i]; + if (common_i >= w.s_size) { + cursor = c - w.s_size; + if (w.method == null) return w.result; + + boolean res; + try { + Object resobj = w.method.invoke(w.methodobject, + new Object[0]); + res = resobj.toString().equals("true"); + } catch (InvocationTargetException e) { + res = false; + // FIXME - debug message + } catch (IllegalAccessException e) { + res = false; + // FIXME - debug message + } + cursor = c - w.s_size; + if (res) return w.result; + } + i = w.substring_i; + if (i < 0) return 0; + } + } + + /* to replace chars between c_bra and c_ket in current by the + * chars in s. + */ + protected int replace_s(int c_bra, int c_ket, String s) + { + int adjustment = s.length() - (c_ket - c_bra); + current.replace(c_bra, c_ket, s); + limit += adjustment; + if (cursor >= c_ket) cursor += adjustment; + else if (cursor > c_bra) cursor = c_bra; + return adjustment; + } + + protected void slice_check() + { + if (bra < 0 || + bra > ket || + ket > limit || + limit > current.length()) // this line could be removed + { + System.err.println("faulty slice operation"); + // FIXME: report error somehow. + /* + fprintf(stderr, "faulty slice operation:\n"); + debug(z, -1, 0); + exit(1); + */ + } + } + + protected void slice_from(String s) + { + slice_check(); + replace_s(bra, ket, s); + } + + protected void slice_from(StringBuffer s) + { + slice_from(s.toString()); + } + + protected void slice_del() + { + slice_from(""); + } + + protected void insert(int c_bra, int c_ket, String s) + { + int adjustment = replace_s(c_bra, c_ket, s); + if (c_bra <= bra) bra += adjustment; + if (c_bra <= ket) ket += adjustment; + } + + protected void insert(int c_bra, int c_ket, StringBuffer s) + { + insert(c_bra, c_ket, s.toString()); + } + + /* Copy the slice into the supplied StringBuffer */ + protected StringBuffer slice_to(StringBuffer s) + { + slice_check(); + int len = ket - bra; + s.replace(0, s.length(), current.substring(bra, ket)); + return s; + } + + protected StringBuffer assign_to(StringBuffer s) + { + s.replace(0, s.length(), current.substring(0, limit)); + return s; + } + +/* +extern void debug(struct SN_env * z, int number, int line_count) +{ int i; + int limit = SIZE(z->p); + //if (number >= 0) printf("%3d (line %4d): '", number, line_count); + if (number >= 0) printf("%3d (line %4d): [%d]'", number, line_count,limit); + for (i = 0; i <= limit; i++) + { if (z->lb == i) printf("{"); + if (z->bra == i) printf("["); + if (z->c == i) printf("|"); + if (z->ket == i) printf("]"); + if (z->l == i) printf("}"); + if (i < limit) + { int ch = z->p[i]; + if (ch == 0) ch = '#'; + printf("%c", ch); + } + } + printf("'\n"); +} +*/ + +}; + Index: contrib/snowball/src/java/overview.html =================================================================== --- contrib/snowball/src/java/overview.html (revision 613440) +++ contrib/snowball/src/java/overview.html (working copy) @@ -1,5 +1,7 @@ -Snowball stemmers for Lucene +Snowball stemmers for Lucene. + +See the Snowball home page for more information about the algorithms.