-German Stemmer is fully implemented and is supported.
-Stemming support for 16 languages added for indexing(written in Java). These can't be used until JavaScript version of them are implemented. For more details, refer: http://snowball.tartarus.org/
Fixed some bugs in the UI
Reformatted the code.
# Set this to true if you don't need a search tab.
exclude.search.from.chunked.html=false
-#indexe-language is used to tell the search indexer which language the docbook is written.
+#indexer-language is used to tell the search indexer which language the docbook is written.
#This will be used to identify the correct stemmer, and punctuations that differs from language to language.
-#see the documentation for details. en=English, cn=Chinese, jp=Japanese etc.
-indexer-language=en
+#see the documentation for details. en=English, de=German, cn=Chinese, jp=Japanese etc.
+#Country codes are available at: http://www.uspto.gov/patft/help/helpctry.htm
+indexer-language=de
<param name="exclude.search.from.chunked.html" expression="${exclude.search.from.chunked.html}" if="exclude.search.from.chunked.html"/>
<param name="output_file_name" expression="${output_file_name}"/>
<param name="frameset.base.dir" expression="${frameset.base.dir}" if="frameset.base.dir"/>
- <param name="exclude.search.from.chunked.html" expression="${exclude.search.from.chunked.html}" if="exclude.search.from.chunked.html"/>
<param name="indexer.language" expression="${indexer-language}" if="indexer-language"/>
+ <param name="chunk.frameset.start.filename" expression="${chunk.frameset.start.filename}" if="chunk.frameset.start.filename"/>
</xslt>
<delete file="${frameset.base.dir}/dummy.html"/>
import java.util.Map;\r
import java.util.Properties;\r
\r
+/*\r
\r
import org.apache.tools.ant.BuildException;\r
import org.apache.tools.ant.Task;\r
\r
+*/\r
\r
\r
import com.nexwave.nsidita.DirList;\r
* @author N. Quaine\r
* @author Kasun Gajasinghe <http://kasunbg.blogspot.com>\r
*/\r
+public class IndexerTask{\r
//public class IndexerTask extends Task {\r
-public class IndexerTask extends Task {\r
\r
// messages\r
private String txt_no_inputdir = "Input directory not found:";\r
\r
//supported languages: add new additions to this. don't include country codes to the end such as en_US or en_UK,\r
// as stemmers doesn't find a difference between them.\r
- private String[] supportedLanguages= {"en", "fr", "cn" };\r
+ private String[] supportedLanguages= {"en", "de"}; //currently English & German only. Chinese(cn) to be added shortly.\r
\r
// Indexing features: words to remove\r
private ArrayList<String> cleanUpStrings = null; \r
/**\r
* Implementation of the execute function (Task interface)\r
*/\r
- public void execute() throws BuildException {\r
- //public void execute(){\r
+// public void execute() throws BuildException {\r
+ public void execute(){\r
\r
ArrayList<DocFileInfo> filesDescription = null; // list of information about the topic files\r
ArrayList<File> htmlFiles = null; // topic files listed in the given directory\r
\r
// specific dita ot\r
import com.nexwave.nsidita.DocFileInfo;\r
-import com.nexwave.stemmer.*;\r
+import com.nexwave.stemmer.snowball.SnowballStemmer;\r
+import com.nexwave.stemmer.snowball.ext.EnglishStemmer;\r
+import com.nexwave.stemmer.snowball.ext.GermanStemmer;\r
\r
\r
/**\r
/**\r
* Parses the file to extract all the words for indexing and \r
* some data characterizing the file. \r
- * @param file contains the fullpath of the document to parse \r
+ * @param file contains the fullpath of the document to parse\r
+ * @param indexerLanguage this will be used to tell the program which stemmer to be used.\r
* @return a DitaFileInfo object filled with data describing the file\r
*/\r
public DocFileInfo runExtractData(File file, String indexerLanguage) {\r
//Then, add them to tempSet\r
//Do Stemming for words in items\r
//TODO currently, stemming support is for english only. Add support for other languages as well.\r
-\r
- Stemmer stemmer;\r
+ \r
+ SnowballStemmer stemmer;\r
if(indexerLanguage.equals("en")){\r
stemmer = new EnglishStemmer();\r
- } else if (indexerLanguage.equals("cn")){\r
- throw new UnsupportedOperationException("Chinese stemmer is not implemented yet.");\r
+ } else if (indexerLanguage.equals("de")){\r
+ stemmer= new GermanStemmer();\r
} else {\r
- throw new UnsupportedOperationException("This stemmer is not implemented yet.");\r
+ stemmer = null;//Languages which stemming is not yet supproted.So, No stemmers will be used.\r
}\r
\r
- String[] stemmedItems = stemmer.doStem(items);\r
-\r
+ String[] stemmedItems;\r
+ if(stemmer != null) //If a stemmer available\r
+ stemmedItems = stemmer.doStem(items);\r
+ else //if no stemmer available for the particular language\r
+ stemmedItems = items;\r
+ \r
for(String stemmedItem: stemmedItems){\r
System.out.print(stemmedItem+"| ");\r
}\r
+++ /dev/null
-package com.nexwave.stemmer;
-
-/**
- * Abstract class for all the language specific stemmers.
- * @author Kasun Gajasinghe
- * Date: Jul 11, 2010
- * Time: 12:59:47 AM
- */
-public abstract class Stemmer {
-
- public abstract void stem();
-
- public abstract void add(char[] w, int wLen);
-
- public abstract void add(char ch);
-
- public abstract String doStem(String word);
-
- public abstract String[] doStem(String[] word);
-
- public abstract String toString();
-
-}
--- /dev/null
+package com.nexwave.stemmer.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.toCharArray();
+ 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) {
+ throw new RuntimeException(e);
+ }
+ }
+ }
+
+ public final int s_size; /* search string */
+ public final char[] s; /* search string */
+ public final int substring_i; /* index to longest matching substring */
+ public final int result; /* result of the lookup */
+ public final Method method; /* method to use if substring matches */
+ public final SnowballProgram methodobject; /* object to invoke method on */
+};
--- /dev/null
+
+package com.nexwave.stemmer.snowball;
+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()
+ {
+ 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(CharSequence s)
+ {
+ return eq_s(s.length(), s.toString());
+ }
+
+ protected boolean eq_v_b(CharSequence 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[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[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(CharSequence 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, CharSequence 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;
+ }
+
+ /* Copy the slice into the supplied StringBuilder */
+ protected StringBuilder slice_to(StringBuilder 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;
+ }
+
+ protected StringBuilder assign_to(StringBuilder 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");
+}
+*/
+
+};
--- /dev/null
+
+package com.nexwave.stemmer.snowball;
+import java.lang.reflect.InvocationTargetException;
+
+public abstract class SnowballStemmer extends SnowballProgram {
+ public abstract boolean stem();
+
+ /**
+ * Do stemming of a given String array and returns the stemmed set of words as an array.
+ * @param words Word set to be stemmed
+ * @return stemmed word array
+ */
+ public String[] doStem(String[] words){
+ String[] stemmedWords = new String[words.length];
+ for (int i = 0; i < words.length; i++) {
+ String word = words[i];
+ word = word.trim().toLowerCase();
+
+ //Do the stemming of the given word.
+ setCurrent(word); //set the word to be stemmed
+ stem(); //tell stemmer to stem
+
+ stemmedWords[i] = getCurrent(); //Get the stemmed word and add it to the stemmedWords array
+ }
+ return stemmedWords;
+ }
+}
--- /dev/null
+
+
+package com.nexwave.stemmer.snowball;
+import com.nexwave.stemmer.snowball.ext.EnglishStemmer;
+
+public class TestApp {
+ private static void usage()
+ {
+ System.err.println("Usage: TestApp <algorithm> <input file> [-o <output file>]");
+ }
+
+ public static void main(String [] args) throws Throwable {
+/* if (args.length < 2) {
+ usage();
+ return;
+ }
+
+ Class stemClass = Class.forName("com.nexwave.stemmer.snowball.ext." +
+ args[0] + "Stemmer");*/
+ // SnowballStemmer stemmer = (SnowballStemmer) stemClass.newInstance();
+ SnowballStemmer stemmer =new EnglishStemmer();//= new GermanStemmer();
+
+ StringBuffer input = new StringBuffer();
+ /*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];
+ char[] charArr = "testing runnable dogs ".toCharArray();
+// int character;
+ for (char ch : charArr) {
+ // char ch = (char) character;
+ if (Character.isWhitespace((char) ch)) {
+ if (input.length() > 0) {
+ stemmer.setCurrent(input.toString());
+
+ stemmer.stem();
+
+ System.out.print(stemmer.getCurrent()+" ");
+ /* output.write(stemmer.getCurrent());
+ output.write('\n');*/
+ input.delete(0, input.length());
+ }
+ } else {
+ input.append(Character.toLowerCase(ch));
+ }
+ }
+// output.flush();
+ }
+}
--- /dev/null
+// This file was generated automatically by the Snowball to Java compiler
+
+package com.nexwave.stemmer.snowball.ext;
+
+import com.nexwave.stemmer.snowball.Among;
+
+ /**
+ * This class was automatically generated by a Snowball to Java compiler
+ * It implements the stemming algorithm defined by a snowball script.
+ */
+
+public class EnglishStemmer extends com.nexwave.stemmer.snowball.SnowballStemmer {
+
+private static final long serialVersionUID = 1L;
+
+ private final static EnglishStemmer METHOD_OBJECT = new EnglishStemmer();
+
+ private final static Among a_0[] = {
+ new Among ( "arsen", -1, -1, "", METHOD_OBJECT),
+ new Among ( "commun", -1, -1, "", METHOD_OBJECT),
+ new Among ( "gener", -1, -1, "", METHOD_OBJECT)
+ };
+
+ private final static Among a_1[] = {
+ new Among ( "'", -1, 1, "", METHOD_OBJECT),
+ new Among ( "'s'", 0, 1, "", METHOD_OBJECT),
+ new Among ( "'s", -1, 1, "", METHOD_OBJECT)
+ };
+
+ private final static Among a_2[] = {
+ new Among ( "ied", -1, 2, "", METHOD_OBJECT),
+ new Among ( "s", -1, 3, "", METHOD_OBJECT),
+ new Among ( "ies", 1, 2, "", METHOD_OBJECT),
+ new Among ( "sses", 1, 1, "", METHOD_OBJECT),
+ new Among ( "ss", 1, -1, "", METHOD_OBJECT),
+ new Among ( "us", 1, -1, "", METHOD_OBJECT)
+ };
+
+ private final static Among a_3[] = {
+ new Among ( "", -1, 3, "", METHOD_OBJECT),
+ new Among ( "bb", 0, 2, "", METHOD_OBJECT),
+ new Among ( "dd", 0, 2, "", METHOD_OBJECT),
+ new Among ( "ff", 0, 2, "", METHOD_OBJECT),
+ new Among ( "gg", 0, 2, "", METHOD_OBJECT),
+ new Among ( "bl", 0, 1, "", METHOD_OBJECT),
+ new Among ( "mm", 0, 2, "", METHOD_OBJECT),
+ new Among ( "nn", 0, 2, "", METHOD_OBJECT),
+ new Among ( "pp", 0, 2, "", METHOD_OBJECT),
+ new Among ( "rr", 0, 2, "", METHOD_OBJECT),
+ new Among ( "at", 0, 1, "", METHOD_OBJECT),
+ new Among ( "tt", 0, 2, "", METHOD_OBJECT),
+ new Among ( "iz", 0, 1, "", METHOD_OBJECT)
+ };
+
+ private final static Among a_4[] = {
+ new Among ( "ed", -1, 2, "", METHOD_OBJECT),
+ new Among ( "eed", 0, 1, "", METHOD_OBJECT),
+ new Among ( "ing", -1, 2, "", METHOD_OBJECT),
+ new Among ( "edly", -1, 2, "", METHOD_OBJECT),
+ new Among ( "eedly", 3, 1, "", METHOD_OBJECT),
+ new Among ( "ingly", -1, 2, "", METHOD_OBJECT)
+ };
+
+ private final static Among a_5[] = {
+ new Among ( "anci", -1, 3, "", METHOD_OBJECT),
+ new Among ( "enci", -1, 2, "", METHOD_OBJECT),
+ new Among ( "ogi", -1, 13, "", METHOD_OBJECT),
+ new Among ( "li", -1, 16, "", METHOD_OBJECT),
+ new Among ( "bli", 3, 12, "", METHOD_OBJECT),
+ new Among ( "abli", 4, 4, "", METHOD_OBJECT),
+ new Among ( "alli", 3, 8, "", METHOD_OBJECT),
+ new Among ( "fulli", 3, 14, "", METHOD_OBJECT),
+ new Among ( "lessli", 3, 15, "", METHOD_OBJECT),
+ new Among ( "ousli", 3, 10, "", METHOD_OBJECT),
+ new Among ( "entli", 3, 5, "", METHOD_OBJECT),
+ new Among ( "aliti", -1, 8, "", METHOD_OBJECT),
+ new Among ( "biliti", -1, 12, "", METHOD_OBJECT),
+ new Among ( "iviti", -1, 11, "", METHOD_OBJECT),
+ new Among ( "tional", -1, 1, "", METHOD_OBJECT),
+ new Among ( "ational", 14, 7, "", METHOD_OBJECT),
+ new Among ( "alism", -1, 8, "", METHOD_OBJECT),
+ new Among ( "ation", -1, 7, "", METHOD_OBJECT),
+ new Among ( "ization", 17, 6, "", METHOD_OBJECT),
+ new Among ( "izer", -1, 6, "", METHOD_OBJECT),
+ new Among ( "ator", -1, 7, "", METHOD_OBJECT),
+ new Among ( "iveness", -1, 11, "", METHOD_OBJECT),
+ new Among ( "fulness", -1, 9, "", METHOD_OBJECT),
+ new Among ( "ousness", -1, 10, "", METHOD_OBJECT)
+ };
+
+ private final static Among a_6[] = {
+ new Among ( "icate", -1, 4, "", METHOD_OBJECT),
+ new Among ( "ative", -1, 6, "", METHOD_OBJECT),
+ new Among ( "alize", -1, 3, "", METHOD_OBJECT),
+ new Among ( "iciti", -1, 4, "", METHOD_OBJECT),
+ new Among ( "ical", -1, 4, "", METHOD_OBJECT),
+ new Among ( "tional", -1, 1, "", METHOD_OBJECT),
+ new Among ( "ational", 5, 2, "", METHOD_OBJECT),
+ new Among ( "ful", -1, 5, "", METHOD_OBJECT),
+ new Among ( "ness", -1, 5, "", METHOD_OBJECT)
+ };
+
+ private final static Among a_7[] = {
+ new Among ( "ic", -1, 1, "", METHOD_OBJECT),
+ new Among ( "ance", -1, 1, "", METHOD_OBJECT),
+ new Among ( "ence", -1, 1, "", METHOD_OBJECT),
+ new Among ( "able", -1, 1, "", METHOD_OBJECT),
+ new Among ( "ible", -1, 1, "", METHOD_OBJECT),
+ new Among ( "ate", -1, 1, "", METHOD_OBJECT),
+ new Among ( "ive", -1, 1, "", METHOD_OBJECT),
+ new Among ( "ize", -1, 1, "", METHOD_OBJECT),
+ new Among ( "iti", -1, 1, "", METHOD_OBJECT),
+ new Among ( "al", -1, 1, "", METHOD_OBJECT),
+ new Among ( "ism", -1, 1, "", METHOD_OBJECT),
+ new Among ( "ion", -1, 2, "", METHOD_OBJECT),
+ new Among ( "er", -1, 1, "", METHOD_OBJECT),
+ new Among ( "ous", -1, 1, "", METHOD_OBJECT),
+ new Among ( "ant", -1, 1, "", METHOD_OBJECT),
+ new Among ( "ent", -1, 1, "", METHOD_OBJECT),
+ new Among ( "ment", 15, 1, "", METHOD_OBJECT),
+ new Among ( "ement", 16, 1, "", METHOD_OBJECT)
+ };
+
+ private final static Among a_8[] = {
+ new Among ( "e", -1, 1, "", METHOD_OBJECT),
+ new Among ( "l", -1, 2, "", METHOD_OBJECT)
+ };
+
+ private final static Among a_9[] = {
+ new Among ( "succeed", -1, -1, "", METHOD_OBJECT),
+ new Among ( "proceed", -1, -1, "", METHOD_OBJECT),
+ new Among ( "exceed", -1, -1, "", METHOD_OBJECT),
+ new Among ( "canning", -1, -1, "", METHOD_OBJECT),
+ new Among ( "inning", -1, -1, "", METHOD_OBJECT),
+ new Among ( "earring", -1, -1, "", METHOD_OBJECT),
+ new Among ( "herring", -1, -1, "", METHOD_OBJECT),
+ new Among ( "outing", -1, -1, "", METHOD_OBJECT)
+ };
+
+ private final static Among a_10[] = {
+ new Among ( "andes", -1, -1, "", METHOD_OBJECT),
+ new Among ( "atlas", -1, -1, "", METHOD_OBJECT),
+ new Among ( "bias", -1, -1, "", METHOD_OBJECT),
+ new Among ( "cosmos", -1, -1, "", METHOD_OBJECT),
+ new Among ( "dying", -1, 3, "", METHOD_OBJECT),
+ new Among ( "early", -1, 9, "", METHOD_OBJECT),
+ new Among ( "gently", -1, 7, "", METHOD_OBJECT),
+ new Among ( "howe", -1, -1, "", METHOD_OBJECT),
+ new Among ( "idly", -1, 6, "", METHOD_OBJECT),
+ new Among ( "lying", -1, 4, "", METHOD_OBJECT),
+ new Among ( "news", -1, -1, "", METHOD_OBJECT),
+ new Among ( "only", -1, 10, "", METHOD_OBJECT),
+ new Among ( "singly", -1, 11, "", METHOD_OBJECT),
+ new Among ( "skies", -1, 2, "", METHOD_OBJECT),
+ new Among ( "skis", -1, 1, "", METHOD_OBJECT),
+ new Among ( "sky", -1, -1, "", METHOD_OBJECT),
+ new Among ( "tying", -1, 5, "", METHOD_OBJECT),
+ new Among ( "ugly", -1, 8, "", METHOD_OBJECT)
+ };
+
+ 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;
+ }
+
+ public boolean equals( Object o ) {
+ return o instanceof EnglishStemmer;
+ }
+
+ public int hashCode() {
+ return EnglishStemmer.class.getName().hashCode();
+ }
+
+
+
+}
+
--- /dev/null
+// This file was generated automatically by the Snowball to Java compiler
+
+package com.nexwave.stemmer.snowball.ext;
+
+import com.nexwave.stemmer.snowball.Among;
+
+/**
+ * This class was automatically generated by a Snowball to Java compiler
+ * It implements the stemming algorithm defined by a snowball script.
+ */
+
+public class GermanStemmer extends com.nexwave.stemmer.snowball.SnowballStemmer {
+
+ private static final long serialVersionUID = 1L;
+
+
+
+ private final static GermanStemmer METHOD_OBJECT = new GermanStemmer();
+
+ private final static Among a_0[] = {
+ new Among("", -1, 6, "", METHOD_OBJECT),
+ new Among("U", 0, 2, "", METHOD_OBJECT),
+ new Among("Y", 0, 1, "", METHOD_OBJECT),
+ new Among("\u00E4", 0, 3, "", METHOD_OBJECT),
+ new Among("\u00F6", 0, 4, "", METHOD_OBJECT),
+ new Among("\u00FC", 0, 5, "", METHOD_OBJECT)
+ };
+
+ private final static Among a_1[] = {
+ new Among("e", -1, 2, "", METHOD_OBJECT),
+ new Among("em", -1, 1, "", METHOD_OBJECT),
+ new Among("en", -1, 2, "", METHOD_OBJECT),
+ new Among("ern", -1, 1, "", METHOD_OBJECT),
+ new Among("er", -1, 1, "", METHOD_OBJECT),
+ new Among("s", -1, 3, "", METHOD_OBJECT),
+ new Among("es", 5, 2, "", METHOD_OBJECT)
+ };
+
+ private final static Among a_2[] = {
+ new Among("en", -1, 1, "", METHOD_OBJECT),
+ new Among("er", -1, 1, "", METHOD_OBJECT),
+ new Among("st", -1, 2, "", METHOD_OBJECT),
+ new Among("est", 2, 1, "", METHOD_OBJECT)
+ };
+
+ private final static Among a_3[] = {
+ new Among("ig", -1, 1, "", METHOD_OBJECT),
+ new Among("lich", -1, 1, "", METHOD_OBJECT)
+ };
+
+ private final static Among a_4[] = {
+ new Among("end", -1, 1, "", METHOD_OBJECT),
+ new Among("ig", -1, 2, "", METHOD_OBJECT),
+ new Among("ung", -1, 1, "", METHOD_OBJECT),
+ new Among("lich", -1, 3, "", METHOD_OBJECT),
+ new Among("isch", -1, 2, "", METHOD_OBJECT),
+ new Among("ik", -1, 2, "", METHOD_OBJECT),
+ new Among("heit", -1, 3, "", METHOD_OBJECT),
+ new Among("keit", -1, 4, "", METHOD_OBJECT)
+ };
+
+ 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 33
+ // test, line 35
+ v_1 = cursor;
+ // repeat, line 35
+ replab0:
+ while (true) {
+ v_2 = cursor;
+ lab1:
+ do {
+ // (, line 35
+ // or, line 38
+ lab2:
+ do {
+ v_3 = cursor;
+ lab3:
+ do {
+ // (, line 36
+ // [, line 37
+ bra = cursor;
+ // literal, line 37
+ if (!(eq_s(1, "\u00DF"))) {
+ break lab3;
+ }
+ // ], line 37
+ ket = cursor;
+ // <-, line 37
+ slice_from("ss");
+ break lab2;
+ } while (false);
+ cursor = v_3;
+ // next, line 38
+ if (cursor >= limit) {
+ break lab1;
+ }
+ cursor++;
+ } while (false);
+ continue replab0;
+ } while (false);
+ cursor = v_2;
+ break replab0;
+ }
+ cursor = v_1;
+ // repeat, line 41
+ replab4:
+ while (true) {
+ v_4 = cursor;
+ lab5:
+ do {
+ // goto, line 41
+ golab6:
+ while (true) {
+ v_5 = cursor;
+ lab7:
+ do {
+ // (, line 41
+ if (!(in_grouping(g_v, 97, 252))) {
+ break lab7;
+ }
+ // [, line 42
+ bra = cursor;
+ // or, line 42
+ lab8:
+ do {
+ v_6 = cursor;
+ lab9:
+ do {
+ // (, line 42
+ // literal, line 42
+ if (!(eq_s(1, "u"))) {
+ break lab9;
+ }
+ // ], line 42
+ ket = cursor;
+ if (!(in_grouping(g_v, 97, 252))) {
+ break lab9;
+ }
+ // <-, line 42
+ slice_from("U");
+ break lab8;
+ } while (false);
+ cursor = v_6;
+ // (, line 43
+ // literal, line 43
+ if (!(eq_s(1, "y"))) {
+ break lab7;
+ }
+ // ], line 43
+ ket = cursor;
+ if (!(in_grouping(g_v, 97, 252))) {
+ break lab7;
+ }
+ // <-, line 43
+ 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 47
+ I_p1 = limit;
+ I_p2 = limit;
+ // test, line 52
+ v_1 = cursor;
+ // (, line 52
+ // hop, line 52
+ {
+ int c = cursor + 3;
+ if (0 > c || c > limit) {
+ return false;
+ }
+ cursor = c;
+ }
+ // setmark x, line 52
+ I_x = cursor;
+ cursor = v_1;
+ // gopast, line 54
+ 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 54
+ 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 54
+ I_p1 = cursor;
+ // try, line 55
+ lab4:
+ do {
+ // (, line 55
+ if (!(I_p1 < I_x)) {
+ break lab4;
+ }
+ I_p1 = I_x;
+ } while (false);
+ // gopast, line 56
+ 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 56
+ 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 56
+ I_p2 = cursor;
+ return true;
+ }
+
+ private boolean r_postlude() {
+ int among_var;
+ int v_1;
+ // repeat, line 60
+ replab0:
+ while (true) {
+ v_1 = cursor;
+ lab1:
+ do {
+ // (, line 60
+ // [, line 62
+ bra = cursor;
+ // substring, line 62
+ among_var = find_among(a_0, 6);
+ if (among_var == 0) {
+ break lab1;
+ }
+ // ], line 62
+ ket = cursor;
+ switch (among_var) {
+ case 0:
+ break lab1;
+ case 1:
+ // (, line 63
+ // <-, line 63
+ slice_from("y");
+ break;
+ case 2:
+ // (, line 64
+ // <-, line 64
+ slice_from("u");
+ break;
+ case 3:
+ // (, line 65
+ // <-, line 65
+ slice_from("a");
+ break;
+ case 4:
+ // (, line 66
+ // <-, line 66
+ slice_from("o");
+ break;
+ case 5:
+ // (, line 67
+ // <-, line 67
+ slice_from("u");
+ break;
+ case 6:
+ // (, line 68
+ // next, line 68
+ 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;
+ int v_10;
+ // (, line 78
+ // do, line 79
+ v_1 = limit - cursor;
+ lab0:
+ do {
+ // (, line 79
+ // [, line 80
+ ket = cursor;
+ // substring, line 80
+ among_var = find_among_b(a_1, 7);
+ if (among_var == 0) {
+ break lab0;
+ }
+ // ], line 80
+ bra = cursor;
+ // call R1, line 80
+ if (!r_R1()) {
+ break lab0;
+ }
+ switch (among_var) {
+ case 0:
+ break lab0;
+ case 1:
+ // (, line 82
+ // delete, line 82
+ slice_del();
+ break;
+ case 2:
+ // (, line 85
+ // delete, line 85
+ slice_del();
+ // try, line 86
+ v_2 = limit - cursor;
+ lab1:
+ do {
+ // (, line 86
+ // [, line 86
+ ket = cursor;
+ // literal, line 86
+ if (!(eq_s_b(1, "s"))) {
+ cursor = limit - v_2;
+ break lab1;
+ }
+ // ], line 86
+ bra = cursor;
+ // literal, line 86
+ if (!(eq_s_b(3, "nis"))) {
+ cursor = limit - v_2;
+ break lab1;
+ }
+ // delete, line 86
+ slice_del();
+ } while (false);
+ break;
+ case 3:
+ // (, line 89
+ if (!(in_grouping_b(g_s_ending, 98, 116))) {
+ break lab0;
+ }
+ // delete, line 89
+ slice_del();
+ break;
+ }
+ } while (false);
+ cursor = limit - v_1;
+ // do, line 93
+ v_3 = limit - cursor;
+ lab2:
+ do {
+ // (, line 93
+ // [, line 94
+ ket = cursor;
+ // substring, line 94
+ among_var = find_among_b(a_2, 4);
+ if (among_var == 0) {
+ break lab2;
+ }
+ // ], line 94
+ bra = cursor;
+ // call R1, line 94
+ if (!r_R1()) {
+ break lab2;
+ }
+ switch (among_var) {
+ case 0:
+ break lab2;
+ case 1:
+ // (, line 96
+ // delete, line 96
+ slice_del();
+ break;
+ case 2:
+ // (, line 99
+ if (!(in_grouping_b(g_st_ending, 98, 116))) {
+ break lab2;
+ }
+ // hop, line 99
+ {
+ int c = cursor - 3;
+ if (limit_backward > c || c > limit) {
+ break lab2;
+ }
+ cursor = c;
+ }
+ // delete, line 99
+ slice_del();
+ break;
+ }
+ } while (false);
+ cursor = limit - v_3;
+ // do, line 103
+ v_4 = limit - cursor;
+ lab3:
+ do {
+ // (, line 103
+ // [, line 104
+ ket = cursor;
+ // substring, line 104
+ among_var = find_among_b(a_4, 8);
+ if (among_var == 0) {
+ break lab3;
+ }
+ // ], line 104
+ bra = cursor;
+ // call R2, line 104
+ if (!r_R2()) {
+ break lab3;
+ }
+ switch (among_var) {
+ case 0:
+ break lab3;
+ case 1:
+ // (, line 106
+ // delete, line 106
+ slice_del();
+ // try, line 107
+ v_5 = limit - cursor;
+ lab4:
+ do {
+ // (, line 107
+ // [, line 107
+ ket = cursor;
+ // literal, line 107
+ if (!(eq_s_b(2, "ig"))) {
+ cursor = limit - v_5;
+ break lab4;
+ }
+ // ], line 107
+ bra = cursor;
+ // not, line 107
+ {
+ v_6 = limit - cursor;
+ lab5:
+ do {
+ // literal, line 107
+ if (!(eq_s_b(1, "e"))) {
+ break lab5;
+ }
+ cursor = limit - v_5;
+ break lab4;
+ } while (false);
+ cursor = limit - v_6;
+ }
+ // call R2, line 107
+ if (!r_R2()) {
+ cursor = limit - v_5;
+ break lab4;
+ }
+ // delete, line 107
+ slice_del();
+ } while (false);
+ break;
+ case 2:
+ // (, line 110
+ // not, line 110
+ {
+ v_7 = limit - cursor;
+ lab6:
+ do {
+ // literal, line 110
+ if (!(eq_s_b(1, "e"))) {
+ break lab6;
+ }
+ break lab3;
+ } while (false);
+ cursor = limit - v_7;
+ }
+ // delete, line 110
+ slice_del();
+ break;
+ case 3:
+ // (, line 113
+ // delete, line 113
+ slice_del();
+ // try, line 114
+ v_8 = limit - cursor;
+ lab7:
+ do {
+ // (, line 114
+ // [, line 115
+ ket = cursor;
+ // or, line 115
+ lab8:
+ do {
+ v_9 = limit - cursor;
+ lab9:
+ do {
+ // literal, line 115
+ if (!(eq_s_b(2, "er"))) {
+ break lab9;
+ }
+ break lab8;
+ } while (false);
+ cursor = limit - v_9;
+ // literal, line 115
+ if (!(eq_s_b(2, "en"))) {
+ cursor = limit - v_8;
+ break lab7;
+ }
+ } while (false);
+ // ], line 115
+ bra = cursor;
+ // call R1, line 115
+ if (!r_R1()) {
+ cursor = limit - v_8;
+ break lab7;
+ }
+ // delete, line 115
+ slice_del();
+ } while (false);
+ break;
+ case 4:
+ // (, line 119
+ // delete, line 119
+ slice_del();
+ // try, line 120
+ v_10 = limit - cursor;
+ lab10:
+ do {
+ // (, line 120
+ // [, line 121
+ ket = cursor;
+ // substring, line 121
+ among_var = find_among_b(a_3, 2);
+ if (among_var == 0) {
+ cursor = limit - v_10;
+ break lab10;
+ }
+ // ], line 121
+ bra = cursor;
+ // call R2, line 121
+ if (!r_R2()) {
+ cursor = limit - v_10;
+ break lab10;
+ }
+ switch (among_var) {
+ case 0:
+ cursor = limit - v_10;
+ break lab10;
+ case 1:
+ // (, line 123
+ // delete, line 123
+ slice_del();
+ break;
+ }
+ } while (false);
+ break;
+ }
+ } while (false);
+ cursor = limit - v_4;
+ return true;
+ }
+
+ public boolean stem() {
+ int v_1;
+ int v_2;
+ int v_3;
+ int v_4;
+ // (, line 133
+ // do, line 134
+ v_1 = cursor;
+ lab0:
+ do {
+ // call prelude, line 134
+ if (!r_prelude()) {
+ break lab0;
+ }
+ } while (false);
+ cursor = v_1;
+ // do, line 135
+ v_2 = cursor;
+ lab1:
+ do {
+ // call mark_regions, line 135
+ if (!r_mark_regions()) {
+ break lab1;
+ }
+ } while (false);
+ cursor = v_2;
+ // backwards, line 136
+ limit_backward = cursor;
+ cursor = limit;
+ // do, line 137
+ v_3 = limit - cursor;
+ lab2:
+ do {
+ // call standard_suffix, line 137
+ if (!r_standard_suffix()) {
+ break lab2;
+ }
+ } while (false);
+ cursor = limit - v_3;
+ cursor = limit_backward; // do, line 138
+ v_4 = cursor;
+ lab3:
+ do {
+ // call postlude, line 138
+ if (!r_postlude()) {
+ break lab3;
+ }
+ } while (false);
+ cursor = v_4;
+ return true;
+ }
+
+ public boolean equals(Object o) {
+ return o instanceof GermanStemmer;
+ }
+
+ public int hashCode() {
+ return GermanStemmer.class.getName().hashCode();
+ }
+
+
+}
+
--- /dev/null
+// This file was generated automatically by the Snowball to Java compiler
+
+package com.nexwave.stemmer.snowball.ext;
+
+import com.nexwave.stemmer.snowball.Among;
+
+ /**
+ * This class was automatically generated by a Snowball to Java compiler
+ * It implements the stemming algorithm defined by a snowball script.
+ */
+
+public class danishStemmer extends com.nexwave.stemmer.snowball.SnowballStemmer {
+
+private static final long serialVersionUID = 1L;
+
+ private final static danishStemmer methodObject = new danishStemmer ();
+
+ private final static Among a_0[] = {
+ new Among ( "hed", -1, 1, "", methodObject ),
+ new Among ( "ethed", 0, 1, "", methodObject ),
+ new Among ( "ered", -1, 1, "", methodObject ),
+ new Among ( "e", -1, 1, "", methodObject ),
+ new Among ( "erede", 3, 1, "", methodObject ),
+ new Among ( "ende", 3, 1, "", methodObject ),
+ new Among ( "erende", 5, 1, "", methodObject ),
+ new Among ( "ene", 3, 1, "", methodObject ),
+ new Among ( "erne", 3, 1, "", methodObject ),
+ new Among ( "ere", 3, 1, "", methodObject ),
+ new Among ( "en", -1, 1, "", methodObject ),
+ new Among ( "heden", 10, 1, "", methodObject ),
+ new Among ( "eren", 10, 1, "", methodObject ),
+ new Among ( "er", -1, 1, "", methodObject ),
+ new Among ( "heder", 13, 1, "", methodObject ),
+ new Among ( "erer", 13, 1, "", methodObject ),
+ new Among ( "s", -1, 2, "", methodObject ),
+ new Among ( "heds", 16, 1, "", methodObject ),
+ new Among ( "es", 16, 1, "", methodObject ),
+ new Among ( "endes", 18, 1, "", methodObject ),
+ new Among ( "erendes", 19, 1, "", methodObject ),
+ new Among ( "enes", 18, 1, "", methodObject ),
+ new Among ( "ernes", 18, 1, "", methodObject ),
+ new Among ( "eres", 18, 1, "", methodObject ),
+ new Among ( "ens", 16, 1, "", methodObject ),
+ new Among ( "hedens", 24, 1, "", methodObject ),
+ new Among ( "erens", 24, 1, "", methodObject ),
+ new Among ( "ers", 16, 1, "", methodObject ),
+ new Among ( "ets", 16, 1, "", methodObject ),
+ new Among ( "erets", 28, 1, "", methodObject ),
+ new Among ( "et", -1, 1, "", methodObject ),
+ new Among ( "eret", 30, 1, "", methodObject )
+ };
+
+ private final static Among a_1[] = {
+ new Among ( "gd", -1, -1, "", methodObject ),
+ new Among ( "dt", -1, -1, "", methodObject ),
+ new Among ( "gt", -1, -1, "", methodObject ),
+ new Among ( "kt", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_2[] = {
+ new Among ( "ig", -1, 1, "", methodObject ),
+ new Among ( "lig", 0, 1, "", methodObject ),
+ new Among ( "elig", 1, 1, "", methodObject ),
+ new Among ( "els", -1, 1, "", methodObject ),
+ new Among ( "l\u00F8st", -1, 2, "", methodObject )
+ };
+
+ 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 java.lang.StringBuilder S_ch = new java.lang.StringBuilder();
+
+ 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;
+ }
+
+ public boolean equals( Object o ) {
+ return o instanceof danishStemmer;
+ }
+
+ public int hashCode() {
+ return danishStemmer.class.getName().hashCode();
+ }
+
+
+
+}
+
--- /dev/null
+// This file was generated automatically by the Snowball to Java compiler
+
+package com.nexwave.stemmer.snowball.ext;
+
+import com.nexwave.stemmer.snowball.Among;
+
+ /**
+ * This class was automatically generated by a Snowball to Java compiler
+ * It implements the stemming algorithm defined by a snowball script.
+ */
+
+public class dutchStemmer extends com.nexwave.stemmer.snowball.SnowballStemmer {
+
+private static final long serialVersionUID = 1L;
+
+ private final static dutchStemmer methodObject = new dutchStemmer ();
+
+ private final static Among a_0[] = {
+ new Among ( "", -1, 6, "", methodObject ),
+ new Among ( "\u00E1", 0, 1, "", methodObject ),
+ new Among ( "\u00E4", 0, 1, "", methodObject ),
+ new Among ( "\u00E9", 0, 2, "", methodObject ),
+ new Among ( "\u00EB", 0, 2, "", methodObject ),
+ new Among ( "\u00ED", 0, 3, "", methodObject ),
+ new Among ( "\u00EF", 0, 3, "", methodObject ),
+ new Among ( "\u00F3", 0, 4, "", methodObject ),
+ new Among ( "\u00F6", 0, 4, "", methodObject ),
+ new Among ( "\u00FA", 0, 5, "", methodObject ),
+ new Among ( "\u00FC", 0, 5, "", methodObject )
+ };
+
+ private final static Among a_1[] = {
+ new Among ( "", -1, 3, "", methodObject ),
+ new Among ( "I", 0, 2, "", methodObject ),
+ new Among ( "Y", 0, 1, "", methodObject )
+ };
+
+ private final static Among a_2[] = {
+ new Among ( "dd", -1, -1, "", methodObject ),
+ new Among ( "kk", -1, -1, "", methodObject ),
+ new Among ( "tt", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_3[] = {
+ new Among ( "ene", -1, 2, "", methodObject ),
+ new Among ( "se", -1, 3, "", methodObject ),
+ new Among ( "en", -1, 2, "", methodObject ),
+ new Among ( "heden", 2, 1, "", methodObject ),
+ new Among ( "s", -1, 3, "", methodObject )
+ };
+
+ private final static Among a_4[] = {
+ new Among ( "end", -1, 1, "", methodObject ),
+ new Among ( "ig", -1, 2, "", methodObject ),
+ new Among ( "ing", -1, 1, "", methodObject ),
+ new Among ( "lijk", -1, 3, "", methodObject ),
+ new Among ( "baar", -1, 4, "", methodObject ),
+ new Among ( "bar", -1, 5, "", methodObject )
+ };
+
+ private final static Among a_5[] = {
+ new Among ( "aa", -1, -1, "", methodObject ),
+ new Among ( "ee", -1, -1, "", methodObject ),
+ new Among ( "oo", -1, -1, "", methodObject ),
+ new Among ( "uu", -1, -1, "", methodObject )
+ };
+
+ 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;
+ }
+
+ public boolean equals( Object o ) {
+ return o instanceof dutchStemmer;
+ }
+
+ public int hashCode() {
+ return dutchStemmer.class.getName().hashCode();
+ }
+
+
+
+}
+
--- /dev/null
+// This file was generated automatically by the Snowball to Java compiler
+
+package com.nexwave.stemmer.snowball.ext;
+
+import com.nexwave.stemmer.snowball.Among;
+
+ /**
+ * This class was automatically generated by a Snowball to Java compiler
+ * It implements the stemming algorithm defined by a snowball script.
+ */
+
+public class finnishStemmer extends com.nexwave.stemmer.snowball.SnowballStemmer {
+
+private static final long serialVersionUID = 1L;
+
+ private final static finnishStemmer methodObject = new finnishStemmer ();
+
+ private final static Among a_0[] = {
+ new Among ( "pa", -1, 1, "", methodObject ),
+ new Among ( "sti", -1, 2, "", methodObject ),
+ new Among ( "kaan", -1, 1, "", methodObject ),
+ new Among ( "han", -1, 1, "", methodObject ),
+ new Among ( "kin", -1, 1, "", methodObject ),
+ new Among ( "h\u00E4n", -1, 1, "", methodObject ),
+ new Among ( "k\u00E4\u00E4n", -1, 1, "", methodObject ),
+ new Among ( "ko", -1, 1, "", methodObject ),
+ new Among ( "p\u00E4", -1, 1, "", methodObject ),
+ new Among ( "k\u00F6", -1, 1, "", methodObject )
+ };
+
+ private final static Among a_1[] = {
+ new Among ( "lla", -1, -1, "", methodObject ),
+ new Among ( "na", -1, -1, "", methodObject ),
+ new Among ( "ssa", -1, -1, "", methodObject ),
+ new Among ( "ta", -1, -1, "", methodObject ),
+ new Among ( "lta", 3, -1, "", methodObject ),
+ new Among ( "sta", 3, -1, "", methodObject )
+ };
+
+ private final static Among a_2[] = {
+ new Among ( "ll\u00E4", -1, -1, "", methodObject ),
+ new Among ( "n\u00E4", -1, -1, "", methodObject ),
+ new Among ( "ss\u00E4", -1, -1, "", methodObject ),
+ new Among ( "t\u00E4", -1, -1, "", methodObject ),
+ new Among ( "lt\u00E4", 3, -1, "", methodObject ),
+ new Among ( "st\u00E4", 3, -1, "", methodObject )
+ };
+
+ private final static Among a_3[] = {
+ new Among ( "lle", -1, -1, "", methodObject ),
+ new Among ( "ine", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_4[] = {
+ new Among ( "nsa", -1, 3, "", methodObject ),
+ new Among ( "mme", -1, 3, "", methodObject ),
+ new Among ( "nne", -1, 3, "", methodObject ),
+ new Among ( "ni", -1, 2, "", methodObject ),
+ new Among ( "si", -1, 1, "", methodObject ),
+ new Among ( "an", -1, 4, "", methodObject ),
+ new Among ( "en", -1, 6, "", methodObject ),
+ new Among ( "\u00E4n", -1, 5, "", methodObject ),
+ new Among ( "ns\u00E4", -1, 3, "", methodObject )
+ };
+
+ private final static Among a_5[] = {
+ new Among ( "aa", -1, -1, "", methodObject ),
+ new Among ( "ee", -1, -1, "", methodObject ),
+ new Among ( "ii", -1, -1, "", methodObject ),
+ new Among ( "oo", -1, -1, "", methodObject ),
+ new Among ( "uu", -1, -1, "", methodObject ),
+ new Among ( "\u00E4\u00E4", -1, -1, "", methodObject ),
+ new Among ( "\u00F6\u00F6", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_6[] = {
+ new Among ( "a", -1, 8, "", methodObject ),
+ new Among ( "lla", 0, -1, "", methodObject ),
+ new Among ( "na", 0, -1, "", methodObject ),
+ new Among ( "ssa", 0, -1, "", methodObject ),
+ new Among ( "ta", 0, -1, "", methodObject ),
+ new Among ( "lta", 4, -1, "", methodObject ),
+ new Among ( "sta", 4, -1, "", methodObject ),
+ new Among ( "tta", 4, 9, "", methodObject ),
+ new Among ( "lle", -1, -1, "", methodObject ),
+ new Among ( "ine", -1, -1, "", methodObject ),
+ new Among ( "ksi", -1, -1, "", methodObject ),
+ new Among ( "n", -1, 7, "", methodObject ),
+ new Among ( "han", 11, 1, "", methodObject ),
+ new Among ( "den", 11, -1, "r_VI", methodObject ),
+ new Among ( "seen", 11, -1, "r_LONG", methodObject ),
+ new Among ( "hen", 11, 2, "", methodObject ),
+ new Among ( "tten", 11, -1, "r_VI", methodObject ),
+ new Among ( "hin", 11, 3, "", methodObject ),
+ new Among ( "siin", 11, -1, "r_VI", methodObject ),
+ new Among ( "hon", 11, 4, "", methodObject ),
+ new Among ( "h\u00E4n", 11, 5, "", methodObject ),
+ new Among ( "h\u00F6n", 11, 6, "", methodObject ),
+ new Among ( "\u00E4", -1, 8, "", methodObject ),
+ new Among ( "ll\u00E4", 22, -1, "", methodObject ),
+ new Among ( "n\u00E4", 22, -1, "", methodObject ),
+ new Among ( "ss\u00E4", 22, -1, "", methodObject ),
+ new Among ( "t\u00E4", 22, -1, "", methodObject ),
+ new Among ( "lt\u00E4", 26, -1, "", methodObject ),
+ new Among ( "st\u00E4", 26, -1, "", methodObject ),
+ new Among ( "tt\u00E4", 26, 9, "", methodObject )
+ };
+
+ private final static Among a_7[] = {
+ new Among ( "eja", -1, -1, "", methodObject ),
+ new Among ( "mma", -1, 1, "", methodObject ),
+ new Among ( "imma", 1, -1, "", methodObject ),
+ new Among ( "mpa", -1, 1, "", methodObject ),
+ new Among ( "impa", 3, -1, "", methodObject ),
+ new Among ( "mmi", -1, 1, "", methodObject ),
+ new Among ( "immi", 5, -1, "", methodObject ),
+ new Among ( "mpi", -1, 1, "", methodObject ),
+ new Among ( "impi", 7, -1, "", methodObject ),
+ new Among ( "ej\u00E4", -1, -1, "", methodObject ),
+ new Among ( "mm\u00E4", -1, 1, "", methodObject ),
+ new Among ( "imm\u00E4", 10, -1, "", methodObject ),
+ new Among ( "mp\u00E4", -1, 1, "", methodObject ),
+ new Among ( "imp\u00E4", 12, -1, "", methodObject )
+ };
+
+ private final static Among a_8[] = {
+ new Among ( "i", -1, -1, "", methodObject ),
+ new Among ( "j", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_9[] = {
+ new Among ( "mma", -1, 1, "", methodObject ),
+ new Among ( "imma", 0, -1, "", methodObject )
+ };
+
+ 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 java.lang.StringBuilder S_x = new java.lang.StringBuilder();
+ 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;
+ }
+
+ public boolean equals( Object o ) {
+ return o instanceof finnishStemmer;
+ }
+
+ public int hashCode() {
+ return finnishStemmer.class.getName().hashCode();
+ }
+
+
+
+}
+
--- /dev/null
+// This file was generated automatically by the Snowball to Java compiler
+
+package com.nexwave.stemmer.snowball.ext;
+
+import com.nexwave.stemmer.snowball.Among;
+
+ /**
+ * This class was automatically generated by a Snowball to Java compiler
+ * It implements the stemming algorithm defined by a snowball script.
+ */
+
+public class frenchStemmer extends com.nexwave.stemmer.snowball.SnowballStemmer {
+
+private static final long serialVersionUID = 1L;
+
+ private final static frenchStemmer methodObject = new frenchStemmer ();
+
+ private final static Among a_0[] = {
+ new Among ( "col", -1, -1, "", methodObject ),
+ new Among ( "par", -1, -1, "", methodObject ),
+ new Among ( "tap", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_1[] = {
+ new Among ( "", -1, 4, "", methodObject ),
+ new Among ( "I", 0, 1, "", methodObject ),
+ new Among ( "U", 0, 2, "", methodObject ),
+ new Among ( "Y", 0, 3, "", methodObject )
+ };
+
+ private final static Among a_2[] = {
+ new Among ( "iqU", -1, 3, "", methodObject ),
+ new Among ( "abl", -1, 3, "", methodObject ),
+ new Among ( "I\u00E8r", -1, 4, "", methodObject ),
+ new Among ( "i\u00E8r", -1, 4, "", methodObject ),
+ new Among ( "eus", -1, 2, "", methodObject ),
+ new Among ( "iv", -1, 1, "", methodObject )
+ };
+
+ private final static Among a_3[] = {
+ new Among ( "ic", -1, 2, "", methodObject ),
+ new Among ( "abil", -1, 1, "", methodObject ),
+ new Among ( "iv", -1, 3, "", methodObject )
+ };
+
+ private final static Among a_4[] = {
+ new Among ( "iqUe", -1, 1, "", methodObject ),
+ new Among ( "atrice", -1, 2, "", methodObject ),
+ new Among ( "ance", -1, 1, "", methodObject ),
+ new Among ( "ence", -1, 5, "", methodObject ),
+ new Among ( "logie", -1, 3, "", methodObject ),
+ new Among ( "able", -1, 1, "", methodObject ),
+ new Among ( "isme", -1, 1, "", methodObject ),
+ new Among ( "euse", -1, 11, "", methodObject ),
+ new Among ( "iste", -1, 1, "", methodObject ),
+ new Among ( "ive", -1, 8, "", methodObject ),
+ new Among ( "if", -1, 8, "", methodObject ),
+ new Among ( "usion", -1, 4, "", methodObject ),
+ new Among ( "ation", -1, 2, "", methodObject ),
+ new Among ( "ution", -1, 4, "", methodObject ),
+ new Among ( "ateur", -1, 2, "", methodObject ),
+ new Among ( "iqUes", -1, 1, "", methodObject ),
+ new Among ( "atrices", -1, 2, "", methodObject ),
+ new Among ( "ances", -1, 1, "", methodObject ),
+ new Among ( "ences", -1, 5, "", methodObject ),
+ new Among ( "logies", -1, 3, "", methodObject ),
+ new Among ( "ables", -1, 1, "", methodObject ),
+ new Among ( "ismes", -1, 1, "", methodObject ),
+ new Among ( "euses", -1, 11, "", methodObject ),
+ new Among ( "istes", -1, 1, "", methodObject ),
+ new Among ( "ives", -1, 8, "", methodObject ),
+ new Among ( "ifs", -1, 8, "", methodObject ),
+ new Among ( "usions", -1, 4, "", methodObject ),
+ new Among ( "ations", -1, 2, "", methodObject ),
+ new Among ( "utions", -1, 4, "", methodObject ),
+ new Among ( "ateurs", -1, 2, "", methodObject ),
+ new Among ( "ments", -1, 15, "", methodObject ),
+ new Among ( "ements", 30, 6, "", methodObject ),
+ new Among ( "issements", 31, 12, "", methodObject ),
+ new Among ( "it\u00E9s", -1, 7, "", methodObject ),
+ new Among ( "ment", -1, 15, "", methodObject ),
+ new Among ( "ement", 34, 6, "", methodObject ),
+ new Among ( "issement", 35, 12, "", methodObject ),
+ new Among ( "amment", 34, 13, "", methodObject ),
+ new Among ( "emment", 34, 14, "", methodObject ),
+ new Among ( "aux", -1, 10, "", methodObject ),
+ new Among ( "eaux", 39, 9, "", methodObject ),
+ new Among ( "eux", -1, 1, "", methodObject ),
+ new Among ( "it\u00E9", -1, 7, "", methodObject )
+ };
+
+ private final static Among a_5[] = {
+ new Among ( "ira", -1, 1, "", methodObject ),
+ new Among ( "ie", -1, 1, "", methodObject ),
+ new Among ( "isse", -1, 1, "", methodObject ),
+ new Among ( "issante", -1, 1, "", methodObject ),
+ new Among ( "i", -1, 1, "", methodObject ),
+ new Among ( "irai", 4, 1, "", methodObject ),
+ new Among ( "ir", -1, 1, "", methodObject ),
+ new Among ( "iras", -1, 1, "", methodObject ),
+ new Among ( "ies", -1, 1, "", methodObject ),
+ new Among ( "\u00EEmes", -1, 1, "", methodObject ),
+ new Among ( "isses", -1, 1, "", methodObject ),
+ new Among ( "issantes", -1, 1, "", methodObject ),
+ new Among ( "\u00EEtes", -1, 1, "", methodObject ),
+ new Among ( "is", -1, 1, "", methodObject ),
+ new Among ( "irais", 13, 1, "", methodObject ),
+ new Among ( "issais", 13, 1, "", methodObject ),
+ new Among ( "irions", -1, 1, "", methodObject ),
+ new Among ( "issions", -1, 1, "", methodObject ),
+ new Among ( "irons", -1, 1, "", methodObject ),
+ new Among ( "issons", -1, 1, "", methodObject ),
+ new Among ( "issants", -1, 1, "", methodObject ),
+ new Among ( "it", -1, 1, "", methodObject ),
+ new Among ( "irait", 21, 1, "", methodObject ),
+ new Among ( "issait", 21, 1, "", methodObject ),
+ new Among ( "issant", -1, 1, "", methodObject ),
+ new Among ( "iraIent", -1, 1, "", methodObject ),
+ new Among ( "issaIent", -1, 1, "", methodObject ),
+ new Among ( "irent", -1, 1, "", methodObject ),
+ new Among ( "issent", -1, 1, "", methodObject ),
+ new Among ( "iront", -1, 1, "", methodObject ),
+ new Among ( "\u00EEt", -1, 1, "", methodObject ),
+ new Among ( "iriez", -1, 1, "", methodObject ),
+ new Among ( "issiez", -1, 1, "", methodObject ),
+ new Among ( "irez", -1, 1, "", methodObject ),
+ new Among ( "issez", -1, 1, "", methodObject )
+ };
+
+ private final static Among a_6[] = {
+ new Among ( "a", -1, 3, "", methodObject ),
+ new Among ( "era", 0, 2, "", methodObject ),
+ new Among ( "asse", -1, 3, "", methodObject ),
+ new Among ( "ante", -1, 3, "", methodObject ),
+ new Among ( "\u00E9e", -1, 2, "", methodObject ),
+ new Among ( "ai", -1, 3, "", methodObject ),
+ new Among ( "erai", 5, 2, "", methodObject ),
+ new Among ( "er", -1, 2, "", methodObject ),
+ new Among ( "as", -1, 3, "", methodObject ),
+ new Among ( "eras", 8, 2, "", methodObject ),
+ new Among ( "\u00E2mes", -1, 3, "", methodObject ),
+ new Among ( "asses", -1, 3, "", methodObject ),
+ new Among ( "antes", -1, 3, "", methodObject ),
+ new Among ( "\u00E2tes", -1, 3, "", methodObject ),
+ new Among ( "\u00E9es", -1, 2, "", methodObject ),
+ new Among ( "ais", -1, 3, "", methodObject ),
+ new Among ( "erais", 15, 2, "", methodObject ),
+ new Among ( "ions", -1, 1, "", methodObject ),
+ new Among ( "erions", 17, 2, "", methodObject ),
+ new Among ( "assions", 17, 3, "", methodObject ),
+ new Among ( "erons", -1, 2, "", methodObject ),
+ new Among ( "ants", -1, 3, "", methodObject ),
+ new Among ( "\u00E9s", -1, 2, "", methodObject ),
+ new Among ( "ait", -1, 3, "", methodObject ),
+ new Among ( "erait", 23, 2, "", methodObject ),
+ new Among ( "ant", -1, 3, "", methodObject ),
+ new Among ( "aIent", -1, 3, "", methodObject ),
+ new Among ( "eraIent", 26, 2, "", methodObject ),
+ new Among ( "\u00E8rent", -1, 2, "", methodObject ),
+ new Among ( "assent", -1, 3, "", methodObject ),
+ new Among ( "eront", -1, 2, "", methodObject ),
+ new Among ( "\u00E2t", -1, 3, "", methodObject ),
+ new Among ( "ez", -1, 2, "", methodObject ),
+ new Among ( "iez", 32, 2, "", methodObject ),
+ new Among ( "eriez", 33, 2, "", methodObject ),
+ new Among ( "assiez", 33, 3, "", methodObject ),
+ new Among ( "erez", 32, 2, "", methodObject ),
+ new Among ( "\u00E9", -1, 2, "", methodObject )
+ };
+
+ private final static Among a_7[] = {
+ new Among ( "e", -1, 3, "", methodObject ),
+ new Among ( "I\u00E8re", 0, 2, "", methodObject ),
+ new Among ( "i\u00E8re", 0, 2, "", methodObject ),
+ new Among ( "ion", -1, 1, "", methodObject ),
+ new Among ( "Ier", -1, 2, "", methodObject ),
+ new Among ( "ier", -1, 2, "", methodObject ),
+ new Among ( "\u00EB", -1, 4, "", methodObject )
+ };
+
+ private final static Among a_8[] = {
+ new Among ( "ell", -1, -1, "", methodObject ),
+ new Among ( "eill", -1, -1, "", methodObject ),
+ new Among ( "enn", -1, -1, "", methodObject ),
+ new Among ( "onn", -1, -1, "", methodObject ),
+ new Among ( "ett", -1, -1, "", methodObject )
+ };
+
+ 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;
+// break;
+ 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;
+// break;
+ 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;
+// break;
+ }
+ 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;
+ }
+
+ public boolean equals( Object o ) {
+ return o instanceof frenchStemmer;
+ }
+
+ public int hashCode() {
+ return frenchStemmer.class.getName().hashCode();
+ }
+
+
+
+}
+
--- /dev/null
+// This file was generated automatically by the Snowball to Java compiler
+
+package com.nexwave.stemmer.snowball.ext;
+
+import com.nexwave.stemmer.snowball.Among;
+
+ /**
+ * This class was automatically generated by a Snowball to Java compiler
+ * It implements the stemming algorithm defined by a snowball script.
+ */
+
+public class hungarianStemmer extends com.nexwave.stemmer.snowball.SnowballStemmer {
+
+private static final long serialVersionUID = 1L;
+
+ private final static hungarianStemmer methodObject = new hungarianStemmer ();
+
+ private final static Among a_0[] = {
+ new Among ( "cs", -1, -1, "", methodObject ),
+ new Among ( "dzs", -1, -1, "", methodObject ),
+ new Among ( "gy", -1, -1, "", methodObject ),
+ new Among ( "ly", -1, -1, "", methodObject ),
+ new Among ( "ny", -1, -1, "", methodObject ),
+ new Among ( "sz", -1, -1, "", methodObject ),
+ new Among ( "ty", -1, -1, "", methodObject ),
+ new Among ( "zs", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_1[] = {
+ new Among ( "\u00E1", -1, 1, "", methodObject ),
+ new Among ( "\u00E9", -1, 2, "", methodObject )
+ };
+
+ private final static Among a_2[] = {
+ new Among ( "bb", -1, -1, "", methodObject ),
+ new Among ( "cc", -1, -1, "", methodObject ),
+ new Among ( "dd", -1, -1, "", methodObject ),
+ new Among ( "ff", -1, -1, "", methodObject ),
+ new Among ( "gg", -1, -1, "", methodObject ),
+ new Among ( "jj", -1, -1, "", methodObject ),
+ new Among ( "kk", -1, -1, "", methodObject ),
+ new Among ( "ll", -1, -1, "", methodObject ),
+ new Among ( "mm", -1, -1, "", methodObject ),
+ new Among ( "nn", -1, -1, "", methodObject ),
+ new Among ( "pp", -1, -1, "", methodObject ),
+ new Among ( "rr", -1, -1, "", methodObject ),
+ new Among ( "ccs", -1, -1, "", methodObject ),
+ new Among ( "ss", -1, -1, "", methodObject ),
+ new Among ( "zzs", -1, -1, "", methodObject ),
+ new Among ( "tt", -1, -1, "", methodObject ),
+ new Among ( "vv", -1, -1, "", methodObject ),
+ new Among ( "ggy", -1, -1, "", methodObject ),
+ new Among ( "lly", -1, -1, "", methodObject ),
+ new Among ( "nny", -1, -1, "", methodObject ),
+ new Among ( "tty", -1, -1, "", methodObject ),
+ new Among ( "ssz", -1, -1, "", methodObject ),
+ new Among ( "zz", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_3[] = {
+ new Among ( "al", -1, 1, "", methodObject ),
+ new Among ( "el", -1, 2, "", methodObject )
+ };
+
+ private final static Among a_4[] = {
+ new Among ( "ba", -1, -1, "", methodObject ),
+ new Among ( "ra", -1, -1, "", methodObject ),
+ new Among ( "be", -1, -1, "", methodObject ),
+ new Among ( "re", -1, -1, "", methodObject ),
+ new Among ( "ig", -1, -1, "", methodObject ),
+ new Among ( "nak", -1, -1, "", methodObject ),
+ new Among ( "nek", -1, -1, "", methodObject ),
+ new Among ( "val", -1, -1, "", methodObject ),
+ new Among ( "vel", -1, -1, "", methodObject ),
+ new Among ( "ul", -1, -1, "", methodObject ),
+ new Among ( "n\u00E1l", -1, -1, "", methodObject ),
+ new Among ( "n\u00E9l", -1, -1, "", methodObject ),
+ new Among ( "b\u00F3l", -1, -1, "", methodObject ),
+ new Among ( "r\u00F3l", -1, -1, "", methodObject ),
+ new Among ( "t\u00F3l", -1, -1, "", methodObject ),
+ new Among ( "b\u00F5l", -1, -1, "", methodObject ),
+ new Among ( "r\u00F5l", -1, -1, "", methodObject ),
+ new Among ( "t\u00F5l", -1, -1, "", methodObject ),
+ new Among ( "\u00FCl", -1, -1, "", methodObject ),
+ new Among ( "n", -1, -1, "", methodObject ),
+ new Among ( "an", 19, -1, "", methodObject ),
+ new Among ( "ban", 20, -1, "", methodObject ),
+ new Among ( "en", 19, -1, "", methodObject ),
+ new Among ( "ben", 22, -1, "", methodObject ),
+ new Among ( "k\u00E9ppen", 22, -1, "", methodObject ),
+ new Among ( "on", 19, -1, "", methodObject ),
+ new Among ( "\u00F6n", 19, -1, "", methodObject ),
+ new Among ( "k\u00E9pp", -1, -1, "", methodObject ),
+ new Among ( "kor", -1, -1, "", methodObject ),
+ new Among ( "t", -1, -1, "", methodObject ),
+ new Among ( "at", 29, -1, "", methodObject ),
+ new Among ( "et", 29, -1, "", methodObject ),
+ new Among ( "k\u00E9nt", 29, -1, "", methodObject ),
+ new Among ( "ank\u00E9nt", 32, -1, "", methodObject ),
+ new Among ( "enk\u00E9nt", 32, -1, "", methodObject ),
+ new Among ( "onk\u00E9nt", 32, -1, "", methodObject ),
+ new Among ( "ot", 29, -1, "", methodObject ),
+ new Among ( "\u00E9rt", 29, -1, "", methodObject ),
+ new Among ( "\u00F6t", 29, -1, "", methodObject ),
+ new Among ( "hez", -1, -1, "", methodObject ),
+ new Among ( "hoz", -1, -1, "", methodObject ),
+ new Among ( "h\u00F6z", -1, -1, "", methodObject ),
+ new Among ( "v\u00E1", -1, -1, "", methodObject ),
+ new Among ( "v\u00E9", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_5[] = {
+ new Among ( "\u00E1n", -1, 2, "", methodObject ),
+ new Among ( "\u00E9n", -1, 1, "", methodObject ),
+ new Among ( "\u00E1nk\u00E9nt", -1, 3, "", methodObject )
+ };
+
+ private final static Among a_6[] = {
+ new Among ( "stul", -1, 2, "", methodObject ),
+ new Among ( "astul", 0, 1, "", methodObject ),
+ new Among ( "\u00E1stul", 0, 3, "", methodObject ),
+ new Among ( "st\u00FCl", -1, 2, "", methodObject ),
+ new Among ( "est\u00FCl", 3, 1, "", methodObject ),
+ new Among ( "\u00E9st\u00FCl", 3, 4, "", methodObject )
+ };
+
+ private final static Among a_7[] = {
+ new Among ( "\u00E1", -1, 1, "", methodObject ),
+ new Among ( "\u00E9", -1, 2, "", methodObject )
+ };
+
+ private final static Among a_8[] = {
+ new Among ( "k", -1, 7, "", methodObject ),
+ new Among ( "ak", 0, 4, "", methodObject ),
+ new Among ( "ek", 0, 6, "", methodObject ),
+ new Among ( "ok", 0, 5, "", methodObject ),
+ new Among ( "\u00E1k", 0, 1, "", methodObject ),
+ new Among ( "\u00E9k", 0, 2, "", methodObject ),
+ new Among ( "\u00F6k", 0, 3, "", methodObject )
+ };
+
+ private final static Among a_9[] = {
+ new Among ( "\u00E9i", -1, 7, "", methodObject ),
+ new Among ( "\u00E1\u00E9i", 0, 6, "", methodObject ),
+ new Among ( "\u00E9\u00E9i", 0, 5, "", methodObject ),
+ new Among ( "\u00E9", -1, 9, "", methodObject ),
+ new Among ( "k\u00E9", 3, 4, "", methodObject ),
+ new Among ( "ak\u00E9", 4, 1, "", methodObject ),
+ new Among ( "ek\u00E9", 4, 1, "", methodObject ),
+ new Among ( "ok\u00E9", 4, 1, "", methodObject ),
+ new Among ( "\u00E1k\u00E9", 4, 3, "", methodObject ),
+ new Among ( "\u00E9k\u00E9", 4, 2, "", methodObject ),
+ new Among ( "\u00F6k\u00E9", 4, 1, "", methodObject ),
+ new Among ( "\u00E9\u00E9", 3, 8, "", methodObject )
+ };
+
+ private final static Among a_10[] = {
+ new Among ( "a", -1, 18, "", methodObject ),
+ new Among ( "ja", 0, 17, "", methodObject ),
+ new Among ( "d", -1, 16, "", methodObject ),
+ new Among ( "ad", 2, 13, "", methodObject ),
+ new Among ( "ed", 2, 13, "", methodObject ),
+ new Among ( "od", 2, 13, "", methodObject ),
+ new Among ( "\u00E1d", 2, 14, "", methodObject ),
+ new Among ( "\u00E9d", 2, 15, "", methodObject ),
+ new Among ( "\u00F6d", 2, 13, "", methodObject ),
+ new Among ( "e", -1, 18, "", methodObject ),
+ new Among ( "je", 9, 17, "", methodObject ),
+ new Among ( "nk", -1, 4, "", methodObject ),
+ new Among ( "unk", 11, 1, "", methodObject ),
+ new Among ( "\u00E1nk", 11, 2, "", methodObject ),
+ new Among ( "\u00E9nk", 11, 3, "", methodObject ),
+ new Among ( "\u00FCnk", 11, 1, "", methodObject ),
+ new Among ( "uk", -1, 8, "", methodObject ),
+ new Among ( "juk", 16, 7, "", methodObject ),
+ new Among ( "\u00E1juk", 17, 5, "", methodObject ),
+ new Among ( "\u00FCk", -1, 8, "", methodObject ),
+ new Among ( "j\u00FCk", 19, 7, "", methodObject ),
+ new Among ( "\u00E9j\u00FCk", 20, 6, "", methodObject ),
+ new Among ( "m", -1, 12, "", methodObject ),
+ new Among ( "am", 22, 9, "", methodObject ),
+ new Among ( "em", 22, 9, "", methodObject ),
+ new Among ( "om", 22, 9, "", methodObject ),
+ new Among ( "\u00E1m", 22, 10, "", methodObject ),
+ new Among ( "\u00E9m", 22, 11, "", methodObject ),
+ new Among ( "o", -1, 18, "", methodObject ),
+ new Among ( "\u00E1", -1, 19, "", methodObject ),
+ new Among ( "\u00E9", -1, 20, "", methodObject )
+ };
+
+ private final static Among a_11[] = {
+ new Among ( "id", -1, 10, "", methodObject ),
+ new Among ( "aid", 0, 9, "", methodObject ),
+ new Among ( "jaid", 1, 6, "", methodObject ),
+ new Among ( "eid", 0, 9, "", methodObject ),
+ new Among ( "jeid", 3, 6, "", methodObject ),
+ new Among ( "\u00E1id", 0, 7, "", methodObject ),
+ new Among ( "\u00E9id", 0, 8, "", methodObject ),
+ new Among ( "i", -1, 15, "", methodObject ),
+ new Among ( "ai", 7, 14, "", methodObject ),
+ new Among ( "jai", 8, 11, "", methodObject ),
+ new Among ( "ei", 7, 14, "", methodObject ),
+ new Among ( "jei", 10, 11, "", methodObject ),
+ new Among ( "\u00E1i", 7, 12, "", methodObject ),
+ new Among ( "\u00E9i", 7, 13, "", methodObject ),
+ new Among ( "itek", -1, 24, "", methodObject ),
+ new Among ( "eitek", 14, 21, "", methodObject ),
+ new Among ( "jeitek", 15, 20, "", methodObject ),
+ new Among ( "\u00E9itek", 14, 23, "", methodObject ),
+ new Among ( "ik", -1, 29, "", methodObject ),
+ new Among ( "aik", 18, 26, "", methodObject ),
+ new Among ( "jaik", 19, 25, "", methodObject ),
+ new Among ( "eik", 18, 26, "", methodObject ),
+ new Among ( "jeik", 21, 25, "", methodObject ),
+ new Among ( "\u00E1ik", 18, 27, "", methodObject ),
+ new Among ( "\u00E9ik", 18, 28, "", methodObject ),
+ new Among ( "ink", -1, 20, "", methodObject ),
+ new Among ( "aink", 25, 17, "", methodObject ),
+ new Among ( "jaink", 26, 16, "", methodObject ),
+ new Among ( "eink", 25, 17, "", methodObject ),
+ new Among ( "jeink", 28, 16, "", methodObject ),
+ new Among ( "\u00E1ink", 25, 18, "", methodObject ),
+ new Among ( "\u00E9ink", 25, 19, "", methodObject ),
+ new Among ( "aitok", -1, 21, "", methodObject ),
+ new Among ( "jaitok", 32, 20, "", methodObject ),
+ new Among ( "\u00E1itok", -1, 22, "", methodObject ),
+ new Among ( "im", -1, 5, "", methodObject ),
+ new Among ( "aim", 35, 4, "", methodObject ),
+ new Among ( "jaim", 36, 1, "", methodObject ),
+ new Among ( "eim", 35, 4, "", methodObject ),
+ new Among ( "jeim", 38, 1, "", methodObject ),
+ new Among ( "\u00E1im", 35, 2, "", methodObject ),
+ new Among ( "\u00E9im", 35, 3, "", methodObject )
+ };
+
+ private static final char g_v[] = {17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 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;
+ }
+
+ public boolean equals( Object o ) {
+ return o instanceof hungarianStemmer;
+ }
+
+ public int hashCode() {
+ return hungarianStemmer.class.getName().hashCode();
+ }
+
+
+
+}
+
--- /dev/null
+// This file was generated automatically by the Snowball to Java compiler
+
+package com.nexwave.stemmer.snowball.ext;
+
+import com.nexwave.stemmer.snowball.Among;
+
+ /**
+ * This class was automatically generated by a Snowball to Java compiler
+ * It implements the stemming algorithm defined by a snowball script.
+ */
+
+public class italianStemmer extends com.nexwave.stemmer.snowball.SnowballStemmer {
+
+private static final long serialVersionUID = 1L;
+
+ private final static italianStemmer methodObject = new italianStemmer ();
+
+ private final static Among a_0[] = {
+ new Among ( "", -1, 7, "", methodObject ),
+ new Among ( "qu", 0, 6, "", methodObject ),
+ new Among ( "\u00E1", 0, 1, "", methodObject ),
+ new Among ( "\u00E9", 0, 2, "", methodObject ),
+ new Among ( "\u00ED", 0, 3, "", methodObject ),
+ new Among ( "\u00F3", 0, 4, "", methodObject ),
+ new Among ( "\u00FA", 0, 5, "", methodObject )
+ };
+
+ private final static Among a_1[] = {
+ new Among ( "", -1, 3, "", methodObject ),
+ new Among ( "I", 0, 1, "", methodObject ),
+ new Among ( "U", 0, 2, "", methodObject )
+ };
+
+ private final static Among a_2[] = {
+ new Among ( "la", -1, -1, "", methodObject ),
+ new Among ( "cela", 0, -1, "", methodObject ),
+ new Among ( "gliela", 0, -1, "", methodObject ),
+ new Among ( "mela", 0, -1, "", methodObject ),
+ new Among ( "tela", 0, -1, "", methodObject ),
+ new Among ( "vela", 0, -1, "", methodObject ),
+ new Among ( "le", -1, -1, "", methodObject ),
+ new Among ( "cele", 6, -1, "", methodObject ),
+ new Among ( "gliele", 6, -1, "", methodObject ),
+ new Among ( "mele", 6, -1, "", methodObject ),
+ new Among ( "tele", 6, -1, "", methodObject ),
+ new Among ( "vele", 6, -1, "", methodObject ),
+ new Among ( "ne", -1, -1, "", methodObject ),
+ new Among ( "cene", 12, -1, "", methodObject ),
+ new Among ( "gliene", 12, -1, "", methodObject ),
+ new Among ( "mene", 12, -1, "", methodObject ),
+ new Among ( "sene", 12, -1, "", methodObject ),
+ new Among ( "tene", 12, -1, "", methodObject ),
+ new Among ( "vene", 12, -1, "", methodObject ),
+ new Among ( "ci", -1, -1, "", methodObject ),
+ new Among ( "li", -1, -1, "", methodObject ),
+ new Among ( "celi", 20, -1, "", methodObject ),
+ new Among ( "glieli", 20, -1, "", methodObject ),
+ new Among ( "meli", 20, -1, "", methodObject ),
+ new Among ( "teli", 20, -1, "", methodObject ),
+ new Among ( "veli", 20, -1, "", methodObject ),
+ new Among ( "gli", 20, -1, "", methodObject ),
+ new Among ( "mi", -1, -1, "", methodObject ),
+ new Among ( "si", -1, -1, "", methodObject ),
+ new Among ( "ti", -1, -1, "", methodObject ),
+ new Among ( "vi", -1, -1, "", methodObject ),
+ new Among ( "lo", -1, -1, "", methodObject ),
+ new Among ( "celo", 31, -1, "", methodObject ),
+ new Among ( "glielo", 31, -1, "", methodObject ),
+ new Among ( "melo", 31, -1, "", methodObject ),
+ new Among ( "telo", 31, -1, "", methodObject ),
+ new Among ( "velo", 31, -1, "", methodObject )
+ };
+
+ private final static Among a_3[] = {
+ new Among ( "ando", -1, 1, "", methodObject ),
+ new Among ( "endo", -1, 1, "", methodObject ),
+ new Among ( "ar", -1, 2, "", methodObject ),
+ new Among ( "er", -1, 2, "", methodObject ),
+ new Among ( "ir", -1, 2, "", methodObject )
+ };
+
+ private final static Among a_4[] = {
+ new Among ( "ic", -1, -1, "", methodObject ),
+ new Among ( "abil", -1, -1, "", methodObject ),
+ new Among ( "os", -1, -1, "", methodObject ),
+ new Among ( "iv", -1, 1, "", methodObject )
+ };
+
+ private final static Among a_5[] = {
+ new Among ( "ic", -1, 1, "", methodObject ),
+ new Among ( "abil", -1, 1, "", methodObject ),
+ new Among ( "iv", -1, 1, "", methodObject )
+ };
+
+ private final static Among a_6[] = {
+ new Among ( "ica", -1, 1, "", methodObject ),
+ new Among ( "logia", -1, 3, "", methodObject ),
+ new Among ( "osa", -1, 1, "", methodObject ),
+ new Among ( "ista", -1, 1, "", methodObject ),
+ new Among ( "iva", -1, 9, "", methodObject ),
+ new Among ( "anza", -1, 1, "", methodObject ),
+ new Among ( "enza", -1, 5, "", methodObject ),
+ new Among ( "ice", -1, 1, "", methodObject ),
+ new Among ( "atrice", 7, 1, "", methodObject ),
+ new Among ( "iche", -1, 1, "", methodObject ),
+ new Among ( "logie", -1, 3, "", methodObject ),
+ new Among ( "abile", -1, 1, "", methodObject ),
+ new Among ( "ibile", -1, 1, "", methodObject ),
+ new Among ( "usione", -1, 4, "", methodObject ),
+ new Among ( "azione", -1, 2, "", methodObject ),
+ new Among ( "uzione", -1, 4, "", methodObject ),
+ new Among ( "atore", -1, 2, "", methodObject ),
+ new Among ( "ose", -1, 1, "", methodObject ),
+ new Among ( "ante", -1, 1, "", methodObject ),
+ new Among ( "mente", -1, 1, "", methodObject ),
+ new Among ( "amente", 19, 7, "", methodObject ),
+ new Among ( "iste", -1, 1, "", methodObject ),
+ new Among ( "ive", -1, 9, "", methodObject ),
+ new Among ( "anze", -1, 1, "", methodObject ),
+ new Among ( "enze", -1, 5, "", methodObject ),
+ new Among ( "ici", -1, 1, "", methodObject ),
+ new Among ( "atrici", 25, 1, "", methodObject ),
+ new Among ( "ichi", -1, 1, "", methodObject ),
+ new Among ( "abili", -1, 1, "", methodObject ),
+ new Among ( "ibili", -1, 1, "", methodObject ),
+ new Among ( "ismi", -1, 1, "", methodObject ),
+ new Among ( "usioni", -1, 4, "", methodObject ),
+ new Among ( "azioni", -1, 2, "", methodObject ),
+ new Among ( "uzioni", -1, 4, "", methodObject ),
+ new Among ( "atori", -1, 2, "", methodObject ),
+ new Among ( "osi", -1, 1, "", methodObject ),
+ new Among ( "anti", -1, 1, "", methodObject ),
+ new Among ( "amenti", -1, 6, "", methodObject ),
+ new Among ( "imenti", -1, 6, "", methodObject ),
+ new Among ( "isti", -1, 1, "", methodObject ),
+ new Among ( "ivi", -1, 9, "", methodObject ),
+ new Among ( "ico", -1, 1, "", methodObject ),
+ new Among ( "ismo", -1, 1, "", methodObject ),
+ new Among ( "oso", -1, 1, "", methodObject ),
+ new Among ( "amento", -1, 6, "", methodObject ),
+ new Among ( "imento", -1, 6, "", methodObject ),
+ new Among ( "ivo", -1, 9, "", methodObject ),
+ new Among ( "it\u00E0", -1, 8, "", methodObject ),
+ new Among ( "ist\u00E0", -1, 1, "", methodObject ),
+ new Among ( "ist\u00E8", -1, 1, "", methodObject ),
+ new Among ( "ist\u00EC", -1, 1, "", methodObject )
+ };
+
+ private final static Among a_7[] = {
+ new Among ( "isca", -1, 1, "", methodObject ),
+ new Among ( "enda", -1, 1, "", methodObject ),
+ new Among ( "ata", -1, 1, "", methodObject ),
+ new Among ( "ita", -1, 1, "", methodObject ),
+ new Among ( "uta", -1, 1, "", methodObject ),
+ new Among ( "ava", -1, 1, "", methodObject ),
+ new Among ( "eva", -1, 1, "", methodObject ),
+ new Among ( "iva", -1, 1, "", methodObject ),
+ new Among ( "erebbe", -1, 1, "", methodObject ),
+ new Among ( "irebbe", -1, 1, "", methodObject ),
+ new Among ( "isce", -1, 1, "", methodObject ),
+ new Among ( "ende", -1, 1, "", methodObject ),
+ new Among ( "are", -1, 1, "", methodObject ),
+ new Among ( "ere", -1, 1, "", methodObject ),
+ new Among ( "ire", -1, 1, "", methodObject ),
+ new Among ( "asse", -1, 1, "", methodObject ),
+ new Among ( "ate", -1, 1, "", methodObject ),
+ new Among ( "avate", 16, 1, "", methodObject ),
+ new Among ( "evate", 16, 1, "", methodObject ),
+ new Among ( "ivate", 16, 1, "", methodObject ),
+ new Among ( "ete", -1, 1, "", methodObject ),
+ new Among ( "erete", 20, 1, "", methodObject ),
+ new Among ( "irete", 20, 1, "", methodObject ),
+ new Among ( "ite", -1, 1, "", methodObject ),
+ new Among ( "ereste", -1, 1, "", methodObject ),
+ new Among ( "ireste", -1, 1, "", methodObject ),
+ new Among ( "ute", -1, 1, "", methodObject ),
+ new Among ( "erai", -1, 1, "", methodObject ),
+ new Among ( "irai", -1, 1, "", methodObject ),
+ new Among ( "isci", -1, 1, "", methodObject ),
+ new Among ( "endi", -1, 1, "", methodObject ),
+ new Among ( "erei", -1, 1, "", methodObject ),
+ new Among ( "irei", -1, 1, "", methodObject ),
+ new Among ( "assi", -1, 1, "", methodObject ),
+ new Among ( "ati", -1, 1, "", methodObject ),
+ new Among ( "iti", -1, 1, "", methodObject ),
+ new Among ( "eresti", -1, 1, "", methodObject ),
+ new Among ( "iresti", -1, 1, "", methodObject ),
+ new Among ( "uti", -1, 1, "", methodObject ),
+ new Among ( "avi", -1, 1, "", methodObject ),
+ new Among ( "evi", -1, 1, "", methodObject ),
+ new Among ( "ivi", -1, 1, "", methodObject ),
+ new Among ( "isco", -1, 1, "", methodObject ),
+ new Among ( "ando", -1, 1, "", methodObject ),
+ new Among ( "endo", -1, 1, "", methodObject ),
+ new Among ( "Yamo", -1, 1, "", methodObject ),
+ new Among ( "iamo", -1, 1, "", methodObject ),
+ new Among ( "avamo", -1, 1, "", methodObject ),
+ new Among ( "evamo", -1, 1, "", methodObject ),
+ new Among ( "ivamo", -1, 1, "", methodObject ),
+ new Among ( "eremo", -1, 1, "", methodObject ),
+ new Among ( "iremo", -1, 1, "", methodObject ),
+ new Among ( "assimo", -1, 1, "", methodObject ),
+ new Among ( "ammo", -1, 1, "", methodObject ),
+ new Among ( "emmo", -1, 1, "", methodObject ),
+ new Among ( "eremmo", 54, 1, "", methodObject ),
+ new Among ( "iremmo", 54, 1, "", methodObject ),
+ new Among ( "immo", -1, 1, "", methodObject ),
+ new Among ( "ano", -1, 1, "", methodObject ),
+ new Among ( "iscano", 58, 1, "", methodObject ),
+ new Among ( "avano", 58, 1, "", methodObject ),
+ new Among ( "evano", 58, 1, "", methodObject ),
+ new Among ( "ivano", 58, 1, "", methodObject ),
+ new Among ( "eranno", -1, 1, "", methodObject ),
+ new Among ( "iranno", -1, 1, "", methodObject ),
+ new Among ( "ono", -1, 1, "", methodObject ),
+ new Among ( "iscono", 65, 1, "", methodObject ),
+ new Among ( "arono", 65, 1, "", methodObject ),
+ new Among ( "erono", 65, 1, "", methodObject ),
+ new Among ( "irono", 65, 1, "", methodObject ),
+ new Among ( "erebbero", -1, 1, "", methodObject ),
+ new Among ( "irebbero", -1, 1, "", methodObject ),
+ new Among ( "assero", -1, 1, "", methodObject ),
+ new Among ( "essero", -1, 1, "", methodObject ),
+ new Among ( "issero", -1, 1, "", methodObject ),
+ new Among ( "ato", -1, 1, "", methodObject ),
+ new Among ( "ito", -1, 1, "", methodObject ),
+ new Among ( "uto", -1, 1, "", methodObject ),
+ new Among ( "avo", -1, 1, "", methodObject ),
+ new Among ( "evo", -1, 1, "", methodObject ),
+ new Among ( "ivo", -1, 1, "", methodObject ),
+ new Among ( "ar", -1, 1, "", methodObject ),
+ new Among ( "ir", -1, 1, "", methodObject ),
+ new Among ( "er\u00E0", -1, 1, "", methodObject ),
+ new Among ( "ir\u00E0", -1, 1, "", methodObject ),
+ new Among ( "er\u00F2", -1, 1, "", methodObject ),
+ new Among ( "ir\u00F2", -1, 1, "", methodObject )
+ };
+
+ 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;
+ }
+
+ public boolean equals( Object o ) {
+ return o instanceof italianStemmer;
+ }
+
+ public int hashCode() {
+ return italianStemmer.class.getName().hashCode();
+ }
+
+
+
+}
+
--- /dev/null
+// This file was generated automatically by the Snowball to Java compiler
+
+package com.nexwave.stemmer.snowball.ext;
+
+import com.nexwave.stemmer.snowball.Among;
+
+ /**
+ * This class was automatically generated by a Snowball to Java compiler
+ * It implements the stemming algorithm defined by a snowball script.
+ */
+
+public class norwegianStemmer extends com.nexwave.stemmer.snowball.SnowballStemmer {
+
+private static final long serialVersionUID = 1L;
+
+ private final static norwegianStemmer methodObject = new norwegianStemmer ();
+
+ private final static Among a_0[] = {
+ new Among ( "a", -1, 1, "", methodObject ),
+ new Among ( "e", -1, 1, "", methodObject ),
+ new Among ( "ede", 1, 1, "", methodObject ),
+ new Among ( "ande", 1, 1, "", methodObject ),
+ new Among ( "ende", 1, 1, "", methodObject ),
+ new Among ( "ane", 1, 1, "", methodObject ),
+ new Among ( "ene", 1, 1, "", methodObject ),
+ new Among ( "hetene", 6, 1, "", methodObject ),
+ new Among ( "erte", 1, 3, "", methodObject ),
+ new Among ( "en", -1, 1, "", methodObject ),
+ new Among ( "heten", 9, 1, "", methodObject ),
+ new Among ( "ar", -1, 1, "", methodObject ),
+ new Among ( "er", -1, 1, "", methodObject ),
+ new Among ( "heter", 12, 1, "", methodObject ),
+ new Among ( "s", -1, 2, "", methodObject ),
+ new Among ( "as", 14, 1, "", methodObject ),
+ new Among ( "es", 14, 1, "", methodObject ),
+ new Among ( "edes", 16, 1, "", methodObject ),
+ new Among ( "endes", 16, 1, "", methodObject ),
+ new Among ( "enes", 16, 1, "", methodObject ),
+ new Among ( "hetenes", 19, 1, "", methodObject ),
+ new Among ( "ens", 14, 1, "", methodObject ),
+ new Among ( "hetens", 21, 1, "", methodObject ),
+ new Among ( "ers", 14, 1, "", methodObject ),
+ new Among ( "ets", 14, 1, "", methodObject ),
+ new Among ( "et", -1, 1, "", methodObject ),
+ new Among ( "het", 25, 1, "", methodObject ),
+ new Among ( "ert", -1, 3, "", methodObject ),
+ new Among ( "ast", -1, 1, "", methodObject )
+ };
+
+ private final static Among a_1[] = {
+ new Among ( "dt", -1, -1, "", methodObject ),
+ new Among ( "vt", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_2[] = {
+ new Among ( "leg", -1, 1, "", methodObject ),
+ new Among ( "eleg", 0, 1, "", methodObject ),
+ new Among ( "ig", -1, 1, "", methodObject ),
+ new Among ( "eig", 2, 1, "", methodObject ),
+ new Among ( "lig", 2, 1, "", methodObject ),
+ new Among ( "elig", 4, 1, "", methodObject ),
+ new Among ( "els", -1, 1, "", methodObject ),
+ new Among ( "lov", -1, 1, "", methodObject ),
+ new Among ( "elov", 7, 1, "", methodObject ),
+ new Among ( "slov", 7, 1, "", methodObject ),
+ new Among ( "hetslov", 9, 1, "", methodObject )
+ };
+
+ 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;
+ }
+
+ public boolean equals( Object o ) {
+ return o instanceof norwegianStemmer;
+ }
+
+ public int hashCode() {
+ return norwegianStemmer.class.getName().hashCode();
+ }
+
+
+
+}
+
--- /dev/null
+// This file was generated automatically by the Snowball to Java compiler
+
+package com.nexwave.stemmer.snowball.ext;
+
+import com.nexwave.stemmer.snowball.Among;
+
+ /**
+ * This class was automatically generated by a Snowball to Java compiler
+ * It implements the stemming algorithm defined by a snowball script.
+ */
+
+public class porterStemmer extends com.nexwave.stemmer.snowball.SnowballStemmer {
+
+private static final long serialVersionUID = 1L;
+
+ private final static porterStemmer methodObject = new porterStemmer ();
+
+ private final static Among a_0[] = {
+ new Among ( "s", -1, 3, "", methodObject ),
+ new Among ( "ies", 0, 2, "", methodObject ),
+ new Among ( "sses", 0, 1, "", methodObject ),
+ new Among ( "ss", 0, -1, "", methodObject )
+ };
+
+ private final static Among a_1[] = {
+ new Among ( "", -1, 3, "", methodObject ),
+ new Among ( "bb", 0, 2, "", methodObject ),
+ new Among ( "dd", 0, 2, "", methodObject ),
+ new Among ( "ff", 0, 2, "", methodObject ),
+ new Among ( "gg", 0, 2, "", methodObject ),
+ new Among ( "bl", 0, 1, "", methodObject ),
+ new Among ( "mm", 0, 2, "", methodObject ),
+ new Among ( "nn", 0, 2, "", methodObject ),
+ new Among ( "pp", 0, 2, "", methodObject ),
+ new Among ( "rr", 0, 2, "", methodObject ),
+ new Among ( "at", 0, 1, "", methodObject ),
+ new Among ( "tt", 0, 2, "", methodObject ),
+ new Among ( "iz", 0, 1, "", methodObject )
+ };
+
+ private final static Among a_2[] = {
+ new Among ( "ed", -1, 2, "", methodObject ),
+ new Among ( "eed", 0, 1, "", methodObject ),
+ new Among ( "ing", -1, 2, "", methodObject )
+ };
+
+ private final static Among a_3[] = {
+ new Among ( "anci", -1, 3, "", methodObject ),
+ new Among ( "enci", -1, 2, "", methodObject ),
+ new Among ( "abli", -1, 4, "", methodObject ),
+ new Among ( "eli", -1, 6, "", methodObject ),
+ new Among ( "alli", -1, 9, "", methodObject ),
+ new Among ( "ousli", -1, 12, "", methodObject ),
+ new Among ( "entli", -1, 5, "", methodObject ),
+ new Among ( "aliti", -1, 10, "", methodObject ),
+ new Among ( "biliti", -1, 14, "", methodObject ),
+ new Among ( "iviti", -1, 13, "", methodObject ),
+ new Among ( "tional", -1, 1, "", methodObject ),
+ new Among ( "ational", 10, 8, "", methodObject ),
+ new Among ( "alism", -1, 10, "", methodObject ),
+ new Among ( "ation", -1, 8, "", methodObject ),
+ new Among ( "ization", 13, 7, "", methodObject ),
+ new Among ( "izer", -1, 7, "", methodObject ),
+ new Among ( "ator", -1, 8, "", methodObject ),
+ new Among ( "iveness", -1, 13, "", methodObject ),
+ new Among ( "fulness", -1, 11, "", methodObject ),
+ new Among ( "ousness", -1, 12, "", methodObject )
+ };
+
+ private final static Among a_4[] = {
+ new Among ( "icate", -1, 2, "", methodObject ),
+ new Among ( "ative", -1, 3, "", methodObject ),
+ new Among ( "alize", -1, 1, "", methodObject ),
+ new Among ( "iciti", -1, 2, "", methodObject ),
+ new Among ( "ical", -1, 2, "", methodObject ),
+ new Among ( "ful", -1, 3, "", methodObject ),
+ new Among ( "ness", -1, 3, "", methodObject )
+ };
+
+ private final static Among a_5[] = {
+ new Among ( "ic", -1, 1, "", methodObject ),
+ new Among ( "ance", -1, 1, "", methodObject ),
+ new Among ( "ence", -1, 1, "", methodObject ),
+ new Among ( "able", -1, 1, "", methodObject ),
+ new Among ( "ible", -1, 1, "", methodObject ),
+ new Among ( "ate", -1, 1, "", methodObject ),
+ new Among ( "ive", -1, 1, "", methodObject ),
+ new Among ( "ize", -1, 1, "", methodObject ),
+ new Among ( "iti", -1, 1, "", methodObject ),
+ new Among ( "al", -1, 1, "", methodObject ),
+ new Among ( "ism", -1, 1, "", methodObject ),
+ new Among ( "ion", -1, 2, "", methodObject ),
+ new Among ( "er", -1, 1, "", methodObject ),
+ new Among ( "ous", -1, 1, "", methodObject ),
+ new Among ( "ant", -1, 1, "", methodObject ),
+ new Among ( "ent", -1, 1, "", methodObject ),
+ new Among ( "ment", 15, 1, "", methodObject ),
+ new Among ( "ement", 16, 1, "", methodObject ),
+ new Among ( "ou", -1, 1, "", methodObject )
+ };
+
+ 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;
+ }
+
+ public boolean equals( Object o ) {
+ return o instanceof porterStemmer;
+ }
+
+ public int hashCode() {
+ return porterStemmer.class.getName().hashCode();
+ }
+
+
+
+}
+
--- /dev/null
+// This file was generated automatically by the Snowball to Java compiler
+
+package com.nexwave.stemmer.snowball.ext;
+
+import com.nexwave.stemmer.snowball.Among;
+
+ /**
+ * This class was automatically generated by a Snowball to Java compiler
+ * It implements the stemming algorithm defined by a snowball script.
+ */
+
+public class portugueseStemmer extends com.nexwave.stemmer.snowball.SnowballStemmer {
+
+private static final long serialVersionUID = 1L;
+
+ private final static portugueseStemmer methodObject = new portugueseStemmer ();
+
+ private final static Among a_0[] = {
+ new Among ( "", -1, 3, "", methodObject ),
+ new Among ( "\u00E3", 0, 1, "", methodObject ),
+ new Among ( "\u00F5", 0, 2, "", methodObject )
+ };
+
+ private final static Among a_1[] = {
+ new Among ( "", -1, 3, "", methodObject ),
+ new Among ( "a~", 0, 1, "", methodObject ),
+ new Among ( "o~", 0, 2, "", methodObject )
+ };
+
+ private final static Among a_2[] = {
+ new Among ( "ic", -1, -1, "", methodObject ),
+ new Among ( "ad", -1, -1, "", methodObject ),
+ new Among ( "os", -1, -1, "", methodObject ),
+ new Among ( "iv", -1, 1, "", methodObject )
+ };
+
+ private final static Among a_3[] = {
+ new Among ( "ante", -1, 1, "", methodObject ),
+ new Among ( "avel", -1, 1, "", methodObject ),
+ new Among ( "\u00EDvel", -1, 1, "", methodObject )
+ };
+
+ private final static Among a_4[] = {
+ new Among ( "ic", -1, 1, "", methodObject ),
+ new Among ( "abil", -1, 1, "", methodObject ),
+ new Among ( "iv", -1, 1, "", methodObject )
+ };
+
+ private final static Among a_5[] = {
+ new Among ( "ica", -1, 1, "", methodObject ),
+ new Among ( "\u00E2ncia", -1, 1, "", methodObject ),
+ new Among ( "\u00EAncia", -1, 4, "", methodObject ),
+ new Among ( "ira", -1, 9, "", methodObject ),
+ new Among ( "adora", -1, 1, "", methodObject ),
+ new Among ( "osa", -1, 1, "", methodObject ),
+ new Among ( "ista", -1, 1, "", methodObject ),
+ new Among ( "iva", -1, 8, "", methodObject ),
+ new Among ( "eza", -1, 1, "", methodObject ),
+ new Among ( "log\u00EDa", -1, 2, "", methodObject ),
+ new Among ( "idade", -1, 7, "", methodObject ),
+ new Among ( "ante", -1, 1, "", methodObject ),
+ new Among ( "mente", -1, 6, "", methodObject ),
+ new Among ( "amente", 12, 5, "", methodObject ),
+ new Among ( "\u00E1vel", -1, 1, "", methodObject ),
+ new Among ( "\u00EDvel", -1, 1, "", methodObject ),
+ new Among ( "uci\u00F3n", -1, 3, "", methodObject ),
+ new Among ( "ico", -1, 1, "", methodObject ),
+ new Among ( "ismo", -1, 1, "", methodObject ),
+ new Among ( "oso", -1, 1, "", methodObject ),
+ new Among ( "amento", -1, 1, "", methodObject ),
+ new Among ( "imento", -1, 1, "", methodObject ),
+ new Among ( "ivo", -1, 8, "", methodObject ),
+ new Among ( "a\u00E7a~o", -1, 1, "", methodObject ),
+ new Among ( "ador", -1, 1, "", methodObject ),
+ new Among ( "icas", -1, 1, "", methodObject ),
+ new Among ( "\u00EAncias", -1, 4, "", methodObject ),
+ new Among ( "iras", -1, 9, "", methodObject ),
+ new Among ( "adoras", -1, 1, "", methodObject ),
+ new Among ( "osas", -1, 1, "", methodObject ),
+ new Among ( "istas", -1, 1, "", methodObject ),
+ new Among ( "ivas", -1, 8, "", methodObject ),
+ new Among ( "ezas", -1, 1, "", methodObject ),
+ new Among ( "log\u00EDas", -1, 2, "", methodObject ),
+ new Among ( "idades", -1, 7, "", methodObject ),
+ new Among ( "uciones", -1, 3, "", methodObject ),
+ new Among ( "adores", -1, 1, "", methodObject ),
+ new Among ( "antes", -1, 1, "", methodObject ),
+ new Among ( "a\u00E7o~es", -1, 1, "", methodObject ),
+ new Among ( "icos", -1, 1, "", methodObject ),
+ new Among ( "ismos", -1, 1, "", methodObject ),
+ new Among ( "osos", -1, 1, "", methodObject ),
+ new Among ( "amentos", -1, 1, "", methodObject ),
+ new Among ( "imentos", -1, 1, "", methodObject ),
+ new Among ( "ivos", -1, 8, "", methodObject )
+ };
+
+ private final static Among a_6[] = {
+ new Among ( "ada", -1, 1, "", methodObject ),
+ new Among ( "ida", -1, 1, "", methodObject ),
+ new Among ( "ia", -1, 1, "", methodObject ),
+ new Among ( "aria", 2, 1, "", methodObject ),
+ new Among ( "eria", 2, 1, "", methodObject ),
+ new Among ( "iria", 2, 1, "", methodObject ),
+ new Among ( "ara", -1, 1, "", methodObject ),
+ new Among ( "era", -1, 1, "", methodObject ),
+ new Among ( "ira", -1, 1, "", methodObject ),
+ new Among ( "ava", -1, 1, "", methodObject ),
+ new Among ( "asse", -1, 1, "", methodObject ),
+ new Among ( "esse", -1, 1, "", methodObject ),
+ new Among ( "isse", -1, 1, "", methodObject ),
+ new Among ( "aste", -1, 1, "", methodObject ),
+ new Among ( "este", -1, 1, "", methodObject ),
+ new Among ( "iste", -1, 1, "", methodObject ),
+ new Among ( "ei", -1, 1, "", methodObject ),
+ new Among ( "arei", 16, 1, "", methodObject ),
+ new Among ( "erei", 16, 1, "", methodObject ),
+ new Among ( "irei", 16, 1, "", methodObject ),
+ new Among ( "am", -1, 1, "", methodObject ),
+ new Among ( "iam", 20, 1, "", methodObject ),
+ new Among ( "ariam", 21, 1, "", methodObject ),
+ new Among ( "eriam", 21, 1, "", methodObject ),
+ new Among ( "iriam", 21, 1, "", methodObject ),
+ new Among ( "aram", 20, 1, "", methodObject ),
+ new Among ( "eram", 20, 1, "", methodObject ),
+ new Among ( "iram", 20, 1, "", methodObject ),
+ new Among ( "avam", 20, 1, "", methodObject ),
+ new Among ( "em", -1, 1, "", methodObject ),
+ new Among ( "arem", 29, 1, "", methodObject ),
+ new Among ( "erem", 29, 1, "", methodObject ),
+ new Among ( "irem", 29, 1, "", methodObject ),
+ new Among ( "assem", 29, 1, "", methodObject ),
+ new Among ( "essem", 29, 1, "", methodObject ),
+ new Among ( "issem", 29, 1, "", methodObject ),
+ new Among ( "ado", -1, 1, "", methodObject ),
+ new Among ( "ido", -1, 1, "", methodObject ),
+ new Among ( "ando", -1, 1, "", methodObject ),
+ new Among ( "endo", -1, 1, "", methodObject ),
+ new Among ( "indo", -1, 1, "", methodObject ),
+ new Among ( "ara~o", -1, 1, "", methodObject ),
+ new Among ( "era~o", -1, 1, "", methodObject ),
+ new Among ( "ira~o", -1, 1, "", methodObject ),
+ new Among ( "ar", -1, 1, "", methodObject ),
+ new Among ( "er", -1, 1, "", methodObject ),
+ new Among ( "ir", -1, 1, "", methodObject ),
+ new Among ( "as", -1, 1, "", methodObject ),
+ new Among ( "adas", 47, 1, "", methodObject ),
+ new Among ( "idas", 47, 1, "", methodObject ),
+ new Among ( "ias", 47, 1, "", methodObject ),
+ new Among ( "arias", 50, 1, "", methodObject ),
+ new Among ( "erias", 50, 1, "", methodObject ),
+ new Among ( "irias", 50, 1, "", methodObject ),
+ new Among ( "aras", 47, 1, "", methodObject ),
+ new Among ( "eras", 47, 1, "", methodObject ),
+ new Among ( "iras", 47, 1, "", methodObject ),
+ new Among ( "avas", 47, 1, "", methodObject ),
+ new Among ( "es", -1, 1, "", methodObject ),
+ new Among ( "ardes", 58, 1, "", methodObject ),
+ new Among ( "erdes", 58, 1, "", methodObject ),
+ new Among ( "irdes", 58, 1, "", methodObject ),
+ new Among ( "ares", 58, 1, "", methodObject ),
+ new Among ( "eres", 58, 1, "", methodObject ),
+ new Among ( "ires", 58, 1, "", methodObject ),
+ new Among ( "asses", 58, 1, "", methodObject ),
+ new Among ( "esses", 58, 1, "", methodObject ),
+ new Among ( "isses", 58, 1, "", methodObject ),
+ new Among ( "astes", 58, 1, "", methodObject ),
+ new Among ( "estes", 58, 1, "", methodObject ),
+ new Among ( "istes", 58, 1, "", methodObject ),
+ new Among ( "is", -1, 1, "", methodObject ),
+ new Among ( "ais", 71, 1, "", methodObject ),
+ new Among ( "eis", 71, 1, "", methodObject ),
+ new Among ( "areis", 73, 1, "", methodObject ),
+ new Among ( "ereis", 73, 1, "", methodObject ),
+ new Among ( "ireis", 73, 1, "", methodObject ),
+ new Among ( "\u00E1reis", 73, 1, "", methodObject ),
+ new Among ( "\u00E9reis", 73, 1, "", methodObject ),
+ new Among ( "\u00EDreis", 73, 1, "", methodObject ),
+ new Among ( "\u00E1sseis", 73, 1, "", methodObject ),
+ new Among ( "\u00E9sseis", 73, 1, "", methodObject ),
+ new Among ( "\u00EDsseis", 73, 1, "", methodObject ),
+ new Among ( "\u00E1veis", 73, 1, "", methodObject ),
+ new Among ( "\u00EDeis", 73, 1, "", methodObject ),
+ new Among ( "ar\u00EDeis", 84, 1, "", methodObject ),
+ new Among ( "er\u00EDeis", 84, 1, "", methodObject ),
+ new Among ( "ir\u00EDeis", 84, 1, "", methodObject ),
+ new Among ( "ados", -1, 1, "", methodObject ),
+ new Among ( "idos", -1, 1, "", methodObject ),
+ new Among ( "amos", -1, 1, "", methodObject ),
+ new Among ( "\u00E1ramos", 90, 1, "", methodObject ),
+ new Among ( "\u00E9ramos", 90, 1, "", methodObject ),
+ new Among ( "\u00EDramos", 90, 1, "", methodObject ),
+ new Among ( "\u00E1vamos", 90, 1, "", methodObject ),
+ new Among ( "\u00EDamos", 90, 1, "", methodObject ),
+ new Among ( "ar\u00EDamos", 95, 1, "", methodObject ),
+ new Among ( "er\u00EDamos", 95, 1, "", methodObject ),
+ new Among ( "ir\u00EDamos", 95, 1, "", methodObject ),
+ new Among ( "emos", -1, 1, "", methodObject ),
+ new Among ( "aremos", 99, 1, "", methodObject ),
+ new Among ( "eremos", 99, 1, "", methodObject ),
+ new Among ( "iremos", 99, 1, "", methodObject ),
+ new Among ( "\u00E1ssemos", 99, 1, "", methodObject ),
+ new Among ( "\u00EAssemos", 99, 1, "", methodObject ),
+ new Among ( "\u00EDssemos", 99, 1, "", methodObject ),
+ new Among ( "imos", -1, 1, "", methodObject ),
+ new Among ( "armos", -1, 1, "", methodObject ),
+ new Among ( "ermos", -1, 1, "", methodObject ),
+ new Among ( "irmos", -1, 1, "", methodObject ),
+ new Among ( "\u00E1mos", -1, 1, "", methodObject ),
+ new Among ( "ar\u00E1s", -1, 1, "", methodObject ),
+ new Among ( "er\u00E1s", -1, 1, "", methodObject ),
+ new Among ( "ir\u00E1s", -1, 1, "", methodObject ),
+ new Among ( "eu", -1, 1, "", methodObject ),
+ new Among ( "iu", -1, 1, "", methodObject ),
+ new Among ( "ou", -1, 1, "", methodObject ),
+ new Among ( "ar\u00E1", -1, 1, "", methodObject ),
+ new Among ( "er\u00E1", -1, 1, "", methodObject ),
+ new Among ( "ir\u00E1", -1, 1, "", methodObject )
+ };
+
+ private final static Among a_7[] = {
+ new Among ( "a", -1, 1, "", methodObject ),
+ new Among ( "i", -1, 1, "", methodObject ),
+ new Among ( "o", -1, 1, "", methodObject ),
+ new Among ( "os", -1, 1, "", methodObject ),
+ new Among ( "\u00E1", -1, 1, "", methodObject ),
+ new Among ( "\u00ED", -1, 1, "", methodObject ),
+ new Among ( "\u00F3", -1, 1, "", methodObject )
+ };
+
+ private final static Among a_8[] = {
+ new Among ( "e", -1, 1, "", methodObject ),
+ new Among ( "\u00E7", -1, 2, "", methodObject ),
+ new Among ( "\u00E9", -1, 1, "", methodObject ),
+ new Among ( "\u00EA", -1, 1, "", methodObject )
+ };
+
+ 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;
+ }
+
+ public boolean equals( Object o ) {
+ return o instanceof portugueseStemmer;
+ }
+
+ public int hashCode() {
+ return portugueseStemmer.class.getName().hashCode();
+ }
+
+
+
+}
+
--- /dev/null
+// This file was generated automatically by the Snowball to Java compiler
+
+package com.nexwave.stemmer.snowball.ext;
+
+import com.nexwave.stemmer.snowball.Among;
+
+ /**
+ * This class was automatically generated by a Snowball to Java compiler
+ * It implements the stemming algorithm defined by a snowball script.
+ */
+
+public class romanianStemmer extends com.nexwave.stemmer.snowball.SnowballStemmer {
+
+private static final long serialVersionUID = 1L;
+
+ private final static romanianStemmer methodObject = new romanianStemmer ();
+
+ private final static Among a_0[] = {
+ new Among ( "", -1, 3, "", methodObject ),
+ new Among ( "I", 0, 1, "", methodObject ),
+ new Among ( "U", 0, 2, "", methodObject )
+ };
+
+ private final static Among a_1[] = {
+ new Among ( "ea", -1, 3, "", methodObject ),
+ new Among ( "a\u0163ia", -1, 7, "", methodObject ),
+ new Among ( "aua", -1, 2, "", methodObject ),
+ new Among ( "iua", -1, 4, "", methodObject ),
+ new Among ( "a\u0163ie", -1, 7, "", methodObject ),
+ new Among ( "ele", -1, 3, "", methodObject ),
+ new Among ( "ile", -1, 5, "", methodObject ),
+ new Among ( "iile", 6, 4, "", methodObject ),
+ new Among ( "iei", -1, 4, "", methodObject ),
+ new Among ( "atei", -1, 6, "", methodObject ),
+ new Among ( "ii", -1, 4, "", methodObject ),
+ new Among ( "ului", -1, 1, "", methodObject ),
+ new Among ( "ul", -1, 1, "", methodObject ),
+ new Among ( "elor", -1, 3, "", methodObject ),
+ new Among ( "ilor", -1, 4, "", methodObject ),
+ new Among ( "iilor", 14, 4, "", methodObject )
+ };
+
+ private final static Among a_2[] = {
+ new Among ( "icala", -1, 4, "", methodObject ),
+ new Among ( "iciva", -1, 4, "", methodObject ),
+ new Among ( "ativa", -1, 5, "", methodObject ),
+ new Among ( "itiva", -1, 6, "", methodObject ),
+ new Among ( "icale", -1, 4, "", methodObject ),
+ new Among ( "a\u0163iune", -1, 5, "", methodObject ),
+ new Among ( "i\u0163iune", -1, 6, "", methodObject ),
+ new Among ( "atoare", -1, 5, "", methodObject ),
+ new Among ( "itoare", -1, 6, "", methodObject ),
+ new Among ( "\u0103toare", -1, 5, "", methodObject ),
+ new Among ( "icitate", -1, 4, "", methodObject ),
+ new Among ( "abilitate", -1, 1, "", methodObject ),
+ new Among ( "ibilitate", -1, 2, "", methodObject ),
+ new Among ( "ivitate", -1, 3, "", methodObject ),
+ new Among ( "icive", -1, 4, "", methodObject ),
+ new Among ( "ative", -1, 5, "", methodObject ),
+ new Among ( "itive", -1, 6, "", methodObject ),
+ new Among ( "icali", -1, 4, "", methodObject ),
+ new Among ( "atori", -1, 5, "", methodObject ),
+ new Among ( "icatori", 18, 4, "", methodObject ),
+ new Among ( "itori", -1, 6, "", methodObject ),
+ new Among ( "\u0103tori", -1, 5, "", methodObject ),
+ new Among ( "icitati", -1, 4, "", methodObject ),
+ new Among ( "abilitati", -1, 1, "", methodObject ),
+ new Among ( "ivitati", -1, 3, "", methodObject ),
+ new Among ( "icivi", -1, 4, "", methodObject ),
+ new Among ( "ativi", -1, 5, "", methodObject ),
+ new Among ( "itivi", -1, 6, "", methodObject ),
+ new Among ( "icit\u0103i", -1, 4, "", methodObject ),
+ new Among ( "abilit\u0103i", -1, 1, "", methodObject ),
+ new Among ( "ivit\u0103i", -1, 3, "", methodObject ),
+ new Among ( "icit\u0103\u0163i", -1, 4, "", methodObject ),
+ new Among ( "abilit\u0103\u0163i", -1, 1, "", methodObject ),
+ new Among ( "ivit\u0103\u0163i", -1, 3, "", methodObject ),
+ new Among ( "ical", -1, 4, "", methodObject ),
+ new Among ( "ator", -1, 5, "", methodObject ),
+ new Among ( "icator", 35, 4, "", methodObject ),
+ new Among ( "itor", -1, 6, "", methodObject ),
+ new Among ( "\u0103tor", -1, 5, "", methodObject ),
+ new Among ( "iciv", -1, 4, "", methodObject ),
+ new Among ( "ativ", -1, 5, "", methodObject ),
+ new Among ( "itiv", -1, 6, "", methodObject ),
+ new Among ( "ical\u0103", -1, 4, "", methodObject ),
+ new Among ( "iciv\u0103", -1, 4, "", methodObject ),
+ new Among ( "ativ\u0103", -1, 5, "", methodObject ),
+ new Among ( "itiv\u0103", -1, 6, "", methodObject )
+ };
+
+ private final static Among a_3[] = {
+ new Among ( "ica", -1, 1, "", methodObject ),
+ new Among ( "abila", -1, 1, "", methodObject ),
+ new Among ( "ibila", -1, 1, "", methodObject ),
+ new Among ( "oasa", -1, 1, "", methodObject ),
+ new Among ( "ata", -1, 1, "", methodObject ),
+ new Among ( "ita", -1, 1, "", methodObject ),
+ new Among ( "anta", -1, 1, "", methodObject ),
+ new Among ( "ista", -1, 3, "", methodObject ),
+ new Among ( "uta", -1, 1, "", methodObject ),
+ new Among ( "iva", -1, 1, "", methodObject ),
+ new Among ( "ic", -1, 1, "", methodObject ),
+ new Among ( "ice", -1, 1, "", methodObject ),
+ new Among ( "abile", -1, 1, "", methodObject ),
+ new Among ( "ibile", -1, 1, "", methodObject ),
+ new Among ( "isme", -1, 3, "", methodObject ),
+ new Among ( "iune", -1, 2, "", methodObject ),
+ new Among ( "oase", -1, 1, "", methodObject ),
+ new Among ( "ate", -1, 1, "", methodObject ),
+ new Among ( "itate", 17, 1, "", methodObject ),
+ new Among ( "ite", -1, 1, "", methodObject ),
+ new Among ( "ante", -1, 1, "", methodObject ),
+ new Among ( "iste", -1, 3, "", methodObject ),
+ new Among ( "ute", -1, 1, "", methodObject ),
+ new Among ( "ive", -1, 1, "", methodObject ),
+ new Among ( "ici", -1, 1, "", methodObject ),
+ new Among ( "abili", -1, 1, "", methodObject ),
+ new Among ( "ibili", -1, 1, "", methodObject ),
+ new Among ( "iuni", -1, 2, "", methodObject ),
+ new Among ( "atori", -1, 1, "", methodObject ),
+ new Among ( "osi", -1, 1, "", methodObject ),
+ new Among ( "ati", -1, 1, "", methodObject ),
+ new Among ( "itati", 30, 1, "", methodObject ),
+ new Among ( "iti", -1, 1, "", methodObject ),
+ new Among ( "anti", -1, 1, "", methodObject ),
+ new Among ( "isti", -1, 3, "", methodObject ),
+ new Among ( "uti", -1, 1, "", methodObject ),
+ new Among ( "i\u015Fti", -1, 3, "", methodObject ),
+ new Among ( "ivi", -1, 1, "", methodObject ),
+ new Among ( "it\u0103i", -1, 1, "", methodObject ),
+ new Among ( "o\u015Fi", -1, 1, "", methodObject ),
+ new Among ( "it\u0103\u0163i", -1, 1, "", methodObject ),
+ new Among ( "abil", -1, 1, "", methodObject ),
+ new Among ( "ibil", -1, 1, "", methodObject ),
+ new Among ( "ism", -1, 3, "", methodObject ),
+ new Among ( "ator", -1, 1, "", methodObject ),
+ new Among ( "os", -1, 1, "", methodObject ),
+ new Among ( "at", -1, 1, "", methodObject ),
+ new Among ( "it", -1, 1, "", methodObject ),
+ new Among ( "ant", -1, 1, "", methodObject ),
+ new Among ( "ist", -1, 3, "", methodObject ),
+ new Among ( "ut", -1, 1, "", methodObject ),
+ new Among ( "iv", -1, 1, "", methodObject ),
+ new Among ( "ic\u0103", -1, 1, "", methodObject ),
+ new Among ( "abil\u0103", -1, 1, "", methodObject ),
+ new Among ( "ibil\u0103", -1, 1, "", methodObject ),
+ new Among ( "oas\u0103", -1, 1, "", methodObject ),
+ new Among ( "at\u0103", -1, 1, "", methodObject ),
+ new Among ( "it\u0103", -1, 1, "", methodObject ),
+ new Among ( "ant\u0103", -1, 1, "", methodObject ),
+ new Among ( "ist\u0103", -1, 3, "", methodObject ),
+ new Among ( "ut\u0103", -1, 1, "", methodObject ),
+ new Among ( "iv\u0103", -1, 1, "", methodObject )
+ };
+
+ private final static Among a_4[] = {
+ new Among ( "ea", -1, 1, "", methodObject ),
+ new Among ( "ia", -1, 1, "", methodObject ),
+ new Among ( "esc", -1, 1, "", methodObject ),
+ new Among ( "\u0103sc", -1, 1, "", methodObject ),
+ new Among ( "ind", -1, 1, "", methodObject ),
+ new Among ( "\u00E2nd", -1, 1, "", methodObject ),
+ new Among ( "are", -1, 1, "", methodObject ),
+ new Among ( "ere", -1, 1, "", methodObject ),
+ new Among ( "ire", -1, 1, "", methodObject ),
+ new Among ( "\u00E2re", -1, 1, "", methodObject ),
+ new Among ( "se", -1, 2, "", methodObject ),
+ new Among ( "ase", 10, 1, "", methodObject ),
+ new Among ( "sese", 10, 2, "", methodObject ),
+ new Among ( "ise", 10, 1, "", methodObject ),
+ new Among ( "use", 10, 1, "", methodObject ),
+ new Among ( "\u00E2se", 10, 1, "", methodObject ),
+ new Among ( "e\u015Fte", -1, 1, "", methodObject ),
+ new Among ( "\u0103\u015Fte", -1, 1, "", methodObject ),
+ new Among ( "eze", -1, 1, "", methodObject ),
+ new Among ( "ai", -1, 1, "", methodObject ),
+ new Among ( "eai", 19, 1, "", methodObject ),
+ new Among ( "iai", 19, 1, "", methodObject ),
+ new Among ( "sei", -1, 2, "", methodObject ),
+ new Among ( "e\u015Fti", -1, 1, "", methodObject ),
+ new Among ( "\u0103\u015Fti", -1, 1, "", methodObject ),
+ new Among ( "ui", -1, 1, "", methodObject ),
+ new Among ( "ezi", -1, 1, "", methodObject ),
+ new Among ( "\u00E2i", -1, 1, "", methodObject ),
+ new Among ( "a\u015Fi", -1, 1, "", methodObject ),
+ new Among ( "se\u015Fi", -1, 2, "", methodObject ),
+ new Among ( "ase\u015Fi", 29, 1, "", methodObject ),
+ new Among ( "sese\u015Fi", 29, 2, "", methodObject ),
+ new Among ( "ise\u015Fi", 29, 1, "", methodObject ),
+ new Among ( "use\u015Fi", 29, 1, "", methodObject ),
+ new Among ( "\u00E2se\u015Fi", 29, 1, "", methodObject ),
+ new Among ( "i\u015Fi", -1, 1, "", methodObject ),
+ new Among ( "u\u015Fi", -1, 1, "", methodObject ),
+ new Among ( "\u00E2\u015Fi", -1, 1, "", methodObject ),
+ new Among ( "a\u0163i", -1, 2, "", methodObject ),
+ new Among ( "ea\u0163i", 38, 1, "", methodObject ),
+ new Among ( "ia\u0163i", 38, 1, "", methodObject ),
+ new Among ( "e\u0163i", -1, 2, "", methodObject ),
+ new Among ( "i\u0163i", -1, 2, "", methodObject ),
+ new Among ( "\u00E2\u0163i", -1, 2, "", methodObject ),
+ new Among ( "ar\u0103\u0163i", -1, 1, "", methodObject ),
+ new Among ( "ser\u0103\u0163i", -1, 2, "", methodObject ),
+ new Among ( "aser\u0103\u0163i", 45, 1, "", methodObject ),
+ new Among ( "seser\u0103\u0163i", 45, 2, "", methodObject ),
+ new Among ( "iser\u0103\u0163i", 45, 1, "", methodObject ),
+ new Among ( "user\u0103\u0163i", 45, 1, "", methodObject ),
+ new Among ( "\u00E2ser\u0103\u0163i", 45, 1, "", methodObject ),
+ new Among ( "ir\u0103\u0163i", -1, 1, "", methodObject ),
+ new Among ( "ur\u0103\u0163i", -1, 1, "", methodObject ),
+ new Among ( "\u00E2r\u0103\u0163i", -1, 1, "", methodObject ),
+ new Among ( "am", -1, 1, "", methodObject ),
+ new Among ( "eam", 54, 1, "", methodObject ),
+ new Among ( "iam", 54, 1, "", methodObject ),
+ new Among ( "em", -1, 2, "", methodObject ),
+ new Among ( "asem", 57, 1, "", methodObject ),
+ new Among ( "sesem", 57, 2, "", methodObject ),
+ new Among ( "isem", 57, 1, "", methodObject ),
+ new Among ( "usem", 57, 1, "", methodObject ),
+ new Among ( "\u00E2sem", 57, 1, "", methodObject ),
+ new Among ( "im", -1, 2, "", methodObject ),
+ new Among ( "\u00E2m", -1, 2, "", methodObject ),
+ new Among ( "\u0103m", -1, 2, "", methodObject ),
+ new Among ( "ar\u0103m", 65, 1, "", methodObject ),
+ new Among ( "ser\u0103m", 65, 2, "", methodObject ),
+ new Among ( "aser\u0103m", 67, 1, "", methodObject ),
+ new Among ( "seser\u0103m", 67, 2, "", methodObject ),
+ new Among ( "iser\u0103m", 67, 1, "", methodObject ),
+ new Among ( "user\u0103m", 67, 1, "", methodObject ),
+ new Among ( "\u00E2ser\u0103m", 67, 1, "", methodObject ),
+ new Among ( "ir\u0103m", 65, 1, "", methodObject ),
+ new Among ( "ur\u0103m", 65, 1, "", methodObject ),
+ new Among ( "\u00E2r\u0103m", 65, 1, "", methodObject ),
+ new Among ( "au", -1, 1, "", methodObject ),
+ new Among ( "eau", 76, 1, "", methodObject ),
+ new Among ( "iau", 76, 1, "", methodObject ),
+ new Among ( "indu", -1, 1, "", methodObject ),
+ new Among ( "\u00E2ndu", -1, 1, "", methodObject ),
+ new Among ( "ez", -1, 1, "", methodObject ),
+ new Among ( "easc\u0103", -1, 1, "", methodObject ),
+ new Among ( "ar\u0103", -1, 1, "", methodObject ),
+ new Among ( "ser\u0103", -1, 2, "", methodObject ),
+ new Among ( "aser\u0103", 84, 1, "", methodObject ),
+ new Among ( "seser\u0103", 84, 2, "", methodObject ),
+ new Among ( "iser\u0103", 84, 1, "", methodObject ),
+ new Among ( "user\u0103", 84, 1, "", methodObject ),
+ new Among ( "\u00E2ser\u0103", 84, 1, "", methodObject ),
+ new Among ( "ir\u0103", -1, 1, "", methodObject ),
+ new Among ( "ur\u0103", -1, 1, "", methodObject ),
+ new Among ( "\u00E2r\u0103", -1, 1, "", methodObject ),
+ new Among ( "eaz\u0103", -1, 1, "", methodObject )
+ };
+
+ private final static Among a_5[] = {
+ new Among ( "a", -1, 1, "", methodObject ),
+ new Among ( "e", -1, 1, "", methodObject ),
+ new Among ( "ie", 1, 1, "", methodObject ),
+ new Among ( "i", -1, 1, "", methodObject ),
+ new Among ( "\u0103", -1, 1, "", methodObject )
+ };
+
+ 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;
+ }
+
+ public boolean equals( Object o ) {
+ return o instanceof romanianStemmer;
+ }
+
+ public int hashCode() {
+ return romanianStemmer.class.getName().hashCode();
+ }
+
+
+
+}
+
--- /dev/null
+// This file was generated automatically by the Snowball to Java compiler
+
+package com.nexwave.stemmer.snowball.ext;
+
+import com.nexwave.stemmer.snowball.Among;
+
+ /**
+ * This class was automatically generated by a Snowball to Java compiler
+ * It implements the stemming algorithm defined by a snowball script.
+ */
+
+public class russianStemmer extends com.nexwave.stemmer.snowball.SnowballStemmer {
+
+private static final long serialVersionUID = 1L;
+
+ private final static russianStemmer methodObject = new russianStemmer ();
+
+ private final static Among a_0[] = {
+ new Among ( "\u0432", -1, 1, "", methodObject ),
+ new Among ( "\u0438\u0432", 0, 2, "", methodObject ),
+ new Among ( "\u044B\u0432", 0, 2, "", methodObject ),
+ new Among ( "\u0432\u0448\u0438", -1, 1, "", methodObject ),
+ new Among ( "\u0438\u0432\u0448\u0438", 3, 2, "", methodObject ),
+ new Among ( "\u044B\u0432\u0448\u0438", 3, 2, "", methodObject ),
+ new Among ( "\u0432\u0448\u0438\u0441\u044C", -1, 1, "", methodObject ),
+ new Among ( "\u0438\u0432\u0448\u0438\u0441\u044C", 6, 2, "", methodObject ),
+ new Among ( "\u044B\u0432\u0448\u0438\u0441\u044C", 6, 2, "", methodObject )
+ };
+
+ private final static Among a_1[] = {
+ new Among ( "\u0435\u0435", -1, 1, "", methodObject ),
+ new Among ( "\u0438\u0435", -1, 1, "", methodObject ),
+ new Among ( "\u043E\u0435", -1, 1, "", methodObject ),
+ new Among ( "\u044B\u0435", -1, 1, "", methodObject ),
+ new Among ( "\u0438\u043C\u0438", -1, 1, "", methodObject ),
+ new Among ( "\u044B\u043C\u0438", -1, 1, "", methodObject ),
+ new Among ( "\u0435\u0439", -1, 1, "", methodObject ),
+ new Among ( "\u0438\u0439", -1, 1, "", methodObject ),
+ new Among ( "\u043E\u0439", -1, 1, "", methodObject ),
+ new Among ( "\u044B\u0439", -1, 1, "", methodObject ),
+ new Among ( "\u0435\u043C", -1, 1, "", methodObject ),
+ new Among ( "\u0438\u043C", -1, 1, "", methodObject ),
+ new Among ( "\u043E\u043C", -1, 1, "", methodObject ),
+ new Among ( "\u044B\u043C", -1, 1, "", methodObject ),
+ new Among ( "\u0435\u0433\u043E", -1, 1, "", methodObject ),
+ new Among ( "\u043E\u0433\u043E", -1, 1, "", methodObject ),
+ new Among ( "\u0435\u043C\u0443", -1, 1, "", methodObject ),
+ new Among ( "\u043E\u043C\u0443", -1, 1, "", methodObject ),
+ new Among ( "\u0438\u0445", -1, 1, "", methodObject ),
+ new Among ( "\u044B\u0445", -1, 1, "", methodObject ),
+ new Among ( "\u0435\u044E", -1, 1, "", methodObject ),
+ new Among ( "\u043E\u044E", -1, 1, "", methodObject ),
+ new Among ( "\u0443\u044E", -1, 1, "", methodObject ),
+ new Among ( "\u044E\u044E", -1, 1, "", methodObject ),
+ new Among ( "\u0430\u044F", -1, 1, "", methodObject ),
+ new Among ( "\u044F\u044F", -1, 1, "", methodObject )
+ };
+
+ private final static Among a_2[] = {
+ new Among ( "\u0435\u043C", -1, 1, "", methodObject ),
+ new Among ( "\u043D\u043D", -1, 1, "", methodObject ),
+ new Among ( "\u0432\u0448", -1, 1, "", methodObject ),
+ new Among ( "\u0438\u0432\u0448", 2, 2, "", methodObject ),
+ new Among ( "\u044B\u0432\u0448", 2, 2, "", methodObject ),
+ new Among ( "\u0449", -1, 1, "", methodObject ),
+ new Among ( "\u044E\u0449", 5, 1, "", methodObject ),
+ new Among ( "\u0443\u044E\u0449", 6, 2, "", methodObject )
+ };
+
+ private final static Among a_3[] = {
+ new Among ( "\u0441\u044C", -1, 1, "", methodObject ),
+ new Among ( "\u0441\u044F", -1, 1, "", methodObject )
+ };
+
+ private final static Among a_4[] = {
+ new Among ( "\u043B\u0430", -1, 1, "", methodObject ),
+ new Among ( "\u0438\u043B\u0430", 0, 2, "", methodObject ),
+ new Among ( "\u044B\u043B\u0430", 0, 2, "", methodObject ),
+ new Among ( "\u043D\u0430", -1, 1, "", methodObject ),
+ new Among ( "\u0435\u043D\u0430", 3, 2, "", methodObject ),
+ new Among ( "\u0435\u0442\u0435", -1, 1, "", methodObject ),
+ new Among ( "\u0438\u0442\u0435", -1, 2, "", methodObject ),
+ new Among ( "\u0439\u0442\u0435", -1, 1, "", methodObject ),
+ new Among ( "\u0435\u0439\u0442\u0435", 7, 2, "", methodObject ),
+ new Among ( "\u0443\u0439\u0442\u0435", 7, 2, "", methodObject ),
+ new Among ( "\u043B\u0438", -1, 1, "", methodObject ),
+ new Among ( "\u0438\u043B\u0438", 10, 2, "", methodObject ),
+ new Among ( "\u044B\u043B\u0438", 10, 2, "", methodObject ),
+ new Among ( "\u0439", -1, 1, "", methodObject ),
+ new Among ( "\u0435\u0439", 13, 2, "", methodObject ),
+ new Among ( "\u0443\u0439", 13, 2, "", methodObject ),
+ new Among ( "\u043B", -1, 1, "", methodObject ),
+ new Among ( "\u0438\u043B", 16, 2, "", methodObject ),
+ new Among ( "\u044B\u043B", 16, 2, "", methodObject ),
+ new Among ( "\u0435\u043C", -1, 1, "", methodObject ),
+ new Among ( "\u0438\u043C", -1, 2, "", methodObject ),
+ new Among ( "\u044B\u043C", -1, 2, "", methodObject ),
+ new Among ( "\u043D", -1, 1, "", methodObject ),
+ new Among ( "\u0435\u043D", 22, 2, "", methodObject ),
+ new Among ( "\u043B\u043E", -1, 1, "", methodObject ),
+ new Among ( "\u0438\u043B\u043E", 24, 2, "", methodObject ),
+ new Among ( "\u044B\u043B\u043E", 24, 2, "", methodObject ),
+ new Among ( "\u043D\u043E", -1, 1, "", methodObject ),
+ new Among ( "\u0435\u043D\u043E", 27, 2, "", methodObject ),
+ new Among ( "\u043D\u043D\u043E", 27, 1, "", methodObject ),
+ new Among ( "\u0435\u0442", -1, 1, "", methodObject ),
+ new Among ( "\u0443\u0435\u0442", 30, 2, "", methodObject ),
+ new Among ( "\u0438\u0442", -1, 2, "", methodObject ),
+ new Among ( "\u044B\u0442", -1, 2, "", methodObject ),
+ new Among ( "\u044E\u0442", -1, 1, "", methodObject ),
+ new Among ( "\u0443\u044E\u0442", 34, 2, "", methodObject ),
+ new Among ( "\u044F\u0442", -1, 2, "", methodObject ),
+ new Among ( "\u043D\u044B", -1, 1, "", methodObject ),
+ new Among ( "\u0435\u043D\u044B", 37, 2, "", methodObject ),
+ new Among ( "\u0442\u044C", -1, 1, "", methodObject ),
+ new Among ( "\u0438\u0442\u044C", 39, 2, "", methodObject ),
+ new Among ( "\u044B\u0442\u044C", 39, 2, "", methodObject ),
+ new Among ( "\u0435\u0448\u044C", -1, 1, "", methodObject ),
+ new Among ( "\u0438\u0448\u044C", -1, 2, "", methodObject ),
+ new Among ( "\u044E", -1, 2, "", methodObject ),
+ new Among ( "\u0443\u044E", 44, 2, "", methodObject )
+ };
+
+ private final static Among a_5[] = {
+ new Among ( "\u0430", -1, 1, "", methodObject ),
+ new Among ( "\u0435\u0432", -1, 1, "", methodObject ),
+ new Among ( "\u043E\u0432", -1, 1, "", methodObject ),
+ new Among ( "\u0435", -1, 1, "", methodObject ),
+ new Among ( "\u0438\u0435", 3, 1, "", methodObject ),
+ new Among ( "\u044C\u0435", 3, 1, "", methodObject ),
+ new Among ( "\u0438", -1, 1, "", methodObject ),
+ new Among ( "\u0435\u0438", 6, 1, "", methodObject ),
+ new Among ( "\u0438\u0438", 6, 1, "", methodObject ),
+ new Among ( "\u0430\u043C\u0438", 6, 1, "", methodObject ),
+ new Among ( "\u044F\u043C\u0438", 6, 1, "", methodObject ),
+ new Among ( "\u0438\u044F\u043C\u0438", 10, 1, "", methodObject ),
+ new Among ( "\u0439", -1, 1, "", methodObject ),
+ new Among ( "\u0435\u0439", 12, 1, "", methodObject ),
+ new Among ( "\u0438\u0435\u0439", 13, 1, "", methodObject ),
+ new Among ( "\u0438\u0439", 12, 1, "", methodObject ),
+ new Among ( "\u043E\u0439", 12, 1, "", methodObject ),
+ new Among ( "\u0430\u043C", -1, 1, "", methodObject ),
+ new Among ( "\u0435\u043C", -1, 1, "", methodObject ),
+ new Among ( "\u0438\u0435\u043C", 18, 1, "", methodObject ),
+ new Among ( "\u043E\u043C", -1, 1, "", methodObject ),
+ new Among ( "\u044F\u043C", -1, 1, "", methodObject ),
+ new Among ( "\u0438\u044F\u043C", 21, 1, "", methodObject ),
+ new Among ( "\u043E", -1, 1, "", methodObject ),
+ new Among ( "\u0443", -1, 1, "", methodObject ),
+ new Among ( "\u0430\u0445", -1, 1, "", methodObject ),
+ new Among ( "\u044F\u0445", -1, 1, "", methodObject ),
+ new Among ( "\u0438\u044F\u0445", 26, 1, "", methodObject ),
+ new Among ( "\u044B", -1, 1, "", methodObject ),
+ new Among ( "\u044C", -1, 1, "", methodObject ),
+ new Among ( "\u044E", -1, 1, "", methodObject ),
+ new Among ( "\u0438\u044E", 30, 1, "", methodObject ),
+ new Among ( "\u044C\u044E", 30, 1, "", methodObject ),
+ new Among ( "\u044F", -1, 1, "", methodObject ),
+ new Among ( "\u0438\u044F", 33, 1, "", methodObject ),
+ new Among ( "\u044C\u044F", 33, 1, "", methodObject )
+ };
+
+ private final static Among a_6[] = {
+ new Among ( "\u043E\u0441\u0442", -1, 1, "", methodObject ),
+ new Among ( "\u043E\u0441\u0442\u044C", -1, 1, "", methodObject )
+ };
+
+ private final static Among a_7[] = {
+ new Among ( "\u0435\u0439\u0448\u0435", -1, 1, "", methodObject ),
+ new Among ( "\u043D", -1, 2, "", methodObject ),
+ new Among ( "\u0435\u0439\u0448", -1, 1, "", methodObject ),
+ new Among ( "\u044C", -1, 3, "", methodObject )
+ };
+
+ 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;
+ }
+
+ public boolean equals( Object o ) {
+ return o instanceof russianStemmer;
+ }
+
+ public int hashCode() {
+ return russianStemmer.class.getName().hashCode();
+ }
+
+
+
+}
+
--- /dev/null
+// This file was generated automatically by the Snowball to Java compiler
+
+package com.nexwave.stemmer.snowball.ext;
+
+import com.nexwave.stemmer.snowball.Among;
+
+ /**
+ * This class was automatically generated by a Snowball to Java compiler
+ * It implements the stemming algorithm defined by a snowball script.
+ */
+
+public class spanishStemmer extends com.nexwave.stemmer.snowball.SnowballStemmer {
+
+private static final long serialVersionUID = 1L;
+
+ private final static spanishStemmer methodObject = new spanishStemmer ();
+
+ private final static Among a_0[] = {
+ new Among ( "", -1, 6, "", methodObject ),
+ new Among ( "\u00E1", 0, 1, "", methodObject ),
+ new Among ( "\u00E9", 0, 2, "", methodObject ),
+ new Among ( "\u00ED", 0, 3, "", methodObject ),
+ new Among ( "\u00F3", 0, 4, "", methodObject ),
+ new Among ( "\u00FA", 0, 5, "", methodObject )
+ };
+
+ private final static Among a_1[] = {
+ new Among ( "la", -1, -1, "", methodObject ),
+ new Among ( "sela", 0, -1, "", methodObject ),
+ new Among ( "le", -1, -1, "", methodObject ),
+ new Among ( "me", -1, -1, "", methodObject ),
+ new Among ( "se", -1, -1, "", methodObject ),
+ new Among ( "lo", -1, -1, "", methodObject ),
+ new Among ( "selo", 5, -1, "", methodObject ),
+ new Among ( "las", -1, -1, "", methodObject ),
+ new Among ( "selas", 7, -1, "", methodObject ),
+ new Among ( "les", -1, -1, "", methodObject ),
+ new Among ( "los", -1, -1, "", methodObject ),
+ new Among ( "selos", 10, -1, "", methodObject ),
+ new Among ( "nos", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_2[] = {
+ new Among ( "ando", -1, 6, "", methodObject ),
+ new Among ( "iendo", -1, 6, "", methodObject ),
+ new Among ( "yendo", -1, 7, "", methodObject ),
+ new Among ( "\u00E1ndo", -1, 2, "", methodObject ),
+ new Among ( "i\u00E9ndo", -1, 1, "", methodObject ),
+ new Among ( "ar", -1, 6, "", methodObject ),
+ new Among ( "er", -1, 6, "", methodObject ),
+ new Among ( "ir", -1, 6, "", methodObject ),
+ new Among ( "\u00E1r", -1, 3, "", methodObject ),
+ new Among ( "\u00E9r", -1, 4, "", methodObject ),
+ new Among ( "\u00EDr", -1, 5, "", methodObject )
+ };
+
+ private final static Among a_3[] = {
+ new Among ( "ic", -1, -1, "", methodObject ),
+ new Among ( "ad", -1, -1, "", methodObject ),
+ new Among ( "os", -1, -1, "", methodObject ),
+ new Among ( "iv", -1, 1, "", methodObject )
+ };
+
+ private final static Among a_4[] = {
+ new Among ( "able", -1, 1, "", methodObject ),
+ new Among ( "ible", -1, 1, "", methodObject ),
+ new Among ( "ante", -1, 1, "", methodObject )
+ };
+
+ private final static Among a_5[] = {
+ new Among ( "ic", -1, 1, "", methodObject ),
+ new Among ( "abil", -1, 1, "", methodObject ),
+ new Among ( "iv", -1, 1, "", methodObject )
+ };
+
+ private final static Among a_6[] = {
+ new Among ( "ica", -1, 1, "", methodObject ),
+ new Among ( "ancia", -1, 2, "", methodObject ),
+ new Among ( "encia", -1, 5, "", methodObject ),
+ new Among ( "adora", -1, 2, "", methodObject ),
+ new Among ( "osa", -1, 1, "", methodObject ),
+ new Among ( "ista", -1, 1, "", methodObject ),
+ new Among ( "iva", -1, 9, "", methodObject ),
+ new Among ( "anza", -1, 1, "", methodObject ),
+ new Among ( "log\u00EDa", -1, 3, "", methodObject ),
+ new Among ( "idad", -1, 8, "", methodObject ),
+ new Among ( "able", -1, 1, "", methodObject ),
+ new Among ( "ible", -1, 1, "", methodObject ),
+ new Among ( "ante", -1, 2, "", methodObject ),
+ new Among ( "mente", -1, 7, "", methodObject ),
+ new Among ( "amente", 13, 6, "", methodObject ),
+ new Among ( "aci\u00F3n", -1, 2, "", methodObject ),
+ new Among ( "uci\u00F3n", -1, 4, "", methodObject ),
+ new Among ( "ico", -1, 1, "", methodObject ),
+ new Among ( "ismo", -1, 1, "", methodObject ),
+ new Among ( "oso", -1, 1, "", methodObject ),
+ new Among ( "amiento", -1, 1, "", methodObject ),
+ new Among ( "imiento", -1, 1, "", methodObject ),
+ new Among ( "ivo", -1, 9, "", methodObject ),
+ new Among ( "ador", -1, 2, "", methodObject ),
+ new Among ( "icas", -1, 1, "", methodObject ),
+ new Among ( "ancias", -1, 2, "", methodObject ),
+ new Among ( "encias", -1, 5, "", methodObject ),
+ new Among ( "adoras", -1, 2, "", methodObject ),
+ new Among ( "osas", -1, 1, "", methodObject ),
+ new Among ( "istas", -1, 1, "", methodObject ),
+ new Among ( "ivas", -1, 9, "", methodObject ),
+ new Among ( "anzas", -1, 1, "", methodObject ),
+ new Among ( "log\u00EDas", -1, 3, "", methodObject ),
+ new Among ( "idades", -1, 8, "", methodObject ),
+ new Among ( "ables", -1, 1, "", methodObject ),
+ new Among ( "ibles", -1, 1, "", methodObject ),
+ new Among ( "aciones", -1, 2, "", methodObject ),
+ new Among ( "uciones", -1, 4, "", methodObject ),
+ new Among ( "adores", -1, 2, "", methodObject ),
+ new Among ( "antes", -1, 2, "", methodObject ),
+ new Among ( "icos", -1, 1, "", methodObject ),
+ new Among ( "ismos", -1, 1, "", methodObject ),
+ new Among ( "osos", -1, 1, "", methodObject ),
+ new Among ( "amientos", -1, 1, "", methodObject ),
+ new Among ( "imientos", -1, 1, "", methodObject ),
+ new Among ( "ivos", -1, 9, "", methodObject )
+ };
+
+ private final static Among a_7[] = {
+ new Among ( "ya", -1, 1, "", methodObject ),
+ new Among ( "ye", -1, 1, "", methodObject ),
+ new Among ( "yan", -1, 1, "", methodObject ),
+ new Among ( "yen", -1, 1, "", methodObject ),
+ new Among ( "yeron", -1, 1, "", methodObject ),
+ new Among ( "yendo", -1, 1, "", methodObject ),
+ new Among ( "yo", -1, 1, "", methodObject ),
+ new Among ( "yas", -1, 1, "", methodObject ),
+ new Among ( "yes", -1, 1, "", methodObject ),
+ new Among ( "yais", -1, 1, "", methodObject ),
+ new Among ( "yamos", -1, 1, "", methodObject ),
+ new Among ( "y\u00F3", -1, 1, "", methodObject )
+ };
+
+ private final static Among a_8[] = {
+ new Among ( "aba", -1, 2, "", methodObject ),
+ new Among ( "ada", -1, 2, "", methodObject ),
+ new Among ( "ida", -1, 2, "", methodObject ),
+ new Among ( "ara", -1, 2, "", methodObject ),
+ new Among ( "iera", -1, 2, "", methodObject ),
+ new Among ( "\u00EDa", -1, 2, "", methodObject ),
+ new Among ( "ar\u00EDa", 5, 2, "", methodObject ),
+ new Among ( "er\u00EDa", 5, 2, "", methodObject ),
+ new Among ( "ir\u00EDa", 5, 2, "", methodObject ),
+ new Among ( "ad", -1, 2, "", methodObject ),
+ new Among ( "ed", -1, 2, "", methodObject ),
+ new Among ( "id", -1, 2, "", methodObject ),
+ new Among ( "ase", -1, 2, "", methodObject ),
+ new Among ( "iese", -1, 2, "", methodObject ),
+ new Among ( "aste", -1, 2, "", methodObject ),
+ new Among ( "iste", -1, 2, "", methodObject ),
+ new Among ( "an", -1, 2, "", methodObject ),
+ new Among ( "aban", 16, 2, "", methodObject ),
+ new Among ( "aran", 16, 2, "", methodObject ),
+ new Among ( "ieran", 16, 2, "", methodObject ),
+ new Among ( "\u00EDan", 16, 2, "", methodObject ),
+ new Among ( "ar\u00EDan", 20, 2, "", methodObject ),
+ new Among ( "er\u00EDan", 20, 2, "", methodObject ),
+ new Among ( "ir\u00EDan", 20, 2, "", methodObject ),
+ new Among ( "en", -1, 1, "", methodObject ),
+ new Among ( "asen", 24, 2, "", methodObject ),
+ new Among ( "iesen", 24, 2, "", methodObject ),
+ new Among ( "aron", -1, 2, "", methodObject ),
+ new Among ( "ieron", -1, 2, "", methodObject ),
+ new Among ( "ar\u00E1n", -1, 2, "", methodObject ),
+ new Among ( "er\u00E1n", -1, 2, "", methodObject ),
+ new Among ( "ir\u00E1n", -1, 2, "", methodObject ),
+ new Among ( "ado", -1, 2, "", methodObject ),
+ new Among ( "ido", -1, 2, "", methodObject ),
+ new Among ( "ando", -1, 2, "", methodObject ),
+ new Among ( "iendo", -1, 2, "", methodObject ),
+ new Among ( "ar", -1, 2, "", methodObject ),
+ new Among ( "er", -1, 2, "", methodObject ),
+ new Among ( "ir", -1, 2, "", methodObject ),
+ new Among ( "as", -1, 2, "", methodObject ),
+ new Among ( "abas", 39, 2, "", methodObject ),
+ new Among ( "adas", 39, 2, "", methodObject ),
+ new Among ( "idas", 39, 2, "", methodObject ),
+ new Among ( "aras", 39, 2, "", methodObject ),
+ new Among ( "ieras", 39, 2, "", methodObject ),
+ new Among ( "\u00EDas", 39, 2, "", methodObject ),
+ new Among ( "ar\u00EDas", 45, 2, "", methodObject ),
+ new Among ( "er\u00EDas", 45, 2, "", methodObject ),
+ new Among ( "ir\u00EDas", 45, 2, "", methodObject ),
+ new Among ( "es", -1, 1, "", methodObject ),
+ new Among ( "ases", 49, 2, "", methodObject ),
+ new Among ( "ieses", 49, 2, "", methodObject ),
+ new Among ( "abais", -1, 2, "", methodObject ),
+ new Among ( "arais", -1, 2, "", methodObject ),
+ new Among ( "ierais", -1, 2, "", methodObject ),
+ new Among ( "\u00EDais", -1, 2, "", methodObject ),
+ new Among ( "ar\u00EDais", 55, 2, "", methodObject ),
+ new Among ( "er\u00EDais", 55, 2, "", methodObject ),
+ new Among ( "ir\u00EDais", 55, 2, "", methodObject ),
+ new Among ( "aseis", -1, 2, "", methodObject ),
+ new Among ( "ieseis", -1, 2, "", methodObject ),
+ new Among ( "asteis", -1, 2, "", methodObject ),
+ new Among ( "isteis", -1, 2, "", methodObject ),
+ new Among ( "\u00E1is", -1, 2, "", methodObject ),
+ new Among ( "\u00E9is", -1, 1, "", methodObject ),
+ new Among ( "ar\u00E9is", 64, 2, "", methodObject ),
+ new Among ( "er\u00E9is", 64, 2, "", methodObject ),
+ new Among ( "ir\u00E9is", 64, 2, "", methodObject ),
+ new Among ( "ados", -1, 2, "", methodObject ),
+ new Among ( "idos", -1, 2, "", methodObject ),
+ new Among ( "amos", -1, 2, "", methodObject ),
+ new Among ( "\u00E1bamos", 70, 2, "", methodObject ),
+ new Among ( "\u00E1ramos", 70, 2, "", methodObject ),
+ new Among ( "i\u00E9ramos", 70, 2, "", methodObject ),
+ new Among ( "\u00EDamos", 70, 2, "", methodObject ),
+ new Among ( "ar\u00EDamos", 74, 2, "", methodObject ),
+ new Among ( "er\u00EDamos", 74, 2, "", methodObject ),
+ new Among ( "ir\u00EDamos", 74, 2, "", methodObject ),
+ new Among ( "emos", -1, 1, "", methodObject ),
+ new Among ( "aremos", 78, 2, "", methodObject ),
+ new Among ( "eremos", 78, 2, "", methodObject ),
+ new Among ( "iremos", 78, 2, "", methodObject ),
+ new Among ( "\u00E1semos", 78, 2, "", methodObject ),
+ new Among ( "i\u00E9semos", 78, 2, "", methodObject ),
+ new Among ( "imos", -1, 2, "", methodObject ),
+ new Among ( "ar\u00E1s", -1, 2, "", methodObject ),
+ new Among ( "er\u00E1s", -1, 2, "", methodObject ),
+ new Among ( "ir\u00E1s", -1, 2, "", methodObject ),
+ new Among ( "\u00EDs", -1, 2, "", methodObject ),
+ new Among ( "ar\u00E1", -1, 2, "", methodObject ),
+ new Among ( "er\u00E1", -1, 2, "", methodObject ),
+ new Among ( "ir\u00E1", -1, 2, "", methodObject ),
+ new Among ( "ar\u00E9", -1, 2, "", methodObject ),
+ new Among ( "er\u00E9", -1, 2, "", methodObject ),
+ new Among ( "ir\u00E9", -1, 2, "", methodObject ),
+ new Among ( "i\u00F3", -1, 2, "", methodObject )
+ };
+
+ private final static Among a_9[] = {
+ new Among ( "a", -1, 1, "", methodObject ),
+ new Among ( "e", -1, 2, "", methodObject ),
+ new Among ( "o", -1, 1, "", methodObject ),
+ new Among ( "os", -1, 1, "", methodObject ),
+ new Among ( "\u00E1", -1, 1, "", methodObject ),
+ new Among ( "\u00E9", -1, 2, "", methodObject ),
+ new Among ( "\u00ED", -1, 1, "", methodObject ),
+ new Among ( "\u00F3", -1, 1, "", methodObject )
+ };
+
+ private static final char g_v[] = {17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 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;
+ }
+
+ public boolean equals( Object o ) {
+ return o instanceof spanishStemmer;
+ }
+
+ public int hashCode() {
+ return spanishStemmer.class.getName().hashCode();
+ }
+
+
+
+}
+
--- /dev/null
+// This file was generated automatically by the Snowball to Java compiler
+
+package com.nexwave.stemmer.snowball.ext;
+
+import com.nexwave.stemmer.snowball.Among;
+
+ /**
+ * This class was automatically generated by a Snowball to Java compiler
+ * It implements the stemming algorithm defined by a snowball script.
+ */
+
+public class swedishStemmer extends com.nexwave.stemmer.snowball.SnowballStemmer {
+
+private static final long serialVersionUID = 1L;
+
+ private final static swedishStemmer methodObject = new swedishStemmer ();
+
+ private final static Among a_0[] = {
+ new Among ( "a", -1, 1, "", methodObject ),
+ new Among ( "arna", 0, 1, "", methodObject ),
+ new Among ( "erna", 0, 1, "", methodObject ),
+ new Among ( "heterna", 2, 1, "", methodObject ),
+ new Among ( "orna", 0, 1, "", methodObject ),
+ new Among ( "ad", -1, 1, "", methodObject ),
+ new Among ( "e", -1, 1, "", methodObject ),
+ new Among ( "ade", 6, 1, "", methodObject ),
+ new Among ( "ande", 6, 1, "", methodObject ),
+ new Among ( "arne", 6, 1, "", methodObject ),
+ new Among ( "are", 6, 1, "", methodObject ),
+ new Among ( "aste", 6, 1, "", methodObject ),
+ new Among ( "en", -1, 1, "", methodObject ),
+ new Among ( "anden", 12, 1, "", methodObject ),
+ new Among ( "aren", 12, 1, "", methodObject ),
+ new Among ( "heten", 12, 1, "", methodObject ),
+ new Among ( "ern", -1, 1, "", methodObject ),
+ new Among ( "ar", -1, 1, "", methodObject ),
+ new Among ( "er", -1, 1, "", methodObject ),
+ new Among ( "heter", 18, 1, "", methodObject ),
+ new Among ( "or", -1, 1, "", methodObject ),
+ new Among ( "s", -1, 2, "", methodObject ),
+ new Among ( "as", 21, 1, "", methodObject ),
+ new Among ( "arnas", 22, 1, "", methodObject ),
+ new Among ( "ernas", 22, 1, "", methodObject ),
+ new Among ( "ornas", 22, 1, "", methodObject ),
+ new Among ( "es", 21, 1, "", methodObject ),
+ new Among ( "ades", 26, 1, "", methodObject ),
+ new Among ( "andes", 26, 1, "", methodObject ),
+ new Among ( "ens", 21, 1, "", methodObject ),
+ new Among ( "arens", 29, 1, "", methodObject ),
+ new Among ( "hetens", 29, 1, "", methodObject ),
+ new Among ( "erns", 21, 1, "", methodObject ),
+ new Among ( "at", -1, 1, "", methodObject ),
+ new Among ( "andet", -1, 1, "", methodObject ),
+ new Among ( "het", -1, 1, "", methodObject ),
+ new Among ( "ast", -1, 1, "", methodObject )
+ };
+
+ private final static Among a_1[] = {
+ new Among ( "dd", -1, -1, "", methodObject ),
+ new Among ( "gd", -1, -1, "", methodObject ),
+ new Among ( "nn", -1, -1, "", methodObject ),
+ new Among ( "dt", -1, -1, "", methodObject ),
+ new Among ( "gt", -1, -1, "", methodObject ),
+ new Among ( "kt", -1, -1, "", methodObject ),
+ new Among ( "tt", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_2[] = {
+ new Among ( "ig", -1, 1, "", methodObject ),
+ new Among ( "lig", 0, 1, "", methodObject ),
+ new Among ( "els", -1, 1, "", methodObject ),
+ new Among ( "fullt", -1, 3, "", methodObject ),
+ new Among ( "l\u00F6st", -1, 2, "", methodObject )
+ };
+
+ 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;
+ }
+
+ public boolean equals( Object o ) {
+ return o instanceof swedishStemmer;
+ }
+
+ public int hashCode() {
+ return swedishStemmer.class.getName().hashCode();
+ }
+
+
+
+}
+
--- /dev/null
+// This file was generated automatically by the Snowball to Java compiler
+
+package com.nexwave.stemmer.snowball.ext;
+
+import com.nexwave.stemmer.snowball.Among;
+
+ /**
+ * This class was automatically generated by a Snowball to Java compiler
+ * It implements the stemming algorithm defined by a snowball script.
+ */
+
+public class turkishStemmer extends com.nexwave.stemmer.snowball.SnowballStemmer {
+
+private static final long serialVersionUID = 1L;
+
+ private final static turkishStemmer methodObject = new turkishStemmer ();
+
+ private final static Among a_0[] = {
+ new Among ( "m", -1, -1, "", methodObject ),
+ new Among ( "n", -1, -1, "", methodObject ),
+ new Among ( "miz", -1, -1, "", methodObject ),
+ new Among ( "niz", -1, -1, "", methodObject ),
+ new Among ( "muz", -1, -1, "", methodObject ),
+ new Among ( "nuz", -1, -1, "", methodObject ),
+ new Among ( "m\u00FCz", -1, -1, "", methodObject ),
+ new Among ( "n\u00FCz", -1, -1, "", methodObject ),
+ new Among ( "m\u0131z", -1, -1, "", methodObject ),
+ new Among ( "n\u0131z", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_1[] = {
+ new Among ( "leri", -1, -1, "", methodObject ),
+ new Among ( "lar\u0131", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_2[] = {
+ new Among ( "ni", -1, -1, "", methodObject ),
+ new Among ( "nu", -1, -1, "", methodObject ),
+ new Among ( "n\u00FC", -1, -1, "", methodObject ),
+ new Among ( "n\u0131", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_3[] = {
+ new Among ( "in", -1, -1, "", methodObject ),
+ new Among ( "un", -1, -1, "", methodObject ),
+ new Among ( "\u00FCn", -1, -1, "", methodObject ),
+ new Among ( "\u0131n", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_4[] = {
+ new Among ( "a", -1, -1, "", methodObject ),
+ new Among ( "e", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_5[] = {
+ new Among ( "na", -1, -1, "", methodObject ),
+ new Among ( "ne", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_6[] = {
+ new Among ( "da", -1, -1, "", methodObject ),
+ new Among ( "ta", -1, -1, "", methodObject ),
+ new Among ( "de", -1, -1, "", methodObject ),
+ new Among ( "te", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_7[] = {
+ new Among ( "nda", -1, -1, "", methodObject ),
+ new Among ( "nde", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_8[] = {
+ new Among ( "dan", -1, -1, "", methodObject ),
+ new Among ( "tan", -1, -1, "", methodObject ),
+ new Among ( "den", -1, -1, "", methodObject ),
+ new Among ( "ten", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_9[] = {
+ new Among ( "ndan", -1, -1, "", methodObject ),
+ new Among ( "nden", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_10[] = {
+ new Among ( "la", -1, -1, "", methodObject ),
+ new Among ( "le", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_11[] = {
+ new Among ( "ca", -1, -1, "", methodObject ),
+ new Among ( "ce", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_12[] = {
+ new Among ( "im", -1, -1, "", methodObject ),
+ new Among ( "um", -1, -1, "", methodObject ),
+ new Among ( "\u00FCm", -1, -1, "", methodObject ),
+ new Among ( "\u0131m", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_13[] = {
+ new Among ( "sin", -1, -1, "", methodObject ),
+ new Among ( "sun", -1, -1, "", methodObject ),
+ new Among ( "s\u00FCn", -1, -1, "", methodObject ),
+ new Among ( "s\u0131n", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_14[] = {
+ new Among ( "iz", -1, -1, "", methodObject ),
+ new Among ( "uz", -1, -1, "", methodObject ),
+ new Among ( "\u00FCz", -1, -1, "", methodObject ),
+ new Among ( "\u0131z", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_15[] = {
+ new Among ( "siniz", -1, -1, "", methodObject ),
+ new Among ( "sunuz", -1, -1, "", methodObject ),
+ new Among ( "s\u00FCn\u00FCz", -1, -1, "", methodObject ),
+ new Among ( "s\u0131n\u0131z", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_16[] = {
+ new Among ( "lar", -1, -1, "", methodObject ),
+ new Among ( "ler", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_17[] = {
+ new Among ( "niz", -1, -1, "", methodObject ),
+ new Among ( "nuz", -1, -1, "", methodObject ),
+ new Among ( "n\u00FCz", -1, -1, "", methodObject ),
+ new Among ( "n\u0131z", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_18[] = {
+ new Among ( "dir", -1, -1, "", methodObject ),
+ new Among ( "tir", -1, -1, "", methodObject ),
+ new Among ( "dur", -1, -1, "", methodObject ),
+ new Among ( "tur", -1, -1, "", methodObject ),
+ new Among ( "d\u00FCr", -1, -1, "", methodObject ),
+ new Among ( "t\u00FCr", -1, -1, "", methodObject ),
+ new Among ( "d\u0131r", -1, -1, "", methodObject ),
+ new Among ( "t\u0131r", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_19[] = {
+ new Among ( "cas\u0131na", -1, -1, "", methodObject ),
+ new Among ( "cesine", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_20[] = {
+ new Among ( "di", -1, -1, "", methodObject ),
+ new Among ( "ti", -1, -1, "", methodObject ),
+ new Among ( "dik", -1, -1, "", methodObject ),
+ new Among ( "tik", -1, -1, "", methodObject ),
+ new Among ( "duk", -1, -1, "", methodObject ),
+ new Among ( "tuk", -1, -1, "", methodObject ),
+ new Among ( "d\u00FCk", -1, -1, "", methodObject ),
+ new Among ( "t\u00FCk", -1, -1, "", methodObject ),
+ new Among ( "d\u0131k", -1, -1, "", methodObject ),
+ new Among ( "t\u0131k", -1, -1, "", methodObject ),
+ new Among ( "dim", -1, -1, "", methodObject ),
+ new Among ( "tim", -1, -1, "", methodObject ),
+ new Among ( "dum", -1, -1, "", methodObject ),
+ new Among ( "tum", -1, -1, "", methodObject ),
+ new Among ( "d\u00FCm", -1, -1, "", methodObject ),
+ new Among ( "t\u00FCm", -1, -1, "", methodObject ),
+ new Among ( "d\u0131m", -1, -1, "", methodObject ),
+ new Among ( "t\u0131m", -1, -1, "", methodObject ),
+ new Among ( "din", -1, -1, "", methodObject ),
+ new Among ( "tin", -1, -1, "", methodObject ),
+ new Among ( "dun", -1, -1, "", methodObject ),
+ new Among ( "tun", -1, -1, "", methodObject ),
+ new Among ( "d\u00FCn", -1, -1, "", methodObject ),
+ new Among ( "t\u00FCn", -1, -1, "", methodObject ),
+ new Among ( "d\u0131n", -1, -1, "", methodObject ),
+ new Among ( "t\u0131n", -1, -1, "", methodObject ),
+ new Among ( "du", -1, -1, "", methodObject ),
+ new Among ( "tu", -1, -1, "", methodObject ),
+ new Among ( "d\u00FC", -1, -1, "", methodObject ),
+ new Among ( "t\u00FC", -1, -1, "", methodObject ),
+ new Among ( "d\u0131", -1, -1, "", methodObject ),
+ new Among ( "t\u0131", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_21[] = {
+ new Among ( "sa", -1, -1, "", methodObject ),
+ new Among ( "se", -1, -1, "", methodObject ),
+ new Among ( "sak", -1, -1, "", methodObject ),
+ new Among ( "sek", -1, -1, "", methodObject ),
+ new Among ( "sam", -1, -1, "", methodObject ),
+ new Among ( "sem", -1, -1, "", methodObject ),
+ new Among ( "san", -1, -1, "", methodObject ),
+ new Among ( "sen", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_22[] = {
+ new Among ( "mi\u015F", -1, -1, "", methodObject ),
+ new Among ( "mu\u015F", -1, -1, "", methodObject ),
+ new Among ( "m\u00FC\u015F", -1, -1, "", methodObject ),
+ new Among ( "m\u0131\u015F", -1, -1, "", methodObject )
+ };
+
+ private final static Among a_23[] = {
+ new Among ( "b", -1, 1, "", methodObject ),
+ new Among ( "c", -1, 2, "", methodObject ),
+ new Among ( "d", -1, 3, "", methodObject ),
+ new Among ( "\u011F", -1, 4, "", methodObject )
+ };
+
+ 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;
+ }
+
+ public boolean equals( Object o ) {
+ return o instanceof turkishStemmer;
+ }
+
+ public int hashCode() {
+ return turkishStemmer.class.getName().hashCode();
+ }
+
+
+
+}
+
+++ /dev/null
-common use requirement for technical publications groups is to produce a Web-based help format that includes a table of contents pane, a search feature,
-
-and an index similar to what you get from the Microsoft HTML Help (.chm) format or Eclipse help. If the content is help for a Web application that is not
-
-exposed to the Internet or requires that the user be logged in, then it is impossible to use services like Google to add search.
-
-You must use xhtml output because the search indexer cannot index html.
-
-No support for stemming. If you search for "start" it will not find "started" and vice versa.
body {
- margin: 0;
- padding: 0;
+ font: 12px Verdana, Geneva, sans-serif;
}
p, ul, ol, li {
- font: 10pt Arial, geneva, helvetica;
+ font: 10pt Verdana, Geneva, sans-serif;
}
h1 {
- font: bold 14pt Arial, Helvetica, geneva;
+ font: bold 15pt Arial, Helvetica, geneva;
}
+
h2 {
- font: bold 12pt Arial, Helvetica, geneva;
+ font: bold 14pt Arial, Helvetica, geneva;
}
+
#header {
background: white url(../images/gov-header-bg.gif) repeat-x;
position: fixed;
width: 100%;
- height: 88px;
+ height: 90px;
top: 0;
right: 0;
bottom: auto;
border-bottom: 2px solid #cccccc;
z-index: 2000;
}
+
#leftnavigation {
/* background-color:#91e7b3;*/
overflow: auto;
position: fixed;
height: auto;
- top: 88px;
+ top: 90px;
bottom: 0;
left: 0;
width: 230px;
margin: 0 0 0 10px;
- overflow: auto;
+ z-index: 1500;
}
#content {
position: relative;
- top: 88px;
- /* left: 240px;*/
- right: auto;
- /* bottom: 20px; */
+ top: 90px; /* left: 240px;*/
+ right: auto; /* bottom: 20px; */
margin: 0px 0px 0px 240px;
width: auto;
height: inherit;
padding-left: 5px;
padding-right: 12px;
color: #000000;
- border-left: 2px solid #cccccc; /*overflow :scroll;*/
+ border-left: 2px solid #cccccc; /*overflow :scroll;*/
z-index: 1000;
}
#content h1, #content h2 {
color: #cc0000;
}
-
.navfooter {
- bottom: 2%;
+ bottom: 2%;
}
-
-.searchFieldSet {
- font-size: 68.75%;
+.pointLeft {
+ background: url("../images/showHideTreeIcons.png") 0 0 no-repeat;
+ height: 28px;
+ width: 15px;
+ display: block;
+ font-size: 0;
}
-
-.pointLeft{
- background:url("../images/showHideTreeIcons.png") 0 0 no-repeat ;
- height:28px;
- width:15px;
- display:block;
- font-size:0;
-}
-
-.pointRight{
+.pointRight {
background: url("../images/showHideTreeIcons.png") -15px 0 no-repeat;
- height:28px;
- display:block;
- font-size:0;
+ height: 28px;
+ display: block;
+ font-size: 0;
}
\ No newline at end of file
version="1.0" xmlns="http://www.w3.org/1999/xhtml">
<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/chunk.xsl"/>
-
+
<xsl:include href="keywords.xsl"/>
<!--TODO check how html and xml behaves-->
<xsl:param name="direction.align.start">left</xsl:param>
<xsl:param name="direction.align.end">right</xsl:param>
<xsl:variable name="tree.cookie.id" select="concat( 'treeview-', count(//node()) )"/>
+ <xsl:param name="indexer.language">en</xsl:param>
<!-- Custom params! -->
<xsl:param name="chunker.output.indent">no</xsl:param>
<xsl:param name="navig.showtitles">0</xsl:param>
-
+
<xsl:param name="manifest.in.base.dir" select="0"/>
<xsl:param name="base.dir" select="concat($frameset.base.dir,'/content/')"/>
<xsl:param name="suppress.navigation">0</xsl:param>
</i18n>
<xsl:template name="user.head.content">
- <!--xsl:message>
+ <!-- <xsl:message>
tree.cookie.id = <xsl:value-of select="$tree.cookie.id"/> +++ <xsl:value-of select="count(//node())"/>
- </xsl:message-->
+ $indexer.language = <xsl:value-of select="$indexer.language"/> +++ <xsl:value-of select="count(//node())"/>
+ </xsl:message>-->
<script type="text/javascript">
//The id for tree cookie
var treeCookieId = "<xsl:value-of select="$tree.cookie.id"/>";
-
+ var language = "<xsl:value-of select="$indexer.language"/>";
+
//Localization
txt_filesfound = '<xsl:call-template name="gentext">
<xsl:with-param name="key" select="'txt_filesfound'"/>
</xsl:call-template>";
txt_results_for = "<xsl:call-template name="gentext">
<xsl:with-param name="key" select="'txt_results_for'"/>
- </xsl:call-template>";
+ </xsl:call-template>";
</script>
<style type="text/css">
input {
- margin-bottom: 5px;
- margin-top: 2px;
+ margin-bottom: 5px;
+ margin-top: 2px;
}
.folder {
- display: block;
- height: 22px;
- padding-left: 20px;
- background: transparent url(../common/jquery/treeview/images/folder.gif) 0 0px no-repeat;
+ display: block;
+ height: 22px;
+ padding-left: 20px;
+ background: transparent url(../common/jquery/treeview/images/folder.gif) 0 0px no-repeat;
}
- <!--[if IE]>
+ <!--[if IE]>
input {
margin-bottom: 5px;
margin-top: 2px;
}
<![endif]-->
- </style>
+ </style>
<link rel="stylesheet" type="text/css" href="../common/css/positioning.css"/>
<link rel="stylesheet" type="text/css" href="../common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css"/>
<link rel="stylesheet" type="text/css" href="../common/jquery/treeview/jquery.treeview.css"/>
<script type="text/javascript" src="search/nwSearchFnt.js">
<xsl:comment></xsl:comment>
</script>
- <script type="text/javascript" src="search/stemmers/stemmer.js">
+
+ <!--
+ NOTE: Stemmer javascript files should be in format <language>_stemmer.js.
+ For example, for English(en), source should be: "search/stemmers/en_stemmer.js"
+ For country codes, see: http://www.uspto.gov/patft/help/helpctry.htm
+ -->
+ <!--<xsl:message><xsl:value-of select="concat('search/stemmers/',$indexer.language,'_stemmer.js')"/></xsl:message>-->
+ <script type="text/javascript" src="{concat('search/stemmers/',$indexer.language,'_stemmer.js')}">
<xsl:comment>//make this scalable to other languages as well.</xsl:comment>
</script>
</xsl:template>
<xsl:call-template name="webhelptoctoc"/>
<xsl:if test="$exclude.search.from.chunked.html != 'true'">
<xsl:call-template name="search"/>
- </xsl:if-->
+ </xsl:if-->
</xsl:template>
<xsl:template name="user.header.content">
- <div>
+ <div>
<a id="showHideButton" onclick="showHideToc();" class="pointLeft" title="Hide TOC tree">.</a>
</div>
</xsl:template>
- <xsl:template name="user.footer.navigation">
+ <xsl:template name="user.footer.navigation">
<xsl:call-template name="webhelptoc">
<xsl:with-param name="currentid" select="generate-id(.)"/>
</xsl:call-template>
</xsl:template>
<xsl:template match="/">
- <xsl:message>language:
- <xsl:value-of select="$l10n.gentext.language"/>
- </xsl:message>
+ <xsl:message>language: <xsl:value-of select="$indexer.language"/> </xsl:message>
<xsl:choose>
<xsl:when test="$rootid != ''">
<xsl:choose>
</xsl:if>
</xsl:template>
-<xsl:template name="chunk-element-content">
- <xsl:param name="prev"/>
- <xsl:param name="next"/>
- <xsl:param name="nav.context"/>
- <xsl:param name="content">
- <xsl:apply-imports/>
- </xsl:param>
+ <xsl:template name="chunk-element-content">
+ <xsl:param name="prev"/>
+ <xsl:param name="next"/>
+ <xsl:param name="nav.context"/>
+ <xsl:param name="content">
+ <xsl:apply-imports/>
+ </xsl:param>
+
+ <xsl:call-template name="user.preroot"/>
- <xsl:call-template name="user.preroot"/>
+ <html>
+ <xsl:call-template name="html.head">
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="next" select="$next"/>
+ </xsl:call-template>
- <html>
- <xsl:call-template name="html.head">
- <xsl:with-param name="prev" select="$prev"/>
- <xsl:with-param name="next" select="$next"/>
- </xsl:call-template>
+ <body>
+ <xsl:call-template name="body.attributes"/>
- <body>
- <xsl:call-template name="body.attributes"/>
+ <xsl:call-template name="user.header.navigation">
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="nav.context" select="$nav.context"/>
+ </xsl:call-template>
- <xsl:call-template name="user.header.navigation">
- <xsl:with-param name="prev" select="$prev"/>
- <xsl:with-param name="next" select="$next"/>
- <xsl:with-param name="nav.context" select="$nav.context"/>
- </xsl:call-template>
+ <div id="content">
- <div id="content">
+ <xsl:call-template name="user.header.content"/>
- <xsl:call-template name="user.header.content"/>
+ <xsl:copy-of select="$content"/>
- <xsl:copy-of select="$content"/>
+ <xsl:call-template name="user.footer.content"/>
- <xsl:call-template name="user.footer.content"/>
+ <xsl:call-template name="footer.navigation">
+ <xsl:with-param name="prev" select="$prev"/>
+ <xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="nav.context" select="$nav.context"/>
+ </xsl:call-template>
+ </div>
- <xsl:call-template name="footer.navigation">
- <xsl:with-param name="prev" select="$prev"/>
- <xsl:with-param name="next" select="$next"/>
- <xsl:with-param name="nav.context" select="$nav.context"/>
- </xsl:call-template>
- </div>
-
- <xsl:call-template name="user.footer.navigation"/>
- </body>
- </html>
- <xsl:value-of select="$chunk.append"/>
-</xsl:template>
+ <xsl:call-template name="user.footer.navigation"/>
+ </body>
+ </html>
+ <xsl:value-of select="$chunk.append"/>
+ </xsl:template>
-<!-- The Header with the company logo -->
-<xsl:template name="webhelpheader">
- <xsl:param name="prev"/>
- <xsl:param name="next"/>
- <xsl:param name="nav.context"/>
+ <!-- The Header with the company logo -->
+ <xsl:template name="webhelpheader">
+ <xsl:param name="prev"/>
+ <xsl:param name="next"/>
+ <xsl:param name="nav.context"/>
- <xsl:variable name="home" select="/*[1]"/>
- <xsl:variable name="up" select="parent::*"/>
+ <xsl:variable name="home" select="/*[1]"/>
+ <xsl:variable name="up" select="parent::*"/>
<div id="header">
<img style='margin-right: 2px; height: 59px; padding-right: 25px; padding-top: 8px' align="right"
</xsl:choose>
</h1>
- <!-- Prev and Next links generation-->
+ <!-- Prev and Next links generation-->
<div id="navheader" align="right">
<!--xsl:with-param name="prev" select="$prev"/>
<xsl:with-param name="next" select="$next"/>
<xsl:choose>
<xsl:when test="count($up)>0
and generate-id($up) != generate-id($home)">
- |
+ |
<a accesskey="u">
<xsl:attribute name="href">
<xsl:call-template name="href.target">
</xsl:if>
</xsl:if>
</div>
-
+
</div>
</xsl:template>
<xsl:template name="webhelptoc">
- <xsl:param name="currentid"/>
+ <xsl:param name="currentid"/>
<xsl:choose>
<xsl:when test="$rootid != ''">
<xsl:variable name="title">
</xsl:variable>
<div>
- <div id="leftnavigation" style="padding-top:3px;">
+ <div id="leftnavigation" style="padding-top:3px; background-color:white;">
<div id="tabs">
<ul>
<li>
<xsl:template
match="book|part|reference|preface|chapter|bibliography|appendix|article|glossary|section|simplesect|sect1|sect2|sect3|sect4|sect5|refentry|colophon|bibliodiv|index"
mode="webhelptoc">
- <xsl:param name="currentid"/>
+ <xsl:param name="currentid"/>
<xsl:variable name="title">
<xsl:if test="$eclipse.autolabel=1">
<xsl:variable name="label.markup">
<xsl:if test="not(self::index) or (self::index and not($generate.index = 0))">
<!--li style="white-space: pre; line-height: 0em;"-->
- <li>
- <xsl:if test="$id = $currentid">
- <xsl:attribute name="id">webhelp-currentid</xsl:attribute>
- </xsl:if>
+ <li>
+ <xsl:if test="$id = $currentid">
+ <xsl:attribute name="id">webhelp-currentid</xsl:attribute>
+ </xsl:if>
<span class="file">
<a href="{substring-after($href,concat($frameset.base.dir,'/content/'))}">
<xsl:value-of select="$title"/>
<xsl:apply-templates
select="part|reference|preface|chapter|bibliography|appendix|article|glossary|section|simplesect|sect1|sect2|sect3|sect4|sect5|refentry|colophon|bibliodiv"
mode="webhelptoc">
- <xsl:with-param name="currentid" select="$currentid"/>
- </xsl:apply-templates>
+ <xsl:with-param name="currentid" select="$currentid"/>
+ </xsl:apply-templates>
</ul>
</xsl:if>
</li>
<xsl:template match="text()" mode="webhelptoc"/>
<xsl:template name="user.footer.content">
- <script type="text/javascript" src="../common/main.js">
- <xsl:comment></xsl:comment>
- </script>
+ <script type="text/javascript" src="../common/main.js">
+ <xsl:comment></xsl:comment>
+ </script>
</xsl:template>
<xsl:template name="index.html">
<xsl:variable name="default.topic">
- <xsl:choose>
- <xsl:when test="$htmlhelp.default.topic != ''">
- <xsl:value-of select="$htmlhelp.default.topic"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="make-relative-filename">
- <xsl:with-param name="base.dir"/>
- <xsl:with-param name="base.name">
- <xsl:choose>
- <xsl:when test="$rootid != ''">
- <xsl:apply-templates select="key('id',$rootid)" mode="chunk-filename"/>
+ <xsl:choose>
+ <xsl:when test="$htmlhelp.default.topic != ''">
+ <xsl:value-of select="$htmlhelp.default.topic"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="make-relative-filename">
+ <xsl:with-param name="base.dir"/>
+ <xsl:with-param name="base.name">
+ <xsl:choose>
+ <xsl:when test="$rootid != ''">
+ <xsl:apply-templates select="key('id',$rootid)" mode="chunk-filename"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates
+ select="*/*[self::preface|self::chapter|self::appendix|self::part][1]"
+ mode="chunk-filename"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="filename">
+ <!-- <xsl:if test="$manifest.in.base.dir != 0"> -->
+ <!-- <xsl:value-of select="$base.dir"/> -->
+ <!-- </xsl:if> -->
+ <xsl:choose>
+ <xsl:when test="$chunk.frameset.start.filename">
+ <xsl:value-of select="concat($frameset.base.dir,'/',$chunk.frameset.start.filename)"/>
</xsl:when>
<xsl:otherwise>
- <xsl:apply-templates select="*/*[self::preface|self::chapter|self::appendix|self::part][1]" mode="chunk-filename"/>
+ <xsl:value-of select="'index.html'"/>
</xsl:otherwise>
- </xsl:choose>
- </xsl:with-param>
- </xsl:call-template>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:call-template name="write.chunk">
- <xsl:with-param name="filename">
- <!-- <xsl:if test="$manifest.in.base.dir != 0"> -->
- <!-- <xsl:value-of select="$base.dir"/> -->
- <!-- </xsl:if> -->
- <xsl:choose>
- <xsl:when test="$chunk.frameset.start.filename"><xsl:value-of select="concat($frameset.base.dir,'/',$chunk.frameset.start.filename)"/></xsl:when>
- <xsl:otherwise><xsl:value-of select="'index.html'"/></xsl:otherwise>
- </xsl:choose>
- </xsl:with-param>
- <xsl:with-param name="method" select="'xml'"/>
- <xsl:with-param name="encoding" select="'utf-8'"/>
- <xsl:with-param name="indent" select="'yes'"/>
- <xsl:with-param name="content">
- <html>
- <head>
- <meta http-equiv="Refresh" content="0; URL=content/ch01.html"/>
- <title><xsl:value-of select="//title[1]"/> </title>
- <!-- Call template "metatags" to add copyright and date meta tags: -->
- </head>
- </html>
- </xsl:with-param>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="method" select="'xml'"/>
+ <xsl:with-param name="encoding" select="'utf-8'"/>
+ <xsl:with-param name="indent" select="'yes'"/>
+ <xsl:with-param name="content">
+ <html>
+ <head>
+ <meta http-equiv="Refresh" content="0; URL=content/ch01.html"/>
+ <title><xsl:value-of select="//title[1]"/> 
+ </title>
+ <!-- Call template "metatags" to add copyright and date meta tags: -->
+ </head>
+ </html>
+ </xsl:with-param>
</xsl:call-template>
- </xsl:template>
+ </xsl:template>
<xsl:template name="web.xml">