summaryrefslogtreecommitdiffstats
path: root/sphinx/search/non-minified-js/porter-stemmer.js
diff options
context:
space:
mode:
Diffstat (limited to 'sphinx/search/non-minified-js/porter-stemmer.js')
-rw-r--r--sphinx/search/non-minified-js/porter-stemmer.js749
1 files changed, 749 insertions, 0 deletions
diff --git a/sphinx/search/non-minified-js/porter-stemmer.js b/sphinx/search/non-minified-js/porter-stemmer.js
new file mode 100644
index 0000000..0747d2c
--- /dev/null
+++ b/sphinx/search/non-minified-js/porter-stemmer.js
@@ -0,0 +1,749 @@
+// Generated by Snowball 2.1.0 - https://snowballstem.org/
+
+/**@constructor*/
+PorterStemmer = function() {
+ var base = new BaseStemmer();
+ /** @const */ var a_0 = [
+ ["s", -1, 3],
+ ["ies", 0, 2],
+ ["sses", 0, 1],
+ ["ss", 0, -1]
+ ];
+
+ /** @const */ var a_1 = [
+ ["", -1, 3],
+ ["bb", 0, 2],
+ ["dd", 0, 2],
+ ["ff", 0, 2],
+ ["gg", 0, 2],
+ ["bl", 0, 1],
+ ["mm", 0, 2],
+ ["nn", 0, 2],
+ ["pp", 0, 2],
+ ["rr", 0, 2],
+ ["at", 0, 1],
+ ["tt", 0, 2],
+ ["iz", 0, 1]
+ ];
+
+ /** @const */ var a_2 = [
+ ["ed", -1, 2],
+ ["eed", 0, 1],
+ ["ing", -1, 2]
+ ];
+
+ /** @const */ var a_3 = [
+ ["anci", -1, 3],
+ ["enci", -1, 2],
+ ["abli", -1, 4],
+ ["eli", -1, 6],
+ ["alli", -1, 9],
+ ["ousli", -1, 11],
+ ["entli", -1, 5],
+ ["aliti", -1, 9],
+ ["biliti", -1, 13],
+ ["iviti", -1, 12],
+ ["tional", -1, 1],
+ ["ational", 10, 8],
+ ["alism", -1, 9],
+ ["ation", -1, 8],
+ ["ization", 13, 7],
+ ["izer", -1, 7],
+ ["ator", -1, 8],
+ ["iveness", -1, 12],
+ ["fulness", -1, 10],
+ ["ousness", -1, 11]
+ ];
+
+ /** @const */ var a_4 = [
+ ["icate", -1, 2],
+ ["ative", -1, 3],
+ ["alize", -1, 1],
+ ["iciti", -1, 2],
+ ["ical", -1, 2],
+ ["ful", -1, 3],
+ ["ness", -1, 3]
+ ];
+
+ /** @const */ var a_5 = [
+ ["ic", -1, 1],
+ ["ance", -1, 1],
+ ["ence", -1, 1],
+ ["able", -1, 1],
+ ["ible", -1, 1],
+ ["ate", -1, 1],
+ ["ive", -1, 1],
+ ["ize", -1, 1],
+ ["iti", -1, 1],
+ ["al", -1, 1],
+ ["ism", -1, 1],
+ ["ion", -1, 2],
+ ["er", -1, 1],
+ ["ous", -1, 1],
+ ["ant", -1, 1],
+ ["ent", -1, 1],
+ ["ment", 15, 1],
+ ["ement", 16, 1],
+ ["ou", -1, 1]
+ ];
+
+ /** @const */ var /** Array<int> */ g_v = [17, 65, 16, 1];
+
+ /** @const */ var /** Array<int> */ g_v_WXY = [1, 17, 65, 208, 1];
+
+ var /** boolean */ B_Y_found = false;
+ var /** number */ I_p2 = 0;
+ var /** number */ I_p1 = 0;
+
+
+ /** @return {boolean} */
+ function r_shortv() {
+ if (!(base.out_grouping_b(g_v_WXY, 89, 121)))
+ {
+ return false;
+ }
+ if (!(base.in_grouping_b(g_v, 97, 121)))
+ {
+ return false;
+ }
+ if (!(base.out_grouping_b(g_v, 97, 121)))
+ {
+ return false;
+ }
+ return true;
+ };
+
+ /** @return {boolean} */
+ function r_R1() {
+ if (!(I_p1 <= base.cursor))
+ {
+ return false;
+ }
+ return true;
+ };
+
+ /** @return {boolean} */
+ function r_R2() {
+ if (!(I_p2 <= base.cursor))
+ {
+ return false;
+ }
+ return true;
+ };
+
+ /** @return {boolean} */
+ function r_Step_1a() {
+ var /** number */ among_var;
+ base.ket = base.cursor;
+ among_var = base.find_among_b(a_0);
+ if (among_var == 0)
+ {
+ return false;
+ }
+ base.bra = base.cursor;
+ switch (among_var) {
+ case 1:
+ if (!base.slice_from("ss"))
+ {
+ return false;
+ }
+ break;
+ case 2:
+ if (!base.slice_from("i"))
+ {
+ return false;
+ }
+ break;
+ case 3:
+ if (!base.slice_del())
+ {
+ return false;
+ }
+ break;
+ }
+ return true;
+ };
+
+ /** @return {boolean} */
+ function r_Step_1b() {
+ var /** number */ among_var;
+ base.ket = base.cursor;
+ among_var = base.find_among_b(a_2);
+ if (among_var == 0)
+ {
+ return false;
+ }
+ base.bra = base.cursor;
+ switch (among_var) {
+ case 1:
+ if (!r_R1())
+ {
+ return false;
+ }
+ if (!base.slice_from("ee"))
+ {
+ return false;
+ }
+ break;
+ case 2:
+ var /** number */ v_1 = base.limit - base.cursor;
+ golab0: while(true)
+ {
+ lab1: {
+ if (!(base.in_grouping_b(g_v, 97, 121)))
+ {
+ break lab1;
+ }
+ break golab0;
+ }
+ if (base.cursor <= base.limit_backward)
+ {
+ return false;
+ }
+ base.cursor--;
+ }
+ base.cursor = base.limit - v_1;
+ if (!base.slice_del())
+ {
+ return false;
+ }
+ var /** number */ v_3 = base.limit - base.cursor;
+ among_var = base.find_among_b(a_1);
+ if (among_var == 0)
+ {
+ return false;
+ }
+ base.cursor = base.limit - v_3;
+ switch (among_var) {
+ case 1:
+ {
+ var /** number */ c1 = base.cursor;
+ base.insert(base.cursor, base.cursor, "e");
+ base.cursor = c1;
+ }
+ break;
+ case 2:
+ base.ket = base.cursor;
+ if (base.cursor <= base.limit_backward)
+ {
+ return false;
+ }
+ base.cursor--;
+ base.bra = base.cursor;
+ if (!base.slice_del())
+ {
+ return false;
+ }
+ break;
+ case 3:
+ if (base.cursor != I_p1)
+ {
+ return false;
+ }
+ var /** number */ v_4 = base.limit - base.cursor;
+ if (!r_shortv())
+ {
+ return false;
+ }
+ base.cursor = base.limit - v_4;
+ {
+ var /** number */ c2 = base.cursor;
+ base.insert(base.cursor, base.cursor, "e");
+ base.cursor = c2;
+ }
+ break;
+ }
+ break;
+ }
+ return true;
+ };
+
+ /** @return {boolean} */
+ function r_Step_1c() {
+ base.ket = base.cursor;
+ lab0: {
+ var /** number */ v_1 = base.limit - base.cursor;
+ lab1: {
+ if (!(base.eq_s_b("y")))
+ {
+ break lab1;
+ }
+ break lab0;
+ }
+ base.cursor = base.limit - v_1;
+ if (!(base.eq_s_b("Y")))
+ {
+ return false;
+ }
+ }
+ base.bra = base.cursor;
+ golab2: while(true)
+ {
+ lab3: {
+ if (!(base.in_grouping_b(g_v, 97, 121)))
+ {
+ break lab3;
+ }
+ break golab2;
+ }
+ if (base.cursor <= base.limit_backward)
+ {
+ return false;
+ }
+ base.cursor--;
+ }
+ if (!base.slice_from("i"))
+ {
+ return false;
+ }
+ return true;
+ };
+
+ /** @return {boolean} */
+ function r_Step_2() {
+ var /** number */ among_var;
+ base.ket = base.cursor;
+ among_var = base.find_among_b(a_3);
+ if (among_var == 0)
+ {
+ return false;
+ }
+ base.bra = base.cursor;
+ if (!r_R1())
+ {
+ return false;
+ }
+ switch (among_var) {
+ case 1:
+ if (!base.slice_from("tion"))
+ {
+ return false;
+ }
+ break;
+ case 2:
+ if (!base.slice_from("ence"))
+ {
+ return false;
+ }
+ break;
+ case 3:
+ if (!base.slice_from("ance"))
+ {
+ return false;
+ }
+ break;
+ case 4:
+ if (!base.slice_from("able"))
+ {
+ return false;
+ }
+ break;
+ case 5:
+ if (!base.slice_from("ent"))
+ {
+ return false;
+ }
+ break;
+ case 6:
+ if (!base.slice_from("e"))
+ {
+ return false;
+ }
+ break;
+ case 7:
+ if (!base.slice_from("ize"))
+ {
+ return false;
+ }
+ break;
+ case 8:
+ if (!base.slice_from("ate"))
+ {
+ return false;
+ }
+ break;
+ case 9:
+ if (!base.slice_from("al"))
+ {
+ return false;
+ }
+ break;
+ case 10:
+ if (!base.slice_from("ful"))
+ {
+ return false;
+ }
+ break;
+ case 11:
+ if (!base.slice_from("ous"))
+ {
+ return false;
+ }
+ break;
+ case 12:
+ if (!base.slice_from("ive"))
+ {
+ return false;
+ }
+ break;
+ case 13:
+ if (!base.slice_from("ble"))
+ {
+ return false;
+ }
+ break;
+ }
+ return true;
+ };
+
+ /** @return {boolean} */
+ function r_Step_3() {
+ var /** number */ among_var;
+ base.ket = base.cursor;
+ among_var = base.find_among_b(a_4);
+ if (among_var == 0)
+ {
+ return false;
+ }
+ base.bra = base.cursor;
+ if (!r_R1())
+ {
+ return false;
+ }
+ switch (among_var) {
+ case 1:
+ if (!base.slice_from("al"))
+ {
+ return false;
+ }
+ break;
+ case 2:
+ if (!base.slice_from("ic"))
+ {
+ return false;
+ }
+ break;
+ case 3:
+ if (!base.slice_del())
+ {
+ return false;
+ }
+ break;
+ }
+ return true;
+ };
+
+ /** @return {boolean} */
+ function r_Step_4() {
+ var /** number */ among_var;
+ base.ket = base.cursor;
+ among_var = base.find_among_b(a_5);
+ if (among_var == 0)
+ {
+ return false;
+ }
+ base.bra = base.cursor;
+ if (!r_R2())
+ {
+ return false;
+ }
+ switch (among_var) {
+ case 1:
+ if (!base.slice_del())
+ {
+ return false;
+ }
+ break;
+ case 2:
+ lab0: {
+ var /** number */ v_1 = base.limit - base.cursor;
+ lab1: {
+ if (!(base.eq_s_b("s")))
+ {
+ break lab1;
+ }
+ break lab0;
+ }
+ base.cursor = base.limit - v_1;
+ if (!(base.eq_s_b("t")))
+ {
+ return false;
+ }
+ }
+ if (!base.slice_del())
+ {
+ return false;
+ }
+ break;
+ }
+ return true;
+ };
+
+ /** @return {boolean} */
+ function r_Step_5a() {
+ base.ket = base.cursor;
+ if (!(base.eq_s_b("e")))
+ {
+ return false;
+ }
+ base.bra = base.cursor;
+ lab0: {
+ var /** number */ v_1 = base.limit - base.cursor;
+ lab1: {
+ if (!r_R2())
+ {
+ break lab1;
+ }
+ break lab0;
+ }
+ base.cursor = base.limit - v_1;
+ if (!r_R1())
+ {
+ return false;
+ }
+ {
+ var /** number */ v_2 = base.limit - base.cursor;
+ lab2: {
+ if (!r_shortv())
+ {
+ break lab2;
+ }
+ return false;
+ }
+ base.cursor = base.limit - v_2;
+ }
+ }
+ if (!base.slice_del())
+ {
+ return false;
+ }
+ return true;
+ };
+
+ /** @return {boolean} */
+ function r_Step_5b() {
+ base.ket = base.cursor;
+ if (!(base.eq_s_b("l")))
+ {
+ return false;
+ }
+ base.bra = base.cursor;
+ if (!r_R2())
+ {
+ return false;
+ }
+ if (!(base.eq_s_b("l")))
+ {
+ return false;
+ }
+ if (!base.slice_del())
+ {
+ return false;
+ }
+ return true;
+ };
+
+ this.stem = /** @return {boolean} */ function() {
+ B_Y_found = false;
+ var /** number */ v_1 = base.cursor;
+ lab0: {
+ base.bra = base.cursor;
+ if (!(base.eq_s("y")))
+ {
+ break lab0;
+ }
+ base.ket = base.cursor;
+ if (!base.slice_from("Y"))
+ {
+ return false;
+ }
+ B_Y_found = true;
+ }
+ base.cursor = v_1;
+ var /** number */ v_2 = base.cursor;
+ lab1: {
+ while(true)
+ {
+ var /** number */ v_3 = base.cursor;
+ lab2: {
+ golab3: while(true)
+ {
+ var /** number */ v_4 = base.cursor;
+ lab4: {
+ if (!(base.in_grouping(g_v, 97, 121)))
+ {
+ break lab4;
+ }
+ base.bra = base.cursor;
+ if (!(base.eq_s("y")))
+ {
+ break lab4;
+ }
+ base.ket = base.cursor;
+ base.cursor = v_4;
+ break golab3;
+ }
+ base.cursor = v_4;
+ if (base.cursor >= base.limit)
+ {
+ break lab2;
+ }
+ base.cursor++;
+ }
+ if (!base.slice_from("Y"))
+ {
+ return false;
+ }
+ B_Y_found = true;
+ continue;
+ }
+ base.cursor = v_3;
+ break;
+ }
+ }
+ base.cursor = v_2;
+ I_p1 = base.limit;
+ I_p2 = base.limit;
+ var /** number */ v_5 = base.cursor;
+ lab5: {
+ golab6: while(true)
+ {
+ lab7: {
+ if (!(base.in_grouping(g_v, 97, 121)))
+ {
+ break lab7;
+ }
+ break golab6;
+ }
+ if (base.cursor >= base.limit)
+ {
+ break lab5;
+ }
+ base.cursor++;
+ }
+ golab8: while(true)
+ {
+ lab9: {
+ if (!(base.out_grouping(g_v, 97, 121)))
+ {
+ break lab9;
+ }
+ break golab8;
+ }
+ if (base.cursor >= base.limit)
+ {
+ break lab5;
+ }
+ base.cursor++;
+ }
+ I_p1 = base.cursor;
+ golab10: while(true)
+ {
+ lab11: {
+ if (!(base.in_grouping(g_v, 97, 121)))
+ {
+ break lab11;
+ }
+ break golab10;
+ }
+ if (base.cursor >= base.limit)
+ {
+ break lab5;
+ }
+ base.cursor++;
+ }
+ golab12: while(true)
+ {
+ lab13: {
+ if (!(base.out_grouping(g_v, 97, 121)))
+ {
+ break lab13;
+ }
+ break golab12;
+ }
+ if (base.cursor >= base.limit)
+ {
+ break lab5;
+ }
+ base.cursor++;
+ }
+ I_p2 = base.cursor;
+ }
+ base.cursor = v_5;
+ base.limit_backward = base.cursor; base.cursor = base.limit;
+ var /** number */ v_10 = base.limit - base.cursor;
+ r_Step_1a();
+ base.cursor = base.limit - v_10;
+ var /** number */ v_11 = base.limit - base.cursor;
+ r_Step_1b();
+ base.cursor = base.limit - v_11;
+ var /** number */ v_12 = base.limit - base.cursor;
+ r_Step_1c();
+ base.cursor = base.limit - v_12;
+ var /** number */ v_13 = base.limit - base.cursor;
+ r_Step_2();
+ base.cursor = base.limit - v_13;
+ var /** number */ v_14 = base.limit - base.cursor;
+ r_Step_3();
+ base.cursor = base.limit - v_14;
+ var /** number */ v_15 = base.limit - base.cursor;
+ r_Step_4();
+ base.cursor = base.limit - v_15;
+ var /** number */ v_16 = base.limit - base.cursor;
+ r_Step_5a();
+ base.cursor = base.limit - v_16;
+ var /** number */ v_17 = base.limit - base.cursor;
+ r_Step_5b();
+ base.cursor = base.limit - v_17;
+ base.cursor = base.limit_backward;
+ var /** number */ v_18 = base.cursor;
+ lab14: {
+ if (!B_Y_found)
+ {
+ break lab14;
+ }
+ while(true)
+ {
+ var /** number */ v_19 = base.cursor;
+ lab15: {
+ golab16: while(true)
+ {
+ var /** number */ v_20 = base.cursor;
+ lab17: {
+ base.bra = base.cursor;
+ if (!(base.eq_s("Y")))
+ {
+ break lab17;
+ }
+ base.ket = base.cursor;
+ base.cursor = v_20;
+ break golab16;
+ }
+ base.cursor = v_20;
+ if (base.cursor >= base.limit)
+ {
+ break lab15;
+ }
+ base.cursor++;
+ }
+ if (!base.slice_from("y"))
+ {
+ return false;
+ }
+ continue;
+ }
+ base.cursor = v_19;
+ break;
+ }
+ }
+ base.cursor = v_18;
+ return true;
+ };
+
+ /**@return{string}*/
+ this['stemWord'] = function(/**string*/word) {
+ base.setCurrent(word);
+ this.stem();
+ return base.getCurrent();
+ };
+};