20 using Among = SF.Snowball.Among;
22 namespace SF.Snowball.Ext
24 #pragma warning disable 162
33 private void InitBlock()
35 a_0 =
new Among[]{
new Among(
"", - 1, 6,
"",
this),
new Among(
"\u00E1", 0, 1,
"",
this),
new Among(
"\u00E9", 0, 2,
"",
this),
new Among(
"\u00ED", 0, 3,
"",
this),
new Among(
"\u00F3", 0, 4,
"",
this),
new Among(
"\u00FA", 0, 5,
"",
this)};
36 a_1 =
new Among[]{
new Among(
"la", - 1, - 1,
"",
this),
new Among(
"sela", 0, - 1,
"",
this),
new Among(
"le", - 1, - 1,
"",
this),
new Among(
"me", - 1, - 1,
"",
this),
new Among(
"se", - 1, - 1,
"",
this),
new Among(
"lo", - 1, - 1,
"",
this),
new Among(
"selo", 5, - 1,
"",
this),
new Among(
"las", - 1, - 1,
"",
this),
new Among(
"selas", 7, - 1,
"",
this),
new Among(
"les", - 1, - 1,
"",
this),
new Among(
"los", - 1, - 1,
"",
this),
new Among(
"selos", 10, - 1,
"",
this),
new Among(
"nos", - 1, - 1,
"",
this)};
37 a_2 =
new Among[]{
new Among(
"ando", - 1, 6,
"",
this),
new Among(
"iendo", - 1, 6,
"",
this),
new Among(
"yendo", - 1, 7,
"",
this),
new Among(
"\u00E1ndo", - 1, 2,
"",
this),
new Among(
"i\u00E9ndo", - 1, 1,
"",
this),
new Among(
"ar", - 1, 6,
"",
this),
new Among(
"er", - 1, 6,
"",
this),
new Among(
"ir", - 1, 6,
"",
this),
new Among(
"\u00E1r", - 1, 3,
"",
this),
new Among(
"\u00E9r", - 1, 4,
"",
this),
new Among(
"\u00EDr", - 1, 5,
"",
this)};
38 a_3 =
new Among[]{
new Among(
"ic", - 1, - 1,
"",
this),
new Among(
"ad", - 1, - 1,
"",
this),
new Among(
"os", - 1, - 1,
"",
this),
new Among(
"iv", - 1, 1,
"",
this)};
39 a_4 =
new Among[]{
new Among(
"able", - 1, 1,
"",
this),
new Among(
"ible", - 1, 1,
"",
this)};
40 a_5 =
new Among[]{
new Among(
"ic", - 1, 1,
"",
this),
new Among(
"abil", - 1, 1,
"",
this),
new Among(
"iv", - 1, 1,
"",
this)};
41 a_6 =
new Among[]{
new Among(
"ica", - 1, 1,
"",
this),
new Among(
"encia", - 1, 5,
"",
this),
new Among(
"adora", - 1, 2,
"",
this),
new Among(
"osa", - 1, 1,
"",
this),
new Among(
"ista", - 1, 1,
"",
this),
new Among(
"iva", - 1, 9,
"",
this),
new Among(
"anza", - 1, 1,
"",
this),
new Among(
"log\u00EDa", - 1, 3,
"",
this),
new Among(
"idad", - 1, 8,
"",
this),
new Among(
"able", - 1, 1,
"",
this),
new Among(
"ible", - 1, 1,
"",
this),
new Among(
"mente", - 1, 7,
"",
this),
new Among(
"amente", 11, 6,
"",
this),
new Among(
"aci\u00F3n", - 1, 2,
"",
this),
new Among(
"uci\u00F3n", - 1, 4,
"",
this),
new Among(
"ico", - 1, 1,
"",
this),
new Among(
"ismo", - 1, 1,
"",
this),
new Among(
"oso", - 1, 1,
"",
this),
new Among(
"amiento", - 1, 1,
"",
this),
new Among(
"imiento", - 1, 1,
"",
this),
new Among(
"ivo", - 1, 9,
"",
this),
new Among(
"ador", - 1, 2,
"",
this),
new Among(
"icas", - 1, 1,
"",
this),
new Among(
"encias", - 1, 5,
"",
this),
new Among(
"adoras", - 1, 2,
"",
this),
new Among(
"osas", - 1, 1,
"",
this),
new Among(
"istas", - 1, 1,
"",
this),
new Among(
"ivas", - 1, 9,
"",
this),
new Among(
"anzas", - 1, 1,
"",
this),
new Among(
"log\u00EDas", - 1, 3,
"",
this),
new Among(
"idades", - 1, 8,
"",
this),
new Among(
"ables", - 1, 1,
"",
this),
new Among(
"ibles", - 1, 1,
"",
this),
new Among(
"aciones", - 1, 2,
"",
this),
new Among(
"uciones", - 1, 4,
"",
this),
new Among(
"adores", - 1, 2,
"",
this),
new Among(
"icos", - 1, 1,
"",
this),
new Among(
"ismos", - 1, 1,
"",
this),
new Among(
"osos", - 1, 1,
"",
this),
new Among(
"amientos", - 1, 1,
"",
this),
new Among(
"imientos", - 1, 1,
"",
this),
new Among(
"ivos", - 1, 9,
"",
this)};
42 a_7 =
new Among[]{
new Among(
"ya", - 1, 1,
"",
this),
new Among(
"ye", - 1, 1,
"",
this),
new Among(
"yan", - 1, 1,
"",
this),
new Among(
"yen", - 1, 1,
"",
this),
new Among(
"yeron", - 1, 1,
"",
this),
new Among(
"yendo", - 1, 1,
"",
this),
new Among(
"yo", - 1, 1,
"",
this),
new Among(
"yas", - 1, 1,
"",
this),
new Among(
"yes", - 1, 1,
"",
this),
new Among(
"yais", - 1, 1,
"",
this),
new Among(
"yamos", - 1, 1,
"",
this),
new Among(
"y\u00F3", - 1, 1,
"",
this)};
43 a_8 =
new Among[]{
new Among(
"aba", - 1, 2,
"",
this),
new Among(
"ada", - 1, 2,
"",
this),
new Among(
"ida", - 1, 2,
"",
this),
new Among(
"ara", - 1, 2,
"",
this),
new Among(
"iera", - 1, 2,
"",
this),
new Among(
"\u00EDa", - 1, 2,
"",
this),
new Among(
"ar\u00EDa", 5, 2,
"",
this),
new Among(
"er\u00EDa", 5, 2,
"",
this),
new Among(
"ir\u00EDa", 5, 2,
"",
this),
new Among(
"ad", - 1, 2,
"",
this),
new Among(
"ed", - 1, 2,
"",
this),
new Among(
"id", - 1, 2,
"",
this),
new Among(
"ase", - 1, 2,
"",
this),
new Among(
"iese", - 1, 2,
"",
this),
new Among(
"aste", - 1, 2,
"",
this),
new Among(
"iste", - 1, 2,
"",
this),
new Among(
"an", - 1, 2,
"",
this),
new Among(
"aban", 16, 2,
"",
this),
new Among(
"aran", 16, 2,
"",
this),
new Among(
"ieran", 16, 2,
"",
this),
new Among(
"\u00EDan", 16, 2,
"",
this),
new Among(
"ar\u00EDan", 20, 2,
"",
this),
new Among(
"er\u00EDan", 20, 2,
"",
this),
new Among(
"ir\u00EDan", 20, 2,
"",
this),
new Among(
"en", - 1, 1,
"",
this),
new Among(
"asen", 24, 2,
"",
this),
new Among(
"iesen", 24, 2,
"",
this),
new Among(
"aron", - 1, 2,
"",
this),
new Among(
"ieron", - 1, 2,
"",
this),
new Among(
"ar\u00E1n", - 1, 2,
"",
this),
new Among(
"er\u00E1n", - 1, 2,
"",
this),
new Among(
"ir\u00E1n", - 1, 2,
"",
this),
new Among(
"ado", - 1, 2,
"",
this),
new Among(
"ido", - 1, 2,
"",
this),
new Among(
"ando", - 1, 2,
"",
this),
new Among(
"iendo", - 1, 2,
"",
this),
new Among(
"ar", - 1, 2,
"",
this),
new Among(
"er", - 1, 2,
"",
this),
new Among(
"ir", - 1, 2,
"",
this),
new Among(
"as", - 1, 2,
"",
this),
new Among(
"abas", 39, 2,
"",
this),
new Among(
"adas", 39, 2,
"",
this),
new Among(
"idas", 39, 2,
"",
this),
new Among(
"aras", 39, 2,
"",
this),
new Among(
"ieras", 39, 2,
"",
this),
new Among(
"\u00EDas", 39, 2,
"",
this),
new Among(
"ar\u00EDas", 45, 2,
"",
this),
new Among(
"er\u00EDas", 45, 2,
"",
this),
new Among(
"ir\u00EDas", 45, 2,
"",
this),
new Among(
"es", - 1, 1,
"",
this),
new Among(
"ases", 49, 2,
"",
this),
new Among(
"ieses", 49, 2,
"",
this),
new Among(
"abais", - 1, 2,
"",
this),
new Among(
"arais", -
44 1, 2,
"",
this),
new Among(
"ierais", - 1, 2,
"",
this),
new Among(
"\u00EDais", - 1, 2,
"",
this),
new Among(
"ar\u00EDais", 55, 2,
"",
this),
new Among(
"er\u00EDais", 55, 2,
"",
this),
new Among(
"ir\u00EDais", 55, 2,
"",
this),
new Among(
"aseis", - 1, 2,
"",
this),
new Among(
"ieseis", - 1, 2,
"",
this),
new Among(
"asteis", - 1, 2,
"",
this),
new Among(
"isteis", - 1, 2,
"",
this),
new Among(
"\u00E1is", - 1, 2,
"",
this),
new Among(
"\u00E9is", - 1, 1,
"",
this),
new Among(
"ar\u00E9is", 64, 2,
"",
this),
new Among(
"er\u00E9is", 64, 2,
"",
this),
new Among(
"ir\u00E9is", 64, 2,
"",
this),
new Among(
"ados", - 1, 2,
"",
this),
new Among(
"idos", - 1, 2,
"",
this),
new Among(
"amos", - 1, 2,
"",
this),
new Among(
"\u00E1bamos", 70, 2,
"",
this),
new Among(
"\u00E1ramos", 70, 2,
"",
this),
new Among(
"i\u00E9ramos", 70, 2,
"",
this),
new Among(
"\u00EDamos", 70, 2,
"",
this),
new Among(
"ar\u00EDamos", 74, 2,
"",
this),
new Among(
"er\u00EDamos", 74, 2,
"",
this),
new Among(
"ir\u00EDamos", 74, 2,
"",
this),
new Among(
"emos", - 1, 1,
"",
this),
new Among(
"aremos", 78, 2,
"",
this),
new Among(
"eremos", 78, 2,
"",
this),
new Among(
"iremos", 78, 2,
"",
this),
new Among(
"\u00E1semos", 78, 2,
"",
this),
new Among(
"i\u00E9semos", 78, 2,
"",
this),
new Among(
"imos", - 1, 2,
"",
this),
new Among(
"ar\u00E1s", - 1, 2,
"",
this),
new Among(
"er\u00E1s", - 1, 2,
"",
this),
new Among(
"ir\u00E1s", - 1, 2,
"",
this),
new Among(
"\u00EDs", - 1, 2,
"",
this),
new Among(
"ar\u00E1", - 1, 2,
"",
this),
new Among(
"er\u00E1", - 1, 2,
"",
this),
new Among(
"ir\u00E1", - 1, 2,
"",
this),
new Among(
"ar\u00E9", - 1, 2,
"",
this),
new Among(
"er\u00E9", - 1, 2,
"",
this),
new Among(
"ir\u00E9", - 1, 2,
"",
this),
new Among(
"i\u00F3", - 1, 2,
"",
this)};
45 a_9 =
new Among[]{
new Among(
"a", - 1, 1,
"",
this),
new Among(
"e", - 1, 2,
"",
this),
new Among(
"o", - 1, 1,
"",
this),
new Among(
"os", - 1, 1,
"",
this),
new Among(
"\u00E1", - 1, 1,
"",
this),
new Among(
"\u00E9", - 1, 2,
"",
this),
new Among(
"\u00ED", - 1, 1,
"",
this),
new Among(
"\u00F3", - 1, 1,
"",
this)};
58 private static readonly
char[] g_v =
new char[]{(char) (17), (char) (65), (char) (16), (char) (0), (char) (0), (char) (0), (char) (0), (char) (0), (char) (0), (char) (0), (char) (0), (char) (0), (char) (0), (char) (0), (char) (0), (char) (0), (char) (1), (char) (17), (char) (4), (char) (10)};
64 protected internal virtual void copy_from(SpanishStemmer other)
69 base.copy_from(other);
72 private bool r_mark_regions()
95 if (!(in_grouping(g_v, 97, 252)))
106 if (!(out_grouping(g_v, 97, 252)))
115 if (!(in_grouping(g_v, 97, 252)))
142 if (!(in_grouping(g_v, 97, 252)))
151 if (!(out_grouping(g_v, 97, 252)))
183 if (!(out_grouping(g_v, 97, 252)))
194 if (!(out_grouping(g_v, 97, 252)))
203 if (!(in_grouping(g_v, 97, 252)))
230 if (!(in_grouping(g_v, 97, 252)))
268 if (!(in_grouping(g_v, 97, 252)))
292 if (!(out_grouping(g_v, 97, 252)))
318 if (!(in_grouping(g_v, 97, 252)))
342 if (!(out_grouping(g_v, 97, 252)))
372 private bool r_postlude()
386 among_var = find_among(a_0, 6);
458 if (!(I_pV <= cursor))
467 if (!(I_p1 <= cursor))
476 if (!(I_p2 <= cursor))
483 private bool r_attached_pronoun()
490 if (find_among_b(a_1, 13) == 0)
497 among_var = find_among_b(a_2, 11);
562 if (!(eq_s_b(1,
"u")))
573 private bool r_standard_suffix()
585 among_var = find_among_b(a_6, 42);
619 v_1 = limit - cursor;
626 if (!(eq_s_b(2,
"ic")))
628 cursor = limit - v_1;
636 cursor = limit - v_1;
691 v_2 = limit - cursor;
698 among_var = find_among_b(a_3, 4);
701 cursor = limit - v_2;
709 cursor = limit - v_2;
718 cursor = limit - v_2;
726 if (!(eq_s_b(2,
"at")))
728 cursor = limit - v_2;
736 cursor = limit - v_2;
760 v_3 = limit - cursor;
767 among_var = find_among_b(a_4, 2);
770 cursor = limit - v_3;
779 cursor = limit - v_3;
787 cursor = limit - v_3;
811 v_4 = limit - cursor;
818 among_var = find_among_b(a_5, 3);
821 cursor = limit - v_4;
830 cursor = limit - v_4;
838 cursor = limit - v_4;
862 v_5 = limit - cursor;
869 if (!(eq_s_b(2,
"at")))
871 cursor = limit - v_5;
879 cursor = limit - v_5;
894 private bool r_y_verb_suffix()
901 v_1 = limit - cursor;
908 v_2 = limit_backward;
909 limit_backward = cursor;
910 cursor = limit - v_1;
915 among_var = find_among_b(a_7, 12);
918 limit_backward = v_2;
923 limit_backward = v_2;
933 if (!(eq_s_b(1,
"u")))
944 private bool r_verb_suffix()
953 v_1 = limit - cursor;
960 v_2 = limit_backward;
961 limit_backward = cursor;
962 cursor = limit - v_1;
967 among_var = find_among_b(a_8, 96);
970 limit_backward = v_2;
975 limit_backward = v_2;
985 v_3 = limit - cursor;
990 if (!(eq_s_b(1,
"u")))
992 cursor = limit - v_3;
996 v_4 = limit - cursor;
998 if (!(eq_s_b(1,
"g")))
1000 cursor = limit - v_3;
1003 cursor = limit - v_4;
1024 private bool r_residual_suffix()
1033 among_var = find_among_b(a_9, 8);
1067 v_1 = limit - cursor;
1074 if (!(eq_s_b(1,
"u")))
1076 cursor = limit - v_1;
1082 v_2 = limit - cursor;
1084 if (!(eq_s_b(1,
"g")))
1086 cursor = limit - v_1;
1089 cursor = limit - v_2;
1093 cursor = limit - v_1;
1108 public override bool Stem()
1122 if (!r_mark_regions())
1133 limit_backward = cursor; cursor = limit;
1136 v_2 = limit - cursor;
1140 if (!r_attached_pronoun())
1149 cursor = limit - v_2;
1151 v_3 = limit - cursor;
1158 v_4 = limit - cursor;
1162 if (!r_standard_suffix())
1172 cursor = limit - v_4;
1176 if (!r_y_verb_suffix())
1186 cursor = limit - v_4;
1188 if (!r_verb_suffix())
1202 cursor = limit - v_3;
1204 v_5 = limit - cursor;
1208 if (!r_residual_suffix())
1217 cursor = limit - v_5;
1218 cursor = limit_backward;