From be1c7e50e1e8809ea56f2c9d472eccd8ffd73a97 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 04:57:58 +0200 Subject: Adding upstream version 1.44.3. Signed-off-by: Daniel Baumann --- .../misc/oktavia/src/stemmer/english-stemmer.jsx | 1638 ++++++++++++++++++++ 1 file changed, 1638 insertions(+) create mode 100644 web/server/h2o/libh2o/misc/oktavia/src/stemmer/english-stemmer.jsx (limited to 'web/server/h2o/libh2o/misc/oktavia/src/stemmer/english-stemmer.jsx') diff --git a/web/server/h2o/libh2o/misc/oktavia/src/stemmer/english-stemmer.jsx b/web/server/h2o/libh2o/misc/oktavia/src/stemmer/english-stemmer.jsx new file mode 100644 index 00000000..901c12c8 --- /dev/null +++ b/web/server/h2o/libh2o/misc/oktavia/src/stemmer/english-stemmer.jsx @@ -0,0 +1,1638 @@ +// This file was generated automatically by the Snowball to JSX compiler + +import "base-stemmer.jsx"; +import "among.jsx"; + + /** + * This class was automatically generated by a Snowball to JSX compiler + * It implements the stemming algorithm defined by a snowball script. + */ + +class EnglishStemmer extends BaseStemmer +{ + static const serialVersionUID = 1; + static const methodObject = new EnglishStemmer(); + + static const a_0 = [ + new Among("arsen", -1, -1), + new Among("commun", -1, -1), + new Among("gener", -1, -1) + ]; + + static const a_1 = [ + new Among("'", -1, 1), + new Among("'s'", 0, 1), + new Among("'s", -1, 1) + ]; + + static const a_2 = [ + new Among("ied", -1, 2), + new Among("s", -1, 3), + new Among("ies", 1, 2), + new Among("sses", 1, 1), + new Among("ss", 1, -1), + new Among("us", 1, -1) + ]; + + static const a_3 = [ + new Among("", -1, 3), + new Among("bb", 0, 2), + new Among("dd", 0, 2), + new Among("ff", 0, 2), + new Among("gg", 0, 2), + new Among("bl", 0, 1), + new Among("mm", 0, 2), + new Among("nn", 0, 2), + new Among("pp", 0, 2), + new Among("rr", 0, 2), + new Among("at", 0, 1), + new Among("tt", 0, 2), + new Among("iz", 0, 1) + ]; + + static const a_4 = [ + new Among("ed", -1, 2), + new Among("eed", 0, 1), + new Among("ing", -1, 2), + new Among("edly", -1, 2), + new Among("eedly", 3, 1), + new Among("ingly", -1, 2) + ]; + + static const a_5 = [ + new Among("anci", -1, 3), + new Among("enci", -1, 2), + new Among("ogi", -1, 13), + new Among("li", -1, 16), + new Among("bli", 3, 12), + new Among("abli", 4, 4), + new Among("alli", 3, 8), + new Among("fulli", 3, 14), + new Among("lessli", 3, 15), + new Among("ousli", 3, 10), + new Among("entli", 3, 5), + new Among("aliti", -1, 8), + new Among("biliti", -1, 12), + new Among("iviti", -1, 11), + new Among("tional", -1, 1), + new Among("ational", 14, 7), + new Among("alism", -1, 8), + new Among("ation", -1, 7), + new Among("ization", 17, 6), + new Among("izer", -1, 6), + new Among("ator", -1, 7), + new Among("iveness", -1, 11), + new Among("fulness", -1, 9), + new Among("ousness", -1, 10) + ]; + + static const a_6 = [ + new Among("icate", -1, 4), + new Among("ative", -1, 6), + new Among("alize", -1, 3), + new Among("iciti", -1, 4), + new Among("ical", -1, 4), + new Among("tional", -1, 1), + new Among("ational", 5, 2), + new Among("ful", -1, 5), + new Among("ness", -1, 5) + ]; + + static const a_7 = [ + new Among("ic", -1, 1), + new Among("ance", -1, 1), + new Among("ence", -1, 1), + new Among("able", -1, 1), + new Among("ible", -1, 1), + new Among("ate", -1, 1), + new Among("ive", -1, 1), + new Among("ize", -1, 1), + new Among("iti", -1, 1), + new Among("al", -1, 1), + new Among("ism", -1, 1), + new Among("ion", -1, 2), + new Among("er", -1, 1), + new Among("ous", -1, 1), + new Among("ant", -1, 1), + new Among("ent", -1, 1), + new Among("ment", 15, 1), + new Among("ement", 16, 1) + ]; + + static const a_8 = [ + new Among("e", -1, 1), + new Among("l", -1, 2) + ]; + + static const a_9 = [ + new Among("succeed", -1, -1), + new Among("proceed", -1, -1), + new Among("exceed", -1, -1), + new Among("canning", -1, -1), + new Among("inning", -1, -1), + new Among("earring", -1, -1), + new Among("herring", -1, -1), + new Among("outing", -1, -1) + ]; + + static const a_10 = [ + new Among("andes", -1, -1), + new Among("atlas", -1, -1), + new Among("bias", -1, -1), + new Among("cosmos", -1, -1), + new Among("dying", -1, 3), + new Among("early", -1, 9), + new Among("gently", -1, 7), + new Among("howe", -1, -1), + new Among("idly", -1, 6), + new Among("lying", -1, 4), + new Among("news", -1, -1), + new Among("only", -1, 10), + new Among("singly", -1, 11), + new Among("skies", -1, 2), + new Among("skis", -1, 1), + new Among("sky", -1, -1), + new Among("tying", -1, 5), + new Among("ugly", -1, 8) + ]; + + static const g_v = [17, 65, 16, 1] : int[]; + + static const g_v_WXY = [1, 17, 65, 208, 1] : int[]; + + static const g_valid_LI = [55, 141, 2] : int[]; + + var B_Y_found : boolean = false; + var I_p2 : int = 0; + var I_p1 : int = 0; + + function copy_from (other : EnglishStemmer) : void + { + this.B_Y_found = other.B_Y_found; + this.I_p2 = other.I_p2; + this.I_p1 = other.I_p1; + super.copy_from(other); + } + + function r_prelude () : boolean + { + var v_1 : int; + var v_2 : int; + var v_3 : int; + var v_4 : int; + var v_5 : int; + // (, line 25 + // unset Y_found, line 26 + this.B_Y_found = false; + // do, line 27 + v_1 = this.cursor; + var lab0 = true; + lab0: while (lab0 == true) + { + lab0 = false; + // (, line 27 + // [, line 27 + this.bra = this.cursor; + // literal, line 27 + if (!(this.eq_s(1, "'"))) + { + break lab0; + } + // ], line 27 + this.ket = this.cursor; + // delete, line 27 + if (!this.slice_del()) + { + return false; + } + } + this.cursor = v_1; + // do, line 28 + v_2 = this.cursor; + var lab1 = true; + lab1: while (lab1 == true) + { + lab1 = false; + // (, line 28 + // [, line 28 + this.bra = this.cursor; + // literal, line 28 + if (!(this.eq_s(1, "y"))) + { + break lab1; + } + // ], line 28 + this.ket = this.cursor; + // <-, line 28 + if (!this.slice_from("Y")) + { + return false; + } + // set Y_found, line 28 + this.B_Y_found = true; + } + this.cursor = v_2; + // do, line 29 + v_3 = this.cursor; + var lab2 = true; + lab2: while (lab2 == true) + { + lab2 = false; + // repeat, line 29 + replab3: while(true) + { + v_4 = this.cursor; + var lab4 = true; + lab4: while (lab4 == true) + { + lab4 = false; + // (, line 29 + // goto, line 29 + golab5: while(true) + { + v_5 = this.cursor; + var lab6 = true; + lab6: while (lab6 == true) + { + lab6 = false; + // (, line 29 + if (!(this.in_grouping(EnglishStemmer.g_v, 97, 121))) + { + break lab6; + } + // [, line 29 + this.bra = this.cursor; + // literal, line 29 + if (!(this.eq_s(1, "y"))) + { + break lab6; + } + // ], line 29 + this.ket = this.cursor; + this.cursor = v_5; + break golab5; + } + this.cursor = v_5; + if (this.cursor >= this.limit) + { + break lab4; + } + this.cursor++; + } + // <-, line 29 + if (!this.slice_from("Y")) + { + return false; + } + // set Y_found, line 29 + this.B_Y_found = true; + continue replab3; + } + this.cursor = v_4; + break replab3; + } + } + this.cursor = v_3; + return true; + } + + function r_mark_regions () : boolean + { + var v_1 : int; + var v_2 : int; + // (, line 32 + this.I_p1 = this.limit; + this.I_p2 = this.limit; + // do, line 35 + v_1 = this.cursor; + var lab0 = true; + lab0: while (lab0 == true) + { + lab0 = false; + // (, line 35 + // or, line 41 + var lab1 = true; + lab1: while (lab1 == true) + { + lab1 = false; + v_2 = this.cursor; + var lab2 = true; + lab2: while (lab2 == true) + { + lab2 = false; + // among, line 36 + if (this.find_among(EnglishStemmer.a_0, 3) == 0) + { + break lab2; + } + break lab1; + } + this.cursor = v_2; + // (, line 41 + // gopast, line 41 + golab3: while(true) + { + var lab4 = true; + lab4: while (lab4 == true) + { + lab4 = false; + if (!(this.in_grouping(EnglishStemmer.g_v, 97, 121))) + { + break lab4; + } + break golab3; + } + if (this.cursor >= this.limit) + { + break lab0; + } + this.cursor++; + } + // gopast, line 41 + golab5: while(true) + { + var lab6 = true; + lab6: while (lab6 == true) + { + lab6 = false; + if (!(this.out_grouping(EnglishStemmer.g_v, 97, 121))) + { + break lab6; + } + break golab5; + } + if (this.cursor >= this.limit) + { + break lab0; + } + this.cursor++; + } + } + // setmark p1, line 42 + this.I_p1 = this.cursor; + // gopast, line 43 + golab7: while(true) + { + var lab8 = true; + lab8: while (lab8 == true) + { + lab8 = false; + if (!(this.in_grouping(EnglishStemmer.g_v, 97, 121))) + { + break lab8; + } + break golab7; + } + if (this.cursor >= this.limit) + { + break lab0; + } + this.cursor++; + } + // gopast, line 43 + golab9: while(true) + { + var lab10 = true; + lab10: while (lab10 == true) + { + lab10 = false; + if (!(this.out_grouping(EnglishStemmer.g_v, 97, 121))) + { + break lab10; + } + break golab9; + } + if (this.cursor >= this.limit) + { + break lab0; + } + this.cursor++; + } + // setmark p2, line 43 + this.I_p2 = this.cursor; + } + this.cursor = v_1; + return true; + } + + function r_shortv () : boolean + { + var v_1 : int; + // (, line 49 + // or, line 51 + var lab0 = true; + lab0: while (lab0 == true) + { + lab0 = false; + v_1 = this.limit - this.cursor; + var lab1 = true; + lab1: while (lab1 == true) + { + lab1 = false; + // (, line 50 + if (!(this.out_grouping_b(EnglishStemmer.g_v_WXY, 89, 121))) + { + break lab1; + } + if (!(this.in_grouping_b(EnglishStemmer.g_v, 97, 121))) + { + break lab1; + } + if (!(this.out_grouping_b(EnglishStemmer.g_v, 97, 121))) + { + break lab1; + } + break lab0; + } + this.cursor = this.limit - v_1; + // (, line 52 + if (!(this.out_grouping_b(EnglishStemmer.g_v, 97, 121))) + { + return false; + } + if (!(this.in_grouping_b(EnglishStemmer.g_v, 97, 121))) + { + return false; + } + // atlimit, line 52 + if (this.cursor > this.limit_backward) + { + return false; + } + } + return true; + } + + function r_R1 () : boolean + { + if (!(this.I_p1 <= this.cursor)) + { + return false; + } + return true; + } + + function r_R2 () : boolean + { + if (!(this.I_p2 <= this.cursor)) + { + return false; + } + return true; + } + + function r_Step_1a () : boolean + { + var among_var : int; + var v_1 : int; + var v_2 : int; + // (, line 58 + // try, line 59 + v_1 = this.limit - this.cursor; + var lab0 = true; + lab0: while (lab0 == true) + { + lab0 = false; + // (, line 59 + // [, line 60 + this.ket = this.cursor; + // substring, line 60 + among_var = this.find_among_b(EnglishStemmer.a_1, 3); + if (among_var == 0) + { + this.cursor = this.limit - v_1; + break lab0; + } + // ], line 60 + this.bra = this.cursor; + switch (among_var) { + case 0: + this.cursor = this.limit - v_1; + break lab0; + case 1: + // (, line 62 + // delete, line 62 + if (!this.slice_del()) + { + return false; + } + break; + } + } + // [, line 65 + this.ket = this.cursor; + // substring, line 65 + among_var = this.find_among_b(EnglishStemmer.a_2, 6); + if (among_var == 0) + { + return false; + } + // ], line 65 + this.bra = this.cursor; + switch (among_var) { + case 0: + return false; + case 1: + // (, line 66 + // <-, line 66 + if (!this.slice_from("ss")) + { + return false; + } + break; + case 2: + // (, line 68 + // or, line 68 + var lab1 = true; + lab1: while (lab1 == true) + { + lab1 = false; + v_2 = this.limit - this.cursor; + var lab2 = true; + lab2: while (lab2 == true) + { + lab2 = false; + // (, line 68 + // hop, line 68 + { + var c : int = this.cursor - 2; + if (this.limit_backward > c || c > this.limit) + { + break lab2; + } + this.cursor = c; + } + // <-, line 68 + if (!this.slice_from("i")) + { + return false; + } + break lab1; + } + this.cursor = this.limit - v_2; + // <-, line 68 + if (!this.slice_from("ie")) + { + return false; + } + } + break; + case 3: + // (, line 69 + // next, line 69 + if (this.cursor <= this.limit_backward) + { + return false; + } + this.cursor--; + // gopast, line 69 + golab3: while(true) + { + var lab4 = true; + lab4: while (lab4 == true) + { + lab4 = false; + if (!(this.in_grouping_b(EnglishStemmer.g_v, 97, 121))) + { + break lab4; + } + break golab3; + } + if (this.cursor <= this.limit_backward) + { + return false; + } + this.cursor--; + } + // delete, line 69 + if (!this.slice_del()) + { + return false; + } + break; + } + return true; + } + + function r_Step_1b () : boolean + { + var among_var : int; + var v_1 : int; + var v_3 : int; + var v_4 : int; + // (, line 74 + // [, line 75 + this.ket = this.cursor; + // substring, line 75 + among_var = this.find_among_b(EnglishStemmer.a_4, 6); + if (among_var == 0) + { + return false; + } + // ], line 75 + this.bra = this.cursor; + switch (among_var) { + case 0: + return false; + case 1: + // (, line 77 + // call R1, line 77 + if (!this.r_R1()) + { + return false; + } + // <-, line 77 + if (!this.slice_from("ee")) + { + return false; + } + break; + case 2: + // (, line 79 + // test, line 80 + v_1 = this.limit - this.cursor; + // gopast, line 80 + golab0: while(true) + { + var lab1 = true; + lab1: while (lab1 == true) + { + lab1 = false; + if (!(this.in_grouping_b(EnglishStemmer.g_v, 97, 121))) + { + break lab1; + } + break golab0; + } + if (this.cursor <= this.limit_backward) + { + return false; + } + this.cursor--; + } + this.cursor = this.limit - v_1; + // delete, line 80 + if (!this.slice_del()) + { + return false; + } + // test, line 81 + v_3 = this.limit - this.cursor; + // substring, line 81 + among_var = this.find_among_b(EnglishStemmer.a_3, 13); + if (among_var == 0) + { + return false; + } + this.cursor = this.limit - v_3; + switch (among_var) { + case 0: + return false; + case 1: + // (, line 83 + // <+, line 83 + { + var c : int = this.cursor; + this.insert(this.cursor, this.cursor, "e"); + this.cursor = c; + } + break; + case 2: + // (, line 86 + // [, line 86 + this.ket = this.cursor; + // next, line 86 + if (this.cursor <= this.limit_backward) + { + return false; + } + this.cursor--; + // ], line 86 + this.bra = this.cursor; + // delete, line 86 + if (!this.slice_del()) + { + return false; + } + break; + case 3: + // (, line 87 + // atmark, line 87 + if (this.cursor != this.I_p1) + { + return false; + } + // test, line 87 + v_4 = this.limit - this.cursor; + // call shortv, line 87 + if (!this.r_shortv()) + { + return false; + } + this.cursor = this.limit - v_4; + // <+, line 87 + { + var c : int = this.cursor; + this.insert(this.cursor, this.cursor, "e"); + this.cursor = c; + } + break; + } + break; + } + return true; + } + + function r_Step_1c () : boolean + { + var v_1 : int; + var v_2 : int; + // (, line 93 + // [, line 94 + this.ket = this.cursor; + // or, line 94 + var lab0 = true; + lab0: while (lab0 == true) + { + lab0 = false; + v_1 = this.limit - this.cursor; + var lab1 = true; + lab1: while (lab1 == true) + { + lab1 = false; + // literal, line 94 + if (!(this.eq_s_b(1, "y"))) + { + break lab1; + } + break lab0; + } + this.cursor = this.limit - v_1; + // literal, line 94 + if (!(this.eq_s_b(1, "Y"))) + { + return false; + } + } + // ], line 94 + this.bra = this.cursor; + if (!(this.out_grouping_b(EnglishStemmer.g_v, 97, 121))) + { + return false; + } + // not, line 95 + { + v_2 = this.limit - this.cursor; + var lab2 = true; + lab2: while (lab2 == true) + { + lab2 = false; + // atlimit, line 95 + if (this.cursor > this.limit_backward) + { + break lab2; + } + return false; + } + this.cursor = this.limit - v_2; + } + // <-, line 96 + if (!this.slice_from("i")) + { + return false; + } + return true; + } + + function r_Step_2 () : boolean + { + var among_var : int; + // (, line 99 + // [, line 100 + this.ket = this.cursor; + // substring, line 100 + among_var = this.find_among_b(EnglishStemmer.a_5, 24); + if (among_var == 0) + { + return false; + } + // ], line 100 + this.bra = this.cursor; + // call R1, line 100 + if (!this.r_R1()) + { + return false; + } + switch (among_var) { + case 0: + return false; + case 1: + // (, line 101 + // <-, line 101 + if (!this.slice_from("tion")) + { + return false; + } + break; + case 2: + // (, line 102 + // <-, line 102 + if (!this.slice_from("ence")) + { + return false; + } + break; + case 3: + // (, line 103 + // <-, line 103 + if (!this.slice_from("ance")) + { + return false; + } + break; + case 4: + // (, line 104 + // <-, line 104 + if (!this.slice_from("able")) + { + return false; + } + break; + case 5: + // (, line 105 + // <-, line 105 + if (!this.slice_from("ent")) + { + return false; + } + break; + case 6: + // (, line 107 + // <-, line 107 + if (!this.slice_from("ize")) + { + return false; + } + break; + case 7: + // (, line 109 + // <-, line 109 + if (!this.slice_from("ate")) + { + return false; + } + break; + case 8: + // (, line 111 + // <-, line 111 + if (!this.slice_from("al")) + { + return false; + } + break; + case 9: + // (, line 112 + // <-, line 112 + if (!this.slice_from("ful")) + { + return false; + } + break; + case 10: + // (, line 114 + // <-, line 114 + if (!this.slice_from("ous")) + { + return false; + } + break; + case 11: + // (, line 116 + // <-, line 116 + if (!this.slice_from("ive")) + { + return false; + } + break; + case 12: + // (, line 118 + // <-, line 118 + if (!this.slice_from("ble")) + { + return false; + } + break; + case 13: + // (, line 119 + // literal, line 119 + if (!(this.eq_s_b(1, "l"))) + { + return false; + } + // <-, line 119 + if (!this.slice_from("og")) + { + return false; + } + break; + case 14: + // (, line 120 + // <-, line 120 + if (!this.slice_from("ful")) + { + return false; + } + break; + case 15: + // (, line 121 + // <-, line 121 + if (!this.slice_from("less")) + { + return false; + } + break; + case 16: + // (, line 122 + if (!(this.in_grouping_b(EnglishStemmer.g_valid_LI, 99, 116))) + { + return false; + } + // delete, line 122 + if (!this.slice_del()) + { + return false; + } + break; + } + return true; + } + + function r_Step_3 () : boolean + { + var among_var : int; + // (, line 126 + // [, line 127 + this.ket = this.cursor; + // substring, line 127 + among_var = this.find_among_b(EnglishStemmer.a_6, 9); + if (among_var == 0) + { + return false; + } + // ], line 127 + this.bra = this.cursor; + // call R1, line 127 + if (!this.r_R1()) + { + return false; + } + switch (among_var) { + case 0: + return false; + case 1: + // (, line 128 + // <-, line 128 + if (!this.slice_from("tion")) + { + return false; + } + break; + case 2: + // (, line 129 + // <-, line 129 + if (!this.slice_from("ate")) + { + return false; + } + break; + case 3: + // (, line 130 + // <-, line 130 + if (!this.slice_from("al")) + { + return false; + } + break; + case 4: + // (, line 132 + // <-, line 132 + if (!this.slice_from("ic")) + { + return false; + } + break; + case 5: + // (, line 134 + // delete, line 134 + if (!this.slice_del()) + { + return false; + } + break; + case 6: + // (, line 136 + // call R2, line 136 + if (!this.r_R2()) + { + return false; + } + // delete, line 136 + if (!this.slice_del()) + { + return false; + } + break; + } + return true; + } + + function r_Step_4 () : boolean + { + var among_var : int; + var v_1 : int; + // (, line 140 + // [, line 141 + this.ket = this.cursor; + // substring, line 141 + among_var = this.find_among_b(EnglishStemmer.a_7, 18); + if (among_var == 0) + { + return false; + } + // ], line 141 + this.bra = this.cursor; + // call R2, line 141 + if (!this.r_R2()) + { + return false; + } + switch (among_var) { + case 0: + return false; + case 1: + // (, line 144 + // delete, line 144 + if (!this.slice_del()) + { + return false; + } + break; + case 2: + // (, line 145 + // or, line 145 + var lab0 = true; + lab0: while (lab0 == true) + { + lab0 = false; + v_1 = this.limit - this.cursor; + var lab1 = true; + lab1: while (lab1 == true) + { + lab1 = false; + // literal, line 145 + if (!(this.eq_s_b(1, "s"))) + { + break lab1; + } + break lab0; + } + this.cursor = this.limit - v_1; + // literal, line 145 + if (!(this.eq_s_b(1, "t"))) + { + return false; + } + } + // delete, line 145 + if (!this.slice_del()) + { + return false; + } + break; + } + return true; + } + + function r_Step_5 () : boolean + { + var among_var : int; + var v_1 : int; + var v_2 : int; + // (, line 149 + // [, line 150 + this.ket = this.cursor; + // substring, line 150 + among_var = this.find_among_b(EnglishStemmer.a_8, 2); + if (among_var == 0) + { + return false; + } + // ], line 150 + this.bra = this.cursor; + switch (among_var) { + case 0: + return false; + case 1: + // (, line 151 + // or, line 151 + var lab0 = true; + lab0: while (lab0 == true) + { + lab0 = false; + v_1 = this.limit - this.cursor; + var lab1 = true; + lab1: while (lab1 == true) + { + lab1 = false; + // call R2, line 151 + if (!this.r_R2()) + { + break lab1; + } + break lab0; + } + this.cursor = this.limit - v_1; + // (, line 151 + // call R1, line 151 + if (!this.r_R1()) + { + return false; + } + // not, line 151 + { + v_2 = this.limit - this.cursor; + var lab2 = true; + lab2: while (lab2 == true) + { + lab2 = false; + // call shortv, line 151 + if (!this.r_shortv()) + { + break lab2; + } + return false; + } + this.cursor = this.limit - v_2; + } + } + // delete, line 151 + if (!this.slice_del()) + { + return false; + } + break; + case 2: + // (, line 152 + // call R2, line 152 + if (!this.r_R2()) + { + return false; + } + // literal, line 152 + if (!(this.eq_s_b(1, "l"))) + { + return false; + } + // delete, line 152 + if (!this.slice_del()) + { + return false; + } + break; + } + return true; + } + + function r_exception2 () : boolean + { + // (, line 156 + // [, line 158 + this.ket = this.cursor; + // substring, line 158 + if (this.find_among_b(EnglishStemmer.a_9, 8) == 0) + { + return false; + } + // ], line 158 + this.bra = this.cursor; + // atlimit, line 158 + if (this.cursor > this.limit_backward) + { + return false; + } + return true; + } + + function r_exception1 () : boolean + { + var among_var : int; + // (, line 168 + // [, line 170 + this.bra = this.cursor; + // substring, line 170 + among_var = this.find_among(EnglishStemmer.a_10, 18); + if (among_var == 0) + { + return false; + } + // ], line 170 + this.ket = this.cursor; + // atlimit, line 170 + if (this.cursor < this.limit) + { + return false; + } + switch (among_var) { + case 0: + return false; + case 1: + // (, line 174 + // <-, line 174 + if (!this.slice_from("ski")) + { + return false; + } + break; + case 2: + // (, line 175 + // <-, line 175 + if (!this.slice_from("sky")) + { + return false; + } + break; + case 3: + // (, line 176 + // <-, line 176 + if (!this.slice_from("die")) + { + return false; + } + break; + case 4: + // (, line 177 + // <-, line 177 + if (!this.slice_from("lie")) + { + return false; + } + break; + case 5: + // (, line 178 + // <-, line 178 + if (!this.slice_from("tie")) + { + return false; + } + break; + case 6: + // (, line 182 + // <-, line 182 + if (!this.slice_from("idl")) + { + return false; + } + break; + case 7: + // (, line 183 + // <-, line 183 + if (!this.slice_from("gentl")) + { + return false; + } + break; + case 8: + // (, line 184 + // <-, line 184 + if (!this.slice_from("ugli")) + { + return false; + } + break; + case 9: + // (, line 185 + // <-, line 185 + if (!this.slice_from("earli")) + { + return false; + } + break; + case 10: + // (, line 186 + // <-, line 186 + if (!this.slice_from("onli")) + { + return false; + } + break; + case 11: + // (, line 187 + // <-, line 187 + if (!this.slice_from("singl")) + { + return false; + } + break; + } + return true; + } + + function r_postlude () : boolean + { + var v_1 : int; + var v_2 : int; + // (, line 203 + // Boolean test Y_found, line 203 + if (!(this.B_Y_found)) + { + return false; + } + // repeat, line 203 + replab0: while(true) + { + v_1 = this.cursor; + var lab1 = true; + lab1: while (lab1 == true) + { + lab1 = false; + // (, line 203 + // goto, line 203 + golab2: while(true) + { + v_2 = this.cursor; + var lab3 = true; + lab3: while (lab3 == true) + { + lab3 = false; + // (, line 203 + // [, line 203 + this.bra = this.cursor; + // literal, line 203 + if (!(this.eq_s(1, "Y"))) + { + break lab3; + } + // ], line 203 + this.ket = this.cursor; + this.cursor = v_2; + break golab2; + } + this.cursor = v_2; + if (this.cursor >= this.limit) + { + break lab1; + } + this.cursor++; + } + // <-, line 203 + if (!this.slice_from("y")) + { + return false; + } + continue replab0; + } + this.cursor = v_1; + break replab0; + } + return true; + } + + override function stem () : boolean + { + var v_1 : int; + var v_2 : int; + var v_3 : int; + var v_4 : int; + var v_5 : int; + var v_6 : int; + var v_7 : int; + var v_8 : int; + var v_9 : int; + var v_10 : int; + var v_11 : int; + var v_12 : int; + var v_13 : int; + // (, line 205 + // or, line 207 + var lab0 = true; + lab0: while (lab0 == true) + { + lab0 = false; + v_1 = this.cursor; + var lab1 = true; + lab1: while (lab1 == true) + { + lab1 = false; + // call exception1, line 207 + if (!this.r_exception1()) + { + break lab1; + } + break lab0; + } + this.cursor = v_1; + var lab2 = true; + lab2: while (lab2 == true) + { + lab2 = false; + // not, line 208 + { + v_2 = this.cursor; + var lab3 = true; + lab3: while (lab3 == true) + { + lab3 = false; + // hop, line 208 + { + var c : int = this.cursor + 3; + if (0 > c || c > this.limit) + { + break lab3; + } + this.cursor = c; + } + break lab2; + } + this.cursor = v_2; + } + break lab0; + } + this.cursor = v_1; + // (, line 208 + // do, line 209 + v_3 = this.cursor; + var lab4 = true; + lab4: while (lab4 == true) + { + lab4 = false; + // call prelude, line 209 + if (!this.r_prelude()) + { + break lab4; + } + } + this.cursor = v_3; + // do, line 210 + v_4 = this.cursor; + var lab5 = true; + lab5: while (lab5 == true) + { + lab5 = false; + // call mark_regions, line 210 + if (!this.r_mark_regions()) + { + break lab5; + } + } + this.cursor = v_4; + // backwards, line 211 + this.limit_backward = this.cursor; this.cursor = this.limit; + // (, line 211 + // do, line 213 + v_5 = this.limit - this.cursor; + var lab6 = true; + lab6: while (lab6 == true) + { + lab6 = false; + // call Step_1a, line 213 + if (!this.r_Step_1a()) + { + break lab6; + } + } + this.cursor = this.limit - v_5; + // or, line 215 + var lab7 = true; + lab7: while (lab7 == true) + { + lab7 = false; + v_6 = this.limit - this.cursor; + var lab8 = true; + lab8: while (lab8 == true) + { + lab8 = false; + // call exception2, line 215 + if (!this.r_exception2()) + { + break lab8; + } + break lab7; + } + this.cursor = this.limit - v_6; + // (, line 215 + // do, line 217 + v_7 = this.limit - this.cursor; + var lab9 = true; + lab9: while (lab9 == true) + { + lab9 = false; + // call Step_1b, line 217 + if (!this.r_Step_1b()) + { + break lab9; + } + } + this.cursor = this.limit - v_7; + // do, line 218 + v_8 = this.limit - this.cursor; + var lab10 = true; + lab10: while (lab10 == true) + { + lab10 = false; + // call Step_1c, line 218 + if (!this.r_Step_1c()) + { + break lab10; + } + } + this.cursor = this.limit - v_8; + // do, line 220 + v_9 = this.limit - this.cursor; + var lab11 = true; + lab11: while (lab11 == true) + { + lab11 = false; + // call Step_2, line 220 + if (!this.r_Step_2()) + { + break lab11; + } + } + this.cursor = this.limit - v_9; + // do, line 221 + v_10 = this.limit - this.cursor; + var lab12 = true; + lab12: while (lab12 == true) + { + lab12 = false; + // call Step_3, line 221 + if (!this.r_Step_3()) + { + break lab12; + } + } + this.cursor = this.limit - v_10; + // do, line 222 + v_11 = this.limit - this.cursor; + var lab13 = true; + lab13: while (lab13 == true) + { + lab13 = false; + // call Step_4, line 222 + if (!this.r_Step_4()) + { + break lab13; + } + } + this.cursor = this.limit - v_11; + // do, line 224 + v_12 = this.limit - this.cursor; + var lab14 = true; + lab14: while (lab14 == true) + { + lab14 = false; + // call Step_5, line 224 + if (!this.r_Step_5()) + { + break lab14; + } + } + this.cursor = this.limit - v_12; + } + this.cursor = this.limit_backward; // do, line 227 + v_13 = this.cursor; + var lab15 = true; + lab15: while (lab15 == true) + { + lab15 = false; + // call postlude, line 227 + if (!this.r_postlude()) + { + break lab15; + } + } + this.cursor = v_13; + } + return true; + } + + function equals (o : variant) : boolean { + return o instanceof EnglishStemmer; + } + + function hashCode() : int + { + //http://stackoverflow.com/questions/194846/is-there-any-kind-of-hashcode-function-in-javascript + var classname = "EnglishStemmer"; + var hash = 0; + if (classname.length == 0) return hash; + for (var i = 0; i < classname.length; i++) { + var char = classname.charCodeAt(i); + hash = ((hash << 5) - hash) + char; + hash = hash & hash; // Convert to 32bit integer + } + return hash; + } + +} + -- cgit v1.2.3