20 using Among = SF.Snowball.Among;
22 namespace SF.Snowball.Ext
24 #pragma warning disable 162,164
33 private void InitBlock()
35 a_0 =
new Among[]{
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)};
36 a_1 =
new Among[]{
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
37 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,
38 "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",
39 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",
40 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",
41 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)};
42 a_2 =
new Among[]{
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)};
43 a_3 =
new Among[]{
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)};
51 protected internal virtual void copy_from(LovinsStemmer other)
53 base.copy_from(other);
62 if (limit_backward > c || c > limit)
77 if (limit_backward > c || c > limit)
92 if (limit_backward > c || c > limit)
107 if (limit_backward > c || c > limit)
122 v_1 = limit - cursor;
126 if (limit_backward > c || c > limit)
132 cursor = limit - v_1;
135 v_2 = limit - cursor;
139 if (!(eq_s_b(1,
"e")))
149 cursor = limit - v_2;
160 v_1 = limit - cursor;
164 if (limit_backward > c || c > limit)
170 cursor = limit - v_1;
173 v_2 = limit - cursor;
177 if (!(eq_s_b(1,
"e")))
187 cursor = limit - v_2;
197 v_1 = limit - cursor;
201 if (limit_backward > c || c > limit)
207 cursor = limit - v_1;
209 if (!(eq_s_b(1,
"f")))
222 v_1 = limit - cursor;
226 if (limit_backward > c || c > limit)
232 cursor = limit - v_1;
237 v_2 = limit - cursor;
241 if (!(eq_s_b(1,
"t")))
251 cursor = limit - v_2;
253 if (!(eq_s_b(2,
"ll")))
269 v_1 = limit - cursor;
273 if (limit_backward > c || c > limit)
279 cursor = limit - v_1;
282 v_2 = limit - cursor;
286 if (!(eq_s_b(1,
"o")))
296 cursor = limit - v_2;
300 v_3 = limit - cursor;
304 if (!(eq_s_b(1,
"e")))
314 cursor = limit - v_3;
326 v_1 = limit - cursor;
330 if (limit_backward > c || c > limit)
336 cursor = limit - v_1;
339 v_2 = limit - cursor;
343 if (!(eq_s_b(1,
"a")))
353 cursor = limit - v_2;
357 v_3 = limit - cursor;
361 if (!(eq_s_b(1,
"e")))
371 cursor = limit - v_3;
382 v_1 = limit - cursor;
386 if (limit_backward > c || c > limit)
392 cursor = limit - v_1;
396 v_2 = limit - cursor;
400 if (!(eq_s_b(1,
"l")))
410 cursor = limit - v_2;
414 if (!(eq_s_b(1,
"i")))
424 cursor = limit - v_2;
427 if (!(eq_s_b(1,
"e")))
432 if (cursor <= limit_backward)
438 if (!(eq_s_b(1,
"u")))
459 v_1 = limit - cursor;
463 if (limit_backward > c || c > limit)
469 cursor = limit - v_1;
472 v_2 = limit - cursor;
476 if (!(eq_s_b(1,
"u")))
486 cursor = limit - v_2;
490 v_3 = limit - cursor;
494 if (!(eq_s_b(1,
"x")))
504 cursor = limit - v_3;
508 v_4 = limit - cursor;
513 if (!(eq_s_b(1,
"s")))
519 v_5 = limit - cursor;
523 if (!(eq_s_b(1,
"o")))
533 cursor = limit - v_5;
541 cursor = limit - v_4;
555 v_1 = limit - cursor;
559 if (limit_backward > c || c > limit)
565 cursor = limit - v_1;
568 v_2 = limit - cursor;
572 if (!(eq_s_b(1,
"a")))
582 cursor = limit - v_2;
586 v_3 = limit - cursor;
590 if (!(eq_s_b(1,
"c")))
600 cursor = limit - v_3;
604 v_4 = limit - cursor;
608 if (!(eq_s_b(1,
"e")))
618 cursor = limit - v_4;
622 v_5 = limit - cursor;
626 if (!(eq_s_b(1,
"m")))
636 cursor = limit - v_5;
648 v_1 = limit - cursor;
652 if (limit_backward > c || c > limit)
658 cursor = limit - v_1;
663 if (limit_backward > c || c > limit)
672 v_2 = limit - cursor;
677 v_3 = limit - cursor;
681 if (!(eq_s_b(1,
"s")))
691 cursor = limit - v_3;
699 cursor = limit - v_2;
703 if (limit_backward > c || c > limit)
723 v_1 = limit - cursor;
727 if (limit_backward > c || c > limit)
733 cursor = limit - v_1;
738 v_2 = limit - cursor;
742 if (!(eq_s_b(1,
"l")))
752 cursor = limit - v_2;
754 if (!(eq_s_b(1,
"i")))
769 v_1 = limit - cursor;
773 if (limit_backward > c || c > limit)
779 cursor = limit - v_1;
782 v_2 = limit - cursor;
786 if (!(eq_s_b(1,
"c")))
796 cursor = limit - v_2;
809 v_1 = limit - cursor;
813 if (limit_backward > c || c > limit)
819 cursor = limit - v_1;
821 v_2 = limit - cursor;
825 if (limit_backward > c || c > limit)
831 cursor = limit - v_2;
834 v_3 = limit - cursor;
838 if (!(eq_s_b(1,
"l")))
848 cursor = limit - v_3;
852 v_4 = limit - cursor;
856 if (!(eq_s_b(1,
"n")))
866 cursor = limit - v_4;
877 v_1 = limit - cursor;
881 if (limit_backward > c || c > limit)
887 cursor = limit - v_1;
892 v_2 = limit - cursor;
896 if (!(eq_s_b(1,
"n")))
906 cursor = limit - v_2;
908 if (!(eq_s_b(1,
"r")))
924 v_1 = limit - cursor;
928 if (limit_backward > c || c > limit)
934 cursor = limit - v_1;
938 v_2 = limit - cursor;
942 if (!(eq_s_b(2,
"dr")))
952 cursor = limit - v_2;
955 if (!(eq_s_b(1,
"t")))
961 v_3 = limit - cursor;
965 if (!(eq_s_b(1,
"t")))
975 cursor = limit - v_3;
992 v_1 = limit - cursor;
996 if (limit_backward > c || c > limit)
1002 cursor = limit - v_1;
1006 v_2 = limit - cursor;
1010 if (!(eq_s_b(1,
"s")))
1020 cursor = limit - v_2;
1023 if (!(eq_s_b(1,
"t")))
1029 v_3 = limit - cursor;
1033 if (!(eq_s_b(1,
"o")))
1043 cursor = limit - v_3;
1059 v_1 = limit - cursor;
1063 if (limit_backward > c || c > limit)
1069 cursor = limit - v_1;
1073 v_2 = limit - cursor;
1077 if (!(eq_s_b(1,
"l")))
1087 cursor = limit - v_2;
1091 if (!(eq_s_b(1,
"m")))
1101 cursor = limit - v_2;
1105 if (!(eq_s_b(1,
"n")))
1115 cursor = limit - v_2;
1117 if (!(eq_s_b(1,
"r")))
1134 v_1 = limit - cursor;
1138 if (limit_backward > c || c > limit)
1144 cursor = limit - v_1;
1146 if (!(eq_s_b(1,
"c")))
1160 v_1 = limit - cursor;
1164 if (limit_backward > c || c > limit)
1170 cursor = limit - v_1;
1173 v_2 = limit - cursor;
1177 if (!(eq_s_b(1,
"s")))
1187 cursor = limit - v_2;
1191 v_3 = limit - cursor;
1195 if (!(eq_s_b(1,
"u")))
1205 cursor = limit - v_3;
1216 v_1 = limit - cursor;
1220 if (limit_backward > c || c > limit)
1226 cursor = limit - v_1;
1230 v_2 = limit - cursor;
1234 if (!(eq_s_b(1,
"l")))
1244 cursor = limit - v_2;
1248 if (!(eq_s_b(1,
"i")))
1258 cursor = limit - v_2;
1261 if (!(eq_s_b(1,
"e")))
1266 if (cursor <= limit_backward)
1272 if (!(eq_s_b(1,
"u")))
1289 v_1 = limit - cursor;
1293 if (limit_backward > c || c > limit)
1299 cursor = limit - v_1;
1301 if (!(eq_s_b(2,
"in")))
1314 v_1 = limit - cursor;
1318 if (limit_backward > c || c > limit)
1324 cursor = limit - v_1;
1327 v_2 = limit - cursor;
1331 if (!(eq_s_b(1,
"f")))
1341 cursor = limit - v_2;
1351 v_1 = limit - cursor;
1355 if (limit_backward > c || c > limit)
1361 cursor = limit - v_1;
1363 if (find_among_b(a_0, 9) == 0)
1377 v_1 = limit - cursor;
1381 if (limit_backward > c || c > limit)
1387 cursor = limit - v_1;
1390 v_2 = limit - cursor;
1394 if (!(eq_s_b(3,
"met")))
1404 cursor = limit - v_2;
1408 v_3 = limit - cursor;
1412 if (!(eq_s_b(4,
"ryst")))
1422 cursor = limit - v_3;
1432 v_1 = limit - cursor;
1436 if (limit_backward > c || c > limit)
1442 cursor = limit - v_1;
1444 if (!(eq_s_b(1,
"l")))
1451 private bool r_endings()
1458 among_var = find_among_b(a_1, 294);
1480 private bool r_undouble()
1485 v_1 = limit - cursor;
1487 if (find_among_b(a_2, 10) == 0)
1491 cursor = limit - v_1;
1495 if (cursor <= limit_backward)
1507 private bool r_respell()
1522 among_var = find_among_b(a_3, 34);
1568 slice_from(
"ister");
1574 slice_from(
"meter");
1587 v_1 = limit - cursor;
1591 if (!(eq_s_b(1,
"a")))
1601 cursor = limit - v_1;
1605 v_2 = limit - cursor;
1609 if (!(eq_s_b(1,
"i")))
1619 cursor = limit - v_2;
1623 v_3 = limit - cursor;
1627 if (!(eq_s_b(1,
"o")))
1637 cursor = limit - v_3;
1731 v_4 = limit - cursor;
1735 if (!(eq_s_b(1,
"s")))
1745 cursor = limit - v_4;
1773 v_5 = limit - cursor;
1777 if (!(eq_s_b(1,
"p")))
1787 cursor = limit - v_5;
1791 v_6 = limit - cursor;
1795 if (!(eq_s_b(1,
"t")))
1805 cursor = limit - v_6;
1821 v_7 = limit - cursor;
1825 if (!(eq_s_b(1,
"m")))
1835 cursor = limit - v_7;
1851 v_8 = limit - cursor;
1855 if (!(eq_s_b(1,
"n")))
1865 cursor = limit - v_8;
1886 public override bool Stem()
1893 limit_backward = cursor; cursor = limit;
1896 v_1 = limit - cursor;
1909 cursor = limit - v_1;
1911 v_2 = limit - cursor;
1924 cursor = limit - v_2;
1926 v_3 = limit - cursor;
1939 cursor = limit - v_3;
1940 cursor = limit_backward;
return true;