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
SpanishStemmer.cs
Go to the documentation of this file.
1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 // This file was generated automatically by the Snowball to Java compiler
19 using System;
20 using Among = SF.Snowball.Among;
21 using SnowballProgram = SF.Snowball.SnowballProgram;
22 namespace SF.Snowball.Ext
23 {
24 #pragma warning disable 162
25 
26  /// <summary> Generated class implementing code defined by a snowball script.</summary>
28  {
29  public SpanishStemmer()
30  {
31  InitBlock();
32  }
33  private void InitBlock()
34  {
35  a_0 = new Among[]{new Among("", - 1, 6, "", this), new Among("\u00E1", 0, 1, "", this), new Among("\u00E9", 0, 2, "", this), new Among("\u00ED", 0, 3, "", this), new Among("\u00F3", 0, 4, "", this), new Among("\u00FA", 0, 5, "", this)};
36  a_1 = new Among[]{new Among("la", - 1, - 1, "", this), new Among("sela", 0, - 1, "", this), new Among("le", - 1, - 1, "", this), new Among("me", - 1, - 1, "", this), new Among("se", - 1, - 1, "", this), new Among("lo", - 1, - 1, "", this), new Among("selo", 5, - 1, "", this), new Among("las", - 1, - 1, "", this), new Among("selas", 7, - 1, "", this), new Among("les", - 1, - 1, "", this), new Among("los", - 1, - 1, "", this), new Among("selos", 10, - 1, "", this), new Among("nos", - 1, - 1, "", this)};
37  a_2 = new Among[]{new Among("ando", - 1, 6, "", this), new Among("iendo", - 1, 6, "", this), new Among("yendo", - 1, 7, "", this), new Among("\u00E1ndo", - 1, 2, "", this), new Among("i\u00E9ndo", - 1, 1, "", this), new Among("ar", - 1, 6, "", this), new Among("er", - 1, 6, "", this), new Among("ir", - 1, 6, "", this), new Among("\u00E1r", - 1, 3, "", this), new Among("\u00E9r", - 1, 4, "", this), new Among("\u00EDr", - 1, 5, "", this)};
38  a_3 = new Among[]{new Among("ic", - 1, - 1, "", this), new Among("ad", - 1, - 1, "", this), new Among("os", - 1, - 1, "", this), new Among("iv", - 1, 1, "", this)};
39  a_4 = new Among[]{new Among("able", - 1, 1, "", this), new Among("ible", - 1, 1, "", this)};
40  a_5 = new Among[]{new Among("ic", - 1, 1, "", this), new Among("abil", - 1, 1, "", this), new Among("iv", - 1, 1, "", this)};
41  a_6 = new Among[]{new Among("ica", - 1, 1, "", this), new Among("encia", - 1, 5, "", this), new Among("adora", - 1, 2, "", this), new Among("osa", - 1, 1, "", this), new Among("ista", - 1, 1, "", this), new Among("iva", - 1, 9, "", this), new Among("anza", - 1, 1, "", this), new Among("log\u00EDa", - 1, 3, "", this), new Among("idad", - 1, 8, "", this), new Among("able", - 1, 1, "", this), new Among("ible", - 1, 1, "", this), new Among("mente", - 1, 7, "", this), new Among("amente", 11, 6, "", this), new Among("aci\u00F3n", - 1, 2, "", this), new Among("uci\u00F3n", - 1, 4, "", this), new Among("ico", - 1, 1, "", this), new Among("ismo", - 1, 1, "", this), new Among("oso", - 1, 1, "", this), new Among("amiento", - 1, 1, "", this), new Among("imiento", - 1, 1, "", this), new Among("ivo", - 1, 9, "", this), new Among("ador", - 1, 2, "", this), new Among("icas", - 1, 1, "", this), new Among("encias", - 1, 5, "", this), new Among("adoras", - 1, 2, "", this), new Among("osas", - 1, 1, "", this), new Among("istas", - 1, 1, "", this), new Among("ivas", - 1, 9, "", this), new Among("anzas", - 1, 1, "", this), new Among("log\u00EDas", - 1, 3, "", this), new Among("idades", - 1, 8, "", this), new Among("ables", - 1, 1, "", this), new Among("ibles", - 1, 1, "", this), new Among("aciones", - 1, 2, "", this), new Among("uciones", - 1, 4, "", this), new Among("adores", - 1, 2, "", this), new Among("icos", - 1, 1, "", this), new Among("ismos", - 1, 1, "", this), new Among("osos", - 1, 1, "", this), new Among("amientos", - 1, 1, "", this), new Among("imientos", - 1, 1, "", this), new Among("ivos", - 1, 9, "", this)};
42  a_7 = new Among[]{new Among("ya", - 1, 1, "", this), new Among("ye", - 1, 1, "", this), new Among("yan", - 1, 1, "", this), new Among("yen", - 1, 1, "", this), new Among("yeron", - 1, 1, "", this), new Among("yendo", - 1, 1, "", this), new Among("yo", - 1, 1, "", this), new Among("yas", - 1, 1, "", this), new Among("yes", - 1, 1, "", this), new Among("yais", - 1, 1, "", this), new Among("yamos", - 1, 1, "", this), new Among("y\u00F3", - 1, 1, "", this)};
43  a_8 = new Among[]{new Among("aba", - 1, 2, "", this), new Among("ada", - 1, 2, "", this), new Among("ida", - 1, 2, "", this), new Among("ara", - 1, 2, "", this), new Among("iera", - 1, 2, "", this), new Among("\u00EDa", - 1, 2, "", this), new Among("ar\u00EDa", 5, 2, "", this), new Among("er\u00EDa", 5, 2, "", this), new Among("ir\u00EDa", 5, 2, "", this), new Among("ad", - 1, 2, "", this), new Among("ed", - 1, 2, "", this), new Among("id", - 1, 2, "", this), new Among("ase", - 1, 2, "", this), new Among("iese", - 1, 2, "", this), new Among("aste", - 1, 2, "", this), new Among("iste", - 1, 2, "", this), new Among("an", - 1, 2, "", this), new Among("aban", 16, 2, "", this), new Among("aran", 16, 2, "", this), new Among("ieran", 16, 2, "", this), new Among("\u00EDan", 16, 2, "", this), new Among("ar\u00EDan", 20, 2, "", this), new Among("er\u00EDan", 20, 2, "", this), new Among("ir\u00EDan", 20, 2, "", this), new Among("en", - 1, 1, "", this), new Among("asen", 24, 2, "", this), new Among("iesen", 24, 2, "", this), new Among("aron", - 1, 2, "", this), new Among("ieron", - 1, 2, "", this), new Among("ar\u00E1n", - 1, 2, "", this), new Among("er\u00E1n", - 1, 2, "", this), new Among("ir\u00E1n", - 1, 2, "", this), new Among("ado", - 1, 2, "", this), new Among("ido", - 1, 2, "", this), new Among("ando", - 1, 2, "", this), new Among("iendo", - 1, 2, "", this), new Among("ar", - 1, 2, "", this), new Among("er", - 1, 2, "", this), new Among("ir", - 1, 2, "", this), new Among("as", - 1, 2, "", this), new Among("abas", 39, 2, "", this), new Among("adas", 39, 2, "", this), new Among("idas", 39, 2, "", this), new Among("aras", 39, 2, "", this), new Among("ieras", 39, 2, "", this), new Among("\u00EDas", 39, 2, "", this), new Among("ar\u00EDas", 45, 2, "", this), new Among("er\u00EDas", 45, 2, "", this), new Among("ir\u00EDas", 45, 2, "", this), new Among("es", - 1, 1, "", this), new Among("ases", 49, 2, "", this), new Among("ieses", 49, 2, "", this), new Among("abais", - 1, 2, "", this), new Among("arais", -
44  1, 2, "", this), new Among("ierais", - 1, 2, "", this), new Among("\u00EDais", - 1, 2, "", this), new Among("ar\u00EDais", 55, 2, "", this), new Among("er\u00EDais", 55, 2, "", this), new Among("ir\u00EDais", 55, 2, "", this), new Among("aseis", - 1, 2, "", this), new Among("ieseis", - 1, 2, "", this), new Among("asteis", - 1, 2, "", this), new Among("isteis", - 1, 2, "", this), new Among("\u00E1is", - 1, 2, "", this), new Among("\u00E9is", - 1, 1, "", this), new Among("ar\u00E9is", 64, 2, "", this), new Among("er\u00E9is", 64, 2, "", this), new Among("ir\u00E9is", 64, 2, "", this), new Among("ados", - 1, 2, "", this), new Among("idos", - 1, 2, "", this), new Among("amos", - 1, 2, "", this), new Among("\u00E1bamos", 70, 2, "", this), new Among("\u00E1ramos", 70, 2, "", this), new Among("i\u00E9ramos", 70, 2, "", this), new Among("\u00EDamos", 70, 2, "", this), new Among("ar\u00EDamos", 74, 2, "", this), new Among("er\u00EDamos", 74, 2, "", this), new Among("ir\u00EDamos", 74, 2, "", this), new Among("emos", - 1, 1, "", this), new Among("aremos", 78, 2, "", this), new Among("eremos", 78, 2, "", this), new Among("iremos", 78, 2, "", this), new Among("\u00E1semos", 78, 2, "", this), new Among("i\u00E9semos", 78, 2, "", this), new Among("imos", - 1, 2, "", this), new Among("ar\u00E1s", - 1, 2, "", this), new Among("er\u00E1s", - 1, 2, "", this), new Among("ir\u00E1s", - 1, 2, "", this), new Among("\u00EDs", - 1, 2, "", this), new Among("ar\u00E1", - 1, 2, "", this), new Among("er\u00E1", - 1, 2, "", this), new Among("ir\u00E1", - 1, 2, "", this), new Among("ar\u00E9", - 1, 2, "", this), new Among("er\u00E9", - 1, 2, "", this), new Among("ir\u00E9", - 1, 2, "", this), new Among("i\u00F3", - 1, 2, "", this)};
45  a_9 = new Among[]{new Among("a", - 1, 1, "", this), new Among("e", - 1, 2, "", this), new Among("o", - 1, 1, "", this), new Among("os", - 1, 1, "", this), new Among("\u00E1", - 1, 1, "", this), new Among("\u00E9", - 1, 2, "", this), new Among("\u00ED", - 1, 1, "", this), new Among("\u00F3", - 1, 1, "", this)};
46  }
47 
48  private Among[] a_0;
49  private Among[] a_1;
50  private Among[] a_2;
51  private Among[] a_3;
52  private Among[] a_4;
53  private Among[] a_5;
54  private Among[] a_6;
55  private Among[] a_7;
56  private Among[] a_8;
57  private Among[] a_9;
58  private static readonly char[] g_v = 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) (1), (char) (17), (char) (4), (char) (10)};
59 
60  private int I_p2;
61  private int I_p1;
62  private int I_pV;
63 
64  protected internal virtual void copy_from(SpanishStemmer other)
65  {
66  I_p2 = other.I_p2;
67  I_p1 = other.I_p1;
68  I_pV = other.I_pV;
69  base.copy_from(other);
70  }
71 
72  private bool r_mark_regions()
73  {
74  int v_1;
75  int v_2;
76  int v_3;
77  int v_6;
78  int v_8;
79  // (, line 31
80  I_pV = limit;
81  I_p1 = limit;
82  I_p2 = limit;
83  // do, line 37
84  v_1 = cursor;
85  do
86  {
87  // (, line 37
88  // or, line 39
89  do
90  {
91  v_2 = cursor;
92  do
93  {
94  // (, line 38
95  if (!(in_grouping(g_v, 97, 252)))
96  {
97  goto lab2_brk;
98  }
99  // or, line 38
100  do
101  {
102  v_3 = cursor;
103  do
104  {
105  // (, line 38
106  if (!(out_grouping(g_v, 97, 252)))
107  {
108  goto lab4_brk;
109  }
110  // gopast, line 38
111  while (true)
112  {
113  do
114  {
115  if (!(in_grouping(g_v, 97, 252)))
116  {
117  goto lab6_brk;
118  }
119  goto golab5_brk;
120  }
121  while (false);
122 
123 lab6_brk: ;
124 
125  if (cursor >= limit)
126  {
127  goto lab4_brk;
128  }
129  cursor++;
130  }
131 
132 golab5_brk: ;
133 
134  goto lab3_brk;
135  }
136  while (false);
137 
138 lab4_brk: ;
139 
140  cursor = v_3;
141  // (, line 38
142  if (!(in_grouping(g_v, 97, 252)))
143  {
144  goto lab2_brk;
145  }
146  // gopast, line 38
147  while (true)
148  {
149  do
150  {
151  if (!(out_grouping(g_v, 97, 252)))
152  {
153  goto lab8_brk;
154  }
155  goto golab7_brk;
156  }
157  while (false);
158 
159 lab8_brk: ;
160 
161  if (cursor >= limit)
162  {
163  goto lab2_brk;
164  }
165  cursor++;
166  }
167 
168 golab7_brk: ;
169 
170  }
171  while (false);
172 
173 lab3_brk: ;
174 
175  goto lab1_brk;
176  }
177  while (false);
178 
179 lab2_brk: ;
180 
181  cursor = v_2;
182  // (, line 40
183  if (!(out_grouping(g_v, 97, 252)))
184  {
185  goto lab0_brk;
186  }
187  // or, line 40
188  do
189  {
190  v_6 = cursor;
191  do
192  {
193  // (, line 40
194  if (!(out_grouping(g_v, 97, 252)))
195  {
196  goto lab10_brk;
197  }
198  // gopast, line 40
199  while (true)
200  {
201  do
202  {
203  if (!(in_grouping(g_v, 97, 252)))
204  {
205  goto lab12_brk;
206  }
207  goto golab11_brk;
208  }
209  while (false);
210 
211 lab12_brk: ;
212 
213  if (cursor >= limit)
214  {
215  goto lab10_brk;
216  }
217  cursor++;
218  }
219 
220 golab11_brk: ;
221 
222  goto lab9_brk;
223  }
224  while (false);
225 
226 lab10_brk: ;
227 
228  cursor = v_6;
229  // (, line 40
230  if (!(in_grouping(g_v, 97, 252)))
231  {
232  goto lab0_brk;
233  }
234  // next, line 40
235  if (cursor >= limit)
236  {
237  goto lab0_brk;
238  }
239  cursor++;
240  }
241  while (false);
242 
243 lab9_brk: ;
244 
245  }
246  while (false);
247 
248 lab1_brk: ;
249 
250  // setmark pV, line 41
251  I_pV = cursor;
252  }
253  while (false);
254 
255 lab0_brk: ;
256 
257  cursor = v_1;
258  // do, line 43
259  v_8 = cursor;
260  do
261  {
262  // (, line 43
263  // gopast, line 44
264  while (true)
265  {
266  do
267  {
268  if (!(in_grouping(g_v, 97, 252)))
269  {
270  goto lab15_brk;
271  }
272  goto golab14_brk;
273  }
274  while (false);
275 
276 lab15_brk: ;
277 
278  if (cursor >= limit)
279  {
280  goto lab13_brk;
281  }
282  cursor++;
283  }
284 
285 golab14_brk: ;
286 
287  // gopast, line 44
288  while (true)
289  {
290  do
291  {
292  if (!(out_grouping(g_v, 97, 252)))
293  {
294  goto lab17_brk;
295  }
296  goto golab16_brk;
297  }
298  while (false);
299 
300 lab17_brk: ;
301 
302  if (cursor >= limit)
303  {
304  goto lab13_brk;
305  }
306  cursor++;
307  }
308 
309 golab16_brk: ;
310 
311  // setmark p1, line 44
312  I_p1 = cursor;
313  // gopast, line 45
314  while (true)
315  {
316  do
317  {
318  if (!(in_grouping(g_v, 97, 252)))
319  {
320  goto lab19_brk;
321  }
322  goto golab18_brk;
323  }
324  while (false);
325 
326 lab19_brk: ;
327 
328  if (cursor >= limit)
329  {
330  goto lab13_brk;
331  }
332  cursor++;
333  }
334 
335 golab18_brk: ;
336 
337  // gopast, line 45
338  while (true)
339  {
340  do
341  {
342  if (!(out_grouping(g_v, 97, 252)))
343  {
344  goto lab21_brk;
345  }
346  goto golab20_brk;
347  }
348  while (false);
349 
350 lab21_brk: ;
351 
352  if (cursor >= limit)
353  {
354  goto lab13_brk;
355  }
356  cursor++;
357  }
358 
359 golab20_brk: ;
360 
361  // setmark p2, line 45
362  I_p2 = cursor;
363  }
364  while (false);
365 
366 lab13_brk: ;
367 
368  cursor = v_8;
369  return true;
370  }
371 
372  private bool r_postlude()
373  {
374  int among_var;
375  int v_1;
376  // repeat, line 49
377  while (true)
378  {
379  v_1 = cursor;
380  do
381  {
382  // (, line 49
383  // [, line 50
384  bra = cursor;
385  // substring, line 50
386  among_var = find_among(a_0, 6);
387  if (among_var == 0)
388  {
389  goto lab5_brk;
390  }
391  // ], line 50
392  ket = cursor;
393  switch (among_var)
394  {
395 
396  case 0:
397  goto lab5_brk;
398 
399  case 1:
400  // (, line 51
401  // <-, line 51
402  slice_from("a");
403  break;
404 
405  case 2:
406  // (, line 52
407  // <-, line 52
408  slice_from("e");
409  break;
410 
411  case 3:
412  // (, line 53
413  // <-, line 53
414  slice_from("i");
415  break;
416 
417  case 4:
418  // (, line 54
419  // <-, line 54
420  slice_from("o");
421  break;
422 
423  case 5:
424  // (, line 55
425  // <-, line 55
426  slice_from("u");
427  break;
428 
429  case 6:
430  // (, line 57
431  // next, line 57
432  if (cursor >= limit)
433  {
434  goto lab5_brk;
435  }
436  cursor++;
437  break;
438  }
439  goto replab0;
440  }
441  while (false);
442 
443 lab5_brk: ;
444 
445  cursor = v_1;
446  goto replab0_brk;
447 
448 replab0: ;
449  }
450 
451 replab0_brk: ;
452 
453  return true;
454  }
455 
456  private bool r_RV()
457  {
458  if (!(I_pV <= cursor))
459  {
460  return false;
461  }
462  return true;
463  }
464 
465  private bool r_R1()
466  {
467  if (!(I_p1 <= cursor))
468  {
469  return false;
470  }
471  return true;
472  }
473 
474  private bool r_R2()
475  {
476  if (!(I_p2 <= cursor))
477  {
478  return false;
479  }
480  return true;
481  }
482 
483  private bool r_attached_pronoun()
484  {
485  int among_var;
486  // (, line 67
487  // [, line 68
488  ket = cursor;
489  // substring, line 68
490  if (find_among_b(a_1, 13) == 0)
491  {
492  return false;
493  }
494  // ], line 68
495  bra = cursor;
496  // substring, line 72
497  among_var = find_among_b(a_2, 11);
498  if (among_var == 0)
499  {
500  return false;
501  }
502  // call RV, line 72
503  if (!r_RV())
504  {
505  return false;
506  }
507  switch (among_var)
508  {
509 
510  case 0:
511  return false;
512 
513  case 1:
514  // (, line 73
515  // ], line 73
516  bra = cursor;
517  // <-, line 73
518  slice_from("iendo");
519  break;
520 
521  case 2:
522  // (, line 74
523  // ], line 74
524  bra = cursor;
525  // <-, line 74
526  slice_from("ando");
527  break;
528 
529  case 3:
530  // (, line 75
531  // ], line 75
532  bra = cursor;
533  // <-, line 75
534  slice_from("ar");
535  break;
536 
537  case 4:
538  // (, line 76
539  // ], line 76
540  bra = cursor;
541  // <-, line 76
542  slice_from("er");
543  break;
544 
545  case 5:
546  // (, line 77
547  // ], line 77
548  bra = cursor;
549  // <-, line 77
550  slice_from("ir");
551  break;
552 
553  case 6:
554  // (, line 81
555  // delete, line 81
556  slice_del();
557  break;
558 
559  case 7:
560  // (, line 82
561  // literal, line 82
562  if (!(eq_s_b(1, "u")))
563  {
564  return false;
565  }
566  // delete, line 82
567  slice_del();
568  break;
569  }
570  return true;
571  }
572 
573  private bool r_standard_suffix()
574  {
575  int among_var;
576  int v_1;
577  int v_2;
578  int v_3;
579  int v_4;
580  int v_5;
581  // (, line 86
582  // [, line 87
583  ket = cursor;
584  // substring, line 87
585  among_var = find_among_b(a_6, 42);
586  if (among_var == 0)
587  {
588  return false;
589  }
590  // ], line 87
591  bra = cursor;
592  switch (among_var)
593  {
594 
595  case 0:
596  return false;
597 
598  case 1:
599  // (, line 98
600  // call R2, line 99
601  if (!r_R2())
602  {
603  return false;
604  }
605  // delete, line 99
606  slice_del();
607  break;
608 
609  case 2:
610  // (, line 103
611  // call R2, line 104
612  if (!r_R2())
613  {
614  return false;
615  }
616  // delete, line 104
617  slice_del();
618  // try, line 105
619  v_1 = limit - cursor;
620  do
621  {
622  // (, line 105
623  // [, line 105
624  ket = cursor;
625  // literal, line 105
626  if (!(eq_s_b(2, "ic")))
627  {
628  cursor = limit - v_1;
629  goto lab0_brk;
630  }
631  // ], line 105
632  bra = cursor;
633  // call R2, line 105
634  if (!r_R2())
635  {
636  cursor = limit - v_1;
637  goto lab0_brk;
638  }
639  // delete, line 105
640  slice_del();
641  }
642  while (false);
643 
644 lab0_brk: ;
645 
646  break;
647 
648  case 3:
649  // (, line 109
650  // call R2, line 110
651  if (!r_R2())
652  {
653  return false;
654  }
655  // <-, line 110
656  slice_from("log");
657  break;
658 
659  case 4:
660  // (, line 113
661  // call R2, line 114
662  if (!r_R2())
663  {
664  return false;
665  }
666  // <-, line 114
667  slice_from("u");
668  break;
669 
670  case 5:
671  // (, line 117
672  // call R2, line 118
673  if (!r_R2())
674  {
675  return false;
676  }
677  // <-, line 118
678  slice_from("ente");
679  break;
680 
681  case 6:
682  // (, line 121
683  // call R1, line 122
684  if (!r_R1())
685  {
686  return false;
687  }
688  // delete, line 122
689  slice_del();
690  // try, line 123
691  v_2 = limit - cursor;
692  do
693  {
694  // (, line 123
695  // [, line 124
696  ket = cursor;
697  // substring, line 124
698  among_var = find_among_b(a_3, 4);
699  if (among_var == 0)
700  {
701  cursor = limit - v_2;
702  goto lab1_brk;
703  }
704  // ], line 124
705  bra = cursor;
706  // call R2, line 124
707  if (!r_R2())
708  {
709  cursor = limit - v_2;
710  goto lab1_brk;
711  }
712  // delete, line 124
713  slice_del();
714  switch (among_var)
715  {
716 
717  case 0:
718  cursor = limit - v_2;
719  goto lab1_brk;
720 
721  case 1:
722  // (, line 125
723  // [, line 125
724  ket = cursor;
725  // literal, line 125
726  if (!(eq_s_b(2, "at")))
727  {
728  cursor = limit - v_2;
729  goto lab1_brk;
730  }
731  // ], line 125
732  bra = cursor;
733  // call R2, line 125
734  if (!r_R2())
735  {
736  cursor = limit - v_2;
737  goto lab1_brk;
738  }
739  // delete, line 125
740  slice_del();
741  break;
742  }
743  }
744  while (false);
745 
746 lab1_brk: ;
747 
748  break;
749 
750  case 7:
751  // (, line 133
752  // call R2, line 134
753  if (!r_R2())
754  {
755  return false;
756  }
757  // delete, line 134
758  slice_del();
759  // try, line 135
760  v_3 = limit - cursor;
761  do
762  {
763  // (, line 135
764  // [, line 136
765  ket = cursor;
766  // substring, line 136
767  among_var = find_among_b(a_4, 2);
768  if (among_var == 0)
769  {
770  cursor = limit - v_3;
771  goto lab2_brk;
772  }
773  // ], line 136
774  bra = cursor;
775  switch (among_var)
776  {
777 
778  case 0:
779  cursor = limit - v_3;
780  goto lab2_brk;
781 
782  case 1:
783  // (, line 138
784  // call R2, line 138
785  if (!r_R2())
786  {
787  cursor = limit - v_3;
788  goto lab2_brk;
789  }
790  // delete, line 138
791  slice_del();
792  break;
793  }
794  }
795  while (false);
796 
797 lab2_brk: ;
798 
799  break;
800 
801  case 8:
802  // (, line 144
803  // call R2, line 145
804  if (!r_R2())
805  {
806  return false;
807  }
808  // delete, line 145
809  slice_del();
810  // try, line 146
811  v_4 = limit - cursor;
812  do
813  {
814  // (, line 146
815  // [, line 147
816  ket = cursor;
817  // substring, line 147
818  among_var = find_among_b(a_5, 3);
819  if (among_var == 0)
820  {
821  cursor = limit - v_4;
822  goto lab3_brk;
823  }
824  // ], line 147
825  bra = cursor;
826  switch (among_var)
827  {
828 
829  case 0:
830  cursor = limit - v_4;
831  goto lab3_brk;
832 
833  case 1:
834  // (, line 150
835  // call R2, line 150
836  if (!r_R2())
837  {
838  cursor = limit - v_4;
839  goto lab3_brk;
840  }
841  // delete, line 150
842  slice_del();
843  break;
844  }
845  }
846  while (false);
847 
848 lab3_brk: ;
849 
850  break;
851 
852  case 9:
853  // (, line 156
854  // call R2, line 157
855  if (!r_R2())
856  {
857  return false;
858  }
859  // delete, line 157
860  slice_del();
861  // try, line 158
862  v_5 = limit - cursor;
863  do
864  {
865  // (, line 158
866  // [, line 159
867  ket = cursor;
868  // literal, line 159
869  if (!(eq_s_b(2, "at")))
870  {
871  cursor = limit - v_5;
872  goto lab4_brk;
873  }
874  // ], line 159
875  bra = cursor;
876  // call R2, line 159
877  if (!r_R2())
878  {
879  cursor = limit - v_5;
880  goto lab4_brk;
881  }
882  // delete, line 159
883  slice_del();
884  }
885  while (false);
886 
887 lab4_brk: ;
888 
889  break;
890  }
891  return true;
892  }
893 
894  private bool r_y_verb_suffix()
895  {
896  int among_var;
897  int v_1;
898  int v_2;
899  // (, line 165
900  // setlimit, line 166
901  v_1 = limit - cursor;
902  // tomark, line 166
903  if (cursor < I_pV)
904  {
905  return false;
906  }
907  cursor = I_pV;
908  v_2 = limit_backward;
909  limit_backward = cursor;
910  cursor = limit - v_1;
911  // (, line 166
912  // [, line 166
913  ket = cursor;
914  // substring, line 166
915  among_var = find_among_b(a_7, 12);
916  if (among_var == 0)
917  {
918  limit_backward = v_2;
919  return false;
920  }
921  // ], line 166
922  bra = cursor;
923  limit_backward = v_2;
924  switch (among_var)
925  {
926 
927  case 0:
928  return false;
929 
930  case 1:
931  // (, line 169
932  // literal, line 169
933  if (!(eq_s_b(1, "u")))
934  {
935  return false;
936  }
937  // delete, line 169
938  slice_del();
939  break;
940  }
941  return true;
942  }
943 
944  private bool r_verb_suffix()
945  {
946  int among_var;
947  int v_1;
948  int v_2;
949  int v_3;
950  int v_4;
951  // (, line 173
952  // setlimit, line 174
953  v_1 = limit - cursor;
954  // tomark, line 174
955  if (cursor < I_pV)
956  {
957  return false;
958  }
959  cursor = I_pV;
960  v_2 = limit_backward;
961  limit_backward = cursor;
962  cursor = limit - v_1;
963  // (, line 174
964  // [, line 174
965  ket = cursor;
966  // substring, line 174
967  among_var = find_among_b(a_8, 96);
968  if (among_var == 0)
969  {
970  limit_backward = v_2;
971  return false;
972  }
973  // ], line 174
974  bra = cursor;
975  limit_backward = v_2;
976  switch (among_var)
977  {
978 
979  case 0:
980  return false;
981 
982  case 1:
983  // (, line 177
984  // try, line 177
985  v_3 = limit - cursor;
986  do
987  {
988  // (, line 177
989  // literal, line 177
990  if (!(eq_s_b(1, "u")))
991  {
992  cursor = limit - v_3;
993  goto lab5_brk;
994  }
995  // test, line 177
996  v_4 = limit - cursor;
997  // literal, line 177
998  if (!(eq_s_b(1, "g")))
999  {
1000  cursor = limit - v_3;
1001  goto lab5_brk;
1002  }
1003  cursor = limit - v_4;
1004  }
1005  while (false);
1006 
1007 lab5_brk: ;
1008 
1009  // ], line 177
1010  bra = cursor;
1011  // delete, line 177
1012  slice_del();
1013  break;
1014 
1015  case 2:
1016  // (, line 198
1017  // delete, line 198
1018  slice_del();
1019  break;
1020  }
1021  return true;
1022  }
1023 
1024  private bool r_residual_suffix()
1025  {
1026  int among_var;
1027  int v_1;
1028  int v_2;
1029  // (, line 202
1030  // [, line 203
1031  ket = cursor;
1032  // substring, line 203
1033  among_var = find_among_b(a_9, 8);
1034  if (among_var == 0)
1035  {
1036  return false;
1037  }
1038  // ], line 203
1039  bra = cursor;
1040  switch (among_var)
1041  {
1042 
1043  case 0:
1044  return false;
1045 
1046  case 1:
1047  // (, line 206
1048  // call RV, line 206
1049  if (!r_RV())
1050  {
1051  return false;
1052  }
1053  // delete, line 206
1054  slice_del();
1055  break;
1056 
1057  case 2:
1058  // (, line 208
1059  // call RV, line 208
1060  if (!r_RV())
1061  {
1062  return false;
1063  }
1064  // delete, line 208
1065  slice_del();
1066  // try, line 208
1067  v_1 = limit - cursor;
1068  do
1069  {
1070  // (, line 208
1071  // [, line 208
1072  ket = cursor;
1073  // literal, line 208
1074  if (!(eq_s_b(1, "u")))
1075  {
1076  cursor = limit - v_1;
1077  goto lab5_brk;
1078  }
1079  // ], line 208
1080  bra = cursor;
1081  // test, line 208
1082  v_2 = limit - cursor;
1083  // literal, line 208
1084  if (!(eq_s_b(1, "g")))
1085  {
1086  cursor = limit - v_1;
1087  goto lab5_brk;
1088  }
1089  cursor = limit - v_2;
1090  // call RV, line 208
1091  if (!r_RV())
1092  {
1093  cursor = limit - v_1;
1094  goto lab5_brk;
1095  }
1096  // delete, line 208
1097  slice_del();
1098  }
1099  while (false);
1100 
1101 lab5_brk: ;
1102 
1103  break;
1104  }
1105  return true;
1106  }
1107 
1108  public override bool Stem()
1109  {
1110  int v_1;
1111  int v_2;
1112  int v_3;
1113  int v_4;
1114  int v_5;
1115  int v_6;
1116  // (, line 213
1117  // do, line 214
1118  v_1 = cursor;
1119  do
1120  {
1121  // call mark_regions, line 214
1122  if (!r_mark_regions())
1123  {
1124  goto lab0_brk;
1125  }
1126  }
1127  while (false);
1128 
1129 lab0_brk: ;
1130 
1131  cursor = v_1;
1132  // backwards, line 215
1133  limit_backward = cursor; cursor = limit;
1134  // (, line 215
1135  // do, line 216
1136  v_2 = limit - cursor;
1137  do
1138  {
1139  // call attached_pronoun, line 216
1140  if (!r_attached_pronoun())
1141  {
1142  goto lab1_brk;
1143  }
1144  }
1145  while (false);
1146 
1147 lab1_brk: ;
1148 
1149  cursor = limit - v_2;
1150  // do, line 217
1151  v_3 = limit - cursor;
1152  do
1153  {
1154  // (, line 217
1155  // or, line 217
1156  do
1157  {
1158  v_4 = limit - cursor;
1159  do
1160  {
1161  // call standard_suffix, line 217
1162  if (!r_standard_suffix())
1163  {
1164  goto lab4_brk;
1165  }
1166  goto lab3_brk;
1167  }
1168  while (false);
1169 
1170 lab4_brk: ;
1171 
1172  cursor = limit - v_4;
1173  do
1174  {
1175  // call y_verb_suffix, line 218
1176  if (!r_y_verb_suffix())
1177  {
1178  goto lab5_brk;
1179  }
1180  goto lab3_brk;
1181  }
1182  while (false);
1183 
1184 lab5_brk: ;
1185 
1186  cursor = limit - v_4;
1187  // call verb_suffix, line 219
1188  if (!r_verb_suffix())
1189  {
1190  goto lab2_brk;
1191  }
1192  }
1193  while (false);
1194 
1195 lab3_brk: ;
1196 
1197  }
1198  while (false);
1199 
1200 lab2_brk: ;
1201 
1202  cursor = limit - v_3;
1203  // do, line 221
1204  v_5 = limit - cursor;
1205  do
1206  {
1207  // call residual_suffix, line 221
1208  if (!r_residual_suffix())
1209  {
1210  goto lab6_brk;
1211  }
1212  }
1213  while (false);
1214 
1215 lab6_brk: ;
1216 
1217  cursor = limit - v_5;
1218  cursor = limit_backward; // do, line 223
1219  v_6 = cursor;
1220  do
1221  {
1222  // call postlude, line 223
1223  if (!r_postlude())
1224  {
1225  goto lab7_brk;
1226  }
1227  }
1228  while (false);
1229 
1230 lab7_brk: ;
1231 
1232  cursor = v_6;
1233  return true;
1234  }
1235  }
1236 }