Lucene.Net  3.0.3
Lucene.Net is a port of the Lucene search engine library, written in C# and targeted at .NET runtime users.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Properties Pages
TurkishStemmer.cs
Go to the documentation of this file.
1 /*
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements. See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership. The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License. You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied. See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20 */
21 
22 /*
23 
24 Copyright (c) 2001, Dr Martin Porter
25 Copyright (c) 2002, Richard Boulton
26 All rights reserved.
27 
28 Redistribution and use in source and binary forms, with or without
29 modification, are permitted provided that the following conditions are met:
30 
31  * Redistributions of source code must retain the above copyright notice,
32  * this list of conditions and the following disclaimer.
33  * Redistributions in binary form must reproduce the above copyright
34  * notice, this list of conditions and the following disclaimer in the
35  * documentation and/or other materials provided with the distribution.
36  * Neither the name of the copyright holders nor the names of its contributors
37  * may be used to endorse or promote products derived from this software
38  * without specific prior written permission.
39 
40 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
41 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
42 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
43 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
44 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
45 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
46 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
47 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
48 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
49 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
50 
51  */
52 
53 
54 using System;
55 using Among = SF.Snowball.Among;
56 using SnowballProgram = SF.Snowball.SnowballProgram;
57 namespace SF.Snowball.Ext
58 {
59  /* Generated class implementing code defined by a snowball script.
60  *
61  */
63  {
64 
65  public TurkishStemmer()
66  {
67  a_0 = new Among[] {
68  new Among("m", -1, -1, "", null),
69  new Among("n", -1, -1, "", null),
70  new Among("miz", -1, -1, "", null),
71  new Among("niz", -1, -1, "", null),
72  new Among("muz", -1, -1, "", null),
73  new Among("nuz", -1, -1, "", null),
74  new Among("m\u00FCz", -1, -1, "", null),
75  new Among("n\u00FCz", -1, -1, "", null),
76  new Among("m\u0131z", -1, -1, "", null),
77  new Among("n\u0131z", -1, -1, "", null)
78  };
79 
80  a_1 = new Among[] {
81  new Among("leri", -1, -1, "", null),
82  new Among("lar\u0131", -1, -1, "", null)
83  };
84 
85  a_2 = new Among[] {
86  new Among("ni", -1, -1, "", null),
87  new Among("nu", -1, -1, "", null),
88  new Among("n\u00FC", -1, -1, "", null),
89  new Among("n\u0131", -1, -1, "", null)
90  };
91 
92  a_3 = new Among[] {
93  new Among("in", -1, -1, "", null),
94  new Among("un", -1, -1, "", null),
95  new Among("\u00FCn", -1, -1, "", null),
96  new Among("\u0131n", -1, -1, "", null)
97  };
98 
99  a_4 = new Among[] {
100  new Among("a", -1, -1, "", null),
101  new Among("e", -1, -1, "", null)
102  };
103 
104  a_5 = new Among[] {
105  new Among("na", -1, -1, "", null),
106  new Among("ne", -1, -1, "", null)
107  };
108 
109  a_6 = new Among[] {
110  new Among("da", -1, -1, "", null),
111  new Among("ta", -1, -1, "", null),
112  new Among("de", -1, -1, "", null),
113  new Among("te", -1, -1, "", null)
114  };
115 
116  a_7 = new Among[] {
117  new Among("nda", -1, -1, "", null),
118  new Among("nde", -1, -1, "", null)
119  };
120 
121  a_8 = new Among[] {
122  new Among("dan", -1, -1, "", null),
123  new Among("tan", -1, -1, "", null),
124  new Among("den", -1, -1, "", null),
125  new Among("ten", -1, -1, "", null)
126  };
127 
128  a_9 = new Among[] {
129  new Among("ndan", -1, -1, "", null),
130  new Among("nden", -1, -1, "", null)
131  };
132 
133  a_10 = new Among[] {
134  new Among("la", -1, -1, "", null),
135  new Among("le", -1, -1, "", null)
136  };
137 
138  a_11 = new Among[] {
139  new Among("ca", -1, -1, "", null),
140  new Among("ce", -1, -1, "", null)
141  };
142 
143  a_12 = new Among[] {
144  new Among("im", -1, -1, "", null),
145  new Among("um", -1, -1, "", null),
146  new Among("\u00FCm", -1, -1, "", null),
147  new Among("\u0131m", -1, -1, "", null)
148  };
149 
150  a_13 = new Among[] {
151  new Among("sin", -1, -1, "", null),
152  new Among("sun", -1, -1, "", null),
153  new Among("s\u00FCn", -1, -1, "", null),
154  new Among("s\u0131n", -1, -1, "", null)
155  };
156 
157  a_14 = new Among[] {
158  new Among("iz", -1, -1, "", null),
159  new Among("uz", -1, -1, "", null),
160  new Among("\u00FCz", -1, -1, "", null),
161  new Among("\u0131z", -1, -1, "", null)
162  };
163 
164  a_15 = new Among[] {
165  new Among("siniz", -1, -1, "", null),
166  new Among("sunuz", -1, -1, "", null),
167  new Among("s\u00FCn\u00FCz", -1, -1, "", null),
168  new Among("s\u0131n\u0131z", -1, -1, "", null)
169  };
170 
171  a_16 = new Among[] {
172  new Among("lar", -1, -1, "", null),
173  new Among("ler", -1, -1, "", null)
174  };
175 
176  a_17 = new Among[] {
177  new Among("niz", -1, -1, "", null),
178  new Among("nuz", -1, -1, "", null),
179  new Among("n\u00FCz", -1, -1, "", null),
180  new Among("n\u0131z", -1, -1, "", null)
181  };
182 
183  a_18 = new Among[] {
184  new Among("dir", -1, -1, "", null),
185  new Among("tir", -1, -1, "", null),
186  new Among("dur", -1, -1, "", null),
187  new Among("tur", -1, -1, "", null),
188  new Among("d\u00FCr", -1, -1, "", null),
189  new Among("t\u00FCr", -1, -1, "", null),
190  new Among("d\u0131r", -1, -1, "", null),
191  new Among("t\u0131r", -1, -1, "", null)
192  };
193 
194  a_19 = new Among[] {
195  new Among("cas\u0131na", -1, -1, "", null),
196  new Among("cesine", -1, -1, "", null)
197  };
198 
199  a_20 = new Among[] {
200  new Among("di", -1, -1, "", null),
201  new Among("ti", -1, -1, "", null),
202  new Among("dik", -1, -1, "", null),
203  new Among("tik", -1, -1, "", null),
204  new Among("duk", -1, -1, "", null),
205  new Among("tuk", -1, -1, "", null),
206  new Among("d\u00FCk", -1, -1, "", null),
207  new Among("t\u00FCk", -1, -1, "", null),
208  new Among("d\u0131k", -1, -1, "", null),
209  new Among("t\u0131k", -1, -1, "", null),
210  new Among("dim", -1, -1, "", null),
211  new Among("tim", -1, -1, "", null),
212  new Among("dum", -1, -1, "", null),
213  new Among("tum", -1, -1, "", null),
214  new Among("d\u00FCm", -1, -1, "", null),
215  new Among("t\u00FCm", -1, -1, "", null),
216  new Among("d\u0131m", -1, -1, "", null),
217  new Among("t\u0131m", -1, -1, "", null),
218  new Among("din", -1, -1, "", null),
219  new Among("tin", -1, -1, "", null),
220  new Among("dun", -1, -1, "", null),
221  new Among("tun", -1, -1, "", null),
222  new Among("d\u00FCn", -1, -1, "", null),
223  new Among("t\u00FCn", -1, -1, "", null),
224  new Among("d\u0131n", -1, -1, "", null),
225  new Among("t\u0131n", -1, -1, "", null),
226  new Among("du", -1, -1, "", null),
227  new Among("tu", -1, -1, "", null),
228  new Among("d\u00FC", -1, -1, "", null),
229  new Among("t\u00FC", -1, -1, "", null),
230  new Among("d\u0131", -1, -1, "", null),
231  new Among("t\u0131", -1, -1, "", null)
232  };
233 
234  a_21 = new Among[] {
235  new Among("sa", -1, -1, "", null),
236  new Among("se", -1, -1, "", null),
237  new Among("sak", -1, -1, "", null),
238  new Among("sek", -1, -1, "", null),
239  new Among("sam", -1, -1, "", null),
240  new Among("sem", -1, -1, "", null),
241  new Among("san", -1, -1, "", null),
242  new Among("sen", -1, -1, "", null)
243  };
244 
245  a_22 = new Among[] {
246  new Among("mi\u015F", -1, -1, "", null),
247  new Among("mu\u015F", -1, -1, "", null),
248  new Among("m\u00FC\u015F", -1, -1, "", null),
249  new Among("m\u0131\u015F", -1, -1, "", null)
250  };
251 
252  a_23 = new Among[] {
253  new Among("b", -1, 1, "", null),
254  new Among("c", -1, 2, "", null),
255  new Among("d", -1, 3, "", null),
256  new Among("\u011F", -1, 4, "", null)
257  };
258 
259  }
260 
261  private Among[] a_0;
262  private Among[] a_1;
263  private Among[] a_2;
264  private Among[] a_3;
265  private Among[] a_4;
266  private Among[] a_5;
267  private Among[] a_6;
268  private Among[] a_7;
269  private Among[] a_8;
270  private Among[] a_9;
271  private Among[] a_10;
272  private Among[] a_11;
273  private Among[] a_12;
274  private Among[] a_13;
275  private Among[] a_14;
276  private Among[] a_15;
277  private Among[] a_16;
278  private Among[] a_17;
279  private Among[] a_18;
280  private Among[] a_19;
281  private Among[] a_20;
282  private Among[] a_21;
283  private Among[] a_22;
284  private Among[] a_23;
285  private static readonly char[] g_vowel = new char[] { (char)17, (char)65, (char)16, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)32, (char)8, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)1 };
286 
287  private static readonly char[] g_U = new char[] { (char)1, (char)16, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)8, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)1 };
288 
289  private static readonly char[] g_vowel1 = new char[] { (char)1, (char)64, (char)16, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)1 };
290 
291  private static readonly char[] g_vowel2 = new char[] { (char)17, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)130 };
292 
293  private static readonly char[] g_vowel3 = new char[] { (char)1, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)1 };
294 
295  private static readonly char[] g_vowel4 = new char[] { (char)17 };
296 
297  private static readonly char[] g_vowel5 = new char[] { (char)65 };
298 
299  private static readonly char[] g_vowel6 = new char[] { (char)65 };
300 
301  private bool B_continue_stemming_noun_suffixes;
302  private int I_strlen;
303 
304  private void copy_from(TurkishStemmer other)
305  {
306  B_continue_stemming_noun_suffixes = other.B_continue_stemming_noun_suffixes;
307  I_strlen = other.I_strlen;
308  base.copy_from(other);
309  }
310 
311  private bool r_check_vowel_harmony()
312  {
313  int v_1;
314  int v_2;
315  int v_3;
316  int v_4;
317  int v_5;
318  int v_6;
319  int v_7;
320  int v_8;
321  int v_9;
322  int v_10;
323  int v_11;
324  // (, line 111
325  // test, line 112
326  v_1 = limit - cursor;
327  // (, line 113
328  // (, line 114
329  // goto, line 114
330  while (true)
331  {
332  v_2 = limit - cursor;
333  if (!(in_grouping_b(g_vowel, 97, 305)))
334  {
335  goto lab1;
336  }
337  cursor = limit - v_2;
338  goto golab0;
339  lab1:
340  cursor = limit - v_2;
341  if (cursor <= limit_backward)
342  {
343  return false;
344  }
345  cursor--;
346  }
347  golab0:
348  // (, line 115
349  // or, line 116
350  v_3 = limit - cursor;
351  // (, line 116
352  // literal, line 116
353  if (!(eq_s_b(1, "a")))
354  {
355  goto lab3;
356  }
357  // goto, line 116
358  while (true)
359  {
360  v_4 = limit - cursor;
361  if (!(in_grouping_b(g_vowel1, 97, 305)))
362  {
363  goto lab5;
364  }
365  cursor = limit - v_4;
366  goto golab4;
367  lab5:
368  cursor = limit - v_4;
369  if (cursor <= limit_backward)
370  {
371  goto lab3;
372  }
373  cursor--;
374  }
375  golab4:
376  goto lab2;
377  lab3:
378  cursor = limit - v_3;
379  // (, line 117
380  // literal, line 117
381  if (!(eq_s_b(1, "e")))
382  {
383  goto lab6;
384  }
385  // goto, line 117
386  while (true)
387  {
388  v_5 = limit - cursor;
389  if (!(in_grouping_b(g_vowel2, 101, 252)))
390  {
391  goto lab8;
392  }
393  cursor = limit - v_5;
394  goto golab7;
395  lab8:
396  cursor = limit - v_5;
397  if (cursor <= limit_backward)
398  {
399  goto lab6;
400  }
401  cursor--;
402  }
403  golab7:
404  goto lab2;
405  lab6:
406  cursor = limit - v_3;
407  // (, line 118
408  // literal, line 118
409  if (!(eq_s_b(1, "\u0131")))
410  {
411  goto lab9;
412  }
413  // goto, line 118
414  while (true)
415  {
416  v_6 = limit - cursor;
417  if (!(in_grouping_b(g_vowel3, 97, 305)))
418  {
419  goto lab11;
420  }
421  cursor = limit - v_6;
422  goto golab10;
423  lab11:
424  cursor = limit - v_6;
425  if (cursor <= limit_backward)
426  {
427  goto lab9;
428  }
429  cursor--;
430  }
431  golab10:
432  goto lab2;
433  lab9:
434  cursor = limit - v_3;
435  // (, line 119
436  // literal, line 119
437  if (!(eq_s_b(1, "i")))
438  {
439  goto lab12;
440  }
441  // goto, line 119
442  while (true)
443  {
444  v_7 = limit - cursor;
445  if (!(in_grouping_b(g_vowel4, 101, 105)))
446  {
447  goto lab14;
448  }
449  cursor = limit - v_7;
450  goto golab13;
451  lab14:
452  cursor = limit - v_7;
453  if (cursor <= limit_backward)
454  {
455  goto lab12;
456  }
457  cursor--;
458  }
459  golab13:
460  goto lab2;
461  lab12:
462  cursor = limit - v_3;
463  // (, line 120
464  // literal, line 120
465  if (!(eq_s_b(1, "o")))
466  {
467  goto lab15;
468  }
469  // goto, line 120
470  while (true)
471  {
472  v_8 = limit - cursor;
473  if (!(in_grouping_b(g_vowel5, 111, 117)))
474  {
475  goto lab17;
476  }
477  cursor = limit - v_8;
478  goto golab16;
479  lab17:
480  cursor = limit - v_8;
481  if (cursor <= limit_backward)
482  {
483  goto lab15;
484  }
485  cursor--;
486  }
487  golab16:
488  goto lab2;
489  lab15:
490  cursor = limit - v_3;
491  // (, line 121
492  // literal, line 121
493  if (!(eq_s_b(1, "\u00F6")))
494  {
495  goto lab18;
496  }
497  // goto, line 121
498  while (true)
499  {
500  v_9 = limit - cursor;
501  if (!(in_grouping_b(g_vowel6, 246, 252)))
502  {
503  goto lab20;
504  }
505  cursor = limit - v_9;
506  goto golab19;
507  lab20:
508  cursor = limit - v_9;
509  if (cursor <= limit_backward)
510  {
511  goto lab18;
512  }
513  cursor--;
514  }
515  golab19:
516  goto lab2;
517  lab18:
518  cursor = limit - v_3;
519  // (, line 122
520  // literal, line 122
521  if (!(eq_s_b(1, "u")))
522  {
523  goto lab21;
524  }
525  // goto, line 122
526  while (true)
527  {
528  v_10 = limit - cursor;
529  if (!(in_grouping_b(g_vowel5, 111, 117)))
530  {
531  goto lab23;
532  }
533  cursor = limit - v_10;
534  goto golab22;
535  lab23:
536  cursor = limit - v_10;
537  if (cursor <= limit_backward)
538  {
539  goto lab21;
540  }
541  cursor--;
542  }
543  golab22:
544  goto lab2;
545  lab21:
546  cursor = limit - v_3;
547  // (, line 123
548  // literal, line 123
549  if (!(eq_s_b(1, "\u00FC")))
550  {
551  return false;
552  }
553  // goto, line 123
554  while (true)
555  {
556  v_11 = limit - cursor;
557  if (!(in_grouping_b(g_vowel6, 246, 252)))
558  {
559  goto lab25;
560  }
561  cursor = limit - v_11;
562  goto golab24;
563  lab25:
564  cursor = limit - v_11;
565  if (cursor <= limit_backward)
566  {
567  return false;
568  }
569  cursor--;
570  }
571  golab24:
572  lab2:
573  cursor = limit - v_1;
574  return true;
575  }
576 
577  private bool r_mark_suffix_with_optional_n_consonant()
578  {
579  int v_1;
580  int v_2;
581  int v_3;
582  int v_4;
583  int v_5;
584  int v_6;
585  int v_7;
586  // (, line 132
587  // or, line 134
588  v_1 = limit - cursor;
589  // (, line 133
590  // (, line 133
591  // test, line 133
592  v_2 = limit - cursor;
593  // literal, line 133
594  if (!(eq_s_b(1, "n")))
595  {
596  goto lab1;
597  }
598  cursor = limit - v_2;
599  // next, line 133
600  if (cursor <= limit_backward)
601  {
602  goto lab1;
603  }
604  cursor--;
605  // (, line 133
606  // test, line 133
607  v_3 = limit - cursor;
608  if (!(in_grouping_b(g_vowel, 97, 305)))
609  {
610  goto lab1;
611  }
612  cursor = limit - v_3;
613  goto lab0;
614  lab1:
615  cursor = limit - v_1;
616  // (, line 135
617  // (, line 135
618  // not, line 135
619  {
620  v_4 = limit - cursor;
621  // (, line 135
622  // test, line 135
623  v_5 = limit - cursor;
624  // literal, line 135
625  if (!(eq_s_b(1, "n")))
626  {
627  goto lab2;
628  }
629  cursor = limit - v_5;
630  return false;
631  lab2:
632  cursor = limit - v_4;
633  }
634  // test, line 135
635  v_6 = limit - cursor;
636  // (, line 135
637  // next, line 135
638  if (cursor <= limit_backward)
639  {
640  return false;
641  }
642  cursor--;
643  // (, line 135
644  // test, line 135
645  v_7 = limit - cursor;
646  if (!(in_grouping_b(g_vowel, 97, 305)))
647  {
648  return false;
649  }
650  cursor = limit - v_7;
651  cursor = limit - v_6;
652  lab0:
653  return true;
654  }
655 
656  private bool r_mark_suffix_with_optional_s_consonant()
657  {
658  int v_1;
659  int v_2;
660  int v_3;
661  int v_4;
662  int v_5;
663  int v_6;
664  int v_7;
665  // (, line 143
666  // or, line 145
667  v_1 = limit - cursor;
668  // (, line 144
669  // (, line 144
670  // test, line 144
671  v_2 = limit - cursor;
672  // literal, line 144
673  if (!(eq_s_b(1, "s")))
674  {
675  goto lab1;
676  }
677  cursor = limit - v_2;
678  // next, line 144
679  if (cursor <= limit_backward)
680  {
681  goto lab1;
682  }
683  cursor--;
684  // (, line 144
685  // test, line 144
686  v_3 = limit - cursor;
687  if (!(in_grouping_b(g_vowel, 97, 305)))
688  {
689  goto lab1;
690  }
691  cursor = limit - v_3;
692  goto lab0;
693  lab1:
694  cursor = limit - v_1;
695  // (, line 146
696  // (, line 146
697  // not, line 146
698  {
699  v_4 = limit - cursor;
700  // (, line 146
701  // test, line 146
702  v_5 = limit - cursor;
703  // literal, line 146
704  if (!(eq_s_b(1, "s")))
705  {
706  goto lab2;
707  }
708  cursor = limit - v_5;
709  return false;
710  lab2:
711  cursor = limit - v_4;
712  }
713  // test, line 146
714  v_6 = limit - cursor;
715  // (, line 146
716  // next, line 146
717  if (cursor <= limit_backward)
718  {
719  return false;
720  }
721  cursor--;
722  // (, line 146
723  // test, line 146
724  v_7 = limit - cursor;
725  if (!(in_grouping_b(g_vowel, 97, 305)))
726  {
727  return false;
728  }
729  cursor = limit - v_7;
730  cursor = limit - v_6;
731  lab0:
732  return true;
733  }
734 
735  private bool r_mark_suffix_with_optional_y_consonant()
736  {
737  int v_1;
738  int v_2;
739  int v_3;
740  int v_4;
741  int v_5;
742  int v_6;
743  int v_7;
744  // (, line 153
745  // or, line 155
746  v_1 = limit - cursor;
747  // (, line 154
748  // (, line 154
749  // test, line 154
750  v_2 = limit - cursor;
751  // literal, line 154
752  if (!(eq_s_b(1, "y")))
753  {
754  goto lab1;
755  }
756  cursor = limit - v_2;
757  // next, line 154
758  if (cursor <= limit_backward)
759  {
760  goto lab1;
761  }
762  cursor--;
763  // (, line 154
764  // test, line 154
765  v_3 = limit - cursor;
766  if (!(in_grouping_b(g_vowel, 97, 305)))
767  {
768  goto lab1;
769  }
770  cursor = limit - v_3;
771  goto lab0;
772  lab1:
773  cursor = limit - v_1;
774  // (, line 156
775  // (, line 156
776  // not, line 156
777  {
778  v_4 = limit - cursor;
779  // (, line 156
780  // test, line 156
781  v_5 = limit - cursor;
782  // literal, line 156
783  if (!(eq_s_b(1, "y")))
784  {
785  goto lab2;
786  }
787  cursor = limit - v_5;
788  return false;
789  lab2:
790  cursor = limit - v_4;
791  }
792  // test, line 156
793  v_6 = limit - cursor;
794  // (, line 156
795  // next, line 156
796  if (cursor <= limit_backward)
797  {
798  return false;
799  }
800  cursor--;
801  // (, line 156
802  // test, line 156
803  v_7 = limit - cursor;
804  if (!(in_grouping_b(g_vowel, 97, 305)))
805  {
806  return false;
807  }
808  cursor = limit - v_7;
809  cursor = limit - v_6;
810  lab0:
811  return true;
812  }
813 
814  private bool r_mark_suffix_with_optional_U_vowel()
815  {
816  int v_1;
817  int v_2;
818  int v_3;
819  int v_4;
820  int v_5;
821  int v_6;
822  int v_7;
823  // (, line 159
824  // or, line 161
825  v_1 = limit - cursor;
826  // (, line 160
827  // (, line 160
828  // test, line 160
829  v_2 = limit - cursor;
830  if (!(in_grouping_b(g_U, 105, 305)))
831  {
832  goto lab1;
833  }
834  cursor = limit - v_2;
835  // next, line 160
836  if (cursor <= limit_backward)
837  {
838  goto lab1;
839  }
840  cursor--;
841  // (, line 160
842  // test, line 160
843  v_3 = limit - cursor;
844  if (!(out_grouping_b(g_vowel, 97, 305)))
845  {
846  goto lab1;
847  }
848  cursor = limit - v_3;
849  goto lab0;
850  lab1:
851  cursor = limit - v_1;
852  // (, line 162
853  // (, line 162
854  // not, line 162
855  {
856  v_4 = limit - cursor;
857  // (, line 162
858  // test, line 162
859  v_5 = limit - cursor;
860  if (!(in_grouping_b(g_U, 105, 305)))
861  {
862  goto lab2;
863  }
864  cursor = limit - v_5;
865  return false;
866  lab2:
867  cursor = limit - v_4;
868  }
869  // test, line 162
870  v_6 = limit - cursor;
871  // (, line 162
872  // next, line 162
873  if (cursor <= limit_backward)
874  {
875  return false;
876  }
877  cursor--;
878  // (, line 162
879  // test, line 162
880  v_7 = limit - cursor;
881  if (!(out_grouping_b(g_vowel, 97, 305)))
882  {
883  return false;
884  }
885  cursor = limit - v_7;
886  cursor = limit - v_6;
887  lab0:
888  return true;
889  }
890 
891  private bool r_mark_possessives()
892  {
893  // (, line 166
894  // among, line 167
895  if (find_among_b(a_0, 10) == 0)
896  {
897  return false;
898  }
899  // (, line 169
900  // call mark_suffix_with_optional_U_vowel, line 169
901  if (!r_mark_suffix_with_optional_U_vowel())
902  {
903  return false;
904  }
905  return true;
906  }
907 
908  private bool r_mark_sU()
909  {
910  // (, line 172
911  // call check_vowel_harmony, line 173
912  if (!r_check_vowel_harmony())
913  {
914  return false;
915  }
916  if (!(in_grouping_b(g_U, 105, 305)))
917  {
918  return false;
919  }
920  // (, line 175
921  // call mark_suffix_with_optional_s_consonant, line 175
922  if (!r_mark_suffix_with_optional_s_consonant())
923  {
924  return false;
925  }
926  return true;
927  }
928 
929  private bool r_mark_lArI()
930  {
931  // (, line 178
932  // among, line 179
933  if (find_among_b(a_1, 2) == 0)
934  {
935  return false;
936  }
937  return true;
938  }
939 
940  private bool r_mark_yU()
941  {
942  // (, line 182
943  // call check_vowel_harmony, line 183
944  if (!r_check_vowel_harmony())
945  {
946  return false;
947  }
948  if (!(in_grouping_b(g_U, 105, 305)))
949  {
950  return false;
951  }
952  // (, line 185
953  // call mark_suffix_with_optional_y_consonant, line 185
954  if (!r_mark_suffix_with_optional_y_consonant())
955  {
956  return false;
957  }
958  return true;
959  }
960 
961  private bool r_mark_nU()
962  {
963  // (, line 188
964  // call check_vowel_harmony, line 189
965  if (!r_check_vowel_harmony())
966  {
967  return false;
968  }
969  // among, line 190
970  if (find_among_b(a_2, 4) == 0)
971  {
972  return false;
973  }
974  return true;
975  }
976 
977  private bool r_mark_nUn()
978  {
979  // (, line 193
980  // call check_vowel_harmony, line 194
981  if (!r_check_vowel_harmony())
982  {
983  return false;
984  }
985  // among, line 195
986  if (find_among_b(a_3, 4) == 0)
987  {
988  return false;
989  }
990  // (, line 196
991  // call mark_suffix_with_optional_n_consonant, line 196
992  if (!r_mark_suffix_with_optional_n_consonant())
993  {
994  return false;
995  }
996  return true;
997  }
998 
999  private bool r_mark_yA()
1000  {
1001  // (, line 199
1002  // call check_vowel_harmony, line 200
1003  if (!r_check_vowel_harmony())
1004  {
1005  return false;
1006  }
1007  // among, line 201
1008  if (find_among_b(a_4, 2) == 0)
1009  {
1010  return false;
1011  }
1012  // (, line 202
1013  // call mark_suffix_with_optional_y_consonant, line 202
1014  if (!r_mark_suffix_with_optional_y_consonant())
1015  {
1016  return false;
1017  }
1018  return true;
1019  }
1020 
1021  private bool r_mark_nA()
1022  {
1023  // (, line 205
1024  // call check_vowel_harmony, line 206
1025  if (!r_check_vowel_harmony())
1026  {
1027  return false;
1028  }
1029  // among, line 207
1030  if (find_among_b(a_5, 2) == 0)
1031  {
1032  return false;
1033  }
1034  return true;
1035  }
1036 
1037  private bool r_mark_DA()
1038  {
1039  // (, line 210
1040  // call check_vowel_harmony, line 211
1041  if (!r_check_vowel_harmony())
1042  {
1043  return false;
1044  }
1045  // among, line 212
1046  if (find_among_b(a_6, 4) == 0)
1047  {
1048  return false;
1049  }
1050  return true;
1051  }
1052 
1053  private bool r_mark_ndA()
1054  {
1055  // (, line 215
1056  // call check_vowel_harmony, line 216
1057  if (!r_check_vowel_harmony())
1058  {
1059  return false;
1060  }
1061  // among, line 217
1062  if (find_among_b(a_7, 2) == 0)
1063  {
1064  return false;
1065  }
1066  return true;
1067  }
1068 
1069  private bool r_mark_DAn()
1070  {
1071  // (, line 220
1072  // call check_vowel_harmony, line 221
1073  if (!r_check_vowel_harmony())
1074  {
1075  return false;
1076  }
1077  // among, line 222
1078  if (find_among_b(a_8, 4) == 0)
1079  {
1080  return false;
1081  }
1082  return true;
1083  }
1084 
1085  private bool r_mark_ndAn()
1086  {
1087  // (, line 225
1088  // call check_vowel_harmony, line 226
1089  if (!r_check_vowel_harmony())
1090  {
1091  return false;
1092  }
1093  // among, line 227
1094  if (find_among_b(a_9, 2) == 0)
1095  {
1096  return false;
1097  }
1098  return true;
1099  }
1100 
1101  private bool r_mark_ylA()
1102  {
1103  // (, line 230
1104  // call check_vowel_harmony, line 231
1105  if (!r_check_vowel_harmony())
1106  {
1107  return false;
1108  }
1109  // among, line 232
1110  if (find_among_b(a_10, 2) == 0)
1111  {
1112  return false;
1113  }
1114  // (, line 233
1115  // call mark_suffix_with_optional_y_consonant, line 233
1116  if (!r_mark_suffix_with_optional_y_consonant())
1117  {
1118  return false;
1119  }
1120  return true;
1121  }
1122 
1123  private bool r_mark_ki()
1124  {
1125  // (, line 236
1126  // literal, line 237
1127  if (!(eq_s_b(2, "ki")))
1128  {
1129  return false;
1130  }
1131  return true;
1132  }
1133 
1134  private bool r_mark_ncA()
1135  {
1136  // (, line 240
1137  // call check_vowel_harmony, line 241
1138  if (!r_check_vowel_harmony())
1139  {
1140  return false;
1141  }
1142  // among, line 242
1143  if (find_among_b(a_11, 2) == 0)
1144  {
1145  return false;
1146  }
1147  // (, line 243
1148  // call mark_suffix_with_optional_n_consonant, line 243
1149  if (!r_mark_suffix_with_optional_n_consonant())
1150  {
1151  return false;
1152  }
1153  return true;
1154  }
1155 
1156  private bool r_mark_yUm()
1157  {
1158  // (, line 246
1159  // call check_vowel_harmony, line 247
1160  if (!r_check_vowel_harmony())
1161  {
1162  return false;
1163  }
1164  // among, line 248
1165  if (find_among_b(a_12, 4) == 0)
1166  {
1167  return false;
1168  }
1169  // (, line 249
1170  // call mark_suffix_with_optional_y_consonant, line 249
1171  if (!r_mark_suffix_with_optional_y_consonant())
1172  {
1173  return false;
1174  }
1175  return true;
1176  }
1177 
1178  private bool r_mark_sUn()
1179  {
1180  // (, line 252
1181  // call check_vowel_harmony, line 253
1182  if (!r_check_vowel_harmony())
1183  {
1184  return false;
1185  }
1186  // among, line 254
1187  if (find_among_b(a_13, 4) == 0)
1188  {
1189  return false;
1190  }
1191  return true;
1192  }
1193 
1194  private bool r_mark_yUz()
1195  {
1196  // (, line 257
1197  // call check_vowel_harmony, line 258
1198  if (!r_check_vowel_harmony())
1199  {
1200  return false;
1201  }
1202  // among, line 259
1203  if (find_among_b(a_14, 4) == 0)
1204  {
1205  return false;
1206  }
1207  // (, line 260
1208  // call mark_suffix_with_optional_y_consonant, line 260
1209  if (!r_mark_suffix_with_optional_y_consonant())
1210  {
1211  return false;
1212  }
1213  return true;
1214  }
1215 
1216  private bool r_mark_sUnUz()
1217  {
1218  // (, line 263
1219  // among, line 264
1220  if (find_among_b(a_15, 4) == 0)
1221  {
1222  return false;
1223  }
1224  return true;
1225  }
1226 
1227  private bool r_mark_lAr()
1228  {
1229  // (, line 267
1230  // call check_vowel_harmony, line 268
1231  if (!r_check_vowel_harmony())
1232  {
1233  return false;
1234  }
1235  // among, line 269
1236  if (find_among_b(a_16, 2) == 0)
1237  {
1238  return false;
1239  }
1240  return true;
1241  }
1242 
1243  private bool r_mark_nUz()
1244  {
1245  // (, line 272
1246  // call check_vowel_harmony, line 273
1247  if (!r_check_vowel_harmony())
1248  {
1249  return false;
1250  }
1251  // among, line 274
1252  if (find_among_b(a_17, 4) == 0)
1253  {
1254  return false;
1255  }
1256  return true;
1257  }
1258 
1259  private bool r_mark_DUr()
1260  {
1261  // (, line 277
1262  // call check_vowel_harmony, line 278
1263  if (!r_check_vowel_harmony())
1264  {
1265  return false;
1266  }
1267  // among, line 279
1268  if (find_among_b(a_18, 8) == 0)
1269  {
1270  return false;
1271  }
1272  return true;
1273  }
1274 
1275  private bool r_mark_cAsInA()
1276  {
1277  // (, line 282
1278  // among, line 283
1279  if (find_among_b(a_19, 2) == 0)
1280  {
1281  return false;
1282  }
1283  return true;
1284  }
1285 
1286  private bool r_mark_yDU()
1287  {
1288  // (, line 286
1289  // call check_vowel_harmony, line 287
1290  if (!r_check_vowel_harmony())
1291  {
1292  return false;
1293  }
1294  // among, line 288
1295  if (find_among_b(a_20, 32) == 0)
1296  {
1297  return false;
1298  }
1299  // (, line 292
1300  // call mark_suffix_with_optional_y_consonant, line 292
1301  if (!r_mark_suffix_with_optional_y_consonant())
1302  {
1303  return false;
1304  }
1305  return true;
1306  }
1307 
1308  private bool r_mark_ysA()
1309  {
1310  // (, line 296
1311  // among, line 297
1312  if (find_among_b(a_21, 8) == 0)
1313  {
1314  return false;
1315  }
1316  // (, line 298
1317  // call mark_suffix_with_optional_y_consonant, line 298
1318  if (!r_mark_suffix_with_optional_y_consonant())
1319  {
1320  return false;
1321  }
1322  return true;
1323  }
1324 
1325  private bool r_mark_ymUs_()
1326  {
1327  // (, line 301
1328  // call check_vowel_harmony, line 302
1329  if (!r_check_vowel_harmony())
1330  {
1331  return false;
1332  }
1333  // among, line 303
1334  if (find_among_b(a_22, 4) == 0)
1335  {
1336  return false;
1337  }
1338  // (, line 304
1339  // call mark_suffix_with_optional_y_consonant, line 304
1340  if (!r_mark_suffix_with_optional_y_consonant())
1341  {
1342  return false;
1343  }
1344  return true;
1345  }
1346 
1347  private bool r_mark_yken()
1348  {
1349  // (, line 307
1350  // literal, line 308
1351  if (!(eq_s_b(3, "ken")))
1352  {
1353  return false;
1354  }
1355  // (, line 308
1356  // call mark_suffix_with_optional_y_consonant, line 308
1357  if (!r_mark_suffix_with_optional_y_consonant())
1358  {
1359  return false;
1360  }
1361  return true;
1362  }
1363 
1364  private bool r_stem_nominal_verb_suffixes()
1365  {
1366  int v_1;
1367  int v_2;
1368  int v_3;
1369  int v_4;
1370  int v_5;
1371  int v_6;
1372  int v_7;
1373  int v_8;
1374  int v_9;
1375  int v_10;
1376  // (, line 311
1377  // [, line 312
1378  ket = cursor;
1379  // set continue_stemming_noun_suffixes, line 313
1380  B_continue_stemming_noun_suffixes = true;
1381  // or, line 315
1382  v_1 = limit - cursor;
1383  // (, line 314
1384  // or, line 314
1385  v_2 = limit - cursor;
1386  // call mark_ymUs_, line 314
1387  if (!r_mark_ymUs_())
1388  {
1389  goto lab3;
1390  }
1391  goto lab2;
1392  lab3:
1393  cursor = limit - v_2;
1394  // call mark_yDU, line 314
1395  if (!r_mark_yDU())
1396  {
1397  goto lab4;
1398  }
1399  goto lab2;
1400  lab4:
1401  cursor = limit - v_2;
1402  // call mark_ysA, line 314
1403  if (!r_mark_ysA())
1404  {
1405  goto lab5;
1406  }
1407  goto lab2;
1408  lab5:
1409  cursor = limit - v_2;
1410  // call mark_yken, line 314
1411  if (!r_mark_yken())
1412  {
1413  goto lab1;
1414  }
1415  lab2:
1416  goto lab0;
1417  lab1:
1418  cursor = limit - v_1;
1419  // (, line 316
1420  // call mark_cAsInA, line 316
1421  if (!r_mark_cAsInA())
1422  {
1423  goto lab6;
1424  }
1425  // (, line 316
1426  // or, line 316
1427  v_3 = limit - cursor;
1428  // call mark_sUnUz, line 316
1429  if (!r_mark_sUnUz())
1430  {
1431  goto lab8;
1432  }
1433  goto lab7;
1434  lab8:
1435  cursor = limit - v_3;
1436  // call mark_lAr, line 316
1437  if (!r_mark_lAr())
1438  {
1439  goto lab9;
1440  }
1441  goto lab7;
1442  lab9:
1443  cursor = limit - v_3;
1444  // call mark_yUm, line 316
1445  if (!r_mark_yUm())
1446  {
1447  goto lab10;
1448  }
1449  goto lab7;
1450  lab10:
1451  cursor = limit - v_3;
1452  // call mark_sUn, line 316
1453  if (!r_mark_sUn())
1454  {
1455  goto lab11;
1456  }
1457  goto lab7;
1458  lab11:
1459  cursor = limit - v_3;
1460  // call mark_yUz, line 316
1461  if (!r_mark_yUz())
1462  {
1463  goto lab12;
1464  }
1465  goto lab7;
1466  lab12:
1467  cursor = limit - v_3;
1468  lab7:
1469  // call mark_ymUs_, line 316
1470  if (!r_mark_ymUs_())
1471  {
1472  goto lab6;
1473  }
1474  goto lab0;
1475  lab6:
1476  cursor = limit - v_1;
1477  // (, line 318
1478  // call mark_lAr, line 319
1479  if (!r_mark_lAr())
1480  {
1481  goto lab13;
1482  }
1483  // ], line 319
1484  bra = cursor;
1485  // delete, line 319
1486  slice_del();
1487  // try, line 319
1488  v_4 = limit - cursor;
1489  // (, line 319
1490  // [, line 319
1491  ket = cursor;
1492  // (, line 319
1493  // or, line 319
1494  v_5 = limit - cursor;
1495  // call mark_DUr, line 319
1496  if (!r_mark_DUr())
1497  {
1498  goto lab16;
1499  }
1500  goto lab15;
1501  lab16:
1502  cursor = limit - v_5;
1503  // call mark_yDU, line 319
1504  if (!r_mark_yDU())
1505  {
1506  goto lab17;
1507  }
1508  goto lab15;
1509  lab17:
1510  cursor = limit - v_5;
1511  // call mark_ysA, line 319
1512  if (!r_mark_ysA())
1513  {
1514  goto lab18;
1515  }
1516  goto lab15;
1517  lab18:
1518  cursor = limit - v_5;
1519  // call mark_ymUs_, line 319
1520  if (!r_mark_ymUs_())
1521  {
1522  cursor = limit - v_4;
1523  goto lab14;
1524  }
1525  lab15:
1526  lab14:
1527  // unset continue_stemming_noun_suffixes, line 320
1528  B_continue_stemming_noun_suffixes = false;
1529  goto lab0;
1530  lab13:
1531  cursor = limit - v_1;
1532  // (, line 323
1533  // call mark_nUz, line 323
1534  if (!r_mark_nUz())
1535  {
1536  goto lab19;
1537  }
1538  // (, line 323
1539  // or, line 323
1540  v_6 = limit - cursor;
1541  // call mark_yDU, line 323
1542  if (!r_mark_yDU())
1543  {
1544  goto lab21;
1545  }
1546  goto lab20;
1547  lab21:
1548  cursor = limit - v_6;
1549  // call mark_ysA, line 323
1550  if (!r_mark_ysA())
1551  {
1552  goto lab19;
1553  }
1554  lab20:
1555  goto lab0;
1556  lab19:
1557  cursor = limit - v_1;
1558  // (, line 325
1559  // (, line 325
1560  // or, line 325
1561  v_7 = limit - cursor;
1562  // call mark_sUnUz, line 325
1563  if (!r_mark_sUnUz())
1564  {
1565  goto lab24;
1566  }
1567  goto lab23;
1568  lab24:
1569  cursor = limit - v_7;
1570  // call mark_yUz, line 325
1571  if (!r_mark_yUz())
1572  {
1573  goto lab25;
1574  }
1575  goto lab23;
1576  lab25:
1577  cursor = limit - v_7;
1578  // call mark_sUn, line 325
1579  if (!r_mark_sUn())
1580  {
1581  goto lab26;
1582  }
1583  goto lab23;
1584  lab26:
1585  cursor = limit - v_7;
1586  // call mark_yUm, line 325
1587  if (!r_mark_yUm())
1588  {
1589  goto lab22;
1590  }
1591  lab23:
1592  // ], line 325
1593  bra = cursor;
1594  // delete, line 325
1595  slice_del();
1596  // try, line 325
1597  v_8 = limit - cursor;
1598  // (, line 325
1599  // [, line 325
1600  ket = cursor;
1601  // call mark_ymUs_, line 325
1602  if (!r_mark_ymUs_())
1603  {
1604  cursor = limit - v_8;
1605  goto lab27;
1606  }
1607  lab27:
1608  goto lab0;
1609  lab22:
1610  cursor = limit - v_1;
1611  // (, line 327
1612  // call mark_DUr, line 327
1613  if (!r_mark_DUr())
1614  {
1615  return false;
1616  }
1617  // ], line 327
1618  bra = cursor;
1619  // delete, line 327
1620  slice_del();
1621  // try, line 327
1622  v_9 = limit - cursor;
1623  // (, line 327
1624  // [, line 327
1625  ket = cursor;
1626  // (, line 327
1627  // or, line 327
1628  v_10 = limit - cursor;
1629  // call mark_sUnUz, line 327
1630  if (!r_mark_sUnUz())
1631  {
1632  goto lab30;
1633  }
1634  goto lab29;
1635  lab30:
1636  cursor = limit - v_10;
1637  // call mark_lAr, line 327
1638  if (!r_mark_lAr())
1639  {
1640  goto lab31;
1641  }
1642  goto lab29;
1643  lab31:
1644  cursor = limit - v_10;
1645  // call mark_yUm, line 327
1646  if (!r_mark_yUm())
1647  {
1648  goto lab32;
1649  }
1650  goto lab29;
1651  lab32:
1652  cursor = limit - v_10;
1653  // call mark_sUn, line 327
1654  if (!r_mark_sUn())
1655  {
1656  goto lab33;
1657  }
1658  goto lab29;
1659  lab33:
1660  cursor = limit - v_10;
1661  // call mark_yUz, line 327
1662  if (!r_mark_yUz())
1663  {
1664  goto lab34;
1665  }
1666  goto lab29;
1667  lab34:
1668  cursor = limit - v_10;
1669  lab29:
1670  // call mark_ymUs_, line 327
1671  if (!r_mark_ymUs_())
1672  {
1673  cursor = limit - v_9;
1674  goto lab28;
1675  }
1676  lab28:
1677  lab0:
1678  // ], line 328
1679  bra = cursor;
1680  // delete, line 328
1681  slice_del();
1682  return true;
1683  }
1684 
1685  private bool r_stem_suffix_chain_before_ki()
1686  {
1687  int v_1;
1688  int v_2;
1689  int v_3;
1690  int v_4;
1691  int v_5;
1692  int v_6;
1693  int v_7;
1694  int v_8;
1695  int v_9;
1696  int v_10;
1697  int v_11;
1698  // (, line 332
1699  // [, line 333
1700  ket = cursor;
1701  // call mark_ki, line 334
1702  if (!r_mark_ki())
1703  {
1704  return false;
1705  }
1706  // (, line 335
1707  // or, line 342
1708  v_1 = limit - cursor;
1709  // (, line 336
1710  // call mark_DA, line 336
1711  if (!r_mark_DA())
1712  {
1713  goto lab1;
1714  }
1715  // ], line 336
1716  bra = cursor;
1717  // delete, line 336
1718  slice_del();
1719  // try, line 336
1720  v_2 = limit - cursor;
1721  // (, line 336
1722  // [, line 336
1723  ket = cursor;
1724  // or, line 338
1725  v_3 = limit - cursor;
1726  // (, line 337
1727  // call mark_lAr, line 337
1728  if (!r_mark_lAr())
1729  {
1730  goto lab4;
1731  }
1732  // ], line 337
1733  bra = cursor;
1734  // delete, line 337
1735  slice_del();
1736  // try, line 337
1737  v_4 = limit - cursor;
1738  // (, line 337
1739  // call stem_suffix_chain_before_ki, line 337
1740  if (!r_stem_suffix_chain_before_ki())
1741  {
1742  cursor = limit - v_4;
1743  goto lab5;
1744  }
1745  lab5:
1746  goto lab3;
1747  lab4:
1748  cursor = limit - v_3;
1749  // (, line 339
1750  // call mark_possessives, line 339
1751  if (!r_mark_possessives())
1752  {
1753  cursor = limit - v_2;
1754  goto lab2;
1755  }
1756  // ], line 339
1757  bra = cursor;
1758  // delete, line 339
1759  slice_del();
1760  // try, line 339
1761  v_5 = limit - cursor;
1762  // (, line 339
1763  // [, line 339
1764  ket = cursor;
1765  // call mark_lAr, line 339
1766  if (!r_mark_lAr())
1767  {
1768  cursor = limit - v_5;
1769  goto lab6;
1770  }
1771  // ], line 339
1772  bra = cursor;
1773  // delete, line 339
1774  slice_del();
1775  // call stem_suffix_chain_before_ki, line 339
1776  if (!r_stem_suffix_chain_before_ki())
1777  {
1778  cursor = limit - v_5;
1779  goto lab6;
1780  }
1781  lab6:
1782  lab3:
1783  lab2:
1784  goto lab0;
1785  lab1:
1786  cursor = limit - v_1;
1787  // (, line 343
1788  // call mark_nUn, line 343
1789  if (!r_mark_nUn())
1790  {
1791  goto lab7;
1792  }
1793  // ], line 343
1794  bra = cursor;
1795  // delete, line 343
1796  slice_del();
1797  // try, line 343
1798  v_6 = limit - cursor;
1799  // (, line 343
1800  // [, line 343
1801  ket = cursor;
1802  // or, line 345
1803  v_7 = limit - cursor;
1804  // (, line 344
1805  // call mark_lArI, line 344
1806  if (!r_mark_lArI())
1807  {
1808  goto lab10;
1809  }
1810  // ], line 344
1811  bra = cursor;
1812  // delete, line 344
1813  slice_del();
1814  goto lab9;
1815  lab10:
1816  cursor = limit - v_7;
1817  // (, line 346
1818  // [, line 346
1819  ket = cursor;
1820  // or, line 346
1821  v_8 = limit - cursor;
1822  // call mark_possessives, line 346
1823  if (!r_mark_possessives())
1824  {
1825  goto lab13;
1826  }
1827  goto lab12;
1828  lab13:
1829  cursor = limit - v_8;
1830  // call mark_sU, line 346
1831  if (!r_mark_sU())
1832  {
1833  goto lab11;
1834  }
1835  lab12:
1836  // ], line 346
1837  bra = cursor;
1838  // delete, line 346
1839  slice_del();
1840  // try, line 346
1841  v_9 = limit - cursor;
1842  // (, line 346
1843  // [, line 346
1844  ket = cursor;
1845  // call mark_lAr, line 346
1846  if (!r_mark_lAr())
1847  {
1848  cursor = limit - v_9;
1849  goto lab14;
1850  }
1851  // ], line 346
1852  bra = cursor;
1853  // delete, line 346
1854  slice_del();
1855  // call stem_suffix_chain_before_ki, line 346
1856  if (!r_stem_suffix_chain_before_ki())
1857  {
1858  cursor = limit - v_9;
1859  goto lab14;
1860  }
1861  lab14:
1862  goto lab9;
1863  lab11:
1864  cursor = limit - v_7;
1865  // (, line 348
1866  // call stem_suffix_chain_before_ki, line 348
1867  if (!r_stem_suffix_chain_before_ki())
1868  {
1869  cursor = limit - v_6;
1870  goto lab8;
1871  }
1872  lab9:
1873  lab8:
1874  goto lab0;
1875  lab7:
1876  cursor = limit - v_1;
1877  // (, line 351
1878  // call mark_ndA, line 351
1879  if (!r_mark_ndA())
1880  {
1881  return false;
1882  }
1883  // (, line 351
1884  // or, line 353
1885  v_10 = limit - cursor;
1886  // (, line 352
1887  // call mark_lArI, line 352
1888  if (!r_mark_lArI())
1889  {
1890  goto lab16;
1891  }
1892  // ], line 352
1893  bra = cursor;
1894  // delete, line 352
1895  slice_del();
1896  goto lab15;
1897  lab16:
1898  cursor = limit - v_10;
1899  // (, line 354
1900  // (, line 354
1901  // call mark_sU, line 354
1902  if (!r_mark_sU())
1903  {
1904  goto lab17;
1905  }
1906  // ], line 354
1907  bra = cursor;
1908  // delete, line 354
1909  slice_del();
1910  // try, line 354
1911  v_11 = limit - cursor;
1912  // (, line 354
1913  // [, line 354
1914  ket = cursor;
1915  // call mark_lAr, line 354
1916  if (!r_mark_lAr())
1917  {
1918  cursor = limit - v_11;
1919  goto lab18;
1920  }
1921  // ], line 354
1922  bra = cursor;
1923  // delete, line 354
1924  slice_del();
1925  // call stem_suffix_chain_before_ki, line 354
1926  if (!r_stem_suffix_chain_before_ki())
1927  {
1928  cursor = limit - v_11;
1929  goto lab18;
1930  }
1931  lab18:
1932  goto lab15;
1933  lab17:
1934  cursor = limit - v_10;
1935  // (, line 356
1936  // call stem_suffix_chain_before_ki, line 356
1937  if (!r_stem_suffix_chain_before_ki())
1938  {
1939  return false;
1940  }
1941  lab15:
1942  lab0:
1943  return true;
1944  }
1945 
1946  private bool r_stem_noun_suffixes()
1947  {
1948  int v_1;
1949  int v_2;
1950  int v_3;
1951  int v_4;
1952  int v_5;
1953  int v_6;
1954  int v_7;
1955  int v_8;
1956  int v_9;
1957  int v_10;
1958  int v_11;
1959  int v_12;
1960  int v_13;
1961  int v_14;
1962  int v_15;
1963  int v_16;
1964  int v_17;
1965  int v_18;
1966  int v_19;
1967  int v_20;
1968  int v_21;
1969  int v_22;
1970  int v_23;
1971  int v_24;
1972  int v_25;
1973  int v_26;
1974  int v_27;
1975  // (, line 361
1976  // or, line 363
1977  v_1 = limit - cursor;
1978  // (, line 362
1979  // [, line 362
1980  ket = cursor;
1981  // call mark_lAr, line 362
1982  if (!r_mark_lAr())
1983  {
1984  goto lab1;
1985  }
1986  // ], line 362
1987  bra = cursor;
1988  // delete, line 362
1989  slice_del();
1990  // try, line 362
1991  v_2 = limit - cursor;
1992  // (, line 362
1993  // call stem_suffix_chain_before_ki, line 362
1994  if (!r_stem_suffix_chain_before_ki())
1995  {
1996  cursor = limit - v_2;
1997  goto lab2;
1998  }
1999  lab2:
2000  goto lab0;
2001  lab1:
2002  cursor = limit - v_1;
2003  // (, line 364
2004  // [, line 364
2005  ket = cursor;
2006  // call mark_ncA, line 364
2007  if (!r_mark_ncA())
2008  {
2009  goto lab3;
2010  }
2011  // ], line 364
2012  bra = cursor;
2013  // delete, line 364
2014  slice_del();
2015  // try, line 365
2016  v_3 = limit - cursor;
2017  // (, line 365
2018  // or, line 367
2019  v_4 = limit - cursor;
2020  // (, line 366
2021  // [, line 366
2022  ket = cursor;
2023  // call mark_lArI, line 366
2024  if (!r_mark_lArI())
2025  {
2026  goto lab6;
2027  }
2028  // ], line 366
2029  bra = cursor;
2030  // delete, line 366
2031  slice_del();
2032  goto lab5;
2033  lab6:
2034  cursor = limit - v_4;
2035  // (, line 368
2036  // [, line 368
2037  ket = cursor;
2038  // or, line 368
2039  v_5 = limit - cursor;
2040  // call mark_possessives, line 368
2041  if (!r_mark_possessives())
2042  {
2043  goto lab9;
2044  }
2045  goto lab8;
2046  lab9:
2047  cursor = limit - v_5;
2048  // call mark_sU, line 368
2049  if (!r_mark_sU())
2050  {
2051  goto lab7;
2052  }
2053  lab8:
2054  // ], line 368
2055  bra = cursor;
2056  // delete, line 368
2057  slice_del();
2058  // try, line 368
2059  v_6 = limit - cursor;
2060  // (, line 368
2061  // [, line 368
2062  ket = cursor;
2063  // call mark_lAr, line 368
2064  if (!r_mark_lAr())
2065  {
2066  cursor = limit - v_6;
2067  goto lab10;
2068  }
2069  // ], line 368
2070  bra = cursor;
2071  // delete, line 368
2072  slice_del();
2073  // call stem_suffix_chain_before_ki, line 368
2074  if (!r_stem_suffix_chain_before_ki())
2075  {
2076  cursor = limit - v_6;
2077  goto lab10;
2078  }
2079  lab10:
2080  goto lab5;
2081  lab7:
2082  cursor = limit - v_4;
2083  // (, line 370
2084  // [, line 370
2085  ket = cursor;
2086  // call mark_lAr, line 370
2087  if (!r_mark_lAr())
2088  {
2089  cursor = limit - v_3;
2090  goto lab4;
2091  }
2092  // ], line 370
2093  bra = cursor;
2094  // delete, line 370
2095  slice_del();
2096  // call stem_suffix_chain_before_ki, line 370
2097  if (!r_stem_suffix_chain_before_ki())
2098  {
2099  cursor = limit - v_3;
2100  goto lab4;
2101  }
2102  lab5:
2103  lab4:
2104  goto lab0;
2105  lab3:
2106  cursor = limit - v_1;
2107  // (, line 374
2108  // [, line 374
2109  ket = cursor;
2110  // (, line 374
2111  // or, line 374
2112  v_7 = limit - cursor;
2113  // call mark_ndA, line 374
2114  if (!r_mark_ndA())
2115  {
2116  goto lab13;
2117  }
2118  goto lab12;
2119  lab13:
2120  cursor = limit - v_7;
2121  // call mark_nA, line 374
2122  if (!r_mark_nA())
2123  {
2124  goto lab11;
2125  }
2126  lab12:
2127  // (, line 375
2128  // or, line 377
2129  v_8 = limit - cursor;
2130  // (, line 376
2131  // call mark_lArI, line 376
2132  if (!r_mark_lArI())
2133  {
2134  goto lab15;
2135  }
2136  // ], line 376
2137  bra = cursor;
2138  // delete, line 376
2139  slice_del();
2140  goto lab14;
2141  lab15:
2142  cursor = limit - v_8;
2143  // (, line 378
2144  // call mark_sU, line 378
2145  if (!r_mark_sU())
2146  {
2147  goto lab16;
2148  }
2149  // ], line 378
2150  bra = cursor;
2151  // delete, line 378
2152  slice_del();
2153  // try, line 378
2154  v_9 = limit - cursor;
2155  // (, line 378
2156  // [, line 378
2157  ket = cursor;
2158  // call mark_lAr, line 378
2159  if (!r_mark_lAr())
2160  {
2161  cursor = limit - v_9;
2162  goto lab17;
2163  }
2164  // ], line 378
2165  bra = cursor;
2166  // delete, line 378
2167  slice_del();
2168  // call stem_suffix_chain_before_ki, line 378
2169  if (!r_stem_suffix_chain_before_ki())
2170  {
2171  cursor = limit - v_9;
2172  goto lab17;
2173  }
2174  lab17:
2175  goto lab14;
2176  lab16:
2177  cursor = limit - v_8;
2178  // (, line 380
2179  // call stem_suffix_chain_before_ki, line 380
2180  if (!r_stem_suffix_chain_before_ki())
2181  {
2182  goto lab11;
2183  }
2184  lab14:
2185  goto lab0;
2186  lab11:
2187  cursor = limit - v_1;
2188  // (, line 384
2189  // [, line 384
2190  ket = cursor;
2191  // (, line 384
2192  // or, line 384
2193  v_10 = limit - cursor;
2194  // call mark_ndAn, line 384
2195  if (!r_mark_ndAn())
2196  {
2197  goto lab20;
2198  }
2199  goto lab19;
2200  lab20:
2201  cursor = limit - v_10;
2202  // call mark_nU, line 384
2203  if (!r_mark_nU())
2204  {
2205  goto lab18;
2206  }
2207  lab19:
2208  // (, line 384
2209  // or, line 384
2210  v_11 = limit - cursor;
2211  // (, line 384
2212  // call mark_sU, line 384
2213  if (!r_mark_sU())
2214  {
2215  goto lab22;
2216  }
2217  // ], line 384
2218  bra = cursor;
2219  // delete, line 384
2220  slice_del();
2221  // try, line 384
2222  v_12 = limit - cursor;
2223  // (, line 384
2224  // [, line 384
2225  ket = cursor;
2226  // call mark_lAr, line 384
2227  if (!r_mark_lAr())
2228  {
2229  cursor = limit - v_12;
2230  goto lab23;
2231  }
2232  // ], line 384
2233  bra = cursor;
2234  // delete, line 384
2235  slice_del();
2236  // call stem_suffix_chain_before_ki, line 384
2237  if (!r_stem_suffix_chain_before_ki())
2238  {
2239  cursor = limit - v_12;
2240  goto lab23;
2241  }
2242  lab23:
2243  goto lab21;
2244  lab22:
2245  cursor = limit - v_11;
2246  // (, line 384
2247  // call mark_lArI, line 384
2248  if (!r_mark_lArI())
2249  {
2250  goto lab18;
2251  }
2252  lab21:
2253  goto lab0;
2254  lab18:
2255  cursor = limit - v_1;
2256  // (, line 386
2257  // [, line 386
2258  ket = cursor;
2259  // call mark_DAn, line 386
2260  if (!r_mark_DAn())
2261  {
2262  goto lab24;
2263  }
2264  // ], line 386
2265  bra = cursor;
2266  // delete, line 386
2267  slice_del();
2268  // try, line 386
2269  v_13 = limit - cursor;
2270  // (, line 386
2271  // [, line 386
2272  ket = cursor;
2273  // (, line 387
2274  // or, line 389
2275  v_14 = limit - cursor;
2276  // (, line 388
2277  // call mark_possessives, line 388
2278  if (!r_mark_possessives())
2279  {
2280  goto lab27;
2281  }
2282  // ], line 388
2283  bra = cursor;
2284  // delete, line 388
2285  slice_del();
2286  // try, line 388
2287  v_15 = limit - cursor;
2288  // (, line 388
2289  // [, line 388
2290  ket = cursor;
2291  // call mark_lAr, line 388
2292  if (!r_mark_lAr())
2293  {
2294  cursor = limit - v_15;
2295  goto lab28;
2296  }
2297  // ], line 388
2298  bra = cursor;
2299  // delete, line 388
2300  slice_del();
2301  // call stem_suffix_chain_before_ki, line 388
2302  if (!r_stem_suffix_chain_before_ki())
2303  {
2304  cursor = limit - v_15;
2305  goto lab28;
2306  }
2307  lab28:
2308  goto lab26;
2309  lab27:
2310  cursor = limit - v_14;
2311  // (, line 390
2312  // call mark_lAr, line 390
2313  if (!r_mark_lAr())
2314  {
2315  goto lab29;
2316  }
2317  // ], line 390
2318  bra = cursor;
2319  // delete, line 390
2320  slice_del();
2321  // try, line 390
2322  v_16 = limit - cursor;
2323  // (, line 390
2324  // call stem_suffix_chain_before_ki, line 390
2325  if (!r_stem_suffix_chain_before_ki())
2326  {
2327  cursor = limit - v_16;
2328  goto lab30;
2329  }
2330  lab30:
2331  goto lab26;
2332  lab29:
2333  cursor = limit - v_14;
2334  // (, line 392
2335  // call stem_suffix_chain_before_ki, line 392
2336  if (!r_stem_suffix_chain_before_ki())
2337  {
2338  cursor = limit - v_13;
2339  goto lab25;
2340  }
2341  lab26:
2342  lab25:
2343  goto lab0;
2344  lab24:
2345  cursor = limit - v_1;
2346  // (, line 396
2347  // [, line 396
2348  ket = cursor;
2349  // or, line 396
2350  v_17 = limit - cursor;
2351  // call mark_nUn, line 396
2352  if (!r_mark_nUn())
2353  {
2354  goto lab33;
2355  }
2356  goto lab32;
2357  lab33:
2358  cursor = limit - v_17;
2359  // call mark_ylA, line 396
2360  if (!r_mark_ylA())
2361  {
2362  goto lab31;
2363  }
2364  lab32:
2365  // ], line 396
2366  bra = cursor;
2367  // delete, line 396
2368  slice_del();
2369  // try, line 397
2370  v_18 = limit - cursor;
2371  // (, line 397
2372  // or, line 399
2373  v_19 = limit - cursor;
2374  // (, line 398
2375  // [, line 398
2376  ket = cursor;
2377  // call mark_lAr, line 398
2378  if (!r_mark_lAr())
2379  {
2380  goto lab36;
2381  }
2382  // ], line 398
2383  bra = cursor;
2384  // delete, line 398
2385  slice_del();
2386  // call stem_suffix_chain_before_ki, line 398
2387  if (!r_stem_suffix_chain_before_ki())
2388  {
2389  goto lab36;
2390  }
2391  goto lab35;
2392  lab36:
2393  cursor = limit - v_19;
2394  // (, line 400
2395  // [, line 400
2396  ket = cursor;
2397  // or, line 400
2398  v_20 = limit - cursor;
2399  // call mark_possessives, line 400
2400  if (!r_mark_possessives())
2401  {
2402  goto lab39;
2403  }
2404  goto lab38;
2405  lab39:
2406  cursor = limit - v_20;
2407  // call mark_sU, line 400
2408  if (!r_mark_sU())
2409  {
2410  goto lab37;
2411  }
2412  lab38:
2413  // ], line 400
2414  bra = cursor;
2415  // delete, line 400
2416  slice_del();
2417  // try, line 400
2418  v_21 = limit - cursor;
2419  // (, line 400
2420  // [, line 400
2421  ket = cursor;
2422  // call mark_lAr, line 400
2423  if (!r_mark_lAr())
2424  {
2425  cursor = limit - v_21;
2426  goto lab40;
2427  }
2428  // ], line 400
2429  bra = cursor;
2430  // delete, line 400
2431  slice_del();
2432  // call stem_suffix_chain_before_ki, line 400
2433  if (!r_stem_suffix_chain_before_ki())
2434  {
2435  cursor = limit - v_21;
2436  goto lab40;
2437  }
2438  lab40:
2439  goto lab35;
2440  lab37:
2441  cursor = limit - v_19;
2442  // call stem_suffix_chain_before_ki, line 402
2443  if (!r_stem_suffix_chain_before_ki())
2444  {
2445  cursor = limit - v_18;
2446  goto lab34;
2447  }
2448  lab35:
2449  lab34:
2450  goto lab0;
2451  lab31:
2452  cursor = limit - v_1;
2453  // (, line 406
2454  // [, line 406
2455  ket = cursor;
2456  // call mark_lArI, line 406
2457  if (!r_mark_lArI())
2458  {
2459  goto lab41;
2460  }
2461  // ], line 406
2462  bra = cursor;
2463  // delete, line 406
2464  slice_del();
2465  goto lab0;
2466  lab41:
2467  cursor = limit - v_1;
2468  // (, line 408
2469  // call stem_suffix_chain_before_ki, line 408
2470  if (!r_stem_suffix_chain_before_ki())
2471  {
2472  goto lab42;
2473  }
2474  goto lab0;
2475  lab42:
2476  cursor = limit - v_1;
2477  // (, line 410
2478  // [, line 410
2479  ket = cursor;
2480  // or, line 410
2481  v_22 = limit - cursor;
2482  // call mark_DA, line 410
2483  if (!r_mark_DA())
2484  {
2485  goto lab45;
2486  }
2487  goto lab44;
2488  lab45:
2489  cursor = limit - v_22;
2490  // call mark_yU, line 410
2491  if (!r_mark_yU())
2492  {
2493  goto lab46;
2494  }
2495  goto lab44;
2496  lab46:
2497  cursor = limit - v_22;
2498  // call mark_yA, line 410
2499  if (!r_mark_yA())
2500  {
2501  goto lab43;
2502  }
2503  lab44:
2504  // ], line 410
2505  bra = cursor;
2506  // delete, line 410
2507  slice_del();
2508  // try, line 410
2509  v_23 = limit - cursor;
2510  // (, line 410
2511  // [, line 410
2512  ket = cursor;
2513  // (, line 410
2514  // or, line 410
2515  v_24 = limit - cursor;
2516  // (, line 410
2517  // call mark_possessives, line 410
2518  if (!r_mark_possessives())
2519  {
2520  goto lab49;
2521  }
2522  // ], line 410
2523  bra = cursor;
2524  // delete, line 410
2525  slice_del();
2526  // try, line 410
2527  v_25 = limit - cursor;
2528  // (, line 410
2529  // [, line 410
2530  ket = cursor;
2531  // call mark_lAr, line 410
2532  if (!r_mark_lAr())
2533  {
2534  cursor = limit - v_25;
2535  goto lab50;
2536  }
2537  lab50:
2538  goto lab48;
2539  lab49:
2540  cursor = limit - v_24;
2541  // call mark_lAr, line 410
2542  if (!r_mark_lAr())
2543  {
2544  cursor = limit - v_23;
2545  goto lab47;
2546  }
2547  lab48:
2548  // ], line 410
2549  bra = cursor;
2550  // delete, line 410
2551  slice_del();
2552  // [, line 410
2553  ket = cursor;
2554  // call stem_suffix_chain_before_ki, line 410
2555  if (!r_stem_suffix_chain_before_ki())
2556  {
2557  cursor = limit - v_23;
2558  goto lab47;
2559  }
2560  lab47:
2561  goto lab0;
2562  lab43:
2563  cursor = limit - v_1;
2564  // (, line 412
2565  // [, line 412
2566  ket = cursor;
2567  // or, line 412
2568  v_26 = limit - cursor;
2569  // call mark_possessives, line 412
2570  if (!r_mark_possessives())
2571  {
2572  goto lab52;
2573  }
2574  goto lab51;
2575  lab52:
2576  cursor = limit - v_26;
2577  // call mark_sU, line 412
2578  if (!r_mark_sU())
2579  {
2580  return false;
2581  }
2582  lab51:
2583  // ], line 412
2584  bra = cursor;
2585  // delete, line 412
2586  slice_del();
2587  // try, line 412
2588  v_27 = limit - cursor;
2589  // (, line 412
2590  // [, line 412
2591  ket = cursor;
2592  // call mark_lAr, line 412
2593  if (!r_mark_lAr())
2594  {
2595  cursor = limit - v_27;
2596  goto lab53;
2597  }
2598  // ], line 412
2599  bra = cursor;
2600  // delete, line 412
2601  slice_del();
2602  // call stem_suffix_chain_before_ki, line 412
2603  if (!r_stem_suffix_chain_before_ki())
2604  {
2605  cursor = limit - v_27;
2606  goto lab53;
2607  }
2608  lab53:
2609  lab0:
2610  return true;
2611  }
2612 
2613  private bool r_post_process_last_consonants()
2614  {
2615  int among_var;
2616  // (, line 415
2617  // [, line 416
2618  ket = cursor;
2619  // substring, line 416
2620  among_var = find_among_b(a_23, 4);
2621  if (among_var == 0)
2622  {
2623  return false;
2624  }
2625  // ], line 416
2626  bra = cursor;
2627  switch (among_var)
2628  {
2629  case 0:
2630  return false;
2631  case 1:
2632  // (, line 417
2633  // <-, line 417
2634  slice_from("p");
2635  break;
2636  case 2:
2637  // (, line 418
2638  // <-, line 418
2639  slice_from("\u00E7");
2640  break;
2641  case 3:
2642  // (, line 419
2643  // <-, line 419
2644  slice_from("t");
2645  break;
2646  case 4:
2647  // (, line 420
2648  // <-, line 420
2649  slice_from("k");
2650  break;
2651  }
2652  return true;
2653  }
2654 
2655  private bool r_append_U_to_stems_ending_with_d_or_g()
2656  {
2657  int v_1;
2658  int v_2;
2659  int v_3;
2660  int v_4;
2661  int v_5;
2662  int v_6;
2663  int v_7;
2664  int v_8;
2665  int v_9;
2666  int v_10;
2667  int v_11;
2668  int v_12;
2669  int v_13;
2670  int v_14;
2671  int v_15;
2672  // (, line 430
2673  // test, line 431
2674  v_1 = limit - cursor;
2675  // (, line 431
2676  // or, line 431
2677  v_2 = limit - cursor;
2678  // literal, line 431
2679  if (!(eq_s_b(1, "d")))
2680  {
2681  goto lab1;
2682  }
2683  goto lab0;
2684  lab1:
2685  cursor = limit - v_2;
2686  // literal, line 431
2687  if (!(eq_s_b(1, "g")))
2688  {
2689  return false;
2690  }
2691  lab0:
2692  cursor = limit - v_1;
2693  // or, line 433
2694  v_3 = limit - cursor;
2695  // (, line 432
2696  // test, line 432
2697  v_4 = limit - cursor;
2698  // (, line 432
2699  // (, line 432
2700  // goto, line 432
2701  while (true)
2702  {
2703  v_5 = limit - cursor;
2704  if (!(in_grouping_b(g_vowel, 97, 305)))
2705  {
2706  goto lab5;
2707  }
2708  cursor = limit - v_5;
2709  goto golab4;
2710  lab5:
2711  cursor = limit - v_5;
2712  if (cursor <= limit_backward)
2713  {
2714  goto lab3;
2715  }
2716  cursor--;
2717  }
2718  golab4:
2719  // or, line 432
2720  v_6 = limit - cursor;
2721  // literal, line 432
2722  if (!(eq_s_b(1, "a")))
2723  {
2724  goto lab7;
2725  }
2726  goto lab6;
2727  lab7:
2728  cursor = limit - v_6;
2729  // literal, line 432
2730  if (!(eq_s_b(1, "\u0131")))
2731  {
2732  goto lab3;
2733  }
2734  lab6:
2735  cursor = limit - v_4;
2736  // <+, line 432
2737  {
2738  int c = cursor;
2739  insert(cursor, cursor, "\u0131");
2740  cursor = c;
2741  }
2742  goto lab2;
2743  lab3:
2744  cursor = limit - v_3;
2745  // (, line 434
2746  // test, line 434
2747  v_7 = limit - cursor;
2748  // (, line 434
2749  // (, line 434
2750  // goto, line 434
2751  while (true)
2752  {
2753  v_8 = limit - cursor;
2754  if (!(in_grouping_b(g_vowel, 97, 305)))
2755  {
2756  goto lab10;
2757  }
2758  cursor = limit - v_8;
2759  goto golab9;
2760  lab10:
2761  cursor = limit - v_8;
2762  if (cursor <= limit_backward)
2763  {
2764  goto lab8;
2765  }
2766  cursor--;
2767  }
2768  golab9:
2769  // or, line 434
2770  v_9 = limit - cursor;
2771  // literal, line 434
2772  if (!(eq_s_b(1, "e")))
2773  {
2774  goto lab12;
2775  }
2776  goto lab11;
2777  lab12:
2778  cursor = limit - v_9;
2779  // literal, line 434
2780  if (!(eq_s_b(1, "i")))
2781  {
2782  goto lab8;
2783  }
2784  lab11:
2785  cursor = limit - v_7;
2786  // <+, line 434
2787  {
2788  int c = cursor;
2789  insert(cursor, cursor, "i");
2790  cursor = c;
2791  }
2792  goto lab2;
2793  lab8:
2794  cursor = limit - v_3;
2795  // (, line 436
2796  // test, line 436
2797  v_10 = limit - cursor;
2798  // (, line 436
2799  // (, line 436
2800  // goto, line 436
2801  while (true)
2802  {
2803  v_11 = limit - cursor;
2804  if (!(in_grouping_b(g_vowel, 97, 305)))
2805  {
2806  goto lab15;
2807  }
2808  cursor = limit - v_11;
2809  goto golab14;
2810  lab15:
2811  cursor = limit - v_11;
2812  if (cursor <= limit_backward)
2813  {
2814  goto lab13;
2815  }
2816  cursor--;
2817  }
2818  golab14:
2819  // or, line 436
2820  v_12 = limit - cursor;
2821  // literal, line 436
2822  if (!(eq_s_b(1, "o")))
2823  {
2824  goto lab17;
2825  }
2826  goto lab16;
2827  lab17:
2828  cursor = limit - v_12;
2829  // literal, line 436
2830  if (!(eq_s_b(1, "u")))
2831  {
2832  goto lab13;
2833  }
2834  lab16:
2835  cursor = limit - v_10;
2836  // <+, line 436
2837  {
2838  int c = cursor;
2839  insert(cursor, cursor, "u");
2840  cursor = c;
2841  }
2842  goto lab2;
2843  lab13:
2844  cursor = limit - v_3;
2845  // (, line 438
2846  // test, line 438
2847  v_13 = limit - cursor;
2848  // (, line 438
2849  // (, line 438
2850  // goto, line 438
2851  while (true)
2852  {
2853  v_14 = limit - cursor;
2854  if (!(in_grouping_b(g_vowel, 97, 305)))
2855  {
2856  goto lab19;
2857  }
2858  cursor = limit - v_14;
2859  goto golab18;
2860  lab19:
2861  cursor = limit - v_14;
2862  if (cursor <= limit_backward)
2863  {
2864  return false;
2865  }
2866  cursor--;
2867  }
2868  golab18:
2869  // or, line 438
2870  v_15 = limit - cursor;
2871  // literal, line 438
2872  if (!(eq_s_b(1, "\u00F6")))
2873  {
2874  goto lab21;
2875  }
2876  goto lab20;
2877  lab21:
2878  cursor = limit - v_15;
2879  // literal, line 438
2880  if (!(eq_s_b(1, "\u00FC")))
2881  {
2882  return false;
2883  }
2884  lab20:
2885  cursor = limit - v_13;
2886  // <+, line 438
2887  {
2888  int c = cursor;
2889  insert(cursor, cursor, "\u00FC");
2890  cursor = c;
2891  }
2892  lab2:
2893  return true;
2894  }
2895 
2896  private bool r_more_than_one_syllable_word()
2897  {
2898  int v_1;
2899  int v_3;
2900  // (, line 445
2901  // test, line 446
2902  v_1 = cursor;
2903  // (, line 446
2904  // atleast, line 446
2905  {
2906  int v_2 = 2;
2907  // atleast, line 446
2908  replab0:
2909  v_3 = cursor;
2910  // (, line 446
2911  // gopast, line 446
2912  while (true)
2913  {
2914  if (!(in_grouping(g_vowel, 97, 305)))
2915  {
2916  goto lab3;
2917  }
2918  goto golab2;
2919  lab3:
2920  if (cursor >= limit)
2921  {
2922  goto lab1;
2923  }
2924  cursor++;
2925  }
2926  golab2:
2927  v_2--;
2928  goto replab0;
2929  lab1:
2930  cursor = v_3;
2931  if (v_2 > 0)
2932  {
2933  return false;
2934  }
2935  }
2936  cursor = v_1;
2937  return true;
2938  }
2939 
2940  private bool r_is_reserved_word()
2941  {
2942  int v_1;
2943  int v_2;
2944  int v_4;
2945  // (, line 449
2946  // or, line 451
2947  v_1 = cursor;
2948  // test, line 450
2949  v_2 = cursor;
2950  // (, line 450
2951  // gopast, line 450
2952  while (true)
2953  {
2954  // literal, line 450
2955  if (!(eq_s(2, "ad")))
2956  {
2957  goto lab3;
2958  }
2959  goto golab2;
2960  lab3:
2961  if (cursor >= limit)
2962  {
2963  goto lab1;
2964  }
2965  cursor++;
2966  }
2967  golab2:
2968  // (, line 450
2969  I_strlen = 2;
2970  // (, line 450
2971  if (!(I_strlen == limit))
2972  {
2973  goto lab1;
2974  }
2975  cursor = v_2;
2976  goto lab0;
2977  lab1:
2978  cursor = v_1;
2979  // test, line 452
2980  v_4 = cursor;
2981  // (, line 452
2982  // gopast, line 452
2983  while (true)
2984  {
2985  // literal, line 452
2986  if (!(eq_s(5, "soyad")))
2987  {
2988  goto lab5;
2989  }
2990  goto golab4;
2991  lab5:
2992  if (cursor >= limit)
2993  {
2994  return false;
2995  }
2996  cursor++;
2997  }
2998  golab4:
2999  // (, line 452
3000  I_strlen = 5;
3001  // (, line 452
3002  if (!(I_strlen == limit))
3003  {
3004  return false;
3005  }
3006  cursor = v_4;
3007  lab0:
3008  return true;
3009  }
3010 
3011  private bool r_postlude()
3012  {
3013  int v_1;
3014  int v_2;
3015  int v_3;
3016  // (, line 455
3017  // not, line 456
3018  {
3019  v_1 = cursor;
3020  // (, line 456
3021  // call is_reserved_word, line 456
3022  if (!r_is_reserved_word())
3023  {
3024  goto lab0;
3025  }
3026  return false;
3027  lab0:
3028  cursor = v_1;
3029  }
3030  // backwards, line 457
3031  limit_backward = cursor; cursor = limit;
3032  // (, line 457
3033  // do, line 458
3034  v_2 = limit - cursor;
3035  // call append_U_to_stems_ending_with_d_or_g, line 458
3036  if (!r_append_U_to_stems_ending_with_d_or_g())
3037  {
3038  goto lab1;
3039  }
3040  lab1:
3041  cursor = limit - v_2;
3042  // do, line 459
3043  v_3 = limit - cursor;
3044  // call post_process_last_consonants, line 459
3045  if (!r_post_process_last_consonants())
3046  {
3047  goto lab2;
3048  }
3049  lab2:
3050  cursor = limit - v_3;
3051  cursor = limit_backward;
3052  return true;
3053  }
3054 
3055  public override bool Stem()
3056  {
3057  int v_1;
3058  int v_2;
3059  // (, line 464
3060  // (, line 465
3061  // call more_than_one_syllable_word, line 465
3062  if (!r_more_than_one_syllable_word())
3063  {
3064  return false;
3065  }
3066  // (, line 466
3067  // backwards, line 467
3068  limit_backward = cursor; cursor = limit;
3069  // (, line 467
3070  // do, line 468
3071  v_1 = limit - cursor;
3072  // call stem_nominal_verb_suffixes, line 468
3073  if (!r_stem_nominal_verb_suffixes())
3074  {
3075  goto lab0;
3076  }
3077  lab0:
3078  cursor = limit - v_1;
3079  // Boolean test continue_stemming_noun_suffixes, line 469
3080  if (!(B_continue_stemming_noun_suffixes))
3081  {
3082  return false;
3083  }
3084  // do, line 470
3085  v_2 = limit - cursor;
3086  // call stem_noun_suffixes, line 470
3087  if (!r_stem_noun_suffixes())
3088  {
3089  goto lab1;
3090  }
3091  lab1:
3092  cursor = limit - v_2;
3093  cursor = limit_backward;
3094  // call postlude, line 473
3095  if (!r_postlude())
3096  {
3097  return false;
3098  }
3099  return true;
3100  }
3101  }
3102 }
3103