node-nlp
Version:
Library for NLU (Natural Language Understanding) done in Node.js
1,901 lines (1,861 loc) • 88.2 kB
JavaScript
/*
* Copyright (c) AXA Shared Services Spain S.A.
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
const BaseStemmer = require('./base-stemmer');
const Among = require('./among');
/**
* This class was automatically generated by a Snowball to JSX compiler
* It implements the stemming algorithm defined by a snowball script.
*/
class TurkishStemmer extends BaseStemmer {
constructor(tokenizer) {
super(tokenizer);
this.B_continue_stemming_noun_suffixes = false;
this.I_strlen = 0;
}
copy_from(other) {
this.B_continue_stemming_noun_suffixes =
other.B_continue_stemming_noun_suffixes;
this.I_strlen = other.I_strlen;
super.copy_from(other);
}
r_check_vowel_harmony() {
let v_1;
let v_2;
let v_3;
let v_4;
let v_5;
let v_6;
let v_7;
let v_8;
let v_9;
let v_10;
let v_11;
// (, line 111
// test, line 112
v_1 = this.limit - this.cursor;
// (, line 113
// (, line 114
// goto, line 114
golab0: while (true) {
v_2 = this.limit - this.cursor;
let lab1 = true;
while (lab1 == true) {
lab1 = false;
if (!this.in_grouping_b(TurkishStemmer.g_vowel, 97, 305)) {
break;
}
this.cursor = this.limit - v_2;
break golab0;
}
this.cursor = this.limit - v_2;
if (this.cursor <= this.limit_backward) {
return false;
}
this.cursor--;
}
// (, line 115
// or, line 116
let lab2 = true;
lab2: while (lab2 == true) {
lab2 = false;
v_3 = this.limit - this.cursor;
let lab3 = true;
lab3: while (lab3 == true) {
lab3 = false;
// (, line 116
// literal, line 116
if (!this.eq_s_b(1, 'a')) {
break;
}
// goto, line 116
golab4: while (true) {
v_4 = this.limit - this.cursor;
let lab5 = true;
while (lab5 == true) {
lab5 = false;
if (!this.in_grouping_b(TurkishStemmer.g_vowel1, 97, 305)) {
break;
}
this.cursor = this.limit - v_4;
break golab4;
}
this.cursor = this.limit - v_4;
if (this.cursor <= this.limit_backward) {
break lab3;
}
this.cursor--;
}
break lab2;
}
this.cursor = this.limit - v_3;
let lab6 = true;
lab6: while (lab6 == true) {
lab6 = false;
// (, line 117
// literal, line 117
if (!this.eq_s_b(1, 'e')) {
break;
}
// goto, line 117
golab7: while (true) {
v_5 = this.limit - this.cursor;
let lab8 = true;
while (lab8 == true) {
lab8 = false;
if (!this.in_grouping_b(TurkishStemmer.g_vowel2, 101, 252)) {
break;
}
this.cursor = this.limit - v_5;
break golab7;
}
this.cursor = this.limit - v_5;
if (this.cursor <= this.limit_backward) {
break lab6;
}
this.cursor--;
}
break lab2;
}
this.cursor = this.limit - v_3;
let lab9 = true;
lab9: while (lab9 == true) {
lab9 = false;
// (, line 118
// literal, line 118
if (!this.eq_s_b(1, '\u0131')) {
break;
}
// goto, line 118
golab10: while (true) {
v_6 = this.limit - this.cursor;
let lab11 = true;
while (lab11 == true) {
lab11 = false;
if (!this.in_grouping_b(TurkishStemmer.g_vowel3, 97, 305)) {
break;
}
this.cursor = this.limit - v_6;
break golab10;
}
this.cursor = this.limit - v_6;
if (this.cursor <= this.limit_backward) {
break lab9;
}
this.cursor--;
}
break lab2;
}
this.cursor = this.limit - v_3;
let lab12 = true;
lab12: while (lab12 == true) {
lab12 = false;
// (, line 119
// literal, line 119
if (!this.eq_s_b(1, 'i')) {
break;
}
// goto, line 119
golab13: while (true) {
v_7 = this.limit - this.cursor;
let lab14 = true;
while (lab14 == true) {
lab14 = false;
if (!this.in_grouping_b(TurkishStemmer.g_vowel4, 101, 105)) {
break;
}
this.cursor = this.limit - v_7;
break golab13;
}
this.cursor = this.limit - v_7;
if (this.cursor <= this.limit_backward) {
break lab12;
}
this.cursor--;
}
break lab2;
}
this.cursor = this.limit - v_3;
let lab15 = true;
lab15: while (lab15 == true) {
lab15 = false;
// (, line 120
// literal, line 120
if (!this.eq_s_b(1, 'o')) {
break;
}
// goto, line 120
golab16: while (true) {
v_8 = this.limit - this.cursor;
let lab17 = true;
while (lab17 == true) {
lab17 = false;
if (!this.in_grouping_b(TurkishStemmer.g_vowel5, 111, 117)) {
break;
}
this.cursor = this.limit - v_8;
break golab16;
}
this.cursor = this.limit - v_8;
if (this.cursor <= this.limit_backward) {
break lab15;
}
this.cursor--;
}
break lab2;
}
this.cursor = this.limit - v_3;
let lab18 = true;
lab18: while (lab18 == true) {
lab18 = false;
// (, line 121
// literal, line 121
if (!this.eq_s_b(1, '\u00F6')) {
break;
}
// goto, line 121
golab19: while (true) {
v_9 = this.limit - this.cursor;
let lab20 = true;
while (lab20 == true) {
lab20 = false;
if (!this.in_grouping_b(TurkishStemmer.g_vowel6, 246, 252)) {
break;
}
this.cursor = this.limit - v_9;
break golab19;
}
this.cursor = this.limit - v_9;
if (this.cursor <= this.limit_backward) {
break lab18;
}
this.cursor--;
}
break lab2;
}
this.cursor = this.limit - v_3;
let lab21 = true;
lab21: while (lab21 == true) {
lab21 = false;
// (, line 122
// literal, line 122
if (!this.eq_s_b(1, 'u')) {
break;
}
// goto, line 122
golab22: while (true) {
v_10 = this.limit - this.cursor;
let lab23 = true;
while (lab23 == true) {
lab23 = false;
if (!this.in_grouping_b(TurkishStemmer.g_vowel5, 111, 117)) {
break;
}
this.cursor = this.limit - v_10;
break golab22;
}
this.cursor = this.limit - v_10;
if (this.cursor <= this.limit_backward) {
break lab21;
}
this.cursor--;
}
break lab2;
}
this.cursor = this.limit - v_3;
// (, line 123
// literal, line 123
if (!this.eq_s_b(1, '\u00FC')) {
return false;
}
// goto, line 123
golab24: while (true) {
v_11 = this.limit - this.cursor;
let lab25 = true;
while (lab25 == true) {
lab25 = false;
if (!this.in_grouping_b(TurkishStemmer.g_vowel6, 246, 252)) {
break;
}
this.cursor = this.limit - v_11;
break golab24;
}
this.cursor = this.limit - v_11;
if (this.cursor <= this.limit_backward) {
return false;
}
this.cursor--;
}
}
this.cursor = this.limit - v_1;
return true;
}
r_mark_suffix_with_optional_n_consonant() {
let v_1;
let v_2;
let v_3;
let v_4;
let v_5;
let v_6;
let v_7;
// (, line 132
// or, line 134
let lab0 = true;
lab0: while (lab0 == true) {
lab0 = false;
v_1 = this.limit - this.cursor;
let lab1 = true;
while (lab1 == true) {
lab1 = false;
// (, line 133
// (, line 133
// test, line 133
v_2 = this.limit - this.cursor;
// literal, line 133
if (!this.eq_s_b(1, 'n')) {
break;
}
this.cursor = this.limit - v_2;
// next, line 133
if (this.cursor <= this.limit_backward) {
break;
}
this.cursor--;
// (, line 133
// test, line 133
v_3 = this.limit - this.cursor;
if (!this.in_grouping_b(TurkishStemmer.g_vowel, 97, 305)) {
break;
}
this.cursor = this.limit - v_3;
break lab0;
}
this.cursor = this.limit - v_1;
// (, line 135
// (, line 135
// not, line 135
{
v_4 = this.limit - this.cursor;
let lab2 = true;
while (lab2 == true) {
lab2 = false;
// (, line 135
// test, line 135
v_5 = this.limit - this.cursor;
// literal, line 135
if (!this.eq_s_b(1, 'n')) {
break;
}
this.cursor = this.limit - v_5;
return false;
}
this.cursor = this.limit - v_4;
}
// test, line 135
v_6 = this.limit - this.cursor;
// (, line 135
// next, line 135
if (this.cursor <= this.limit_backward) {
return false;
}
this.cursor--;
// (, line 135
// test, line 135
v_7 = this.limit - this.cursor;
if (!this.in_grouping_b(TurkishStemmer.g_vowel, 97, 305)) {
return false;
}
this.cursor = this.limit - v_7;
this.cursor = this.limit - v_6;
}
return true;
}
r_mark_suffix_with_optional_s_consonant() {
let v_1;
let v_2;
let v_3;
let v_4;
let v_5;
let v_6;
let v_7;
// (, line 143
// or, line 145
let lab0 = true;
lab0: while (lab0 == true) {
lab0 = false;
v_1 = this.limit - this.cursor;
let lab1 = true;
while (lab1 == true) {
lab1 = false;
// (, line 144
// (, line 144
// test, line 144
v_2 = this.limit - this.cursor;
// literal, line 144
if (!this.eq_s_b(1, 's')) {
break;
}
this.cursor = this.limit - v_2;
// next, line 144
if (this.cursor <= this.limit_backward) {
break;
}
this.cursor--;
// (, line 144
// test, line 144
v_3 = this.limit - this.cursor;
if (!this.in_grouping_b(TurkishStemmer.g_vowel, 97, 305)) {
break;
}
this.cursor = this.limit - v_3;
break lab0;
}
this.cursor = this.limit - v_1;
// (, line 146
// (, line 146
// not, line 146
{
v_4 = this.limit - this.cursor;
let lab2 = true;
while (lab2 == true) {
lab2 = false;
// (, line 146
// test, line 146
v_5 = this.limit - this.cursor;
// literal, line 146
if (!this.eq_s_b(1, 's')) {
break;
}
this.cursor = this.limit - v_5;
return false;
}
this.cursor = this.limit - v_4;
}
// test, line 146
v_6 = this.limit - this.cursor;
// (, line 146
// next, line 146
if (this.cursor <= this.limit_backward) {
return false;
}
this.cursor--;
// (, line 146
// test, line 146
v_7 = this.limit - this.cursor;
if (!this.in_grouping_b(TurkishStemmer.g_vowel, 97, 305)) {
return false;
}
this.cursor = this.limit - v_7;
this.cursor = this.limit - v_6;
}
return true;
}
r_mark_suffix_with_optional_y_consonant() {
let v_1;
let v_2;
let v_3;
let v_4;
let v_5;
let v_6;
let v_7;
// (, line 153
// or, line 155
let lab0 = true;
lab0: while (lab0 == true) {
lab0 = false;
v_1 = this.limit - this.cursor;
let lab1 = true;
while (lab1 == true) {
lab1 = false;
// (, line 154
// (, line 154
// test, line 154
v_2 = this.limit - this.cursor;
// literal, line 154
if (!this.eq_s_b(1, 'y')) {
break;
}
this.cursor = this.limit - v_2;
// next, line 154
if (this.cursor <= this.limit_backward) {
break;
}
this.cursor--;
// (, line 154
// test, line 154
v_3 = this.limit - this.cursor;
if (!this.in_grouping_b(TurkishStemmer.g_vowel, 97, 305)) {
break;
}
this.cursor = this.limit - v_3;
break lab0;
}
this.cursor = this.limit - v_1;
// (, line 156
// (, line 156
// not, line 156
{
v_4 = this.limit - this.cursor;
let lab2 = true;
while (lab2 == true) {
lab2 = false;
// (, line 156
// test, line 156
v_5 = this.limit - this.cursor;
// literal, line 156
if (!this.eq_s_b(1, 'y')) {
break;
}
this.cursor = this.limit - v_5;
return false;
}
this.cursor = this.limit - v_4;
}
// test, line 156
v_6 = this.limit - this.cursor;
// (, line 156
// next, line 156
if (this.cursor <= this.limit_backward) {
return false;
}
this.cursor--;
// (, line 156
// test, line 156
v_7 = this.limit - this.cursor;
if (!this.in_grouping_b(TurkishStemmer.g_vowel, 97, 305)) {
return false;
}
this.cursor = this.limit - v_7;
this.cursor = this.limit - v_6;
}
return true;
}
r_mark_suffix_with_optional_U_vowel() {
let v_1;
let v_2;
let v_3;
let v_4;
let v_5;
let v_6;
let v_7;
// (, line 159
// or, line 161
let lab0 = true;
lab0: while (lab0 == true) {
lab0 = false;
v_1 = this.limit - this.cursor;
let lab1 = true;
while (lab1 == true) {
lab1 = false;
// (, line 160
// (, line 160
// test, line 160
v_2 = this.limit - this.cursor;
if (!this.in_grouping_b(TurkishStemmer.g_U, 105, 305)) {
break;
}
this.cursor = this.limit - v_2;
// next, line 160
if (this.cursor <= this.limit_backward) {
break;
}
this.cursor--;
// (, line 160
// test, line 160
v_3 = this.limit - this.cursor;
if (!this.out_grouping_b(TurkishStemmer.g_vowel, 97, 305)) {
break;
}
this.cursor = this.limit - v_3;
break lab0;
}
this.cursor = this.limit - v_1;
// (, line 162
// (, line 162
// not, line 162
{
v_4 = this.limit - this.cursor;
let lab2 = true;
while (lab2 == true) {
lab2 = false;
// (, line 162
// test, line 162
v_5 = this.limit - this.cursor;
if (!this.in_grouping_b(TurkishStemmer.g_U, 105, 305)) {
break;
}
this.cursor = this.limit - v_5;
return false;
}
this.cursor = this.limit - v_4;
}
// test, line 162
v_6 = this.limit - this.cursor;
// (, line 162
// next, line 162
if (this.cursor <= this.limit_backward) {
return false;
}
this.cursor--;
// (, line 162
// test, line 162
v_7 = this.limit - this.cursor;
if (!this.out_grouping_b(TurkishStemmer.g_vowel, 97, 305)) {
return false;
}
this.cursor = this.limit - v_7;
this.cursor = this.limit - v_6;
}
return true;
}
r_mark_possessives() {
// (, line 166
// among, line 167
if (this.find_among_b(TurkishStemmer.a_0, 10) == 0) {
return false;
}
// (, line 169
// call mark_suffix_with_optional_U_vowel, line 169
if (!this.r_mark_suffix_with_optional_U_vowel()) {
return false;
}
return true;
}
r_mark_sU() {
// (, line 172
// call check_vowel_harmony, line 173
if (!this.r_check_vowel_harmony()) {
return false;
}
if (!this.in_grouping_b(TurkishStemmer.g_U, 105, 305)) {
return false;
}
// (, line 175
// call mark_suffix_with_optional_s_consonant, line 175
if (!this.r_mark_suffix_with_optional_s_consonant()) {
return false;
}
return true;
}
r_mark_lArI() {
// (, line 178
// among, line 179
if (this.find_among_b(TurkishStemmer.a_1, 2) == 0) {
return false;
}
return true;
}
r_mark_yU() {
// (, line 182
// call check_vowel_harmony, line 183
if (!this.r_check_vowel_harmony()) {
return false;
}
if (!this.in_grouping_b(TurkishStemmer.g_U, 105, 305)) {
return false;
}
// (, line 185
// call mark_suffix_with_optional_y_consonant, line 185
if (!this.r_mark_suffix_with_optional_y_consonant()) {
return false;
}
return true;
}
r_mark_nU() {
// (, line 188
// call check_vowel_harmony, line 189
if (!this.r_check_vowel_harmony()) {
return false;
}
// among, line 190
if (this.find_among_b(TurkishStemmer.a_2, 4) == 0) {
return false;
}
return true;
}
r_mark_nUn() {
// (, line 193
// call check_vowel_harmony, line 194
if (!this.r_check_vowel_harmony()) {
return false;
}
// among, line 195
if (this.find_among_b(TurkishStemmer.a_3, 4) == 0) {
return false;
}
// (, line 196
// call mark_suffix_with_optional_n_consonant, line 196
if (!this.r_mark_suffix_with_optional_n_consonant()) {
return false;
}
return true;
}
r_mark_yA() {
// (, line 199
// call check_vowel_harmony, line 200
if (!this.r_check_vowel_harmony()) {
return false;
}
// among, line 201
if (this.find_among_b(TurkishStemmer.a_4, 2) == 0) {
return false;
}
// (, line 202
// call mark_suffix_with_optional_y_consonant, line 202
if (!this.r_mark_suffix_with_optional_y_consonant()) {
return false;
}
return true;
}
r_mark_nA() {
// (, line 205
// call check_vowel_harmony, line 206
if (!this.r_check_vowel_harmony()) {
return false;
}
// among, line 207
if (this.find_among_b(TurkishStemmer.a_5, 2) == 0) {
return false;
}
return true;
}
r_mark_DA() {
// (, line 210
// call check_vowel_harmony, line 211
if (!this.r_check_vowel_harmony()) {
return false;
}
// among, line 212
if (this.find_among_b(TurkishStemmer.a_6, 4) == 0) {
return false;
}
return true;
}
r_mark_ndA() {
// (, line 215
// call check_vowel_harmony, line 216
if (!this.r_check_vowel_harmony()) {
return false;
}
// among, line 217
if (this.find_among_b(TurkishStemmer.a_7, 2) == 0) {
return false;
}
return true;
}
r_mark_DAn() {
// (, line 220
// call check_vowel_harmony, line 221
if (!this.r_check_vowel_harmony()) {
return false;
}
// among, line 222
if (this.find_among_b(TurkishStemmer.a_8, 4) == 0) {
return false;
}
return true;
}
r_mark_ndAn() {
// (, line 225
// call check_vowel_harmony, line 226
if (!this.r_check_vowel_harmony()) {
return false;
}
// among, line 227
if (this.find_among_b(TurkishStemmer.a_9, 2) == 0) {
return false;
}
return true;
}
r_mark_ylA() {
// (, line 230
// call check_vowel_harmony, line 231
if (!this.r_check_vowel_harmony()) {
return false;
}
// among, line 232
if (this.find_among_b(TurkishStemmer.a_10, 2) == 0) {
return false;
}
// (, line 233
// call mark_suffix_with_optional_y_consonant, line 233
if (!this.r_mark_suffix_with_optional_y_consonant()) {
return false;
}
return true;
}
r_mark_ki() {
// (, line 236
// literal, line 237
if (!this.eq_s_b(2, 'ki')) {
return false;
}
return true;
}
r_mark_ncA() {
// (, line 240
// call check_vowel_harmony, line 241
if (!this.r_check_vowel_harmony()) {
return false;
}
// among, line 242
if (this.find_among_b(TurkishStemmer.a_11, 2) == 0) {
return false;
}
// (, line 243
// call mark_suffix_with_optional_n_consonant, line 243
if (!this.r_mark_suffix_with_optional_n_consonant()) {
return false;
}
return true;
}
r_mark_yUm() {
// (, line 246
// call check_vowel_harmony, line 247
if (!this.r_check_vowel_harmony()) {
return false;
}
// among, line 248
if (this.find_among_b(TurkishStemmer.a_12, 4) == 0) {
return false;
}
// (, line 249
// call mark_suffix_with_optional_y_consonant, line 249
if (!this.r_mark_suffix_with_optional_y_consonant()) {
return false;
}
return true;
}
r_mark_sUn() {
// (, line 252
// call check_vowel_harmony, line 253
if (!this.r_check_vowel_harmony()) {
return false;
}
// among, line 254
if (this.find_among_b(TurkishStemmer.a_13, 4) == 0) {
return false;
}
return true;
}
r_mark_yUz() {
// (, line 257
// call check_vowel_harmony, line 258
if (!this.r_check_vowel_harmony()) {
return false;
}
// among, line 259
if (this.find_among_b(TurkishStemmer.a_14, 4) == 0) {
return false;
}
// (, line 260
// call mark_suffix_with_optional_y_consonant, line 260
if (!this.r_mark_suffix_with_optional_y_consonant()) {
return false;
}
return true;
}
r_mark_sUnUz() {
// (, line 263
// among, line 264
if (this.find_among_b(TurkishStemmer.a_15, 4) == 0) {
return false;
}
return true;
}
r_mark_lAr() {
// (, line 267
// call check_vowel_harmony, line 268
if (!this.r_check_vowel_harmony()) {
return false;
}
// among, line 269
if (this.find_among_b(TurkishStemmer.a_16, 2) == 0) {
return false;
}
return true;
}
r_mark_nUz() {
// (, line 272
// call check_vowel_harmony, line 273
if (!this.r_check_vowel_harmony()) {
return false;
}
// among, line 274
if (this.find_among_b(TurkishStemmer.a_17, 4) == 0) {
return false;
}
return true;
}
r_mark_DUr() {
// (, line 277
// call check_vowel_harmony, line 278
if (!this.r_check_vowel_harmony()) {
return false;
}
// among, line 279
if (this.find_among_b(TurkishStemmer.a_18, 8) == 0) {
return false;
}
return true;
}
r_mark_cAsInA() {
// (, line 282
// among, line 283
if (this.find_among_b(TurkishStemmer.a_19, 2) == 0) {
return false;
}
return true;
}
r_mark_yDU() {
// (, line 286
// call check_vowel_harmony, line 287
if (!this.r_check_vowel_harmony()) {
return false;
}
// among, line 288
if (this.find_among_b(TurkishStemmer.a_20, 32) == 0) {
return false;
}
// (, line 292
// call mark_suffix_with_optional_y_consonant, line 292
if (!this.r_mark_suffix_with_optional_y_consonant()) {
return false;
}
return true;
}
r_mark_ysA() {
// (, line 296
// among, line 297
if (this.find_among_b(TurkishStemmer.a_21, 8) == 0) {
return false;
}
// (, line 298
// call mark_suffix_with_optional_y_consonant, line 298
if (!this.r_mark_suffix_with_optional_y_consonant()) {
return false;
}
return true;
}
r_mark_ymUs_() {
// (, line 301
// call check_vowel_harmony, line 302
if (!this.r_check_vowel_harmony()) {
return false;
}
// among, line 303
if (this.find_among_b(TurkishStemmer.a_22, 4) == 0) {
return false;
}
// (, line 304
// call mark_suffix_with_optional_y_consonant, line 304
if (!this.r_mark_suffix_with_optional_y_consonant()) {
return false;
}
return true;
}
r_mark_yken() {
// (, line 307
// literal, line 308
if (!this.eq_s_b(3, 'ken')) {
return false;
}
// (, line 308
// call mark_suffix_with_optional_y_consonant, line 308
if (!this.r_mark_suffix_with_optional_y_consonant()) {
return false;
}
return true;
}
r_stem_nominal_verb_suffixes() {
let v_1;
let v_2;
let v_3;
let v_4;
let v_5;
let v_6;
let v_7;
let v_8;
let v_9;
let v_10;
// (, line 311
// [, line 312
this.ket = this.cursor;
// set continue_stemming_noun_suffixes, line 313
this.B_continue_stemming_noun_suffixes = true;
// or, line 315
let lab0 = true;
lab0: while (lab0 == true) {
lab0 = false;
v_1 = this.limit - this.cursor;
let lab1 = true;
lab1: while (lab1 == true) {
lab1 = false;
// (, line 314
// or, line 314
let lab2 = true;
lab2: while (lab2 == true) {
lab2 = false;
v_2 = this.limit - this.cursor;
let lab3 = true;
while (lab3 == true) {
lab3 = false;
// call mark_ymUs_, line 314
if (!this.r_mark_ymUs_()) {
break;
}
break lab2;
}
this.cursor = this.limit - v_2;
let lab4 = true;
while (lab4 == true) {
lab4 = false;
// call mark_yDU, line 314
if (!this.r_mark_yDU()) {
break;
}
break lab2;
}
this.cursor = this.limit - v_2;
let lab5 = true;
while (lab5 == true) {
lab5 = false;
// call mark_ysA, line 314
if (!this.r_mark_ysA()) {
break;
}
break lab2;
}
this.cursor = this.limit - v_2;
// call mark_yken, line 314
if (!this.r_mark_yken()) {
break lab1;
}
}
break lab0;
}
this.cursor = this.limit - v_1;
let lab6 = true;
while (lab6 == true) {
lab6 = false;
// (, line 316
// call mark_cAsInA, line 316
if (!this.r_mark_cAsInA()) {
break;
}
// (, line 316
// or, line 316
let lab7 = true;
lab7: while (lab7 == true) {
lab7 = false;
v_3 = this.limit - this.cursor;
let lab8 = true;
while (lab8 == true) {
lab8 = false;
// call mark_sUnUz, line 316
if (!this.r_mark_sUnUz()) {
break;
}
break lab7;
}
this.cursor = this.limit - v_3;
let lab9 = true;
while (lab9 == true) {
lab9 = false;
// call mark_lAr, line 316
if (!this.r_mark_lAr()) {
break;
}
break lab7;
}
this.cursor = this.limit - v_3;
let lab10 = true;
while (lab10 == true) {
lab10 = false;
// call mark_yUm, line 316
if (!this.r_mark_yUm()) {
break;
}
break lab7;
}
this.cursor = this.limit - v_3;
let lab11 = true;
while (lab11 == true) {
lab11 = false;
// call mark_sUn, line 316
if (!this.r_mark_sUn()) {
break;
}
break lab7;
}
this.cursor = this.limit - v_3;
let lab12 = true;
while (lab12 == true) {
lab12 = false;
// call mark_yUz, line 316
if (!this.r_mark_yUz()) {
break;
}
break lab7;
}
this.cursor = this.limit - v_3;
}
// call mark_ymUs_, line 316
if (!this.r_mark_ymUs_()) {
break;
}
break lab0;
}
this.cursor = this.limit - v_1;
let lab13 = true;
while (lab13 == true) {
lab13 = false;
// (, line 318
// call mark_lAr, line 319
if (!this.r_mark_lAr()) {
break;
}
// ], line 319
this.bra = this.cursor;
// delete, line 319
if (!this.slice_del()) {
return false;
}
// try, line 319
v_4 = this.limit - this.cursor;
let lab14 = true;
lab14: while (lab14 == true) {
lab14 = false;
// (, line 319
// [, line 319
this.ket = this.cursor;
// (, line 319
// or, line 319
let lab15 = true;
lab15: while (lab15 == true) {
lab15 = false;
v_5 = this.limit - this.cursor;
let lab16 = true;
while (lab16 == true) {
lab16 = false;
// call mark_DUr, line 319
if (!this.r_mark_DUr()) {
break;
}
break lab15;
}
this.cursor = this.limit - v_5;
let lab17 = true;
while (lab17 == true) {
lab17 = false;
// call mark_yDU, line 319
if (!this.r_mark_yDU()) {
break;
}
break lab15;
}
this.cursor = this.limit - v_5;
let lab18 = true;
while (lab18 == true) {
lab18 = false;
// call mark_ysA, line 319
if (!this.r_mark_ysA()) {
break;
}
break lab15;
}
this.cursor = this.limit - v_5;
// call mark_ymUs_, line 319
if (!this.r_mark_ymUs_()) {
this.cursor = this.limit - v_4;
break lab14;
}
}
}
// unset continue_stemming_noun_suffixes, line 320
this.B_continue_stemming_noun_suffixes = false;
break lab0;
}
this.cursor = this.limit - v_1;
let lab19 = true;
lab19: while (lab19 == true) {
lab19 = false;
// (, line 323
// call mark_nUz, line 323
if (!this.r_mark_nUz()) {
break;
}
// (, line 323
// or, line 323
let lab20 = true;
lab20: while (lab20 == true) {
lab20 = false;
v_6 = this.limit - this.cursor;
let lab21 = true;
while (lab21 == true) {
lab21 = false;
// call mark_yDU, line 323
if (!this.r_mark_yDU()) {
break;
}
break lab20;
}
this.cursor = this.limit - v_6;
// call mark_ysA, line 323
if (!this.r_mark_ysA()) {
break lab19;
}
}
break lab0;
}
this.cursor = this.limit - v_1;
let lab22 = true;
lab22: while (lab22 == true) {
lab22 = false;
// (, line 325
// (, line 325
// or, line 325
let lab23 = true;
lab23: while (lab23 == true) {
lab23 = false;
v_7 = this.limit - this.cursor;
let lab24 = true;
while (lab24 == true) {
lab24 = false;
// call mark_sUnUz, line 325
if (!this.r_mark_sUnUz()) {
break;
}
break lab23;
}
this.cursor = this.limit - v_7;
let lab25 = true;
while (lab25 == true) {
lab25 = false;
// call mark_yUz, line 325
if (!this.r_mark_yUz()) {
break;
}
break lab23;
}
this.cursor = this.limit - v_7;
let lab26 = true;
while (lab26 == true) {
lab26 = false;
// call mark_sUn, line 325
if (!this.r_mark_sUn()) {
break;
}
break lab23;
}
this.cursor = this.limit - v_7;
// call mark_yUm, line 325
if (!this.r_mark_yUm()) {
break lab22;
}
}
// ], line 325
this.bra = this.cursor;
// delete, line 325
if (!this.slice_del()) {
return false;
}
// try, line 325
v_8 = this.limit - this.cursor;
let lab27 = true;
while (lab27 == true) {
lab27 = false;
// (, line 325
// [, line 325
this.ket = this.cursor;
// call mark_ymUs_, line 325
if (!this.r_mark_ymUs_()) {
this.cursor = this.limit - v_8;
break;
}
}
break lab0;
}
this.cursor = this.limit - v_1;
// (, line 327
// call mark_DUr, line 327
if (!this.r_mark_DUr()) {
return false;
}
// ], line 327
this.bra = this.cursor;
// delete, line 327
if (!this.slice_del()) {
return false;
}
// try, line 327
v_9 = this.limit - this.cursor;
let lab28 = true;
while (lab28 == true) {
lab28 = false;
// (, line 327
// [, line 327
this.ket = this.cursor;
// (, line 327
// or, line 327
let lab29 = true;
lab29: while (lab29 == true) {
lab29 = false;
v_10 = this.limit - this.cursor;
let lab30 = true;
while (lab30 == true) {
lab30 = false;
// call mark_sUnUz, line 327
if (!this.r_mark_sUnUz()) {
break;
}
break lab29;
}
this.cursor = this.limit - v_10;
let lab31 = true;
while (lab31 == true) {
lab31 = false;
// call mark_lAr, line 327
if (!this.r_mark_lAr()) {
break;
}
break lab29;
}
this.cursor = this.limit - v_10;
let lab32 = true;
while (lab32 == true) {
lab32 = false;
// call mark_yUm, line 327
if (!this.r_mark_yUm()) {
break;
}
break lab29;
}
this.cursor = this.limit - v_10;
let lab33 = true;
while (lab33 == true) {
lab33 = false;
// call mark_sUn, line 327
if (!this.r_mark_sUn()) {
break;
}
break lab29;
}
this.cursor = this.limit - v_10;
let lab34 = true;
while (lab34 == true) {
lab34 = false;
// call mark_yUz, line 327
if (!this.r_mark_yUz()) {
break;
}
break lab29;
}
this.cursor = this.limit - v_10;
}
// call mark_ymUs_, line 327
if (!this.r_mark_ymUs_()) {
this.cursor = this.limit - v_9;
break;
}
}
}
// ], line 328
this.bra = this.cursor;
// delete, line 328
if (!this.slice_del()) {
return false;
}
return true;
}
r_stem_suffix_chain_before_ki() {
let v_1;
let v_2;
let v_3;
let v_4;
let v_5;
let v_6;
let v_7;
let v_8;
let v_9;
let v_10;
let v_11;
// (, line 332
// [, line 333
this.ket = this.cursor;
// call mark_ki, line 334
if (!this.r_mark_ki()) {
return false;
}
// (, line 335
// or, line 342
let lab0 = true;
lab0: while (lab0 == true) {
lab0 = false;
v_1 = this.limit - this.cursor;
let lab1 = true;
while (lab1 == true) {
lab1 = false;
// (, line 336
// call mark_DA, line 336
if (!this.r_mark_DA()) {
break;
}
// ], line 336
this.bra = this.cursor;
// delete, line 336
if (!this.slice_del()) {
return false;
}
// try, line 336
v_2 = this.limit - this.cursor;
let lab2 = true;
lab2: while (lab2 == true) {
lab2 = false;
// (, line 336
// [, line 336
this.ket = this.cursor;
// or, line 338
let lab3 = true;
lab3: while (lab3 == true) {
lab3 = false;
v_3 = this.limit - this.cursor;
let lab4 = true;
while (lab4 == true) {
lab4 = false;
// (, line 337
// call mark_lAr, line 337
if (!this.r_mark_lAr()) {
break;
}
// ], line 337
this.bra = this.cursor;
// delete, line 337
if (!this.slice_del()) {
return false;
}
// try, line 337
v_4 = this.limit - this.cursor;
let lab5 = true;
while (lab5 == true) {
lab5 = false;
// (, line 337
// call stem_suffix_chain_before_ki, line 337
if (!this.r_stem_suffix_chain_before_ki()) {
this.cursor = this.limit - v_4;
break;
}
}
break lab3;
}
this.cursor = this.limit - v_3;
// (, line 339
// call mark_possessives, line 339
if (!this.r_mark_possessives()) {
this.cursor = this.limit - v_2;
break lab2;
}
// ], line 339
this.bra = this.cursor;
// delete, line 339
if (!this.slice_del()) {
return false;
}
// try, line 339
v_5 = this.limit - this.cursor;
let lab6 = true;
while (lab6 == true) {
lab6 = false;
// (, line 339
// [, line 339
this.ket = this.cursor;
// call mark_lAr, line 339
if (!this.r_mark_lAr()) {
this.cursor = this.limit - v_5;
break;
}
// ], line 339
this.bra = this.cursor;
// delete, line 339
if (!this.slice_del()) {
return false;
}
// call stem_suffix_chain_before_ki, line 339
if (!this.r_stem_suffix_chain_before_ki()) {
this.cursor = this.limit - v_5;
break;
}
}
}
}
break lab0;
}
this.cursor = this.limit - v_1;
let lab7 = true;
while (lab7 == true) {
lab7 = false;
// (, line 343
// call mark_nUn, line 343
if (!this.r_mark_nUn()) {
break;
}
// ], line 343
this.bra = this.cursor;
// delete, line 343
if (!this.slice_del()) {
return false;
}
// try, line 343
v_6 = this.limit - this.cursor;
let lab8 = true;
lab8: while (lab8 == true) {
lab8 = false;
// (, line 343
// [, line 343
this.ket = this.cursor;
// or, line 345
let lab9 = true;
lab9: while (lab9 == true) {
lab9 = false;
v_7 = this.limit - this.cursor;
let lab10 = true;
while (lab10 == true) {
lab10 = false;
// (, line 344
// call mark_lArI, line 344
if (!this.r_mark_lArI()) {
break;
}
// ], line 344
this.bra = this.cursor;
// delete, line 344
if (!this.slice_del()) {
return false;
}
break lab9;
}
this.cursor = this.limit - v_7;
let lab11 = true;
lab11: while (lab11 == true) {
lab11 = false;
// (, line 346
// [, line 346
this.ket = this.cursor;
// or, line 346
let lab12 = true;
lab12: while (lab12 == true) {
lab12 = false;
v_8 = this.limit - this.cursor;
let lab13 = true;
while (lab13 == true) {
lab13 = false;
// call mark_possessives, line 346
if (!this.r_mark_possessives()) {
break;
}
break lab12;
}
this.cursor = this.limit - v_8;
// call mark_sU, line 346
if (!this.r_mark_sU()) {
break lab11;
}
}
// ], line 346
this.bra = this.cursor;
// delete, line 346
if (!this.slice_del()) {
return false;
}
// try, line 346
v_9 = this.limit - this.cursor;
let lab14 = true;
while (lab14 == true) {
lab14 = false;
// (, line 346
// [, line 346
this.ket = this.cursor;
// call mark_lAr, line 346
if (!this.r_mark_lAr()) {
this.cursor = this.limit - v_9;
break;
}
// ], line 346
this.bra = this.cursor;
// delete, line 346
if (!this.slice_del()) {
return false;
}
// call stem_suffix_chain_before_ki, line 346
if (!this.r_stem_suffix_chain_before_ki()) {
this.cursor = this.limit - v_9;
break;
}
}
break lab9;
}
this.cursor = this.limit - v_7;
// (, line 348
// call stem_suffix_chain_before_ki, line 348
if (!this.r_stem_suffix_chain_before_ki()) {
this.cursor = this.limit - v_6;
break lab8;
}
}
}
break lab0;
}
this.cursor = this.limit - v_1;
// (, line 351
// call mark_ndA, line 351
if (!this.r_mark_ndA()) {
return false;
}
// (, line 351
// or, line 353
let lab15 = true;
lab15: while (lab15 == true) {
lab15 = false;
v_10 = this.limit - this.cursor;
let lab16 = true;
while (lab16 == true) {
lab16 = false;
// (, line 352
// call mark_lArI, line 352
if (!this.r_mark_lArI()) {
break;
}
// ], line 352
this.bra = this.cursor;
// delete, line 352
if (!this.slice_del()) {
return false;
}
break lab15;
}
this.cursor = this.limit - v_10;
let lab17 = true;
while (lab17 == true) {
lab17 = false;
// (, line 354
// (, line 354
// call mark_sU, line 354
if (!this.r_mark_sU()) {
break;
}
// ], line 354
this.bra = this.cursor;
// delete, line 354
if (!this.slice_del()) {
return false;
}
// try, line 354
v_11 = this.limit - this.cursor;
let lab18 = true;
while (lab18 == true) {
lab18 = false;
// (, line 354
// [, line 354
this.ket = this.cursor;
// call mark_lAr, line 354
if (!this.r_mark_lAr()) {
this.cursor = this.limit - v_11;
break;
}
// ], line 354
this.bra = this.cursor;
// delete, line 354
if (!this.slice_del()) {
return false;
}
// call stem_suffix_chain_before_ki, line 354
if (!this.r_stem_suffix_chain_before_ki()) {
this.cursor = this.limit - v_11;
break;
}
}
break lab15;
}
this.cursor = this.limit - v_10;
// (, line 356
// call stem_suffix_chain_before_ki, line 356
if (!this.r_stem_suffix_chain_before_ki()) {
return false;
}
}
}
return true;
}
r_stem_noun_suffixes() {
let v_1;
let v_2;
let v_3;
let v_4;
let v_5;
let v_6;
let v_7;
let v_8;
let v_9;
let v_10;
let v_11;
let v_12;
let v_13;
let v_14;
let v_15;
let v_16;
let v_17;
let v_18;
let v_19;
let v_20;
let v_21;
let v_22;
let v_23;
let v_24;
let v_25;
let v_26;
let v_27;
// (, line 361
// or, line 363
let lab0 = true;
lab0: while (lab0 == true) {
lab0 = false;
v_1 = this.limit - this.cursor;
let lab1 = true;
while (lab1 == true) {
lab1 = false;
// (, line 362
// [, line 362
this.ket = this.cursor;
// call mark_lAr, line 362
if (!this.r_mark_lAr()) {
break;
}
// ], line 362
this.bra = this.cursor;
// delete, line 362
if (!this.slice_del()) {
return false;
}
// try, line 362
v_2 = this.limit - this.cursor;
let lab2 = true;
while (lab2 == true) {
lab2 = false;
// (, line 362
// call stem_suffix_chain_before_ki, line 362
if (!this.r_stem_suffix_chain_before_ki()) {
this.cursor = this.limit - v_2;
break;
}
}
break lab0;
}
this.cursor = this.limit - v_1;
let lab3 = true;
while (lab3 == true) {
lab3 = false;
// (, line 364
// [, line 364
this.ket = this.cursor;
// call mark_ncA, line 364
if (!this.r_mark_ncA()) {
break;
}
// ], line 364
this.bra = this.cursor;
// delete, line 364
if (!this.slice_del()) {
return false;
}
// try, line 365
v_3 = this.limit - this.cursor;
let lab4 = true;
lab4: while (lab4 == true) {
lab4 = false;
// (, line 365
// or, line 367
let lab5 = true;
lab5: while (lab5 == true) {
lab5 = false;
v_4 = this.limit - this.cursor;
let lab6 = true;
while (lab6 == true) {
lab6 = false;
// (, line 366
// [, line 366
this.ket = this.cursor;
// call mark_lArI, line 366
if (!this.r_mark_lArI()) {
break;
}
// ], line 366
this.bra = this.cursor;
// delete, line 366
if (!this.slice_del()) {
return false;
}
break lab5;
}
this.cursor = this.limit - v_4;
let lab7 = true;
lab7: while (lab7 == true) {
lab7 = false;
// (, line 368
// [, line 368
this.ket = this.cursor;
// or, line 368
let lab8 = true;
lab8: while (lab8 == true) {
lab8 = false;
v_5 = this.limit - this.cursor;
let lab9 = true;
while (lab9 == true) {
lab9 = false;
// call mark_possessives, line 368
if (!this.r_mark_possessives()) {
break;
}
break lab8;
}
this.cursor = this.limit - v_5;
// call mark_sU, line 368
if (!this.r_mark_sU()) {
break lab7;
}
}
// ], line 368
this.bra = this.cursor;
// delete, line 368
if (!this.slice_del()) {
return false;
}
// try, line 368
v_6 = this.limit - this.cursor;
let lab10 = true;
while (lab10 == true) {
lab10 = false;
// (, line 368
// [, line 368
this.ket = this.cursor;
// call mark_lAr, line 368
if (!this.r_mark_lAr()) {
th