@orama/stemmers
Version:
Stemmers for Orama
1 lines • 125 kB
Source Map (JSON)
{"version":3,"sources":["<anon>"],"sourcesContent":["// Generated by Snowball 2.2.0 - https://snowballstem.org/\n// Note that Snowball Tartarus did not have Tamil support, so this was generated using\n// the latest version of Snowball.\n/**@constructor*/ \"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: Object.getOwnPropertyDescriptor(all, name).get\n });\n}\n_export(exports, {\n get language () {\n return language;\n },\n get stemmer () {\n return stemmer;\n }\n});\nfunction BaseStemmer() {\n this.setCurrent = function(value) {\n this.current = value;\n this.cursor = 0;\n this.limit = this.current.length;\n this.limit_backward = 0;\n this.bra = this.cursor;\n this.ket = this.limit;\n };\n this.getCurrent = function() {\n return this.current;\n };\n this.copy_from = function(other) {\n this.current = other.current;\n this.cursor = other.cursor;\n this.limit = other.limit;\n this.limit_backward = other.limit_backward;\n this.bra = other.bra;\n this.ket = other.ket;\n };\n this.in_grouping = function(s, min, max) {\n if (this.cursor >= this.limit) return false;\n var ch = this.current.charCodeAt(this.cursor);\n if (ch > max || ch < min) return false;\n ch -= min;\n if ((s[ch >>> 3] & 0x1 << (ch & 0x7)) == 0) return false;\n this.cursor++;\n return true;\n };\n this.in_grouping_b = function(s, min, max) {\n if (this.cursor <= this.limit_backward) return false;\n var ch = this.current.charCodeAt(this.cursor - 1);\n if (ch > max || ch < min) return false;\n ch -= min;\n if ((s[ch >>> 3] & 0x1 << (ch & 0x7)) == 0) return false;\n this.cursor--;\n return true;\n };\n this.out_grouping = function(s, min, max) {\n if (this.cursor >= this.limit) return false;\n var ch = this.current.charCodeAt(this.cursor);\n if (ch > max || ch < min) {\n this.cursor++;\n return true;\n }\n ch -= min;\n if ((s[ch >>> 3] & 0x1 << (ch & 0x7)) == 0) {\n this.cursor++;\n return true;\n }\n return false;\n };\n this.out_grouping_b = function(s, min, max) {\n if (this.cursor <= this.limit_backward) return false;\n var ch = this.current.charCodeAt(this.cursor - 1);\n if (ch > max || ch < min) {\n this.cursor--;\n return true;\n }\n ch -= min;\n if ((s[ch >>> 3] & 0x1 << (ch & 0x7)) == 0) {\n this.cursor--;\n return true;\n }\n return false;\n };\n this.eq_s = function(s) {\n if (this.limit - this.cursor < s.length) return false;\n if (this.current.slice(this.cursor, this.cursor + s.length) != s) {\n return false;\n }\n this.cursor += s.length;\n return true;\n };\n this.eq_s_b = function(s) {\n if (this.cursor - this.limit_backward < s.length) return false;\n if (this.current.slice(this.cursor - s.length, this.cursor) != s) {\n return false;\n }\n this.cursor -= s.length;\n return true;\n };\n /** @return {number} */ this.find_among = function(v) {\n var i = 0;\n var j = v.length;\n var c = this.cursor;\n var l = this.limit;\n var common_i = 0;\n var common_j = 0;\n var first_key_inspected = false;\n while(true){\n var k = i + (j - i >>> 1);\n var diff = 0;\n var common = common_i < common_j ? common_i : common_j // smaller\n ;\n // w[0]: string, w[1]: substring_i, w[2]: result, w[3]: function (optional)\n var w = v[k];\n var i2;\n for(i2 = common; i2 < w[0].length; i2++){\n if (c + common == l) {\n diff = -1;\n break;\n }\n diff = this.current.charCodeAt(c + common) - w[0].charCodeAt(i2);\n if (diff != 0) break;\n common++;\n }\n if (diff < 0) {\n j = k;\n common_j = common;\n } else {\n i = k;\n common_i = common;\n }\n if (j - i <= 1) {\n if (i > 0) break; // v->s has been inspected\n if (j == i) break; // only one item in v\n // - but now we need to go round once more to get\n // v->s inspected. This looks messy, but is actually\n // the optimal approach.\n if (first_key_inspected) break;\n first_key_inspected = true;\n }\n }\n do {\n var w = v[i];\n if (common_i >= w[0].length) {\n this.cursor = c + w[0].length;\n if (w.length < 4) return w[2];\n var res = w[3](this);\n this.cursor = c + w[0].length;\n if (res) return w[2];\n }\n i = w[1];\n }while (i >= 0)\n return 0;\n };\n // find_among_b is for backwards processing. Same comments apply\n this.find_among_b = function(v) {\n var i = 0;\n var j = v.length;\n var c = this.cursor;\n var lb = this.limit_backward;\n var common_i = 0;\n var common_j = 0;\n var first_key_inspected = false;\n while(true){\n var k = i + (j - i >> 1);\n var diff = 0;\n var common = common_i < common_j ? common_i : common_j;\n var w = v[k];\n var i2;\n for(i2 = w[0].length - 1 - common; i2 >= 0; i2--){\n if (c - common == lb) {\n diff = -1;\n break;\n }\n diff = this.current.charCodeAt(c - 1 - common) - w[0].charCodeAt(i2);\n if (diff != 0) break;\n common++;\n }\n if (diff < 0) {\n j = k;\n common_j = common;\n } else {\n i = k;\n common_i = common;\n }\n if (j - i <= 1) {\n if (i > 0) break;\n if (j == i) break;\n if (first_key_inspected) break;\n first_key_inspected = true;\n }\n }\n do {\n var w = v[i];\n if (common_i >= w[0].length) {\n this.cursor = c - w[0].length;\n if (w.length < 4) return w[2];\n var res = w[3](this);\n this.cursor = c - w[0].length;\n if (res) return w[2];\n }\n i = w[1];\n }while (i >= 0)\n return 0;\n };\n /* to replace chars between c_bra and c_ket in this.current by the\n * chars in s.\n */ this.replace_s = function(c_bra, c_ket, s) {\n var adjustment = s.length - (c_ket - c_bra);\n this.current = this.current.slice(0, c_bra) + s + this.current.slice(c_ket);\n this.limit += adjustment;\n if (this.cursor >= c_ket) this.cursor += adjustment;\n else if (this.cursor > c_bra) this.cursor = c_bra;\n return adjustment;\n };\n this.slice_check = function() {\n if (this.bra < 0 || this.bra > this.ket || this.ket > this.limit || this.limit > this.current.length) {\n return false;\n }\n return true;\n };\n this.slice_from = function(s) {\n var result = false;\n if (this.slice_check()) {\n this.replace_s(this.bra, this.ket, s);\n result = true;\n }\n return result;\n };\n this.slice_del = function() {\n return this.slice_from('');\n };\n this.insert = function(c_bra, c_ket, s) {\n var adjustment = this.replace_s(c_bra, c_ket, s);\n if (c_bra <= this.bra) this.bra += adjustment;\n if (c_bra <= this.ket) this.ket += adjustment;\n };\n this.slice_to = function() {\n var result = '';\n if (this.slice_check()) {\n result = this.current.slice(this.bra, this.ket);\n }\n return result;\n };\n this.assign_to = function() {\n return this.current.slice(0, this.limit);\n };\n}\n/**@constructor*/ function Ta() {\n var base = new BaseStemmer();\n /** @const */ var a_0 = [\n [\n '\\u0B95',\n -1,\n -1\n ],\n [\n '\\u0B99',\n -1,\n -1\n ],\n [\n '\\u0B9A',\n -1,\n -1\n ],\n [\n '\\u0B9E',\n -1,\n -1\n ],\n [\n '\\u0BA4',\n -1,\n -1\n ],\n [\n '\\u0BA8',\n -1,\n -1\n ],\n [\n '\\u0BAA',\n -1,\n -1\n ],\n [\n '\\u0BAE',\n -1,\n -1\n ],\n [\n '\\u0BAF',\n -1,\n -1\n ],\n [\n '\\u0BB5',\n -1,\n -1\n ]\n ];\n /** @const */ var a_1 = [\n [\n '\\u0BA8\\u0BCD\\u0BA4',\n -1,\n -1\n ],\n [\n '\\u0BA8\\u0BCD\\u0BA4\\u0BCD',\n -1,\n -1\n ],\n [\n '\\u0BA8\\u0BCD',\n -1,\n -1\n ]\n ];\n /** @const */ var a_2 = [\n [\n '\\u0BBF',\n -1,\n -1\n ],\n [\n '\\u0BC0',\n -1,\n -1\n ],\n [\n '\\u0BC8',\n -1,\n -1\n ]\n ];\n /** @const */ var a_3 = [\n [\n '\\u0B95',\n -1,\n -1\n ],\n [\n '\\u0B9A',\n -1,\n -1\n ],\n [\n '\\u0B9F',\n -1,\n -1\n ],\n [\n '\\u0BA4',\n -1,\n -1\n ],\n [\n '\\u0BAA',\n -1,\n -1\n ],\n [\n '\\u0BB1',\n -1,\n -1\n ]\n ];\n /** @const */ var a_4 = [\n [\n '\\u0B95',\n -1,\n -1\n ],\n [\n '\\u0B9A',\n -1,\n -1\n ],\n [\n '\\u0B9F',\n -1,\n -1\n ],\n [\n '\\u0BA4',\n -1,\n -1\n ],\n [\n '\\u0BAA',\n -1,\n -1\n ],\n [\n '\\u0BB1',\n -1,\n -1\n ]\n ];\n /** @const */ var a_5 = [\n [\n '\\u0B95',\n -1,\n -1\n ],\n [\n '\\u0B9A',\n -1,\n -1\n ],\n [\n '\\u0B9F',\n -1,\n -1\n ],\n [\n '\\u0BA4',\n -1,\n -1\n ],\n [\n '\\u0BAA',\n -1,\n -1\n ],\n [\n '\\u0BB1',\n -1,\n -1\n ]\n ];\n /** @const */ var a_6 = [\n [\n '\\u0BAF',\n -1,\n -1\n ],\n [\n '\\u0BB0',\n -1,\n -1\n ],\n [\n '\\u0BB2',\n -1,\n -1\n ],\n [\n '\\u0BB3',\n -1,\n -1\n ],\n [\n '\\u0BB4',\n -1,\n -1\n ],\n [\n '\\u0BB5',\n -1,\n -1\n ]\n ];\n /** @const */ var a_7 = [\n [\n '\\u0B99',\n -1,\n -1\n ],\n [\n '\\u0B9E',\n -1,\n -1\n ],\n [\n '\\u0BA3',\n -1,\n -1\n ],\n [\n '\\u0BA8',\n -1,\n -1\n ],\n [\n '\\u0BA9',\n -1,\n -1\n ],\n [\n '\\u0BAE',\n -1,\n -1\n ]\n ];\n /** @const */ var a_8 = [\n [\n '\\u0BAF',\n -1,\n -1\n ],\n [\n '\\u0BB5',\n -1,\n -1\n ],\n [\n '\\u0BB5\\u0BCD',\n -1,\n -1\n ]\n ];\n /** @const */ var a_9 = [\n [\n '\\u0BBE',\n -1,\n -1\n ],\n [\n '\\u0BBF',\n -1,\n -1\n ],\n [\n '\\u0BC0',\n -1,\n -1\n ],\n [\n '\\u0BC1',\n -1,\n -1\n ],\n [\n '\\u0BC2',\n -1,\n -1\n ],\n [\n '\\u0BC6',\n -1,\n -1\n ],\n [\n '\\u0BC7',\n -1,\n -1\n ],\n [\n '\\u0BC8',\n -1,\n -1\n ]\n ];\n /** @const */ var a_10 = [\n [\n '\\u0BBE',\n -1,\n -1\n ],\n [\n '\\u0BBF',\n -1,\n -1\n ],\n [\n '\\u0BC0',\n -1,\n -1\n ],\n [\n '\\u0BC1',\n -1,\n -1\n ],\n [\n '\\u0BC2',\n -1,\n -1\n ],\n [\n '\\u0BC6',\n -1,\n -1\n ],\n [\n '\\u0BC7',\n -1,\n -1\n ],\n [\n '\\u0BC8',\n -1,\n -1\n ]\n ];\n /** @const */ var a_11 = [\n [\n '\\u0B85',\n -1,\n -1\n ],\n [\n '\\u0B87',\n -1,\n -1\n ],\n [\n '\\u0B89',\n -1,\n -1\n ]\n ];\n /** @const */ var a_12 = [\n [\n '\\u0B95',\n -1,\n -1\n ],\n [\n '\\u0B99',\n -1,\n -1\n ],\n [\n '\\u0B9A',\n -1,\n -1\n ],\n [\n '\\u0B9E',\n -1,\n -1\n ],\n [\n '\\u0BA4',\n -1,\n -1\n ],\n [\n '\\u0BA8',\n -1,\n -1\n ],\n [\n '\\u0BAA',\n -1,\n -1\n ],\n [\n '\\u0BAE',\n -1,\n -1\n ],\n [\n '\\u0BAF',\n -1,\n -1\n ],\n [\n '\\u0BB5',\n -1,\n -1\n ]\n ];\n /** @const */ var a_13 = [\n [\n '\\u0B95',\n -1,\n -1\n ],\n [\n '\\u0B9A',\n -1,\n -1\n ],\n [\n '\\u0B9F',\n -1,\n -1\n ],\n [\n '\\u0BA4',\n -1,\n -1\n ],\n [\n '\\u0BAA',\n -1,\n -1\n ],\n [\n '\\u0BB1',\n -1,\n -1\n ]\n ];\n /** @const */ var a_14 = [\n [\n '\\u0BBE',\n -1,\n -1\n ],\n [\n '\\u0BC7',\n -1,\n -1\n ],\n [\n '\\u0BCB',\n -1,\n -1\n ]\n ];\n /** @const */ var a_15 = [\n [\n '\\u0BAA\\u0BBF',\n -1,\n -1\n ],\n [\n '\\u0BB5\\u0BBF',\n -1,\n -1\n ]\n ];\n /** @const */ var a_16 = [\n [\n '\\u0BBE',\n -1,\n -1\n ],\n [\n '\\u0BBF',\n -1,\n -1\n ],\n [\n '\\u0BC0',\n -1,\n -1\n ],\n [\n '\\u0BC1',\n -1,\n -1\n ],\n [\n '\\u0BC2',\n -1,\n -1\n ],\n [\n '\\u0BC6',\n -1,\n -1\n ],\n [\n '\\u0BC7',\n -1,\n -1\n ],\n [\n '\\u0BC8',\n -1,\n -1\n ]\n ];\n /** @const */ var a_17 = [\n [\n '\\u0BAA\\u0B9F\\u0BCD\\u0B9F',\n -1,\n -1\n ],\n [\n '\\u0BAA\\u0B9F\\u0BCD\\u0B9F\\u0BA3',\n -1,\n -1\n ],\n [\n '\\u0BA4\\u0BBE\\u0BA9',\n -1,\n -1\n ],\n [\n '\\u0BAA\\u0B9F\\u0BBF\\u0BA4\\u0BBE\\u0BA9',\n 2,\n -1\n ],\n [\n '\\u0B95\\u0BC1\\u0BB0\\u0BBF\\u0BAF',\n -1,\n -1\n ],\n [\n '\\u0BAA\\u0B9F\\u0BBF',\n -1,\n -1\n ],\n [\n '\\u0BAA\\u0BB1\\u0BCD\\u0BB1\\u0BBF',\n -1,\n -1\n ],\n [\n '\\u0BAA\\u0B9F\\u0BC1',\n -1,\n -1\n ],\n [\n '\\u0BB5\\u0BBF\\u0B9F\\u0BC1',\n -1,\n -1\n ],\n [\n '\\u0BAA\\u0B9F\\u0BCD\\u0B9F\\u0BC1',\n -1,\n -1\n ],\n [\n '\\u0BB5\\u0BBF\\u0B9F\\u0BCD\\u0B9F\\u0BC1',\n -1,\n -1\n ],\n [\n '\\u0BAA\\u0B9F\\u0BCD\\u0B9F\\u0BA4\\u0BC1',\n -1,\n -1\n ],\n [\n '\\u0BC6\\u0BB2\\u0BCD\\u0BB2\\u0BBE\\u0BAE\\u0BCD',\n -1,\n -1\n ]\n ];\n /** @const */ var a_18 = [\n [\n '\\u0B95',\n -1,\n -1\n ],\n [\n '\\u0B9A',\n -1,\n -1\n ],\n [\n '\\u0B9F',\n -1,\n -1\n ],\n [\n '\\u0BA4',\n -1,\n -1\n ],\n [\n '\\u0BAA',\n -1,\n -1\n ],\n [\n '\\u0BB1',\n -1,\n -1\n ]\n ];\n /** @const */ var a_19 = [\n [\n '\\u0B95',\n -1,\n -1\n ],\n [\n '\\u0B9A',\n -1,\n -1\n ],\n [\n '\\u0B9F',\n -1,\n -1\n ],\n [\n '\\u0BA4',\n -1,\n -1\n ],\n [\n '\\u0BAA',\n -1,\n -1\n ],\n [\n '\\u0BB1',\n -1,\n -1\n ]\n ];\n /** @const */ var a_20 = [\n [\n '\\u0BBE',\n -1,\n -1\n ],\n [\n '\\u0BBF',\n -1,\n -1\n ],\n [\n '\\u0BC0',\n -1,\n -1\n ],\n [\n '\\u0BC1',\n -1,\n -1\n ],\n [\n '\\u0BC2',\n -1,\n -1\n ],\n [\n '\\u0BC6',\n -1,\n -1\n ],\n [\n '\\u0BC7',\n -1,\n -1\n ],\n [\n '\\u0BC8',\n -1,\n -1\n ]\n ];\n /** @const */ var a_21 = [\n [\n '\\u0BBE',\n -1,\n -1\n ],\n [\n '\\u0BBF',\n -1,\n -1\n ],\n [\n '\\u0BC0',\n -1,\n -1\n ],\n [\n '\\u0BC1',\n -1,\n -1\n ],\n [\n '\\u0BC2',\n -1,\n -1\n ],\n [\n '\\u0BC6',\n -1,\n -1\n ],\n [\n '\\u0BC7',\n -1,\n -1\n ],\n [\n '\\u0BC8',\n -1,\n -1\n ]\n ];\n /** @const */ var a_22 = [\n [\n '\\u0BAA\\u0B9F\\u0BC1',\n -1,\n -1\n ],\n [\n '\\u0B95\\u0BCA\\u0BA3\\u0BCD\\u0B9F\\u0BBF\\u0BB0\\u0BCD',\n -1,\n -1\n ]\n ];\n /** @const */ var a_23 = [\n [\n '\\u0B85',\n -1,\n -1\n ],\n [\n '\\u0B86',\n -1,\n -1\n ],\n [\n '\\u0B87',\n -1,\n -1\n ],\n [\n '\\u0B88',\n -1,\n -1\n ],\n [\n '\\u0B89',\n -1,\n -1\n ],\n [\n '\\u0B8A',\n -1,\n -1\n ],\n [\n '\\u0B8E',\n -1,\n -1\n ],\n [\n '\\u0B8F',\n -1,\n -1\n ],\n [\n '\\u0B90',\n -1,\n -1\n ],\n [\n '\\u0B92',\n -1,\n -1\n ],\n [\n '\\u0B93',\n -1,\n -1\n ],\n [\n '\\u0B94',\n -1,\n -1\n ]\n ];\n /** @const */ var a_24 = [\n [\n '\\u0BBE',\n -1,\n -1\n ],\n [\n '\\u0BBF',\n -1,\n -1\n ],\n [\n '\\u0BC0',\n -1,\n -1\n ],\n [\n '\\u0BC1',\n -1,\n -1\n ],\n [\n '\\u0BC2',\n -1,\n -1\n ],\n [\n '\\u0BC6',\n -1,\n -1\n ],\n [\n '\\u0BC7',\n -1,\n -1\n ],\n [\n '\\u0BC8',\n -1,\n -1\n ]\n ];\n /** @const */ var a_25 = [\n [\n '\\u0B95\\u0BBF\\u0BB1',\n -1,\n -1\n ],\n [\n '\\u0B95\\u0BBF\\u0BA9\\u0BCD\\u0BB1',\n -1,\n -1\n ],\n [\n '\\u0BBE\\u0BA8\\u0BBF\\u0BA9\\u0BCD\\u0BB1',\n -1,\n -1\n ],\n [\n '\\u0B95\\u0BBF\\u0BB1\\u0BCD',\n -1,\n -1\n ],\n [\n '\\u0B95\\u0BBF\\u0BA9\\u0BCD\\u0BB1\\u0BCD',\n -1,\n -1\n ],\n [\n '\\u0BBE\\u0BA8\\u0BBF\\u0BA9\\u0BCD\\u0BB1\\u0BCD',\n -1,\n -1\n ]\n ];\n var /** boolean */ B_found_vetrumai_urupu = false;\n var /** boolean */ B_found_a_match = false;\n /** @return {boolean} */ function r_has_min_length() {\n if (!(base.current.length > 4)) {\n return false;\n }\n return true;\n }\n /** @return {boolean} */ function r_fix_va_start() {\n lab0: {\n var /** number */ v_1 = base.cursor;\n lab1: {\n var /** number */ v_2 = base.cursor;\n var /** number */ v_3 = base.cursor;\n lab2: {\n if (!base.eq_s('\\u0BB5\\u0BCB')) {\n base.cursor = v_3;\n break lab2;\n }\n }\n base.cursor = v_2;\n base.bra = base.cursor;\n if (!base.eq_s('\\u0BB5\\u0BCB')) {\n break lab1;\n }\n base.ket = base.cursor;\n if (!base.slice_from('\\u0B93')) {\n return false;\n }\n break lab0;\n }\n base.cursor = v_1;\n lab3: {\n var /** number */ v_4 = base.cursor;\n var /** number */ v_5 = base.cursor;\n lab4: {\n if (!base.eq_s('\\u0BB5\\u0BCA')) {\n base.cursor = v_5;\n break lab4;\n }\n }\n base.cursor = v_4;\n base.bra = base.cursor;\n if (!base.eq_s('\\u0BB5\\u0BCA')) {\n break lab3;\n }\n base.ket = base.cursor;\n if (!base.slice_from('\\u0B92')) {\n return false;\n }\n break lab0;\n }\n base.cursor = v_1;\n lab5: {\n var /** number */ v_6 = base.cursor;\n var /** number */ v_7 = base.cursor;\n lab6: {\n if (!base.eq_s('\\u0BB5\\u0BC1')) {\n base.cursor = v_7;\n break lab6;\n }\n }\n base.cursor = v_6;\n base.bra = base.cursor;\n if (!base.eq_s('\\u0BB5\\u0BC1')) {\n break lab5;\n }\n base.ket = base.cursor;\n if (!base.slice_from('\\u0B89')) {\n return false;\n }\n break lab0;\n }\n base.cursor = v_1;\n var /** number */ v_8 = base.cursor;\n var /** number */ v_9 = base.cursor;\n lab7: {\n if (!base.eq_s('\\u0BB5\\u0BC2')) {\n base.cursor = v_9;\n break lab7;\n }\n }\n base.cursor = v_8;\n base.bra = base.cursor;\n if (!base.eq_s('\\u0BB5\\u0BC2')) {\n return false;\n }\n base.ket = base.cursor;\n if (!base.slice_from('\\u0B8A')) {\n return false;\n }\n }\n return true;\n }\n /** @return {boolean} */ function r_fix_endings() {\n var /** number */ v_1 = base.cursor;\n lab0: {\n while(true){\n var /** number */ v_2 = base.cursor;\n lab1: {\n if (!r_fix_ending()) {\n break lab1;\n }\n continue;\n }\n base.cursor = v_2;\n break;\n }\n }\n base.cursor = v_1;\n return true;\n }\n /** @return {boolean} */ function r_remove_question_prefixes() {\n base.bra = base.cursor;\n if (!base.eq_s('\\u0B8E')) {\n return false;\n }\n if (base.find_among(a_0) == 0) {\n return false;\n }\n if (!base.eq_s('\\u0BCD')) {\n return false;\n }\n base.ket = base.cursor;\n if (!base.slice_del()) {\n return false;\n }\n var /** number */ v_1 = base.cursor;\n r_fix_va_start();\n base.cursor = v_1;\n return true;\n }\n /** @return {boolean} */ function r_fix_ending() {\n if (!(base.current.length > 3)) {\n return false;\n }\n base.limit_backward = base.cursor;\n base.cursor = base.limit;\n lab0: {\n var /** number */ v_1 = base.limit - base.cursor;\n lab1: {\n base.ket = base.cursor;\n if (base.find_among_b(a_1) == 0) {\n break lab1;\n }\n base.bra = base.cursor;\n if (!base.slice_del()) {\n return false;\n }\n break lab0;\n }\n base.cursor = base.limit - v_1;\n lab2: {\n base.ket = base.cursor;\n if (!base.eq_s_b('\\u0BAF\\u0BCD')) {\n break lab2;\n }\n var /** number */ v_2 = base.limit - base.cursor;\n if (base.find_among_b(a_2) == 0) {\n break lab2;\n }\n base.cursor = base.limit - v_2;\n base.bra = base.cursor;\n if (!base.slice_del()) {\n return false;\n }\n break lab0;\n }\n base.cursor = base.limit - v_1;\n lab3: {\n base.ket = base.cursor;\n lab4: {\n var /** number */ v_3 = base.limit - base.cursor;\n lab5: {\n if (!base.eq_s_b('\\u0B9F\\u0BCD\\u0BAA\\u0BCD')) {\n break lab5;\n }\n break lab4;\n }\n base.cursor = base.limit - v_3;\n if (!base.eq_s_b('\\u0B9F\\u0BCD\\u0B95\\u0BCD')) {\n break lab3;\n }\n }\n base.bra = base.cursor;\n if (!base.slice_from('\\u0BB3\\u0BCD')) {\n return false;\n }\n break lab0;\n }\n base.cursor = base.limit - v_1;\n lab6: {\n base.ket = base.cursor;\n if (!base.eq_s_b('\\u0BA9\\u0BCD\\u0BB1\\u0BCD')) {\n break lab6;\n }\n base.bra = base.cursor;\n if (!base.slice_from('\\u0BB2\\u0BCD')) {\n return false;\n }\n break lab0;\n }\n base.cursor = base.limit - v_1;\n lab7: {\n base.ket = base.cursor;\n if (!base.eq_s_b('\\u0BB1\\u0BCD\\u0B95\\u0BCD')) {\n break lab7;\n }\n base.bra = base.cursor;\n if (!base.slice_from('\\u0BB2\\u0BCD')) {\n return false;\n }\n break lab0;\n }\n base.cursor = base.limit - v_1;\n lab8: {\n base.ket = base.cursor;\n if (!base.eq_s_b('\\u0B9F\\u0BCD\\u0B9F\\u0BCD')) {\n break lab8;\n }\n base.bra = base.cursor;\n if (!base.slice_from('\\u0B9F\\u0BC1')) {\n return false;\n }\n break lab0;\n }\n base.cursor = base.limit - v_1;\n lab9: {\n if (!B_found_vetrumai_urupu) {\n break lab9;\n }\n base.ket = base.cursor;\n if (!base.eq_s_b('\\u0BA4\\u0BCD\\u0BA4\\u0BCD')) {\n break lab9;\n }\n var /** number */ v_4 = base.limit - base.cursor;\n {\n var /** number */ v_5 = base.limit - base.cursor;\n lab10: {\n if (!base.eq_s_b('\\u0BC8')) {\n break lab10;\n }\n break lab9;\n }\n base.cursor = base.limit - v_5;\n }\n base.cursor = base.limit - v_4;\n base.bra = base.cursor;\n if (!base.slice_from('\\u0BAE\\u0BCD')) {\n return false;\n }\n base.bra = base.cursor;\n break lab0;\n }\n base.cursor = base.limit - v_1;\n lab11: {\n base.ket = base.cursor;\n lab12: {\n var /** number */ v_6 = base.limit - base.cursor;\n lab13: {\n if (!base.eq_s_b('\\u0BC1\\u0B95\\u0BCD')) {\n break lab13;\n }\n break lab12;\n }\n base.cursor = base.limit - v_6;\n if (!base.eq_s_b('\\u0BC1\\u0B95\\u0BCD\\u0B95\\u0BCD')) {\n break lab11;\n }\n }\n base.bra = base.cursor;\n if (!base.slice_from('\\u0BCD')) {\n return false;\n }\n break lab0;\n }\n base.cursor = base.limit - v_1;\n lab14: {\n base.ket = base.cursor;\n if (!base.eq_s_b('\\u0BCD')) {\n break lab14;\n }\n if (base.find_among_b(a_3) == 0) {\n break lab14;\n }\n if (!base.eq_s_b('\\u0BCD')) {\n break lab14;\n }\n if (base.find_among_b(a_4) == 0) {\n break lab14;\n }\n base.bra = base.cursor;\n if (!base.slice_del()) {\n return false;\n }\n break lab0;\n }\n base.cursor = base.limit - v_1;\n lab15: {\n base.ket = base.cursor;\n if (!base.eq_s_b('\\u0BC1\\u0B95\\u0BCD')) {\n break lab15;\n }\n base.bra = base.cursor;\n if (!base.slice_from('\\u0BCD')) {\n return false;\n }\n break lab0;\n }\n base.cursor = base.limit - v_1;\n lab16: {\n base.ket = base.cursor;\n if (!base.eq_s_b('\\u0BCD')) {\n break lab16;\n }\n if (base.find_among_b(a_5) == 0) {\n break lab16;\n }\n base.bra = base.cursor;\n if (!base.slice_del()) {\n return false;\n }\n break lab0;\n }\n base.cursor = base.limit - v_1;\n lab17: {\n base.ket = base.cursor;\n if (!base.eq_s_b('\\u0BCD')) {\n break lab17;\n }\n lab18: {\n var /** number */ v_7 = base.limit - base.cursor;\n lab19: {\n if (base.find_among_b(a_6) == 0) {\n break lab19;\n }\n break lab18;\n }\n base.cursor = base.limit - v_7;\n if (base.find_among_b(a_7) == 0) {\n break lab17;\n }\n }\n if (!base.eq_s_b('\\u0BCD')) {\n break lab17;\n }\n base.bra = base.cursor;\n if (!base.slice_from('\\u0BCD')) {\n return false;\n }\n break lab0;\n }\n base.cursor = base.limit - v_1;\n lab20: {\n base.ket = base.cursor;\n if (base.find_among_b(a_8) == 0) {\n break lab20;\n }\n base.bra = base.cursor;\n if (!base.slice_del()) {\n return false;\n }\n break lab0;\n }\n base.cursor = base.limit - v_1;\n lab21: {\n base.ket = base.cursor;\n if (!base.eq_s_b('\\u0BA9\\u0BC1')) {\n break lab21;\n }\n var /** number */ v_8 = base.limit - base.cursor;\n {\n var /** number */ v_9 = base.limit - base.cursor;\n lab22: {\n if (base.find_among_b(a_9) == 0) {\n break lab22;\n }\n break lab21;\n }\n base.cursor = base.limit - v_9;\n }\n base.cursor = base.limit - v_8;\n base.bra = base.cursor;\n if (!base.slice_del()) {\n return false;\n }\n break lab0;\n }\n base.cursor = base.limit - v_1;\n lab23: {\n base.ket = base.cursor;\n if (!base.eq_s_b('\\u0B99\\u0BCD')) {\n break lab23;\n }\n var /** number */ v_10 = base.limit - base.cursor;\n {\n var /** number */ v_11 = base.limit - base.cursor;\n lab24: {\n if (!base.eq_s_b('\\u0BC8')) {\n break lab24;\n }\n break lab23;\n }\n base.cursor = base.limit - v_11;\n }\n base.cursor = base.limit - v_10;\n base.bra = base.cursor;\n if (!base.slice_from('\\u0BAE\\u0BCD')) {\n return false;\n }\n break lab0;\n }\n base.cursor = base.limit - v_1;\n lab25: {\n base.ket = base.cursor;\n if (!base.eq_s_b('\\u0B99\\u0BCD')) {\n break lab25;\n }\n base.bra = base.cursor;\n if (!base.slice_del()) {\n return false;\n }\n break lab0;\n }\n base.cursor = base.limit - v_1;\n base.ket = base.cursor;\n if (!base.eq_s_b('\\u0BCD')) {\n return false;\n }\n var /** number */ v_12 = base.limit - base.cursor;\n lab26: {\n var /** number */ v_13 = base.limit - base.cursor;\n lab27: {\n if (base.find_among_b(a_10) == 0) {\n break lab27;\n }\n break lab26;\n }\n base.cursor = base.limit - v_13;\n if (!base.eq_s_b('\\u0BCD')) {\n return false;\n }\n }\n base.cursor = base.limit - v_12;\n base.bra = base.cursor;\n if (!base.slice_del()) {\n return false;\n }\n }\n base.cursor = base.limit_backward;\n return true;\n }\n /** @return {boolean} */ function r_remove_pronoun_prefixes() {\n B_found_a_match = false;\n base.bra = base.cursor;\n if (base.find_among(a_11) == 0) {\n return false;\n }\n if (base.find_among(a_12) == 0) {\n return false;\n }\n if (!base.eq_s('\\u0BCD')) {\n return false;\n }\n base.ket = base.cursor;\n if (!base.slice_del()) {\n return false;\n }\n B_found_a_match = true;\n var /** number */ v_1 = base.cursor;\n r_fix_va_start();\n base.cursor = v_1;\n return true;\n }\n /** @return {boolean} */ function r_remove_plural_suffix() {\n B_found_a_match = false;\n base.limit_backward = base.cursor;\n base.cursor = base.limit;\n lab0: {\n var /** number */ v_1 = base.limit - base.cursor;\n lab1: {\n base.ket = base.cursor;\n if (!base.eq_s_b('\\u0BC1\\u0B99\\u0BCD\\u0B95\\u0BB3\\u0BCD')) {\n break lab1;\n }\n var /** number */ v_2 = base.limit - base.cursor;\n {\n var /** number */ v_3 = base.limit - base.cursor;\n lab2: {\n if (base.find_among_b(a_13) == 0) {\n break lab2;\n }\n break lab1;\n }\n base.cursor = base.limit - v_3;\n }\n base.cursor = base.limit - v_2;\n base.bra = base.cursor;\n if (!base.slice_from('\\u0BCD')) {\n return false;\n }\n break lab0;\n }\n base.cursor = base.limit - v_1;\n lab3: {\n base.ket = base.cursor;\n if (!base.eq_s_b('\\u0BB1\\u0BCD\\u0B95\\u0BB3\\u0BCD')) {\n break lab3;\n }\n base.bra = base.cursor;\n if (!base.slice_from('\\u0BB2\\u0BCD')) {\n return false;\n }\n break lab0;\n }\n base.cursor = base.limit - v_1;\n lab4: {\n base.ket = base.cursor;\n if (!base.eq_s_b('\\u0B9F\\u0BCD\\u0B95\\u0BB3\\u0BCD')) {\n break lab4;\n }\n base.bra = base.cursor;\n if (!base.slice_from('\\u0BB3\\u0BCD')) {\n return false;\n }\n break lab0;\n }\n base.cursor = base.limit - v_1;\n base.ket = base.cursor;\n if (!base.eq_s_b('\\u0B95\\u0BB3\\u0BCD')) {\n return false;\n }\n base.bra = base.cursor;\n if (!base.slice_del()) {\n return false;\n }\n }\n B_found_a_match = true;\n base.cursor = base.limit_backward;\n return true;\n }\n /** @return {boolean} */ function r_remove_question_suffixes() {\n if (!r_has_min_length()) {\n return false;\n }\n B_found_a_match = false;\n base.limit_backward = base.cursor;\n base.cursor = base.limit;\n var /** number */ v_1 = base.limit - base.cursor;\n lab0: {\n base.ket = base.cursor;\n if (base.find_among_b(a_14) == 0) {\n break lab0;\n }\n base.bra = base.cursor;\n if (!base.slice_from('\\u0BCD')) {\n return false;\n }\n B_found_a_match = true;\n }\n base.cursor = base.limit - v_1;\n base.cursor = base.limit_backward;\n r_fix_endings();\n return true;\n }\n /** @return {boolean} */ function r_remove_command_suffixes() {\n if (!r_has_min_length()) {\n return false;\n }\n B_found_a_match = false;\n base.limit_backward = base.cursor;\n base.cursor = base.limit;\n base.ket = base.cursor;\n if (base.find_among_b(a_15) == 0) {\n return false;\n }\n base.bra = base.cursor;\n if (!base.slice_del()) {\n return false;\n }\n B_found_a_match = true;\n base.cursor = base.limit_backward;\n return true;\n }\n /** @return {boolean} */ function r_remove_um() {\n B_found_a_match = false;\n if (!r_has_min_length()) {\n return false;\n }\n base.limit_backward = base.cursor;\n base.cursor = base.limit;\n base.ket = base.cursor;\n if (!base.eq_s_b('\\u0BC1\\u0BAE\\u0BCD')) {\n return false;\n }\n base.bra = base.cursor;\n if (!base.slice_from('\\u0BCD')) {\n return false;\n }\n B_found_a_match = true;\n base.cursor = base.limit_backward;\n var /** number */ v_1 = base.cursor;\n r_fix_ending();\n base.cursor = v_1;\n return true;\n }\n /** @return {boolean} */ function r_remove_common_word_endings() {\n B_found_a_match = false;\n if (!r_has_min_length()) {\n return false;\n }\n base.limit_backward = base.cursor;\n base.cursor = base.limit;\n lab0: {\n var /** number */ v_1 = base.limit - base.cursor;\n lab1: {\n var /** number */ v_2 = base.limit - base.cursor;\n base.ket = base.cursor;\n lab2: {\n var /** number */ v_3 = base.limit - base.cursor;\n lab3: {\n if (!base.eq_s_b('\\u0BC1\\u0B9F\\u0BA9\\u0BCD')) {\n break lab3;\n }\n break lab2;\n }\n base.cursor = base.limit - v_3;\n lab4: {\n if (!base.eq_s_b('\\u0BBF\\u0BB2\\u0BCD\\u0BB2\\u0BC8')) {\n break lab4;\n }\n break lab2;\n }\n base.cursor = base.limit - v_3;\n lab5: {\n if (!base.eq_s_b('\\u0BBF\\u0B9F\\u0BAE\\u0BCD')) {\n break lab5;\n }\n break lab2;\n }\n base.cursor = base.limit - v_3;\n lab6: {\n if (!base.eq_s_b('\\u0BBF\\u0BA9\\u0BCD\\u0BB1\\u0BBF')) {\n break lab6;\n }\n break lab2;\n }\n base.cursor = base.limit - v_3;\n lab7: {\n if (!base.eq_s_b('\\u0BBE\\u0B95\\u0BBF')) {\n break lab7;\n }\n break lab2;\n }\n base.cursor = base.limit - v_3;\n lab8: {\n if (!base.eq_s_b('\\u0BBE\\u0B95\\u0BBF\\u0BAF')) {\n break lab8;\n }\n break lab2;\n }\n base.cursor = base.limit - v_3;\n lab9: {\n if (!base.eq_s_b('\\u0BC6\\u0BA9\\u0BCD\\u0BB1\\u0BC1')) {\n break lab9;\n }\n break lab2;\n }\n base.cursor = base.limit - v_3;\n lab10: {\n if (!base.eq_s_b('\\u0BC1\\u0BB3\\u0BCD\\u0BB3')) {\n break lab10;\n }\n break lab2;\n }\n base.cursor = base.limit - v_3;\n lab11: {\n if (!base.eq_s_b('\\u0BC1\\u0B9F\\u0BC8\\u0BAF')) {\n break lab11;\n }\n break lab2;\n }\n base.cursor = base.limit - v_3;\n lab12: {\n if (!base.eq_s_b('\\u0BC1\\u0B9F\\u0BC8')) {\n break lab12;\n }\n break lab2;\n }\n base.cursor = base.limit - v_3;\n lab13: {\n if (!base.eq_s_b('\\u0BC6\\u0BA9\\u0BC1\\u0BAE\\u0BCD')) {\n break lab13;\n }\n break lab2;\n }\n base.cursor = base.limit - v_3;\n lab14: {\n if (!base.eq_s_b('\\u0BB2\\u0BCD\\u0BB2')) {\n break lab14;\n }\n var /** number */ v_4 = base.limit - base.cursor;\n {\n var /** number */ v_5 = base.limit - base.cursor;\n lab15: {\n if (base.find_among_b(a_16) == 0) {\n break lab15;\n }\n break lab14;\n }\n base.cursor = base.limit - v_5;\n }\n base.cursor = base.limit - v_4;\n break lab2;\n }\n base.cursor = base.limit - v_3;\n lab16: {\n if (!base.eq_s_b('\\u0BC6\\u0BA9')) {\n break lab16;\n }\n break lab2;\n }\n base.cursor = base.limit - v_3;\n if (!base.eq_s_b('\\u0BBE\\u0B95\\u0BBF')) {\n break lab1;\n }\n }\n base.bra = base.cursor;\n if (!base.slice_from('\\u0BCD')) {\n return false;\n }\n B_found_a_match = true;\n base.cursor = base.limit - v_2;\n break lab0;\n }\n base.cursor = base.limit - v_1;\n var /** number */ v_6 = base.limit - base.cursor;\n base.ket = base.cursor;\n if (base.find_among_b(a_17) == 0) {\n