~slub.team/goobi-indexserver/3.x

« back to all changes in this revision

Viewing changes to lucene/contrib/analyzers/common/src/java/org/tartarus/snowball/ext/RussianStemmer.java

  • Committer: Sebastian Meyer
  • Date: 2012-08-03 09:12:40 UTC
  • Revision ID: sebastian.meyer@slub-dresden.de-20120803091240-x6861b0vabq1xror
Remove Lucene and Solr source code and add patches instead
Fix Bug #985487: Auto-suggestion for the search interface

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// This file was generated automatically by the Snowball to Java compiler
2
 
 
3
 
package org.tartarus.snowball.ext;
4
 
import org.tartarus.snowball.SnowballProgram;
5
 
import org.tartarus.snowball.Among;
6
 
 
7
 
/**
8
 
 * Generated class implementing code defined by a snowball script.
9
 
 */
10
 
public class RussianStemmer extends SnowballProgram {
11
 
 
12
 
        private Among a_0[] = {
13
 
            new Among ( "\u0432", -1, 1, "", this),
14
 
            new Among ( "\u0438\u0432", 0, 2, "", this),
15
 
            new Among ( "\u044B\u0432", 0, 2, "", this),
16
 
            new Among ( "\u0432\u0448\u0438", -1, 1, "", this),
17
 
            new Among ( "\u0438\u0432\u0448\u0438", 3, 2, "", this),
18
 
            new Among ( "\u044B\u0432\u0448\u0438", 3, 2, "", this),
19
 
            new Among ( "\u0432\u0448\u0438\u0441\u044C", -1, 1, "", this),
20
 
            new Among ( "\u0438\u0432\u0448\u0438\u0441\u044C", 6, 2, "", this),
21
 
            new Among ( "\u044B\u0432\u0448\u0438\u0441\u044C", 6, 2, "", this)
22
 
        };
23
 
 
24
 
        private Among a_1[] = {
25
 
            new Among ( "\u0435\u0435", -1, 1, "", this),
26
 
            new Among ( "\u0438\u0435", -1, 1, "", this),
27
 
            new Among ( "\u043E\u0435", -1, 1, "", this),
28
 
            new Among ( "\u044B\u0435", -1, 1, "", this),
29
 
            new Among ( "\u0438\u043C\u0438", -1, 1, "", this),
30
 
            new Among ( "\u044B\u043C\u0438", -1, 1, "", this),
31
 
            new Among ( "\u0435\u0439", -1, 1, "", this),
32
 
            new Among ( "\u0438\u0439", -1, 1, "", this),
33
 
            new Among ( "\u043E\u0439", -1, 1, "", this),
34
 
            new Among ( "\u044B\u0439", -1, 1, "", this),
35
 
            new Among ( "\u0435\u043C", -1, 1, "", this),
36
 
            new Among ( "\u0438\u043C", -1, 1, "", this),
37
 
            new Among ( "\u043E\u043C", -1, 1, "", this),
38
 
            new Among ( "\u044B\u043C", -1, 1, "", this),
39
 
            new Among ( "\u0435\u0433\u043E", -1, 1, "", this),
40
 
            new Among ( "\u043E\u0433\u043E", -1, 1, "", this),
41
 
            new Among ( "\u0435\u043C\u0443", -1, 1, "", this),
42
 
            new Among ( "\u043E\u043C\u0443", -1, 1, "", this),
43
 
            new Among ( "\u0438\u0445", -1, 1, "", this),
44
 
            new Among ( "\u044B\u0445", -1, 1, "", this),
45
 
            new Among ( "\u0435\u044E", -1, 1, "", this),
46
 
            new Among ( "\u043E\u044E", -1, 1, "", this),
47
 
            new Among ( "\u0443\u044E", -1, 1, "", this),
48
 
            new Among ( "\u044E\u044E", -1, 1, "", this),
49
 
            new Among ( "\u0430\u044F", -1, 1, "", this),
50
 
            new Among ( "\u044F\u044F", -1, 1, "", this)
51
 
        };
52
 
 
53
 
        private Among a_2[] = {
54
 
            new Among ( "\u0435\u043C", -1, 1, "", this),
55
 
            new Among ( "\u043D\u043D", -1, 1, "", this),
56
 
            new Among ( "\u0432\u0448", -1, 1, "", this),
57
 
            new Among ( "\u0438\u0432\u0448", 2, 2, "", this),
58
 
            new Among ( "\u044B\u0432\u0448", 2, 2, "", this),
59
 
            new Among ( "\u0449", -1, 1, "", this),
60
 
            new Among ( "\u044E\u0449", 5, 1, "", this),
61
 
            new Among ( "\u0443\u044E\u0449", 6, 2, "", this)
62
 
        };
63
 
 
64
 
        private Among a_3[] = {
65
 
            new Among ( "\u0441\u044C", -1, 1, "", this),
66
 
            new Among ( "\u0441\u044F", -1, 1, "", this)
67
 
        };
68
 
 
69
 
        private Among a_4[] = {
70
 
            new Among ( "\u043B\u0430", -1, 1, "", this),
71
 
            new Among ( "\u0438\u043B\u0430", 0, 2, "", this),
72
 
            new Among ( "\u044B\u043B\u0430", 0, 2, "", this),
73
 
            new Among ( "\u043D\u0430", -1, 1, "", this),
74
 
            new Among ( "\u0435\u043D\u0430", 3, 2, "", this),
75
 
            new Among ( "\u0435\u0442\u0435", -1, 1, "", this),
76
 
            new Among ( "\u0438\u0442\u0435", -1, 2, "", this),
77
 
            new Among ( "\u0439\u0442\u0435", -1, 1, "", this),
78
 
            new Among ( "\u0435\u0439\u0442\u0435", 7, 2, "", this),
79
 
            new Among ( "\u0443\u0439\u0442\u0435", 7, 2, "", this),
80
 
            new Among ( "\u043B\u0438", -1, 1, "", this),
81
 
            new Among ( "\u0438\u043B\u0438", 10, 2, "", this),
82
 
            new Among ( "\u044B\u043B\u0438", 10, 2, "", this),
83
 
            new Among ( "\u0439", -1, 1, "", this),
84
 
            new Among ( "\u0435\u0439", 13, 2, "", this),
85
 
            new Among ( "\u0443\u0439", 13, 2, "", this),
86
 
            new Among ( "\u043B", -1, 1, "", this),
87
 
            new Among ( "\u0438\u043B", 16, 2, "", this),
88
 
            new Among ( "\u044B\u043B", 16, 2, "", this),
89
 
            new Among ( "\u0435\u043C", -1, 1, "", this),
90
 
            new Among ( "\u0438\u043C", -1, 2, "", this),
91
 
            new Among ( "\u044B\u043C", -1, 2, "", this),
92
 
            new Among ( "\u043D", -1, 1, "", this),
93
 
            new Among ( "\u0435\u043D", 22, 2, "", this),
94
 
            new Among ( "\u043B\u043E", -1, 1, "", this),
95
 
            new Among ( "\u0438\u043B\u043E", 24, 2, "", this),
96
 
            new Among ( "\u044B\u043B\u043E", 24, 2, "", this),
97
 
            new Among ( "\u043D\u043E", -1, 1, "", this),
98
 
            new Among ( "\u0435\u043D\u043E", 27, 2, "", this),
99
 
            new Among ( "\u043D\u043D\u043E", 27, 1, "", this),
100
 
            new Among ( "\u0435\u0442", -1, 1, "", this),
101
 
            new Among ( "\u0443\u0435\u0442", 30, 2, "", this),
102
 
            new Among ( "\u0438\u0442", -1, 2, "", this),
103
 
            new Among ( "\u044B\u0442", -1, 2, "", this),
104
 
            new Among ( "\u044E\u0442", -1, 1, "", this),
105
 
            new Among ( "\u0443\u044E\u0442", 34, 2, "", this),
106
 
            new Among ( "\u044F\u0442", -1, 2, "", this),
107
 
            new Among ( "\u043D\u044B", -1, 1, "", this),
108
 
            new Among ( "\u0435\u043D\u044B", 37, 2, "", this),
109
 
            new Among ( "\u0442\u044C", -1, 1, "", this),
110
 
            new Among ( "\u0438\u0442\u044C", 39, 2, "", this),
111
 
            new Among ( "\u044B\u0442\u044C", 39, 2, "", this),
112
 
            new Among ( "\u0435\u0448\u044C", -1, 1, "", this),
113
 
            new Among ( "\u0438\u0448\u044C", -1, 2, "", this),
114
 
            new Among ( "\u044E", -1, 2, "", this),
115
 
            new Among ( "\u0443\u044E", 44, 2, "", this)
116
 
        };
117
 
 
118
 
        private Among a_5[] = {
119
 
            new Among ( "\u0430", -1, 1, "", this),
120
 
            new Among ( "\u0435\u0432", -1, 1, "", this),
121
 
            new Among ( "\u043E\u0432", -1, 1, "", this),
122
 
            new Among ( "\u0435", -1, 1, "", this),
123
 
            new Among ( "\u0438\u0435", 3, 1, "", this),
124
 
            new Among ( "\u044C\u0435", 3, 1, "", this),
125
 
            new Among ( "\u0438", -1, 1, "", this),
126
 
            new Among ( "\u0435\u0438", 6, 1, "", this),
127
 
            new Among ( "\u0438\u0438", 6, 1, "", this),
128
 
            new Among ( "\u0430\u043C\u0438", 6, 1, "", this),
129
 
            new Among ( "\u044F\u043C\u0438", 6, 1, "", this),
130
 
            new Among ( "\u0438\u044F\u043C\u0438", 10, 1, "", this),
131
 
            new Among ( "\u0439", -1, 1, "", this),
132
 
            new Among ( "\u0435\u0439", 12, 1, "", this),
133
 
            new Among ( "\u0438\u0435\u0439", 13, 1, "", this),
134
 
            new Among ( "\u0438\u0439", 12, 1, "", this),
135
 
            new Among ( "\u043E\u0439", 12, 1, "", this),
136
 
            new Among ( "\u0430\u043C", -1, 1, "", this),
137
 
            new Among ( "\u0435\u043C", -1, 1, "", this),
138
 
            new Among ( "\u0438\u0435\u043C", 18, 1, "", this),
139
 
            new Among ( "\u043E\u043C", -1, 1, "", this),
140
 
            new Among ( "\u044F\u043C", -1, 1, "", this),
141
 
            new Among ( "\u0438\u044F\u043C", 21, 1, "", this),
142
 
            new Among ( "\u043E", -1, 1, "", this),
143
 
            new Among ( "\u0443", -1, 1, "", this),
144
 
            new Among ( "\u0430\u0445", -1, 1, "", this),
145
 
            new Among ( "\u044F\u0445", -1, 1, "", this),
146
 
            new Among ( "\u0438\u044F\u0445", 26, 1, "", this),
147
 
            new Among ( "\u044B", -1, 1, "", this),
148
 
            new Among ( "\u044C", -1, 1, "", this),
149
 
            new Among ( "\u044E", -1, 1, "", this),
150
 
            new Among ( "\u0438\u044E", 30, 1, "", this),
151
 
            new Among ( "\u044C\u044E", 30, 1, "", this),
152
 
            new Among ( "\u044F", -1, 1, "", this),
153
 
            new Among ( "\u0438\u044F", 33, 1, "", this),
154
 
            new Among ( "\u044C\u044F", 33, 1, "", this)
155
 
        };
156
 
 
157
 
        private Among a_6[] = {
158
 
            new Among ( "\u043E\u0441\u0442", -1, 1, "", this),
159
 
            new Among ( "\u043E\u0441\u0442\u044C", -1, 1, "", this)
160
 
        };
161
 
 
162
 
        private Among a_7[] = {
163
 
            new Among ( "\u0435\u0439\u0448\u0435", -1, 1, "", this),
164
 
            new Among ( "\u043D", -1, 2, "", this),
165
 
            new Among ( "\u0435\u0439\u0448", -1, 1, "", this),
166
 
            new Among ( "\u044C", -1, 3, "", this)
167
 
        };
168
 
 
169
 
        private static final char g_v[] = {33, 65, 8, 232 };
170
 
 
171
 
        private int I_p2;
172
 
        private int I_pV;
173
 
 
174
 
        private void copy_from(RussianStemmer other) {
175
 
            I_p2 = other.I_p2;
176
 
            I_pV = other.I_pV;
177
 
            super.copy_from(other);
178
 
        }
179
 
 
180
 
        private boolean r_mark_regions() {
181
 
            int v_1;
182
 
            // (, line 57
183
 
            I_pV = limit;
184
 
            I_p2 = limit;
185
 
            // do, line 61
186
 
            v_1 = cursor;
187
 
            lab0: do {
188
 
                // (, line 61
189
 
                // gopast, line 62
190
 
                golab1: while(true)
191
 
                {
192
 
                    lab2: do {
193
 
                        if (!(in_grouping(g_v, 1072, 1103)))
194
 
                        {
195
 
                            break lab2;
196
 
                        }
197
 
                        break golab1;
198
 
                    } while (false);
199
 
                    if (cursor >= limit)
200
 
                    {
201
 
                        break lab0;
202
 
                    }
203
 
                    cursor++;
204
 
                }
205
 
                // setmark pV, line 62
206
 
                I_pV = cursor;
207
 
                // gopast, line 62
208
 
                golab3: while(true)
209
 
                {
210
 
                    lab4: do {
211
 
                        if (!(out_grouping(g_v, 1072, 1103)))
212
 
                        {
213
 
                            break lab4;
214
 
                        }
215
 
                        break golab3;
216
 
                    } while (false);
217
 
                    if (cursor >= limit)
218
 
                    {
219
 
                        break lab0;
220
 
                    }
221
 
                    cursor++;
222
 
                }
223
 
                // gopast, line 63
224
 
                golab5: while(true)
225
 
                {
226
 
                    lab6: do {
227
 
                        if (!(in_grouping(g_v, 1072, 1103)))
228
 
                        {
229
 
                            break lab6;
230
 
                        }
231
 
                        break golab5;
232
 
                    } while (false);
233
 
                    if (cursor >= limit)
234
 
                    {
235
 
                        break lab0;
236
 
                    }
237
 
                    cursor++;
238
 
                }
239
 
                // gopast, line 63
240
 
                golab7: while(true)
241
 
                {
242
 
                    lab8: do {
243
 
                        if (!(out_grouping(g_v, 1072, 1103)))
244
 
                        {
245
 
                            break lab8;
246
 
                        }
247
 
                        break golab7;
248
 
                    } while (false);
249
 
                    if (cursor >= limit)
250
 
                    {
251
 
                        break lab0;
252
 
                    }
253
 
                    cursor++;
254
 
                }
255
 
                // setmark p2, line 63
256
 
                I_p2 = cursor;
257
 
            } while (false);
258
 
            cursor = v_1;
259
 
            return true;
260
 
        }
261
 
 
262
 
        private boolean r_R2() {
263
 
            if (!(I_p2 <= cursor))
264
 
            {
265
 
                return false;
266
 
            }
267
 
            return true;
268
 
        }
269
 
 
270
 
        private boolean r_perfective_gerund() {
271
 
            int among_var;
272
 
            int v_1;
273
 
            // (, line 71
274
 
            // [, line 72
275
 
            ket = cursor;
276
 
            // substring, line 72
277
 
            among_var = find_among_b(a_0, 9);
278
 
            if (among_var == 0)
279
 
            {
280
 
                return false;
281
 
            }
282
 
            // ], line 72
283
 
            bra = cursor;
284
 
            switch(among_var) {
285
 
                case 0:
286
 
                    return false;
287
 
                case 1:
288
 
                    // (, line 76
289
 
                    // or, line 76
290
 
                    lab0: do {
291
 
                        v_1 = limit - cursor;
292
 
                        lab1: do {
293
 
                            // literal, line 76
294
 
                            if (!(eq_s_b(1, "\u0430")))
295
 
                            {
296
 
                                break lab1;
297
 
                            }
298
 
                            break lab0;
299
 
                        } while (false);
300
 
                        cursor = limit - v_1;
301
 
                        // literal, line 76
302
 
                        if (!(eq_s_b(1, "\u044F")))
303
 
                        {
304
 
                            return false;
305
 
                        }
306
 
                    } while (false);
307
 
                    // delete, line 76
308
 
                    slice_del();
309
 
                    break;
310
 
                case 2:
311
 
                    // (, line 83
312
 
                    // delete, line 83
313
 
                    slice_del();
314
 
                    break;
315
 
            }
316
 
            return true;
317
 
        }
318
 
 
319
 
        private boolean r_adjective() {
320
 
            int among_var;
321
 
            // (, line 87
322
 
            // [, line 88
323
 
            ket = cursor;
324
 
            // substring, line 88
325
 
            among_var = find_among_b(a_1, 26);
326
 
            if (among_var == 0)
327
 
            {
328
 
                return false;
329
 
            }
330
 
            // ], line 88
331
 
            bra = cursor;
332
 
            switch(among_var) {
333
 
                case 0:
334
 
                    return false;
335
 
                case 1:
336
 
                    // (, line 97
337
 
                    // delete, line 97
338
 
                    slice_del();
339
 
                    break;
340
 
            }
341
 
            return true;
342
 
        }
343
 
 
344
 
        private boolean r_adjectival() {
345
 
            int among_var;
346
 
            int v_1;
347
 
            int v_2;
348
 
            // (, line 101
349
 
            // call adjective, line 102
350
 
            if (!r_adjective())
351
 
            {
352
 
                return false;
353
 
            }
354
 
            // try, line 109
355
 
            v_1 = limit - cursor;
356
 
            lab0: do {
357
 
                // (, line 109
358
 
                // [, line 110
359
 
                ket = cursor;
360
 
                // substring, line 110
361
 
                among_var = find_among_b(a_2, 8);
362
 
                if (among_var == 0)
363
 
                {
364
 
                    cursor = limit - v_1;
365
 
                    break lab0;
366
 
                }
367
 
                // ], line 110
368
 
                bra = cursor;
369
 
                switch(among_var) {
370
 
                    case 0:
371
 
                        cursor = limit - v_1;
372
 
                        break lab0;
373
 
                    case 1:
374
 
                        // (, line 115
375
 
                        // or, line 115
376
 
                        lab1: do {
377
 
                            v_2 = limit - cursor;
378
 
                            lab2: do {
379
 
                                // literal, line 115
380
 
                                if (!(eq_s_b(1, "\u0430")))
381
 
                                {
382
 
                                    break lab2;
383
 
                                }
384
 
                                break lab1;
385
 
                            } while (false);
386
 
                            cursor = limit - v_2;
387
 
                            // literal, line 115
388
 
                            if (!(eq_s_b(1, "\u044F")))
389
 
                            {
390
 
                                cursor = limit - v_1;
391
 
                                break lab0;
392
 
                            }
393
 
                        } while (false);
394
 
                        // delete, line 115
395
 
                        slice_del();
396
 
                        break;
397
 
                    case 2:
398
 
                        // (, line 122
399
 
                        // delete, line 122
400
 
                        slice_del();
401
 
                        break;
402
 
                }
403
 
            } while (false);
404
 
            return true;
405
 
        }
406
 
 
407
 
        private boolean r_reflexive() {
408
 
            int among_var;
409
 
            // (, line 128
410
 
            // [, line 129
411
 
            ket = cursor;
412
 
            // substring, line 129
413
 
            among_var = find_among_b(a_3, 2);
414
 
            if (among_var == 0)
415
 
            {
416
 
                return false;
417
 
            }
418
 
            // ], line 129
419
 
            bra = cursor;
420
 
            switch(among_var) {
421
 
                case 0:
422
 
                    return false;
423
 
                case 1:
424
 
                    // (, line 132
425
 
                    // delete, line 132
426
 
                    slice_del();
427
 
                    break;
428
 
            }
429
 
            return true;
430
 
        }
431
 
 
432
 
        private boolean r_verb() {
433
 
            int among_var;
434
 
            int v_1;
435
 
            // (, line 136
436
 
            // [, line 137
437
 
            ket = cursor;
438
 
            // substring, line 137
439
 
            among_var = find_among_b(a_4, 46);
440
 
            if (among_var == 0)
441
 
            {
442
 
                return false;
443
 
            }
444
 
            // ], line 137
445
 
            bra = cursor;
446
 
            switch(among_var) {
447
 
                case 0:
448
 
                    return false;
449
 
                case 1:
450
 
                    // (, line 143
451
 
                    // or, line 143
452
 
                    lab0: do {
453
 
                        v_1 = limit - cursor;
454
 
                        lab1: do {
455
 
                            // literal, line 143
456
 
                            if (!(eq_s_b(1, "\u0430")))
457
 
                            {
458
 
                                break lab1;
459
 
                            }
460
 
                            break lab0;
461
 
                        } while (false);
462
 
                        cursor = limit - v_1;
463
 
                        // literal, line 143
464
 
                        if (!(eq_s_b(1, "\u044F")))
465
 
                        {
466
 
                            return false;
467
 
                        }
468
 
                    } while (false);
469
 
                    // delete, line 143
470
 
                    slice_del();
471
 
                    break;
472
 
                case 2:
473
 
                    // (, line 151
474
 
                    // delete, line 151
475
 
                    slice_del();
476
 
                    break;
477
 
            }
478
 
            return true;
479
 
        }
480
 
 
481
 
        private boolean r_noun() {
482
 
            int among_var;
483
 
            // (, line 159
484
 
            // [, line 160
485
 
            ket = cursor;
486
 
            // substring, line 160
487
 
            among_var = find_among_b(a_5, 36);
488
 
            if (among_var == 0)
489
 
            {
490
 
                return false;
491
 
            }
492
 
            // ], line 160
493
 
            bra = cursor;
494
 
            switch(among_var) {
495
 
                case 0:
496
 
                    return false;
497
 
                case 1:
498
 
                    // (, line 167
499
 
                    // delete, line 167
500
 
                    slice_del();
501
 
                    break;
502
 
            }
503
 
            return true;
504
 
        }
505
 
 
506
 
        private boolean r_derivational() {
507
 
            int among_var;
508
 
            // (, line 175
509
 
            // [, line 176
510
 
            ket = cursor;
511
 
            // substring, line 176
512
 
            among_var = find_among_b(a_6, 2);
513
 
            if (among_var == 0)
514
 
            {
515
 
                return false;
516
 
            }
517
 
            // ], line 176
518
 
            bra = cursor;
519
 
            // call R2, line 176
520
 
            if (!r_R2())
521
 
            {
522
 
                return false;
523
 
            }
524
 
            switch(among_var) {
525
 
                case 0:
526
 
                    return false;
527
 
                case 1:
528
 
                    // (, line 179
529
 
                    // delete, line 179
530
 
                    slice_del();
531
 
                    break;
532
 
            }
533
 
            return true;
534
 
        }
535
 
 
536
 
        private boolean r_tidy_up() {
537
 
            int among_var;
538
 
            // (, line 183
539
 
            // [, line 184
540
 
            ket = cursor;
541
 
            // substring, line 184
542
 
            among_var = find_among_b(a_7, 4);
543
 
            if (among_var == 0)
544
 
            {
545
 
                return false;
546
 
            }
547
 
            // ], line 184
548
 
            bra = cursor;
549
 
            switch(among_var) {
550
 
                case 0:
551
 
                    return false;
552
 
                case 1:
553
 
                    // (, line 188
554
 
                    // delete, line 188
555
 
                    slice_del();
556
 
                    // [, line 189
557
 
                    ket = cursor;
558
 
                    // literal, line 189
559
 
                    if (!(eq_s_b(1, "\u043D")))
560
 
                    {
561
 
                        return false;
562
 
                    }
563
 
                    // ], line 189
564
 
                    bra = cursor;
565
 
                    // literal, line 189
566
 
                    if (!(eq_s_b(1, "\u043D")))
567
 
                    {
568
 
                        return false;
569
 
                    }
570
 
                    // delete, line 189
571
 
                    slice_del();
572
 
                    break;
573
 
                case 2:
574
 
                    // (, line 192
575
 
                    // literal, line 192
576
 
                    if (!(eq_s_b(1, "\u043D")))
577
 
                    {
578
 
                        return false;
579
 
                    }
580
 
                    // delete, line 192
581
 
                    slice_del();
582
 
                    break;
583
 
                case 3:
584
 
                    // (, line 194
585
 
                    // delete, line 194
586
 
                    slice_del();
587
 
                    break;
588
 
            }
589
 
            return true;
590
 
        }
591
 
 
592
 
        public boolean stem() {
593
 
            int v_1;
594
 
            int v_2;
595
 
            int v_3;
596
 
            int v_4;
597
 
            int v_5;
598
 
            int v_6;
599
 
            int v_7;
600
 
            int v_8;
601
 
            int v_9;
602
 
            int v_10;
603
 
            // (, line 199
604
 
            // do, line 201
605
 
            v_1 = cursor;
606
 
            lab0: do {
607
 
                // call mark_regions, line 201
608
 
                if (!r_mark_regions())
609
 
                {
610
 
                    break lab0;
611
 
                }
612
 
            } while (false);
613
 
            cursor = v_1;
614
 
            // backwards, line 202
615
 
            limit_backward = cursor; cursor = limit;
616
 
            // setlimit, line 202
617
 
            v_2 = limit - cursor;
618
 
            // tomark, line 202
619
 
            if (cursor < I_pV)
620
 
            {
621
 
                return false;
622
 
            }
623
 
            cursor = I_pV;
624
 
            v_3 = limit_backward;
625
 
            limit_backward = cursor;
626
 
            cursor = limit - v_2;
627
 
            // (, line 202
628
 
            // do, line 203
629
 
            v_4 = limit - cursor;
630
 
            lab1: do {
631
 
                // (, line 203
632
 
                // or, line 204
633
 
                lab2: do {
634
 
                    v_5 = limit - cursor;
635
 
                    lab3: do {
636
 
                        // call perfective_gerund, line 204
637
 
                        if (!r_perfective_gerund())
638
 
                        {
639
 
                            break lab3;
640
 
                        }
641
 
                        break lab2;
642
 
                    } while (false);
643
 
                    cursor = limit - v_5;
644
 
                    // (, line 205
645
 
                    // try, line 205
646
 
                    v_6 = limit - cursor;
647
 
                    lab4: do {
648
 
                        // call reflexive, line 205
649
 
                        if (!r_reflexive())
650
 
                        {
651
 
                            cursor = limit - v_6;
652
 
                            break lab4;
653
 
                        }
654
 
                    } while (false);
655
 
                    // or, line 206
656
 
                    lab5: do {
657
 
                        v_7 = limit - cursor;
658
 
                        lab6: do {
659
 
                            // call adjectival, line 206
660
 
                            if (!r_adjectival())
661
 
                            {
662
 
                                break lab6;
663
 
                            }
664
 
                            break lab5;
665
 
                        } while (false);
666
 
                        cursor = limit - v_7;
667
 
                        lab7: do {
668
 
                            // call verb, line 206
669
 
                            if (!r_verb())
670
 
                            {
671
 
                                break lab7;
672
 
                            }
673
 
                            break lab5;
674
 
                        } while (false);
675
 
                        cursor = limit - v_7;
676
 
                        // call noun, line 206
677
 
                        if (!r_noun())
678
 
                        {
679
 
                            break lab1;
680
 
                        }
681
 
                    } while (false);
682
 
                } while (false);
683
 
            } while (false);
684
 
            cursor = limit - v_4;
685
 
            // try, line 209
686
 
            v_8 = limit - cursor;
687
 
            lab8: do {
688
 
                // (, line 209
689
 
                // [, line 209
690
 
                ket = cursor;
691
 
                // literal, line 209
692
 
                if (!(eq_s_b(1, "\u0438")))
693
 
                {
694
 
                    cursor = limit - v_8;
695
 
                    break lab8;
696
 
                }
697
 
                // ], line 209
698
 
                bra = cursor;
699
 
                // delete, line 209
700
 
                slice_del();
701
 
            } while (false);
702
 
            // do, line 212
703
 
            v_9 = limit - cursor;
704
 
            lab9: do {
705
 
                // call derivational, line 212
706
 
                if (!r_derivational())
707
 
                {
708
 
                    break lab9;
709
 
                }
710
 
            } while (false);
711
 
            cursor = limit - v_9;
712
 
            // do, line 213
713
 
            v_10 = limit - cursor;
714
 
            lab10: do {
715
 
                // call tidy_up, line 213
716
 
                if (!r_tidy_up())
717
 
                {
718
 
                    break lab10;
719
 
                }
720
 
            } while (false);
721
 
            cursor = limit - v_10;
722
 
            limit_backward = v_3;
723
 
            cursor = limit_backward;            return true;
724
 
        }
725
 
 
726
 
}
727