pylucene 3.5.0-3
[pylucene.git] / lucene-java-3.5.0 / lucene / contrib / analyzers / common / src / java / org / tartarus / snowball / ext / LovinsStemmer.java
diff --git a/lucene-java-3.5.0/lucene/contrib/analyzers/common/src/java/org/tartarus/snowball/ext/LovinsStemmer.java b/lucene-java-3.5.0/lucene/contrib/analyzers/common/src/java/org/tartarus/snowball/ext/LovinsStemmer.java
new file mode 100644 (file)
index 0000000..c64d5ef
--- /dev/null
@@ -0,0 +1,1908 @@
+// This file was generated automatically by the Snowball to Java compiler
+
+package org.tartarus.snowball.ext;
+import org.tartarus.snowball.SnowballProgram;
+import org.tartarus.snowball.Among;
+
+/**
+ * Generated class implementing code defined by a snowball script.
+ */
+public class LovinsStemmer extends SnowballProgram {
+
+        private Among a_0[] = {
+            new Among ( "d", -1, -1, "", this),
+            new Among ( "f", -1, -1, "", this),
+            new Among ( "ph", -1, -1, "", this),
+            new Among ( "th", -1, -1, "", this),
+            new Among ( "l", -1, -1, "", this),
+            new Among ( "er", -1, -1, "", this),
+            new Among ( "or", -1, -1, "", this),
+            new Among ( "es", -1, -1, "", this),
+            new Among ( "t", -1, -1, "", this)
+        };
+
+        private Among a_1[] = {
+            new Among ( "s'", -1, 1, "r_A", this),
+            new Among ( "a", -1, 1, "r_A", this),
+            new Among ( "ia", 1, 1, "r_A", this),
+            new Among ( "ata", 1, 1, "r_A", this),
+            new Among ( "ic", -1, 1, "r_A", this),
+            new Among ( "aic", 4, 1, "r_A", this),
+            new Among ( "allic", 4, 1, "r_BB", this),
+            new Among ( "aric", 4, 1, "r_A", this),
+            new Among ( "atic", 4, 1, "r_B", this),
+            new Among ( "itic", 4, 1, "r_H", this),
+            new Among ( "antic", 4, 1, "r_C", this),
+            new Among ( "istic", 4, 1, "r_A", this),
+            new Among ( "alistic", 11, 1, "r_B", this),
+            new Among ( "aristic", 11, 1, "r_A", this),
+            new Among ( "ivistic", 11, 1, "r_A", this),
+            new Among ( "ed", -1, 1, "r_E", this),
+            new Among ( "anced", 15, 1, "r_B", this),
+            new Among ( "enced", 15, 1, "r_A", this),
+            new Among ( "ished", 15, 1, "r_A", this),
+            new Among ( "ied", 15, 1, "r_A", this),
+            new Among ( "ened", 15, 1, "r_E", this),
+            new Among ( "ioned", 15, 1, "r_A", this),
+            new Among ( "ated", 15, 1, "r_I", this),
+            new Among ( "ented", 15, 1, "r_C", this),
+            new Among ( "ized", 15, 1, "r_F", this),
+            new Among ( "arized", 24, 1, "r_A", this),
+            new Among ( "oid", -1, 1, "r_A", this),
+            new Among ( "aroid", 26, 1, "r_A", this),
+            new Among ( "hood", -1, 1, "r_A", this),
+            new Among ( "ehood", 28, 1, "r_A", this),
+            new Among ( "ihood", 28, 1, "r_A", this),
+            new Among ( "elihood", 30, 1, "r_E", this),
+            new Among ( "ward", -1, 1, "r_A", this),
+            new Among ( "e", -1, 1, "r_A", this),
+            new Among ( "ae", 33, 1, "r_A", this),
+            new Among ( "ance", 33, 1, "r_B", this),
+            new Among ( "icance", 35, 1, "r_A", this),
+            new Among ( "ence", 33, 1, "r_A", this),
+            new Among ( "ide", 33, 1, "r_L", this),
+            new Among ( "icide", 38, 1, "r_A", this),
+            new Among ( "otide", 38, 1, "r_A", this),
+            new Among ( "age", 33, 1, "r_B", this),
+            new Among ( "able", 33, 1, "r_A", this),
+            new Among ( "atable", 42, 1, "r_A", this),
+            new Among ( "izable", 42, 1, "r_E", this),
+            new Among ( "arizable", 44, 1, "r_A", this),
+            new Among ( "ible", 33, 1, "r_A", this),
+            new Among ( "encible", 46, 1, "r_A", this),
+            new Among ( "ene", 33, 1, "r_E", this),
+            new Among ( "ine", 33, 1, "r_M", this),
+            new Among ( "idine", 49, 1, "r_I", this),
+            new Among ( "one", 33, 1, "r_R", this),
+            new Among ( "ature", 33, 1, "r_E", this),
+            new Among ( "eature", 52, 1, "r_Z", this),
+            new Among ( "ese", 33, 1, "r_A", this),
+            new Among ( "wise", 33, 1, "r_A", this),
+            new Among ( "ate", 33, 1, "r_A", this),
+            new Among ( "entiate", 56, 1, "r_A", this),
+            new Among ( "inate", 56, 1, "r_A", this),
+            new Among ( "ionate", 56, 1, "r_D", this),
+            new Among ( "ite", 33, 1, "r_AA", this),
+            new Among ( "ive", 33, 1, "r_A", this),
+            new Among ( "ative", 61, 1, "r_A", this),
+            new Among ( "ize", 33, 1, "r_F", this),
+            new Among ( "alize", 63, 1, "r_A", this),
+            new Among ( "icalize", 64, 1, "r_A", this),
+            new Among ( "ialize", 64, 1, "r_A", this),
+            new Among ( "entialize", 66, 1, "r_A", this),
+            new Among ( "ionalize", 64, 1, "r_A", this),
+            new Among ( "arize", 63, 1, "r_A", this),
+            new Among ( "ing", -1, 1, "r_N", this),
+            new Among ( "ancing", 70, 1, "r_B", this),
+            new Among ( "encing", 70, 1, "r_A", this),
+            new Among ( "aging", 70, 1, "r_B", this),
+            new Among ( "ening", 70, 1, "r_E", this),
+            new Among ( "ioning", 70, 1, "r_A", this),
+            new Among ( "ating", 70, 1, "r_I", this),
+            new Among ( "enting", 70, 1, "r_C", this),
+            new Among ( "ying", 70, 1, "r_B", this),
+            new Among ( "izing", 70, 1, "r_F", this),
+            new Among ( "arizing", 79, 1, "r_A", this),
+            new Among ( "ish", -1, 1, "r_C", this),
+            new Among ( "yish", 81, 1, "r_A", this),
+            new Among ( "i", -1, 1, "r_A", this),
+            new Among ( "al", -1, 1, "r_BB", this),
+            new Among ( "ical", 84, 1, "r_A", this),
+            new Among ( "aical", 85, 1, "r_A", this),
+            new Among ( "istical", 85, 1, "r_A", this),
+            new Among ( "oidal", 84, 1, "r_A", this),
+            new Among ( "eal", 84, 1, "r_Y", this),
+            new Among ( "ial", 84, 1, "r_A", this),
+            new Among ( "ancial", 90, 1, "r_A", this),
+            new Among ( "arial", 90, 1, "r_A", this),
+            new Among ( "ential", 90, 1, "r_A", this),
+            new Among ( "ional", 84, 1, "r_A", this),
+            new Among ( "ational", 94, 1, "r_B", this),
+            new Among ( "izational", 95, 1, "r_A", this),
+            new Among ( "ental", 84, 1, "r_A", this),
+            new Among ( "ful", -1, 1, "r_A", this),
+            new Among ( "eful", 98, 1, "r_A", this),
+            new Among ( "iful", 98, 1, "r_A", this),
+            new Among ( "yl", -1, 1, "r_R", this),
+            new Among ( "ism", -1, 1, "r_B", this),
+            new Among ( "icism", 102, 1, "r_A", this),
+            new Among ( "oidism", 102, 1, "r_A", this),
+            new Among ( "alism", 102, 1, "r_B", this),
+            new Among ( "icalism", 105, 1, "r_A", this),
+            new Among ( "ionalism", 105, 1, "r_A", this),
+            new Among ( "inism", 102, 1, "r_J", this),
+            new Among ( "ativism", 102, 1, "r_A", this),
+            new Among ( "um", -1, 1, "r_U", this),
+            new Among ( "ium", 110, 1, "r_A", this),
+            new Among ( "ian", -1, 1, "r_A", this),
+            new Among ( "ician", 112, 1, "r_A", this),
+            new Among ( "en", -1, 1, "r_F", this),
+            new Among ( "ogen", 114, 1, "r_A", this),
+            new Among ( "on", -1, 1, "r_S", this),
+            new Among ( "ion", 116, 1, "r_Q", this),
+            new Among ( "ation", 117, 1, "r_B", this),
+            new Among ( "ication", 118, 1, "r_G", this),
+            new Among ( "entiation", 118, 1, "r_A", this),
+            new Among ( "ination", 118, 1, "r_A", this),
+            new Among ( "isation", 118, 1, "r_A", this),
+            new Among ( "arisation", 122, 1, "r_A", this),
+            new Among ( "entation", 118, 1, "r_A", this),
+            new Among ( "ization", 118, 1, "r_F", this),
+            new Among ( "arization", 125, 1, "r_A", this),
+            new Among ( "action", 117, 1, "r_G", this),
+            new Among ( "o", -1, 1, "r_A", this),
+            new Among ( "ar", -1, 1, "r_X", this),
+            new Among ( "ear", 129, 1, "r_Y", this),
+            new Among ( "ier", -1, 1, "r_A", this),
+            new Among ( "ariser", -1, 1, "r_A", this),
+            new Among ( "izer", -1, 1, "r_F", this),
+            new Among ( "arizer", 133, 1, "r_A", this),
+            new Among ( "or", -1, 1, "r_T", this),
+            new Among ( "ator", 135, 1, "r_A", this),
+            new Among ( "s", -1, 1, "r_W", this),
+            new Among ( "'s", 137, 1, "r_A", this),
+            new Among ( "as", 137, 1, "r_B", this),
+            new Among ( "ics", 137, 1, "r_A", this),
+            new Among ( "istics", 140, 1, "r_A", this),
+            new Among ( "es", 137, 1, "r_E", this),
+            new Among ( "ances", 142, 1, "r_B", this),
+            new Among ( "ences", 142, 1, "r_A", this),
+            new Among ( "ides", 142, 1, "r_L", this),
+            new Among ( "oides", 145, 1, "r_A", this),
+            new Among ( "ages", 142, 1, "r_B", this),
+            new Among ( "ies", 142, 1, "r_P", this),
+            new Among ( "acies", 148, 1, "r_A", this),
+            new Among ( "ancies", 148, 1, "r_A", this),
+            new Among ( "encies", 148, 1, "r_A", this),
+            new Among ( "aries", 148, 1, "r_A", this),
+            new Among ( "ities", 148, 1, "r_A", this),
+            new Among ( "alities", 153, 1, "r_A", this),
+            new Among ( "ivities", 153, 1, "r_A", this),
+            new Among ( "ines", 142, 1, "r_M", this),
+            new Among ( "nesses", 142, 1, "r_A", this),
+            new Among ( "ates", 142, 1, "r_A", this),
+            new Among ( "atives", 142, 1, "r_A", this),
+            new Among ( "ings", 137, 1, "r_N", this),
+            new Among ( "is", 137, 1, "r_A", this),
+            new Among ( "als", 137, 1, "r_BB", this),
+            new Among ( "ials", 162, 1, "r_A", this),
+            new Among ( "entials", 163, 1, "r_A", this),
+            new Among ( "ionals", 162, 1, "r_A", this),
+            new Among ( "isms", 137, 1, "r_B", this),
+            new Among ( "ians", 137, 1, "r_A", this),
+            new Among ( "icians", 167, 1, "r_A", this),
+            new Among ( "ions", 137, 1, "r_B", this),
+            new Among ( "ations", 169, 1, "r_B", this),
+            new Among ( "arisations", 170, 1, "r_A", this),
+            new Among ( "entations", 170, 1, "r_A", this),
+            new Among ( "izations", 170, 1, "r_A", this),
+            new Among ( "arizations", 173, 1, "r_A", this),
+            new Among ( "ars", 137, 1, "r_O", this),
+            new Among ( "iers", 137, 1, "r_A", this),
+            new Among ( "izers", 137, 1, "r_F", this),
+            new Among ( "ators", 137, 1, "r_A", this),
+            new Among ( "less", 137, 1, "r_A", this),
+            new Among ( "eless", 179, 1, "r_A", this),
+            new Among ( "ness", 137, 1, "r_A", this),
+            new Among ( "eness", 181, 1, "r_E", this),
+            new Among ( "ableness", 182, 1, "r_A", this),
+            new Among ( "eableness", 183, 1, "r_E", this),
+            new Among ( "ibleness", 182, 1, "r_A", this),
+            new Among ( "ateness", 182, 1, "r_A", this),
+            new Among ( "iteness", 182, 1, "r_A", this),
+            new Among ( "iveness", 182, 1, "r_A", this),
+            new Among ( "ativeness", 188, 1, "r_A", this),
+            new Among ( "ingness", 181, 1, "r_A", this),
+            new Among ( "ishness", 181, 1, "r_A", this),
+            new Among ( "iness", 181, 1, "r_A", this),
+            new Among ( "ariness", 192, 1, "r_E", this),
+            new Among ( "alness", 181, 1, "r_A", this),
+            new Among ( "icalness", 194, 1, "r_A", this),
+            new Among ( "antialness", 194, 1, "r_A", this),
+            new Among ( "entialness", 194, 1, "r_A", this),
+            new Among ( "ionalness", 194, 1, "r_A", this),
+            new Among ( "fulness", 181, 1, "r_A", this),
+            new Among ( "lessness", 181, 1, "r_A", this),
+            new Among ( "ousness", 181, 1, "r_A", this),
+            new Among ( "eousness", 201, 1, "r_A", this),
+            new Among ( "iousness", 201, 1, "r_A", this),
+            new Among ( "itousness", 201, 1, "r_A", this),
+            new Among ( "entness", 181, 1, "r_A", this),
+            new Among ( "ants", 137, 1, "r_B", this),
+            new Among ( "ists", 137, 1, "r_A", this),
+            new Among ( "icists", 207, 1, "r_A", this),
+            new Among ( "us", 137, 1, "r_V", this),
+            new Among ( "ous", 209, 1, "r_A", this),
+            new Among ( "eous", 210, 1, "r_A", this),
+            new Among ( "aceous", 211, 1, "r_A", this),
+            new Among ( "antaneous", 211, 1, "r_A", this),
+            new Among ( "ious", 210, 1, "r_A", this),
+            new Among ( "acious", 214, 1, "r_B", this),
+            new Among ( "itous", 210, 1, "r_A", this),
+            new Among ( "ant", -1, 1, "r_B", this),
+            new Among ( "icant", 217, 1, "r_A", this),
+            new Among ( "ent", -1, 1, "r_C", this),
+            new Among ( "ement", 219, 1, "r_A", this),
+            new Among ( "izement", 220, 1, "r_A", this),
+            new Among ( "ist", -1, 1, "r_A", this),
+            new Among ( "icist", 222, 1, "r_A", this),
+            new Among ( "alist", 222, 1, "r_A", this),
+            new Among ( "icalist", 224, 1, "r_A", this),
+            new Among ( "ialist", 224, 1, "r_A", this),
+            new Among ( "ionist", 222, 1, "r_A", this),
+            new Among ( "entist", 222, 1, "r_A", this),
+            new Among ( "y", -1, 1, "r_B", this),
+            new Among ( "acy", 229, 1, "r_A", this),
+            new Among ( "ancy", 229, 1, "r_B", this),
+            new Among ( "ency", 229, 1, "r_A", this),
+            new Among ( "ly", 229, 1, "r_B", this),
+            new Among ( "ealy", 233, 1, "r_Y", this),
+            new Among ( "ably", 233, 1, "r_A", this),
+            new Among ( "ibly", 233, 1, "r_A", this),
+            new Among ( "edly", 233, 1, "r_E", this),
+            new Among ( "iedly", 237, 1, "r_A", this),
+            new Among ( "ely", 233, 1, "r_E", this),
+            new Among ( "ately", 239, 1, "r_A", this),
+            new Among ( "ively", 239, 1, "r_A", this),
+            new Among ( "atively", 241, 1, "r_A", this),
+            new Among ( "ingly", 233, 1, "r_B", this),
+            new Among ( "atingly", 243, 1, "r_A", this),
+            new Among ( "ily", 233, 1, "r_A", this),
+            new Among ( "lily", 245, 1, "r_A", this),
+            new Among ( "arily", 245, 1, "r_A", this),
+            new Among ( "ally", 233, 1, "r_B", this),
+            new Among ( "ically", 248, 1, "r_A", this),
+            new Among ( "aically", 249, 1, "r_A", this),
+            new Among ( "allically", 249, 1, "r_C", this),
+            new Among ( "istically", 249, 1, "r_A", this),
+            new Among ( "alistically", 252, 1, "r_B", this),
+            new Among ( "oidally", 248, 1, "r_A", this),
+            new Among ( "ially", 248, 1, "r_A", this),
+            new Among ( "entially", 255, 1, "r_A", this),
+            new Among ( "ionally", 248, 1, "r_A", this),
+            new Among ( "ationally", 257, 1, "r_B", this),
+            new Among ( "izationally", 258, 1, "r_B", this),
+            new Among ( "entally", 248, 1, "r_A", this),
+            new Among ( "fully", 233, 1, "r_A", this),
+            new Among ( "efully", 261, 1, "r_A", this),
+            new Among ( "ifully", 261, 1, "r_A", this),
+            new Among ( "enly", 233, 1, "r_E", this),
+            new Among ( "arly", 233, 1, "r_K", this),
+            new Among ( "early", 265, 1, "r_Y", this),
+            new Among ( "lessly", 233, 1, "r_A", this),
+            new Among ( "ously", 233, 1, "r_A", this),
+            new Among ( "eously", 268, 1, "r_A", this),
+            new Among ( "iously", 268, 1, "r_A", this),
+            new Among ( "ently", 233, 1, "r_A", this),
+            new Among ( "ary", 229, 1, "r_F", this),
+            new Among ( "ery", 229, 1, "r_E", this),
+            new Among ( "icianry", 229, 1, "r_A", this),
+            new Among ( "atory", 229, 1, "r_A", this),
+            new Among ( "ity", 229, 1, "r_A", this),
+            new Among ( "acity", 276, 1, "r_A", this),
+            new Among ( "icity", 276, 1, "r_A", this),
+            new Among ( "eity", 276, 1, "r_A", this),
+            new Among ( "ality", 276, 1, "r_A", this),
+            new Among ( "icality", 280, 1, "r_A", this),
+            new Among ( "iality", 280, 1, "r_A", this),
+            new Among ( "antiality", 282, 1, "r_A", this),
+            new Among ( "entiality", 282, 1, "r_A", this),
+            new Among ( "ionality", 280, 1, "r_A", this),
+            new Among ( "elity", 276, 1, "r_A", this),
+            new Among ( "ability", 276, 1, "r_A", this),
+            new Among ( "izability", 287, 1, "r_A", this),
+            new Among ( "arizability", 288, 1, "r_A", this),
+            new Among ( "ibility", 276, 1, "r_A", this),
+            new Among ( "inity", 276, 1, "r_CC", this),
+            new Among ( "arity", 276, 1, "r_B", this),
+            new Among ( "ivity", 276, 1, "r_A", this)
+        };
+
+        private Among a_2[] = {
+            new Among ( "bb", -1, -1, "", this),
+            new Among ( "dd", -1, -1, "", this),
+            new Among ( "gg", -1, -1, "", this),
+            new Among ( "ll", -1, -1, "", this),
+            new Among ( "mm", -1, -1, "", this),
+            new Among ( "nn", -1, -1, "", this),
+            new Among ( "pp", -1, -1, "", this),
+            new Among ( "rr", -1, -1, "", this),
+            new Among ( "ss", -1, -1, "", this),
+            new Among ( "tt", -1, -1, "", this)
+        };
+
+        private Among a_3[] = {
+            new Among ( "uad", -1, 18, "", this),
+            new Among ( "vad", -1, 19, "", this),
+            new Among ( "cid", -1, 20, "", this),
+            new Among ( "lid", -1, 21, "", this),
+            new Among ( "erid", -1, 22, "", this),
+            new Among ( "pand", -1, 23, "", this),
+            new Among ( "end", -1, 24, "", this),
+            new Among ( "ond", -1, 25, "", this),
+            new Among ( "lud", -1, 26, "", this),
+            new Among ( "rud", -1, 27, "", this),
+            new Among ( "ul", -1, 9, "", this),
+            new Among ( "her", -1, 28, "", this),
+            new Among ( "metr", -1, 7, "", this),
+            new Among ( "istr", -1, 6, "", this),
+            new Among ( "urs", -1, 5, "", this),
+            new Among ( "uct", -1, 2, "", this),
+            new Among ( "et", -1, 32, "", this),
+            new Among ( "mit", -1, 29, "", this),
+            new Among ( "ent", -1, 30, "", this),
+            new Among ( "umpt", -1, 3, "", this),
+            new Among ( "rpt", -1, 4, "", this),
+            new Among ( "ert", -1, 31, "", this),
+            new Among ( "yt", -1, 33, "", this),
+            new Among ( "iev", -1, 1, "", this),
+            new Among ( "olv", -1, 8, "", this),
+            new Among ( "ax", -1, 14, "", this),
+            new Among ( "ex", -1, 15, "", this),
+            new Among ( "bex", 26, 10, "", this),
+            new Among ( "dex", 26, 11, "", this),
+            new Among ( "pex", 26, 12, "", this),
+            new Among ( "tex", 26, 13, "", this),
+            new Among ( "ix", -1, 16, "", this),
+            new Among ( "lux", -1, 17, "", this),
+            new Among ( "yz", -1, 34, "", this)
+        };
+
+
+        private void copy_from(LovinsStemmer other) {
+            super.copy_from(other);
+        }
+
+        private boolean r_A() {
+            // (, line 21
+            // hop, line 21
+            {
+                int c = cursor - 2;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            return true;
+        }
+
+        private boolean r_B() {
+            // (, line 22
+            // hop, line 22
+            {
+                int c = cursor - 3;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            return true;
+        }
+
+        private boolean r_C() {
+            // (, line 23
+            // hop, line 23
+            {
+                int c = cursor - 4;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            return true;
+        }
+
+        private boolean r_D() {
+            // (, line 24
+            // hop, line 24
+            {
+                int c = cursor - 5;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            return true;
+        }
+
+        private boolean r_E() {
+            int v_1;
+            int v_2;
+            // (, line 25
+            // test, line 25
+            v_1 = limit - cursor;
+            // hop, line 25
+            {
+                int c = cursor - 2;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            cursor = limit - v_1;
+            // not, line 25
+            {
+                v_2 = limit - cursor;
+                lab0: do {
+                    // literal, line 25
+                    if (!(eq_s_b(1, "e")))
+                    {
+                        break lab0;
+                    }
+                    return false;
+                } while (false);
+                cursor = limit - v_2;
+            }
+            return true;
+        }
+
+        private boolean r_F() {
+            int v_1;
+            int v_2;
+            // (, line 26
+            // test, line 26
+            v_1 = limit - cursor;
+            // hop, line 26
+            {
+                int c = cursor - 3;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            cursor = limit - v_1;
+            // not, line 26
+            {
+                v_2 = limit - cursor;
+                lab0: do {
+                    // literal, line 26
+                    if (!(eq_s_b(1, "e")))
+                    {
+                        break lab0;
+                    }
+                    return false;
+                } while (false);
+                cursor = limit - v_2;
+            }
+            return true;
+        }
+
+        private boolean r_G() {
+            int v_1;
+            // (, line 27
+            // test, line 27
+            v_1 = limit - cursor;
+            // hop, line 27
+            {
+                int c = cursor - 3;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            cursor = limit - v_1;
+            // literal, line 27
+            if (!(eq_s_b(1, "f")))
+            {
+                return false;
+            }
+            return true;
+        }
+
+        private boolean r_H() {
+            int v_1;
+            int v_2;
+            // (, line 28
+            // test, line 28
+            v_1 = limit - cursor;
+            // hop, line 28
+            {
+                int c = cursor - 2;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            cursor = limit - v_1;
+            // or, line 28
+            lab0: do {
+                v_2 = limit - cursor;
+                lab1: do {
+                    // literal, line 28
+                    if (!(eq_s_b(1, "t")))
+                    {
+                        break lab1;
+                    }
+                    break lab0;
+                } while (false);
+                cursor = limit - v_2;
+                // literal, line 28
+                if (!(eq_s_b(2, "ll")))
+                {
+                    return false;
+                }
+            } while (false);
+            return true;
+        }
+
+        private boolean r_I() {
+            int v_1;
+            int v_2;
+            int v_3;
+            // (, line 29
+            // test, line 29
+            v_1 = limit - cursor;
+            // hop, line 29
+            {
+                int c = cursor - 2;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            cursor = limit - v_1;
+            // not, line 29
+            {
+                v_2 = limit - cursor;
+                lab0: do {
+                    // literal, line 29
+                    if (!(eq_s_b(1, "o")))
+                    {
+                        break lab0;
+                    }
+                    return false;
+                } while (false);
+                cursor = limit - v_2;
+            }
+            // not, line 29
+            {
+                v_3 = limit - cursor;
+                lab1: do {
+                    // literal, line 29
+                    if (!(eq_s_b(1, "e")))
+                    {
+                        break lab1;
+                    }
+                    return false;
+                } while (false);
+                cursor = limit - v_3;
+            }
+            return true;
+        }
+
+        private boolean r_J() {
+            int v_1;
+            int v_2;
+            int v_3;
+            // (, line 30
+            // test, line 30
+            v_1 = limit - cursor;
+            // hop, line 30
+            {
+                int c = cursor - 2;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            cursor = limit - v_1;
+            // not, line 30
+            {
+                v_2 = limit - cursor;
+                lab0: do {
+                    // literal, line 30
+                    if (!(eq_s_b(1, "a")))
+                    {
+                        break lab0;
+                    }
+                    return false;
+                } while (false);
+                cursor = limit - v_2;
+            }
+            // not, line 30
+            {
+                v_3 = limit - cursor;
+                lab1: do {
+                    // literal, line 30
+                    if (!(eq_s_b(1, "e")))
+                    {
+                        break lab1;
+                    }
+                    return false;
+                } while (false);
+                cursor = limit - v_3;
+            }
+            return true;
+        }
+
+        private boolean r_K() {
+            int v_1;
+            int v_2;
+            // (, line 31
+            // test, line 31
+            v_1 = limit - cursor;
+            // hop, line 31
+            {
+                int c = cursor - 3;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            cursor = limit - v_1;
+            // or, line 31
+            lab0: do {
+                v_2 = limit - cursor;
+                lab1: do {
+                    // literal, line 31
+                    if (!(eq_s_b(1, "l")))
+                    {
+                        break lab1;
+                    }
+                    break lab0;
+                } while (false);
+                cursor = limit - v_2;
+                lab2: do {
+                    // literal, line 31
+                    if (!(eq_s_b(1, "i")))
+                    {
+                        break lab2;
+                    }
+                    break lab0;
+                } while (false);
+                cursor = limit - v_2;
+                // (, line 31
+                // literal, line 31
+                if (!(eq_s_b(1, "e")))
+                {
+                    return false;
+                }
+                // next, line 31
+                if (cursor <= limit_backward)
+                {
+                    return false;
+                }
+                cursor--;
+                // literal, line 31
+                if (!(eq_s_b(1, "u")))
+                {
+                    return false;
+                }
+            } while (false);
+            return true;
+        }
+
+        private boolean r_L() {
+            int v_1;
+            int v_2;
+            int v_3;
+            int v_4;
+            int v_5;
+            // (, line 32
+            // test, line 32
+            v_1 = limit - cursor;
+            // hop, line 32
+            {
+                int c = cursor - 2;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            cursor = limit - v_1;
+            // not, line 32
+            {
+                v_2 = limit - cursor;
+                lab0: do {
+                    // literal, line 32
+                    if (!(eq_s_b(1, "u")))
+                    {
+                        break lab0;
+                    }
+                    return false;
+                } while (false);
+                cursor = limit - v_2;
+            }
+            // not, line 32
+            {
+                v_3 = limit - cursor;
+                lab1: do {
+                    // literal, line 32
+                    if (!(eq_s_b(1, "x")))
+                    {
+                        break lab1;
+                    }
+                    return false;
+                } while (false);
+                cursor = limit - v_3;
+            }
+            // not, line 32
+            {
+                v_4 = limit - cursor;
+                lab2: do {
+                    // (, line 32
+                    // literal, line 32
+                    if (!(eq_s_b(1, "s")))
+                    {
+                        break lab2;
+                    }
+                    // not, line 32
+                    {
+                        v_5 = limit - cursor;
+                        lab3: do {
+                            // literal, line 32
+                            if (!(eq_s_b(1, "o")))
+                            {
+                                break lab3;
+                            }
+                            break lab2;
+                        } while (false);
+                        cursor = limit - v_5;
+                    }
+                    return false;
+                } while (false);
+                cursor = limit - v_4;
+            }
+            return true;
+        }
+
+        private boolean r_M() {
+            int v_1;
+            int v_2;
+            int v_3;
+            int v_4;
+            int v_5;
+            // (, line 33
+            // test, line 33
+            v_1 = limit - cursor;
+            // hop, line 33
+            {
+                int c = cursor - 2;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            cursor = limit - v_1;
+            // not, line 33
+            {
+                v_2 = limit - cursor;
+                lab0: do {
+                    // literal, line 33
+                    if (!(eq_s_b(1, "a")))
+                    {
+                        break lab0;
+                    }
+                    return false;
+                } while (false);
+                cursor = limit - v_2;
+            }
+            // not, line 33
+            {
+                v_3 = limit - cursor;
+                lab1: do {
+                    // literal, line 33
+                    if (!(eq_s_b(1, "c")))
+                    {
+                        break lab1;
+                    }
+                    return false;
+                } while (false);
+                cursor = limit - v_3;
+            }
+            // not, line 33
+            {
+                v_4 = limit - cursor;
+                lab2: do {
+                    // literal, line 33
+                    if (!(eq_s_b(1, "e")))
+                    {
+                        break lab2;
+                    }
+                    return false;
+                } while (false);
+                cursor = limit - v_4;
+            }
+            // not, line 33
+            {
+                v_5 = limit - cursor;
+                lab3: do {
+                    // literal, line 33
+                    if (!(eq_s_b(1, "m")))
+                    {
+                        break lab3;
+                    }
+                    return false;
+                } while (false);
+                cursor = limit - v_5;
+            }
+            return true;
+        }
+
+        private boolean r_N() {
+            int v_1;
+            int v_2;
+            int v_3;
+            // (, line 34
+            // test, line 34
+            v_1 = limit - cursor;
+            // hop, line 34
+            {
+                int c = cursor - 3;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            cursor = limit - v_1;
+            // (, line 34
+            // hop, line 34
+            {
+                int c = cursor - 2;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            // or, line 34
+            lab0: do {
+                v_2 = limit - cursor;
+                lab1: do {
+                    // not, line 34
+                    {
+                        v_3 = limit - cursor;
+                        lab2: do {
+                            // literal, line 34
+                            if (!(eq_s_b(1, "s")))
+                            {
+                                break lab2;
+                            }
+                            break lab1;
+                        } while (false);
+                        cursor = limit - v_3;
+                    }
+                    break lab0;
+                } while (false);
+                cursor = limit - v_2;
+                // hop, line 34
+                {
+                    int c = cursor - 2;
+                    if (limit_backward > c || c > limit)
+                    {
+                        return false;
+                    }
+                    cursor = c;
+                }
+            } while (false);
+            return true;
+        }
+
+        private boolean r_O() {
+            int v_1;
+            int v_2;
+            // (, line 35
+            // test, line 35
+            v_1 = limit - cursor;
+            // hop, line 35
+            {
+                int c = cursor - 2;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            cursor = limit - v_1;
+            // or, line 35
+            lab0: do {
+                v_2 = limit - cursor;
+                lab1: do {
+                    // literal, line 35
+                    if (!(eq_s_b(1, "l")))
+                    {
+                        break lab1;
+                    }
+                    break lab0;
+                } while (false);
+                cursor = limit - v_2;
+                // literal, line 35
+                if (!(eq_s_b(1, "i")))
+                {
+                    return false;
+                }
+            } while (false);
+            return true;
+        }
+
+        private boolean r_P() {
+            int v_1;
+            int v_2;
+            // (, line 36
+            // test, line 36
+            v_1 = limit - cursor;
+            // hop, line 36
+            {
+                int c = cursor - 2;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            cursor = limit - v_1;
+            // not, line 36
+            {
+                v_2 = limit - cursor;
+                lab0: do {
+                    // literal, line 36
+                    if (!(eq_s_b(1, "c")))
+                    {
+                        break lab0;
+                    }
+                    return false;
+                } while (false);
+                cursor = limit - v_2;
+            }
+            return true;
+        }
+
+        private boolean r_Q() {
+            int v_1;
+            int v_2;
+            int v_3;
+            int v_4;
+            // (, line 37
+            // test, line 37
+            v_1 = limit - cursor;
+            // hop, line 37
+            {
+                int c = cursor - 2;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            cursor = limit - v_1;
+            // test, line 37
+            v_2 = limit - cursor;
+            // hop, line 37
+            {
+                int c = cursor - 3;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            cursor = limit - v_2;
+            // not, line 37
+            {
+                v_3 = limit - cursor;
+                lab0: do {
+                    // literal, line 37
+                    if (!(eq_s_b(1, "l")))
+                    {
+                        break lab0;
+                    }
+                    return false;
+                } while (false);
+                cursor = limit - v_3;
+            }
+            // not, line 37
+            {
+                v_4 = limit - cursor;
+                lab1: do {
+                    // literal, line 37
+                    if (!(eq_s_b(1, "n")))
+                    {
+                        break lab1;
+                    }
+                    return false;
+                } while (false);
+                cursor = limit - v_4;
+            }
+            return true;
+        }
+
+        private boolean r_R() {
+            int v_1;
+            int v_2;
+            // (, line 38
+            // test, line 38
+            v_1 = limit - cursor;
+            // hop, line 38
+            {
+                int c = cursor - 2;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            cursor = limit - v_1;
+            // or, line 38
+            lab0: do {
+                v_2 = limit - cursor;
+                lab1: do {
+                    // literal, line 38
+                    if (!(eq_s_b(1, "n")))
+                    {
+                        break lab1;
+                    }
+                    break lab0;
+                } while (false);
+                cursor = limit - v_2;
+                // literal, line 38
+                if (!(eq_s_b(1, "r")))
+                {
+                    return false;
+                }
+            } while (false);
+            return true;
+        }
+
+        private boolean r_S() {
+            int v_1;
+            int v_2;
+            int v_3;
+            // (, line 39
+            // test, line 39
+            v_1 = limit - cursor;
+            // hop, line 39
+            {
+                int c = cursor - 2;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            cursor = limit - v_1;
+            // or, line 39
+            lab0: do {
+                v_2 = limit - cursor;
+                lab1: do {
+                    // literal, line 39
+                    if (!(eq_s_b(2, "dr")))
+                    {
+                        break lab1;
+                    }
+                    break lab0;
+                } while (false);
+                cursor = limit - v_2;
+                // (, line 39
+                // literal, line 39
+                if (!(eq_s_b(1, "t")))
+                {
+                    return false;
+                }
+                // not, line 39
+                {
+                    v_3 = limit - cursor;
+                    lab2: do {
+                        // literal, line 39
+                        if (!(eq_s_b(1, "t")))
+                        {
+                            break lab2;
+                        }
+                        return false;
+                    } while (false);
+                    cursor = limit - v_3;
+                }
+            } while (false);
+            return true;
+        }
+
+        private boolean r_T() {
+            int v_1;
+            int v_2;
+            int v_3;
+            // (, line 40
+            // test, line 40
+            v_1 = limit - cursor;
+            // hop, line 40
+            {
+                int c = cursor - 2;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            cursor = limit - v_1;
+            // or, line 40
+            lab0: do {
+                v_2 = limit - cursor;
+                lab1: do {
+                    // literal, line 40
+                    if (!(eq_s_b(1, "s")))
+                    {
+                        break lab1;
+                    }
+                    break lab0;
+                } while (false);
+                cursor = limit - v_2;
+                // (, line 40
+                // literal, line 40
+                if (!(eq_s_b(1, "t")))
+                {
+                    return false;
+                }
+                // not, line 40
+                {
+                    v_3 = limit - cursor;
+                    lab2: do {
+                        // literal, line 40
+                        if (!(eq_s_b(1, "o")))
+                        {
+                            break lab2;
+                        }
+                        return false;
+                    } while (false);
+                    cursor = limit - v_3;
+                }
+            } while (false);
+            return true;
+        }
+
+        private boolean r_U() {
+            int v_1;
+            int v_2;
+            // (, line 41
+            // test, line 41
+            v_1 = limit - cursor;
+            // hop, line 41
+            {
+                int c = cursor - 2;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            cursor = limit - v_1;
+            // or, line 41
+            lab0: do {
+                v_2 = limit - cursor;
+                lab1: do {
+                    // literal, line 41
+                    if (!(eq_s_b(1, "l")))
+                    {
+                        break lab1;
+                    }
+                    break lab0;
+                } while (false);
+                cursor = limit - v_2;
+                lab2: do {
+                    // literal, line 41
+                    if (!(eq_s_b(1, "m")))
+                    {
+                        break lab2;
+                    }
+                    break lab0;
+                } while (false);
+                cursor = limit - v_2;
+                lab3: do {
+                    // literal, line 41
+                    if (!(eq_s_b(1, "n")))
+                    {
+                        break lab3;
+                    }
+                    break lab0;
+                } while (false);
+                cursor = limit - v_2;
+                // literal, line 41
+                if (!(eq_s_b(1, "r")))
+                {
+                    return false;
+                }
+            } while (false);
+            return true;
+        }
+
+        private boolean r_V() {
+            int v_1;
+            // (, line 42
+            // test, line 42
+            v_1 = limit - cursor;
+            // hop, line 42
+            {
+                int c = cursor - 2;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            cursor = limit - v_1;
+            // literal, line 42
+            if (!(eq_s_b(1, "c")))
+            {
+                return false;
+            }
+            return true;
+        }
+
+        private boolean r_W() {
+            int v_1;
+            int v_2;
+            int v_3;
+            // (, line 43
+            // test, line 43
+            v_1 = limit - cursor;
+            // hop, line 43
+            {
+                int c = cursor - 2;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            cursor = limit - v_1;
+            // not, line 43
+            {
+                v_2 = limit - cursor;
+                lab0: do {
+                    // literal, line 43
+                    if (!(eq_s_b(1, "s")))
+                    {
+                        break lab0;
+                    }
+                    return false;
+                } while (false);
+                cursor = limit - v_2;
+            }
+            // not, line 43
+            {
+                v_3 = limit - cursor;
+                lab1: do {
+                    // literal, line 43
+                    if (!(eq_s_b(1, "u")))
+                    {
+                        break lab1;
+                    }
+                    return false;
+                } while (false);
+                cursor = limit - v_3;
+            }
+            return true;
+        }
+
+        private boolean r_X() {
+            int v_1;
+            int v_2;
+            // (, line 44
+            // test, line 44
+            v_1 = limit - cursor;
+            // hop, line 44
+            {
+                int c = cursor - 2;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            cursor = limit - v_1;
+            // or, line 44
+            lab0: do {
+                v_2 = limit - cursor;
+                lab1: do {
+                    // literal, line 44
+                    if (!(eq_s_b(1, "l")))
+                    {
+                        break lab1;
+                    }
+                    break lab0;
+                } while (false);
+                cursor = limit - v_2;
+                lab2: do {
+                    // literal, line 44
+                    if (!(eq_s_b(1, "i")))
+                    {
+                        break lab2;
+                    }
+                    break lab0;
+                } while (false);
+                cursor = limit - v_2;
+                // (, line 44
+                // literal, line 44
+                if (!(eq_s_b(1, "e")))
+                {
+                    return false;
+                }
+                // next, line 44
+                if (cursor <= limit_backward)
+                {
+                    return false;
+                }
+                cursor--;
+                // literal, line 44
+                if (!(eq_s_b(1, "u")))
+                {
+                    return false;
+                }
+            } while (false);
+            return true;
+        }
+
+        private boolean r_Y() {
+            int v_1;
+            // (, line 45
+            // test, line 45
+            v_1 = limit - cursor;
+            // hop, line 45
+            {
+                int c = cursor - 2;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            cursor = limit - v_1;
+            // literal, line 45
+            if (!(eq_s_b(2, "in")))
+            {
+                return false;
+            }
+            return true;
+        }
+
+        private boolean r_Z() {
+            int v_1;
+            int v_2;
+            // (, line 46
+            // test, line 46
+            v_1 = limit - cursor;
+            // hop, line 46
+            {
+                int c = cursor - 2;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            cursor = limit - v_1;
+            // not, line 46
+            {
+                v_2 = limit - cursor;
+                lab0: do {
+                    // literal, line 46
+                    if (!(eq_s_b(1, "f")))
+                    {
+                        break lab0;
+                    }
+                    return false;
+                } while (false);
+                cursor = limit - v_2;
+            }
+            return true;
+        }
+
+        private boolean r_AA() {
+            int v_1;
+            // (, line 47
+            // test, line 47
+            v_1 = limit - cursor;
+            // hop, line 47
+            {
+                int c = cursor - 2;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            cursor = limit - v_1;
+            // among, line 47
+            if (find_among_b(a_0, 9) == 0)
+            {
+                return false;
+            }
+            return true;
+        }
+
+        private boolean r_BB() {
+            int v_1;
+            int v_2;
+            int v_3;
+            // (, line 49
+            // test, line 49
+            v_1 = limit - cursor;
+            // hop, line 49
+            {
+                int c = cursor - 3;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            cursor = limit - v_1;
+            // not, line 49
+            {
+                v_2 = limit - cursor;
+                lab0: do {
+                    // literal, line 49
+                    if (!(eq_s_b(3, "met")))
+                    {
+                        break lab0;
+                    }
+                    return false;
+                } while (false);
+                cursor = limit - v_2;
+            }
+            // not, line 49
+            {
+                v_3 = limit - cursor;
+                lab1: do {
+                    // literal, line 49
+                    if (!(eq_s_b(4, "ryst")))
+                    {
+                        break lab1;
+                    }
+                    return false;
+                } while (false);
+                cursor = limit - v_3;
+            }
+            return true;
+        }
+
+        private boolean r_CC() {
+            int v_1;
+            // (, line 50
+            // test, line 50
+            v_1 = limit - cursor;
+            // hop, line 50
+            {
+                int c = cursor - 2;
+                if (limit_backward > c || c > limit)
+                {
+                    return false;
+                }
+                cursor = c;
+            }
+            cursor = limit - v_1;
+            // literal, line 50
+            if (!(eq_s_b(1, "l")))
+            {
+                return false;
+            }
+            return true;
+        }
+
+        private boolean r_endings() {
+            int among_var;
+            // (, line 55
+            // [, line 56
+            ket = cursor;
+            // substring, line 56
+            among_var = find_among_b(a_1, 294);
+            if (among_var == 0)
+            {
+                return false;
+            }
+            // ], line 56
+            bra = cursor;
+            switch(among_var) {
+                case 0:
+                    return false;
+                case 1:
+                    // (, line 145
+                    // delete, line 145
+                    slice_del();
+                    break;
+            }
+            return true;
+        }
+
+        private boolean r_undouble() {
+            int v_1;
+            // (, line 151
+            // test, line 152
+            v_1 = limit - cursor;
+            // substring, line 152
+            if (find_among_b(a_2, 10) == 0)
+            {
+                return false;
+            }
+            cursor = limit - v_1;
+            // [, line 154
+            ket = cursor;
+            // next, line 154
+            if (cursor <= limit_backward)
+            {
+                return false;
+            }
+            cursor--;
+            // ], line 154
+            bra = cursor;
+            // delete, line 154
+            slice_del();
+            return true;
+        }
+
+        private boolean r_respell() {
+            int among_var;
+            int v_1;
+            int v_2;
+            int v_3;
+            int v_4;
+            int v_5;
+            int v_6;
+            int v_7;
+            int v_8;
+            // (, line 159
+            // [, line 160
+            ket = cursor;
+            // substring, line 160
+            among_var = find_among_b(a_3, 34);
+            if (among_var == 0)
+            {
+                return false;
+            }
+            // ], line 160
+            bra = cursor;
+            switch(among_var) {
+                case 0:
+                    return false;
+                case 1:
+                    // (, line 161
+                    // <-, line 161
+                    slice_from("ief");
+                    break;
+                case 2:
+                    // (, line 162
+                    // <-, line 162
+                    slice_from("uc");
+                    break;
+                case 3:
+                    // (, line 163
+                    // <-, line 163
+                    slice_from("um");
+                    break;
+                case 4:
+                    // (, line 164
+                    // <-, line 164
+                    slice_from("rb");
+                    break;
+                case 5:
+                    // (, line 165
+                    // <-, line 165
+                    slice_from("ur");
+                    break;
+                case 6:
+                    // (, line 166
+                    // <-, line 166
+                    slice_from("ister");
+                    break;
+                case 7:
+                    // (, line 167
+                    // <-, line 167
+                    slice_from("meter");
+                    break;
+                case 8:
+                    // (, line 168
+                    // <-, line 168
+                    slice_from("olut");
+                    break;
+                case 9:
+                    // (, line 169
+                    // not, line 169
+                    {
+                        v_1 = limit - cursor;
+                        lab0: do {
+                            // literal, line 169
+                            if (!(eq_s_b(1, "a")))
+                            {
+                                break lab0;
+                            }
+                            return false;
+                        } while (false);
+                        cursor = limit - v_1;
+                    }
+                    // not, line 169
+                    {
+                        v_2 = limit - cursor;
+                        lab1: do {
+                            // literal, line 169
+                            if (!(eq_s_b(1, "i")))
+                            {
+                                break lab1;
+                            }
+                            return false;
+                        } while (false);
+                        cursor = limit - v_2;
+                    }
+                    // not, line 169
+                    {
+                        v_3 = limit - cursor;
+                        lab2: do {
+                            // literal, line 169
+                            if (!(eq_s_b(1, "o")))
+                            {
+                                break lab2;
+                            }
+                            return false;
+                        } while (false);
+                        cursor = limit - v_3;
+                    }
+                    // <-, line 169
+                    slice_from("l");
+                    break;
+                case 10:
+                    // (, line 170
+                    // <-, line 170
+                    slice_from("bic");
+                    break;
+                case 11:
+                    // (, line 171
+                    // <-, line 171
+                    slice_from("dic");
+                    break;
+                case 12:
+                    // (, line 172
+                    // <-, line 172
+                    slice_from("pic");
+                    break;
+                case 13:
+                    // (, line 173
+                    // <-, line 173
+                    slice_from("tic");
+                    break;
+                case 14:
+                    // (, line 174
+                    // <-, line 174
+                    slice_from("ac");
+                    break;
+                case 15:
+                    // (, line 175
+                    // <-, line 175
+                    slice_from("ec");
+                    break;
+                case 16:
+                    // (, line 176
+                    // <-, line 176
+                    slice_from("ic");
+                    break;
+                case 17:
+                    // (, line 177
+                    // <-, line 177
+                    slice_from("luc");
+                    break;
+                case 18:
+                    // (, line 178
+                    // <-, line 178
+                    slice_from("uas");
+                    break;
+                case 19:
+                    // (, line 179
+                    // <-, line 179
+                    slice_from("vas");
+                    break;
+                case 20:
+                    // (, line 180
+                    // <-, line 180
+                    slice_from("cis");
+                    break;
+                case 21:
+                    // (, line 181
+                    // <-, line 181
+                    slice_from("lis");
+                    break;
+                case 22:
+                    // (, line 182
+                    // <-, line 182
+                    slice_from("eris");
+                    break;
+                case 23:
+                    // (, line 183
+                    // <-, line 183
+                    slice_from("pans");
+                    break;
+                case 24:
+                    // (, line 184
+                    // not, line 184
+                    {
+                        v_4 = limit - cursor;
+                        lab3: do {
+                            // literal, line 184
+                            if (!(eq_s_b(1, "s")))
+                            {
+                                break lab3;
+                            }
+                            return false;
+                        } while (false);
+                        cursor = limit - v_4;
+                    }
+                    // <-, line 184
+                    slice_from("ens");
+                    break;
+                case 25:
+                    // (, line 185
+                    // <-, line 185
+                    slice_from("ons");
+                    break;
+                case 26:
+                    // (, line 186
+                    // <-, line 186
+                    slice_from("lus");
+                    break;
+                case 27:
+                    // (, line 187
+                    // <-, line 187
+                    slice_from("rus");
+                    break;
+                case 28:
+                    // (, line 188
+                    // not, line 188
+                    {
+                        v_5 = limit - cursor;
+                        lab4: do {
+                            // literal, line 188
+                            if (!(eq_s_b(1, "p")))
+                            {
+                                break lab4;
+                            }
+                            return false;
+                        } while (false);
+                        cursor = limit - v_5;
+                    }
+                    // not, line 188
+                    {
+                        v_6 = limit - cursor;
+                        lab5: do {
+                            // literal, line 188
+                            if (!(eq_s_b(1, "t")))
+                            {
+                                break lab5;
+                            }
+                            return false;
+                        } while (false);
+                        cursor = limit - v_6;
+                    }
+                    // <-, line 188
+                    slice_from("hes");
+                    break;
+                case 29:
+                    // (, line 189
+                    // <-, line 189
+                    slice_from("mis");
+                    break;
+                case 30:
+                    // (, line 190
+                    // not, line 190
+                    {
+                        v_7 = limit - cursor;
+                        lab6: do {
+                            // literal, line 190
+                            if (!(eq_s_b(1, "m")))
+                            {
+                                break lab6;
+                            }
+                            return false;
+                        } while (false);
+                        cursor = limit - v_7;
+                    }
+                    // <-, line 190
+                    slice_from("ens");
+                    break;
+                case 31:
+                    // (, line 192
+                    // <-, line 192
+                    slice_from("ers");
+                    break;
+                case 32:
+                    // (, line 193
+                    // not, line 193
+                    {
+                        v_8 = limit - cursor;
+                        lab7: do {
+                            // literal, line 193
+                            if (!(eq_s_b(1, "n")))
+                            {
+                                break lab7;
+                            }
+                            return false;
+                        } while (false);
+                        cursor = limit - v_8;
+                    }
+                    // <-, line 193
+                    slice_from("es");
+                    break;
+                case 33:
+                    // (, line 194
+                    // <-, line 194
+                    slice_from("ys");
+                    break;
+                case 34:
+                    // (, line 195
+                    // <-, line 195
+                    slice_from("ys");
+                    break;
+            }
+            return true;
+        }
+
+        public boolean stem() {
+            int v_1;
+            int v_2;
+            int v_3;
+            // (, line 200
+            // backwards, line 202
+            limit_backward = cursor; cursor = limit;
+            // (, line 202
+            // do, line 203
+            v_1 = limit - cursor;
+            lab0: do {
+                // call endings, line 203
+                if (!r_endings())
+                {
+                    break lab0;
+                }
+            } while (false);
+            cursor = limit - v_1;
+            // do, line 204
+            v_2 = limit - cursor;
+            lab1: do {
+                // call undouble, line 204
+                if (!r_undouble())
+                {
+                    break lab1;
+                }
+            } while (false);
+            cursor = limit - v_2;
+            // do, line 205
+            v_3 = limit - cursor;
+            lab2: do {
+                // call respell, line 205
+                if (!r_respell())
+                {
+                    break lab2;
+                }
+            } while (false);
+            cursor = limit - v_3;
+            cursor = limit_backward;            return true;
+        }
+
+}
+