"Fossies" - the Fresh Open Source Software Archive

Member "chandler-1.0.3/external/PyLucene/PyLucene-2.3.1-3-418/lucene-java-2.3.1/contrib/snowball/src/java/net/sf/snowball/ext/RussianStemmer.java" (20 Dec 2002, 25761 Bytes) of archive /windows/misc/Chandler_src_1.0.3.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Java source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    1 // This file was generated automatically by the Snowball to Java compiler
    2 
    3 package net.sf.snowball.ext;
    4 import net.sf.snowball.SnowballProgram;
    5 import net.sf.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 ( "\u00D7\u00DB\u00C9", -1, 1, "", this),
   14             new Among ( "\u00C9\u00D7\u00DB\u00C9", 0, 2, "", this),
   15             new Among ( "\u00D9\u00D7\u00DB\u00C9", 0, 2, "", this),
   16             new Among ( "\u00D7", -1, 1, "", this),
   17             new Among ( "\u00C9\u00D7", 3, 2, "", this),
   18             new Among ( "\u00D9\u00D7", 3, 2, "", this),
   19             new Among ( "\u00D7\u00DB\u00C9\u00D3\u00D8", -1, 1, "", this),
   20             new Among ( "\u00C9\u00D7\u00DB\u00C9\u00D3\u00D8", 6, 2, "", this),
   21             new Among ( "\u00D9\u00D7\u00DB\u00C9\u00D3\u00D8", 6, 2, "", this)
   22         };
   23 
   24         private Among a_1[] = {
   25             new Among ( "\u00C0\u00C0", -1, 1, "", this),
   26             new Among ( "\u00C5\u00C0", -1, 1, "", this),
   27             new Among ( "\u00CF\u00C0", -1, 1, "", this),
   28             new Among ( "\u00D5\u00C0", -1, 1, "", this),
   29             new Among ( "\u00C5\u00C5", -1, 1, "", this),
   30             new Among ( "\u00C9\u00C5", -1, 1, "", this),
   31             new Among ( "\u00CF\u00C5", -1, 1, "", this),
   32             new Among ( "\u00D9\u00C5", -1, 1, "", this),
   33             new Among ( "\u00C9\u00C8", -1, 1, "", this),
   34             new Among ( "\u00D9\u00C8", -1, 1, "", this),
   35             new Among ( "\u00C9\u00CD\u00C9", -1, 1, "", this),
   36             new Among ( "\u00D9\u00CD\u00C9", -1, 1, "", this),
   37             new Among ( "\u00C5\u00CA", -1, 1, "", this),
   38             new Among ( "\u00C9\u00CA", -1, 1, "", this),
   39             new Among ( "\u00CF\u00CA", -1, 1, "", this),
   40             new Among ( "\u00D9\u00CA", -1, 1, "", this),
   41             new Among ( "\u00C5\u00CD", -1, 1, "", this),
   42             new Among ( "\u00C9\u00CD", -1, 1, "", this),
   43             new Among ( "\u00CF\u00CD", -1, 1, "", this),
   44             new Among ( "\u00D9\u00CD", -1, 1, "", this),
   45             new Among ( "\u00C5\u00C7\u00CF", -1, 1, "", this),
   46             new Among ( "\u00CF\u00C7\u00CF", -1, 1, "", this),
   47             new Among ( "\u00C1\u00D1", -1, 1, "", this),
   48             new Among ( "\u00D1\u00D1", -1, 1, "", this),
   49             new Among ( "\u00C5\u00CD\u00D5", -1, 1, "", this),
   50             new Among ( "\u00CF\u00CD\u00D5", -1, 1, "", this)
   51         };
   52 
   53         private Among a_2[] = {
   54             new Among ( "\u00C5\u00CD", -1, 1, "", this),
   55             new Among ( "\u00CE\u00CE", -1, 1, "", this),
   56             new Among ( "\u00D7\u00DB", -1, 1, "", this),
   57             new Among ( "\u00C9\u00D7\u00DB", 2, 2, "", this),
   58             new Among ( "\u00D9\u00D7\u00DB", 2, 2, "", this),
   59             new Among ( "\u00DD", -1, 1, "", this),
   60             new Among ( "\u00C0\u00DD", 5, 1, "", this),
   61             new Among ( "\u00D5\u00C0\u00DD", 6, 2, "", this)
   62         };
   63 
   64         private Among a_3[] = {
   65             new Among ( "\u00D3\u00D1", -1, 1, "", this),
   66             new Among ( "\u00D3\u00D8", -1, 1, "", this)
   67         };
   68 
   69         private Among a_4[] = {
   70             new Among ( "\u00C0", -1, 2, "", this),
   71             new Among ( "\u00D5\u00C0", 0, 2, "", this),
   72             new Among ( "\u00CC\u00C1", -1, 1, "", this),
   73             new Among ( "\u00C9\u00CC\u00C1", 2, 2, "", this),
   74             new Among ( "\u00D9\u00CC\u00C1", 2, 2, "", this),
   75             new Among ( "\u00CE\u00C1", -1, 1, "", this),
   76             new Among ( "\u00C5\u00CE\u00C1", 5, 2, "", this),
   77             new Among ( "\u00C5\u00D4\u00C5", -1, 1, "", this),
   78             new Among ( "\u00C9\u00D4\u00C5", -1, 2, "", this),
   79             new Among ( "\u00CA\u00D4\u00C5", -1, 1, "", this),
   80             new Among ( "\u00C5\u00CA\u00D4\u00C5", 9, 2, "", this),
   81             new Among ( "\u00D5\u00CA\u00D4\u00C5", 9, 2, "", this),
   82             new Among ( "\u00CC\u00C9", -1, 1, "", this),
   83             new Among ( "\u00C9\u00CC\u00C9", 12, 2, "", this),
   84             new Among ( "\u00D9\u00CC\u00C9", 12, 2, "", this),
   85             new Among ( "\u00CA", -1, 1, "", this),
   86             new Among ( "\u00C5\u00CA", 15, 2, "", this),
   87             new Among ( "\u00D5\u00CA", 15, 2, "", this),
   88             new Among ( "\u00CC", -1, 1, "", this),
   89             new Among ( "\u00C9\u00CC", 18, 2, "", this),
   90             new Among ( "\u00D9\u00CC", 18, 2, "", this),
   91             new Among ( "\u00C5\u00CD", -1, 1, "", this),
   92             new Among ( "\u00C9\u00CD", -1, 2, "", this),
   93             new Among ( "\u00D9\u00CD", -1, 2, "", this),
   94             new Among ( "\u00CE", -1, 1, "", this),
   95             new Among ( "\u00C5\u00CE", 24, 2, "", this),
   96             new Among ( "\u00CC\u00CF", -1, 1, "", this),
   97             new Among ( "\u00C9\u00CC\u00CF", 26, 2, "", this),
   98             new Among ( "\u00D9\u00CC\u00CF", 26, 2, "", this),
   99             new Among ( "\u00CE\u00CF", -1, 1, "", this),
  100             new Among ( "\u00C5\u00CE\u00CF", 29, 2, "", this),
  101             new Among ( "\u00CE\u00CE\u00CF", 29, 1, "", this),
  102             new Among ( "\u00C0\u00D4", -1, 1, "", this),
  103             new Among ( "\u00D5\u00C0\u00D4", 32, 2, "", this),
  104             new Among ( "\u00C5\u00D4", -1, 1, "", this),
  105             new Among ( "\u00D5\u00C5\u00D4", 34, 2, "", this),
  106             new Among ( "\u00C9\u00D4", -1, 2, "", this),
  107             new Among ( "\u00D1\u00D4", -1, 2, "", this),
  108             new Among ( "\u00D9\u00D4", -1, 2, "", this),
  109             new Among ( "\u00D4\u00D8", -1, 1, "", this),
  110             new Among ( "\u00C9\u00D4\u00D8", 39, 2, "", this),
  111             new Among ( "\u00D9\u00D4\u00D8", 39, 2, "", this),
  112             new Among ( "\u00C5\u00DB\u00D8", -1, 1, "", this),
  113             new Among ( "\u00C9\u00DB\u00D8", -1, 2, "", this),
  114             new Among ( "\u00CE\u00D9", -1, 1, "", this),
  115             new Among ( "\u00C5\u00CE\u00D9", 44, 2, "", this)
  116         };
  117 
  118         private Among a_5[] = {
  119             new Among ( "\u00C0", -1, 1, "", this),
  120             new Among ( "\u00C9\u00C0", 0, 1, "", this),
  121             new Among ( "\u00D8\u00C0", 0, 1, "", this),
  122             new Among ( "\u00C1", -1, 1, "", this),
  123             new Among ( "\u00C5", -1, 1, "", this),
  124             new Among ( "\u00C9\u00C5", 4, 1, "", this),
  125             new Among ( "\u00D8\u00C5", 4, 1, "", this),
  126             new Among ( "\u00C1\u00C8", -1, 1, "", this),
  127             new Among ( "\u00D1\u00C8", -1, 1, "", this),
  128             new Among ( "\u00C9\u00D1\u00C8", 8, 1, "", this),
  129             new Among ( "\u00C9", -1, 1, "", this),
  130             new Among ( "\u00C5\u00C9", 10, 1, "", this),
  131             new Among ( "\u00C9\u00C9", 10, 1, "", this),
  132             new Among ( "\u00C1\u00CD\u00C9", 10, 1, "", this),
  133             new Among ( "\u00D1\u00CD\u00C9", 10, 1, "", this),
  134             new Among ( "\u00C9\u00D1\u00CD\u00C9", 14, 1, "", this),
  135             new Among ( "\u00CA", -1, 1, "", this),
  136             new Among ( "\u00C5\u00CA", 16, 1, "", this),
  137             new Among ( "\u00C9\u00C5\u00CA", 17, 1, "", this),
  138             new Among ( "\u00C9\u00CA", 16, 1, "", this),
  139             new Among ( "\u00CF\u00CA", 16, 1, "", this),
  140             new Among ( "\u00C1\u00CD", -1, 1, "", this),
  141             new Among ( "\u00C5\u00CD", -1, 1, "", this),
  142             new Among ( "\u00C9\u00C5\u00CD", 22, 1, "", this),
  143             new Among ( "\u00CF\u00CD", -1, 1, "", this),
  144             new Among ( "\u00D1\u00CD", -1, 1, "", this),
  145             new Among ( "\u00C9\u00D1\u00CD", 25, 1, "", this),
  146             new Among ( "\u00CF", -1, 1, "", this),
  147             new Among ( "\u00D1", -1, 1, "", this),
  148             new Among ( "\u00C9\u00D1", 28, 1, "", this),
  149             new Among ( "\u00D8\u00D1", 28, 1, "", this),
  150             new Among ( "\u00D5", -1, 1, "", this),
  151             new Among ( "\u00C5\u00D7", -1, 1, "", this),
  152             new Among ( "\u00CF\u00D7", -1, 1, "", this),
  153             new Among ( "\u00D8", -1, 1, "", this),
  154             new Among ( "\u00D9", -1, 1, "", this)
  155         };
  156 
  157         private Among a_6[] = {
  158             new Among ( "\u00CF\u00D3\u00D4", -1, 1, "", this),
  159             new Among ( "\u00CF\u00D3\u00D4\u00D8", -1, 1, "", this)
  160         };
  161 
  162         private Among a_7[] = {
  163             new Among ( "\u00C5\u00CA\u00DB\u00C5", -1, 1, "", this),
  164             new Among ( "\u00CE", -1, 2, "", this),
  165             new Among ( "\u00D8", -1, 3, "", this),
  166             new Among ( "\u00C5\u00CA\u00DB", -1, 1, "", this)
  167         };
  168 
  169         private static final char g_v[] = {35, 130, 34, 18 };
  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 96
  183             I_pV = limit;
  184             I_p2 = limit;
  185             // do, line 100
  186             v_1 = cursor;
  187             lab0: do {
  188                 // (, line 100
  189                 // gopast, line 101
  190                 golab1: while(true)
  191                 {
  192                     lab2: do {
  193                         if (!(in_grouping(g_v, 192, 220)))
  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 101
  206                 I_pV = cursor;
  207                 // gopast, line 101
  208                 golab3: while(true)
  209                 {
  210                     lab4: do {
  211                         if (!(out_grouping(g_v, 192, 220)))
  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 102
  224                 golab5: while(true)
  225                 {
  226                     lab6: do {
  227                         if (!(in_grouping(g_v, 192, 220)))
  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 102
  240                 golab7: while(true)
  241                 {
  242                     lab8: do {
  243                         if (!(out_grouping(g_v, 192, 220)))
  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 102
  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 110
  274             // [, line 111
  275             ket = cursor;
  276             // substring, line 111
  277             among_var = find_among_b(a_0, 9);
  278             if (among_var == 0)
  279             {
  280                 return false;
  281             }
  282             // ], line 111
  283             bra = cursor;
  284             switch(among_var) {
  285                 case 0:
  286                     return false;
  287                 case 1:
  288                     // (, line 115
  289                     // or, line 115
  290                     lab0: do {
  291                         v_1 = limit - cursor;
  292                         lab1: do {
  293                             // literal, line 115
  294                             if (!(eq_s_b(1, "\u00C1")))
  295                             {
  296                                 break lab1;
  297                             }
  298                             break lab0;
  299                         } while (false);
  300                         cursor = limit - v_1;
  301                         // literal, line 115
  302                         if (!(eq_s_b(1, "\u00D1")))
  303                         {
  304                             return false;
  305                         }
  306                     } while (false);
  307                     // delete, line 115
  308                     slice_del();
  309                     break;
  310                 case 2:
  311                     // (, line 122
  312                     // delete, line 122
  313                     slice_del();
  314                     break;
  315             }
  316             return true;
  317         }
  318 
  319         private boolean r_adjective() {
  320             int among_var;
  321             // (, line 126
  322             // [, line 127
  323             ket = cursor;
  324             // substring, line 127
  325             among_var = find_among_b(a_1, 26);
  326             if (among_var == 0)
  327             {
  328                 return false;
  329             }
  330             // ], line 127
  331             bra = cursor;
  332             switch(among_var) {
  333                 case 0:
  334                     return false;
  335                 case 1:
  336                     // (, line 136
  337                     // delete, line 136
  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 140
  349             // call adjective, line 141
  350             if (!r_adjective())
  351             {
  352                 return false;
  353             }
  354             // try, line 148
  355             v_1 = limit - cursor;
  356             lab0: do {
  357                 // (, line 148
  358                 // [, line 149
  359                 ket = cursor;
  360                 // substring, line 149
  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 149
  368                 bra = cursor;
  369                 switch(among_var) {
  370                     case 0:
  371                         cursor = limit - v_1;
  372                         break lab0;
  373                     case 1:
  374                         // (, line 154
  375                         // or, line 154
  376                         lab1: do {
  377                             v_2 = limit - cursor;
  378                             lab2: do {
  379                                 // literal, line 154
  380                                 if (!(eq_s_b(1, "\u00C1")))
  381                                 {
  382                                     break lab2;
  383                                 }
  384                                 break lab1;
  385                             } while (false);
  386                             cursor = limit - v_2;
  387                             // literal, line 154
  388                             if (!(eq_s_b(1, "\u00D1")))
  389                             {
  390                                 cursor = limit - v_1;
  391                                 break lab0;
  392                             }
  393                         } while (false);
  394                         // delete, line 154
  395                         slice_del();
  396                         break;
  397                     case 2:
  398                         // (, line 161
  399                         // delete, line 161
  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 167
  410             // [, line 168
  411             ket = cursor;
  412             // substring, line 168
  413             among_var = find_among_b(a_3, 2);
  414             if (among_var == 0)
  415             {
  416                 return false;
  417             }
  418             // ], line 168
  419             bra = cursor;
  420             switch(among_var) {
  421                 case 0:
  422                     return false;
  423                 case 1:
  424                     // (, line 171
  425                     // delete, line 171
  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 175
  436             // [, line 176
  437             ket = cursor;
  438             // substring, line 176
  439             among_var = find_among_b(a_4, 46);
  440             if (among_var == 0)
  441             {
  442                 return false;
  443             }
  444             // ], line 176
  445             bra = cursor;
  446             switch(among_var) {
  447                 case 0:
  448                     return false;
  449                 case 1:
  450                     // (, line 182
  451                     // or, line 182
  452                     lab0: do {
  453                         v_1 = limit - cursor;
  454                         lab1: do {
  455                             // literal, line 182
  456                             if (!(eq_s_b(1, "\u00C1")))
  457                             {
  458                                 break lab1;
  459                             }
  460                             break lab0;
  461                         } while (false);
  462                         cursor = limit - v_1;
  463                         // literal, line 182
  464                         if (!(eq_s_b(1, "\u00D1")))
  465                         {
  466                             return false;
  467                         }
  468                     } while (false);
  469                     // delete, line 182
  470                     slice_del();
  471                     break;
  472                 case 2:
  473                     // (, line 190
  474                     // delete, line 190
  475                     slice_del();
  476                     break;
  477             }
  478             return true;
  479         }
  480 
  481         private boolean r_noun() {
  482             int among_var;
  483             // (, line 198
  484             // [, line 199
  485             ket = cursor;
  486             // substring, line 199
  487             among_var = find_among_b(a_5, 36);
  488             if (among_var == 0)
  489             {
  490                 return false;
  491             }
  492             // ], line 199
  493             bra = cursor;
  494             switch(among_var) {
  495                 case 0:
  496                     return false;
  497                 case 1:
  498                     // (, line 206
  499                     // delete, line 206
  500                     slice_del();
  501                     break;
  502             }
  503             return true;
  504         }
  505 
  506         private boolean r_derivational() {
  507             int among_var;
  508             // (, line 214
  509             // [, line 215
  510             ket = cursor;
  511             // substring, line 215
  512             among_var = find_among_b(a_6, 2);
  513             if (among_var == 0)
  514             {
  515                 return false;
  516             }
  517             // ], line 215
  518             bra = cursor;
  519             // call R2, line 215
  520             if (!r_R2())
  521             {
  522                 return false;
  523             }
  524             switch(among_var) {
  525                 case 0:
  526                     return false;
  527                 case 1:
  528                     // (, line 218
  529                     // delete, line 218
  530                     slice_del();
  531                     break;
  532             }
  533             return true;
  534         }
  535 
  536         private boolean r_tidy_up() {
  537             int among_var;
  538             // (, line 222
  539             // [, line 223
  540             ket = cursor;
  541             // substring, line 223
  542             among_var = find_among_b(a_7, 4);
  543             if (among_var == 0)
  544             {
  545                 return false;
  546             }
  547             // ], line 223
  548             bra = cursor;
  549             switch(among_var) {
  550                 case 0:
  551                     return false;
  552                 case 1:
  553                     // (, line 227
  554                     // delete, line 227
  555                     slice_del();
  556                     // [, line 228
  557                     ket = cursor;
  558                     // literal, line 228
  559                     if (!(eq_s_b(1, "\u00CE")))
  560                     {
  561                         return false;
  562                     }
  563                     // ], line 228
  564                     bra = cursor;
  565                     // literal, line 228
  566                     if (!(eq_s_b(1, "\u00CE")))
  567                     {
  568                         return false;
  569                     }
  570                     // delete, line 228
  571                     slice_del();
  572                     break;
  573                 case 2:
  574                     // (, line 231
  575                     // literal, line 231
  576                     if (!(eq_s_b(1, "\u00CE")))
  577                     {
  578                         return false;
  579                     }
  580                     // delete, line 231
  581                     slice_del();
  582                     break;
  583                 case 3:
  584                     // (, line 233
  585                     // delete, line 233
  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 238
  604             // do, line 240
  605             v_1 = cursor;
  606             lab0: do {
  607                 // call mark_regions, line 240
  608                 if (!r_mark_regions())
  609                 {
  610                     break lab0;
  611                 }
  612             } while (false);
  613             cursor = v_1;
  614             // backwards, line 241
  615             limit_backward = cursor; cursor = limit;
  616             // setlimit, line 241
  617             v_2 = limit - cursor;
  618             // tomark, line 241
  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 241
  628             // do, line 242
  629             v_4 = limit - cursor;
  630             lab1: do {
  631                 // (, line 242
  632                 // or, line 243
  633                 lab2: do {
  634                     v_5 = limit - cursor;
  635                     lab3: do {
  636                         // call perfective_gerund, line 243
  637                         if (!r_perfective_gerund())
  638                         {
  639                             break lab3;
  640                         }
  641                         break lab2;
  642                     } while (false);
  643                     cursor = limit - v_5;
  644                     // (, line 244
  645                     // try, line 244
  646                     v_6 = limit - cursor;
  647                     lab4: do {
  648                         // call reflexive, line 244
  649                         if (!r_reflexive())
  650                         {
  651                             cursor = limit - v_6;
  652                             break lab4;
  653                         }
  654                     } while (false);
  655                     // or, line 245
  656                     lab5: do {
  657                         v_7 = limit - cursor;
  658                         lab6: do {
  659                             // call adjectival, line 245
  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 245
  669                             if (!r_verb())
  670                             {
  671                                 break lab7;
  672                             }
  673                             break lab5;
  674                         } while (false);
  675                         cursor = limit - v_7;
  676                         // call noun, line 245
  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 248
  686             v_8 = limit - cursor;
  687             lab8: do {
  688                 // (, line 248
  689                 // [, line 248
  690                 ket = cursor;
  691                 // literal, line 248
  692                 if (!(eq_s_b(1, "\u00C9")))
  693                 {
  694                     cursor = limit - v_8;
  695                     break lab8;
  696                 }
  697                 // ], line 248
  698                 bra = cursor;
  699                 // delete, line 248
  700                 slice_del();
  701             } while (false);
  702             // do, line 251
  703             v_9 = limit - cursor;
  704             lab9: do {
  705                 // call derivational, line 251
  706                 if (!r_derivational())
  707                 {
  708                     break lab9;
  709                 }
  710             } while (false);
  711             cursor = limit - v_9;
  712             // do, line 252
  713             v_10 = limit - cursor;
  714             lab10: do {
  715                 // call tidy_up, line 252
  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