"Fossies" - the Fresh Open Source Software Archive

Member "erltools/pub/chopb/chopb0.cc" (15 May 2006, 45262 Bytes) of package /linux/misc/old/erltools-4.0.1.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ 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. For more information about "chopb0.cc" see the Fossies "Dox" file reference documentation.

    1 /*************************************************************************/
    2 /*                                                                       */
    3 /*        Produced by MetaGen version 2.0  -    1989-1995                 */
    4 /*       Syntaxic Analyzer Meta Generator developped by                  */
    5 /*                  Eric Lavillonniere                                   */
    6 /*                                                                       */
    7 /*************************************************************************/
    8 
    9 #include "token.h"
   10 #include "chopb.h"
   11 
   12 
   13 #line 498 "chopb.met"
   14 PPTREE chopb::statement ( int error_free)
   15 #line 498 "chopb.met"
   16 {
   17 #line 498 "chopb.met"
   18     PFILE_POSITION _filePosition = (PFILE_POSITION) 0;
   19 
   20 #line 498 "chopb.met"
   21     int _value,_nbPre = 0 ;
   22 #line 498 "chopb.met"
   23     PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
   24 #line 498 "chopb.met"
   25     int _Debug = TRACE_RULE("statement",TRACE_ENTER,(PPTREE)0);
   26 #line 498 "chopb.met"
   27     PPTREE lastTree = _lastTree,_retValue ;
   28 #line 498 "chopb.met"
   29 #line 498 "chopb.met"
   30     PPTREE _addlist1 = (PPTREE) 0;
   31 #line 498 "chopb.met"
   32 #line 498 "chopb.met"
   33     PPTREE statTree = (PPTREE) 0,inter = (PPTREE) 0,list = (PPTREE) 0;
   34 #line 498 "chopb.met"
   35 #line 500 "chopb.met"
   36     (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
   37 #line 500 "chopb.met"
   38     switch( lexEl.Value) {
   39 #line 500 "chopb.met"
   40 #line 503 "chopb.met"
   41         case ARRO : 
   42 #line 503 "chopb.met"
   43             tokenAhead = 0 ;
   44 #line 503 "chopb.met"
   45             CommTerm();
   46 #line 503 "chopb.met"
   47 #line 502 "chopb.met"
   48 #line 503 "chopb.met"
   49             {
   50 #line 503 "chopb.met"
   51                 PPTREE _ptTree0=0,_ptRes0=0;
   52 #line 503 "chopb.met"
   53                 _ptRes0= MakeTree(ARRO, 1);
   54 #line 503 "chopb.met"
   55                 {
   56 #line 503 "chopb.met"
   57                     PPTREE _ptTree1=0,_ptRes1=0;
   58 #line 503 "chopb.met"
   59                     _ptRes1= MakeTree(IDENT, 1);
   60 #line 503 "chopb.met"
   61                     (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
   62 #line 503 "chopb.met"
   63                     if ( ! TERM_OR_META(IDENT,"IDENT") || !(BUILD_TERM_META(_ptTree1))) {
   64 #line 503 "chopb.met"
   65                         MulFreeTree(8,_ptRes1,_ptTree1,_ptRes0,_ptTree0,_addlist1,inter,list,statTree);
   66                         TOKEN_EXIT(statement_exit,"IDENT")
   67 #line 503 "chopb.met"
   68                     } else {
   69 #line 503 "chopb.met"
   70                         tokenAhead = 0 ;
   71 #line 503 "chopb.met"
   72                     }
   73 #line 503 "chopb.met"
   74                     ReplaceTree(_ptRes1, 1, _ptTree1);
   75 #line 503 "chopb.met"
   76                     _ptTree0=_ptRes1;
   77 #line 503 "chopb.met"
   78                 }
   79 #line 503 "chopb.met"
   80                 ReplaceTree(_ptRes0, 1, _ptTree0);
   81 #line 503 "chopb.met"
   82                 statTree=_ptRes0;
   83 #line 503 "chopb.met"
   84             }
   85 #line 503 "chopb.met"
   86 #line 504 "chopb.met"
   87             if ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN(PVIR,";") && (tokenAhead = 0,CommTerm(),1)){
   88 #line 504 "chopb.met"
   89 #line 504 "chopb.met"
   90             }
   91 #line 504 "chopb.met"
   92 #line 504 "chopb.met"
   93             break;
   94 #line 504 "chopb.met"
   95 #line 509 "chopb.met"
   96         case AOUVAOUV : 
   97 #line 509 "chopb.met"
   98             tokenAhead = 0 ;
   99 #line 509 "chopb.met"
  100             CommTerm();
  101 #line 509 "chopb.met"
  102 #line 508 "chopb.met"
  103 #line 509 "chopb.met"
  104             if ( (inter=NQUICK_CALL(_Tak(statement)(error_free), 119, chopb))== (PPTREE) -1 ) {
  105 #line 509 "chopb.met"
  106                 MulFreeTree(4,_addlist1,inter,list,statTree);
  107                 PROG_EXIT(statement_exit,"statement")
  108 #line 509 "chopb.met"
  109             }
  110 #line 509 "chopb.met"
  111 #line 509 "chopb.met"
  112             _addlist1 = list ;
  113 #line 509 "chopb.met"
  114 #line 510 "chopb.met"
  115             do {
  116 #line 510 "chopb.met"
  117 #line 511 "chopb.met"
  118                 _addlist1 =AddList(_addlist1 ,inter );
  119 #line 511 "chopb.met"
  120 #line 511 "chopb.met"
  121                 if (list){
  122 #line 511 "chopb.met"
  123 #line 511 "chopb.met"
  124                     _addlist1 = SonTree (_addlist1 ,2 );
  125 #line 511 "chopb.met"
  126                 } else {
  127 #line 511 "chopb.met"
  128 #line 511 "chopb.met"
  129                     list = _addlist1 ;
  130 #line 511 "chopb.met"
  131                 }
  132 #line 511 "chopb.met"
  133 #line 512 "chopb.met"
  134                 if ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN(PVIR,";") && (tokenAhead = 0,CommTerm(),1)){
  135 #line 512 "chopb.met"
  136 #line 512 "chopb.met"
  137                 }
  138 #line 512 "chopb.met"
  139 #line 512 "chopb.met"
  140 #line 514 "chopb.met"
  141             } while ( !(! (NPUSH_CALL_AFF_VERIF(inter = ,_Tak(statement), 119, chopb)))) ;
  142 #line 514 "chopb.met"
  143 #line 515 "chopb.met"
  144             {
  145 #line 515 "chopb.met"
  146                 PPTREE _ptRes0=0;
  147 #line 515 "chopb.met"
  148                 _ptRes0= MakeTree(ALINEA, 1);
  149 #line 515 "chopb.met"
  150                 ReplaceTree(_ptRes0, 1, list );
  151 #line 515 "chopb.met"
  152                 statTree=_ptRes0;
  153 #line 515 "chopb.met"
  154             }
  155 #line 515 "chopb.met"
  156 #line 516 "chopb.met"
  157             (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
  158 #line 516 "chopb.met"
  159             if (  !SEE_TOKEN( AFERAFER,"}}") || !(CommTerm(),1)) {
  160 #line 516 "chopb.met"
  161                 MulFreeTree(4,_addlist1,inter,list,statTree);
  162                 TOKEN_EXIT(statement_exit,"}}")
  163 #line 516 "chopb.met"
  164             } else {
  165 #line 516 "chopb.met"
  166                 tokenAhead = 0 ;
  167 #line 516 "chopb.met"
  168             }
  169 #line 516 "chopb.met"
  170 #line 516 "chopb.met"
  171             break;
  172 #line 516 "chopb.met"
  173 #line 518 "chopb.met"
  174         case INFESEPASUPE : 
  175 #line 518 "chopb.met"
  176             tokenAhead = 0 ;
  177 #line 518 "chopb.met"
  178             CommTerm();
  179 #line 518 "chopb.met"
  180 #line 518 "chopb.met"
  181             {
  182 #line 518 "chopb.met"
  183                 PPTREE _ptRes0=0;
  184 #line 518 "chopb.met"
  185                 _ptRes0= MakeTree(SEP_AFTER, 0);
  186 #line 518 "chopb.met"
  187                 statTree=_ptRes0;
  188 #line 518 "chopb.met"
  189             }
  190 #line 518 "chopb.met"
  191             break;
  192 #line 518 "chopb.met"
  193 #line 519 "chopb.met"
  194         case INFESEPBSUPE : 
  195 #line 519 "chopb.met"
  196             tokenAhead = 0 ;
  197 #line 519 "chopb.met"
  198             CommTerm();
  199 #line 519 "chopb.met"
  200 #line 519 "chopb.met"
  201             {
  202 #line 519 "chopb.met"
  203                 PPTREE _ptRes0=0;
  204 #line 519 "chopb.met"
  205                 _ptRes0= MakeTree(SEP_BEFORE, 0);
  206 #line 519 "chopb.met"
  207                 statTree=_ptRes0;
  208 #line 519 "chopb.met"
  209             }
  210 #line 519 "chopb.met"
  211             break;
  212 #line 519 "chopb.met"
  213 #line 520 "chopb.met"
  214         case INFESEPOSUPE : 
  215 #line 520 "chopb.met"
  216             tokenAhead = 0 ;
  217 #line 520 "chopb.met"
  218             CommTerm();
  219 #line 520 "chopb.met"
  220 #line 520 "chopb.met"
  221             {
  222 #line 520 "chopb.met"
  223                 PPTREE _ptRes0=0;
  224 #line 520 "chopb.met"
  225                 _ptRes0= MakeTree(SEP_OMIT, 0);
  226 #line 520 "chopb.met"
  227                 statTree=_ptRes0;
  228 #line 520 "chopb.met"
  229             }
  230 #line 520 "chopb.met"
  231             break;
  232 #line 520 "chopb.met"
  233 #line 524 "chopb.met"
  234         case INFE : 
  235 #line 524 "chopb.met"
  236 #line 522 "chopb.met"
  237 #line 523 "chopb.met"
  238             (tokenAhead == 18|| (formatBeg(),TRACE_LEX(1)));
  239 #line 523 "chopb.met"
  240             switch( lexEl.Value) {
  241 #line 523 "chopb.met"
  242 #line 524 "chopb.met"
  243                 case META : 
  244 #line 524 "chopb.met"
  245                 case SPACE_BEG : 
  246 #line 524 "chopb.met"
  247                     tokenAhead = 0 ;
  248 #line 524 "chopb.met"
  249                     CommTerm();
  250 #line 524 "chopb.met"
  251 #line 525 "chopb.met"
  252                     (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
  253 #line 525 "chopb.met"
  254                     switch( lexEl.Value) {
  255 #line 525 "chopb.met"
  256 #line 526 "chopb.met"
  257                         case SUPE : 
  258 #line 526 "chopb.met"
  259                             tokenAhead = 0 ;
  260 #line 526 "chopb.met"
  261                             CommTerm();
  262 #line 526 "chopb.met"
  263 #line 526 "chopb.met"
  264                             {
  265 #line 526 "chopb.met"
  266                                 PPTREE _ptRes0=0;
  267 #line 526 "chopb.met"
  268                                 _ptRes0= MakeTree(SPACE, 1);
  269 #line 526 "chopb.met"
  270                                 statTree=_ptRes0;
  271 #line 526 "chopb.met"
  272                             }
  273 #line 526 "chopb.met"
  274                             break;
  275 #line 526 "chopb.met"
  276 #line 529 "chopb.met"
  277                         case VIRG : 
  278 #line 529 "chopb.met"
  279                             tokenAhead = 0 ;
  280 #line 529 "chopb.met"
  281                             CommTerm();
  282 #line 529 "chopb.met"
  283 #line 528 "chopb.met"
  284 #line 529 "chopb.met"
  285                             {
  286 #line 529 "chopb.met"
  287                                 PPTREE _ptTree0=0,_ptRes0=0;
  288 #line 529 "chopb.met"
  289                                 _ptRes0= MakeTree(SPACE, 1);
  290 #line 529 "chopb.met"
  291                                 {
  292 #line 529 "chopb.met"
  293                                     PPTREE _ptTree1=0,_ptRes1=0;
  294 #line 529 "chopb.met"
  295                                     _ptRes1= MakeTree(INTEGER, 1);
  296 #line 529 "chopb.met"
  297                                     (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
  298 #line 529 "chopb.met"
  299                                     if ( ! TERM_OR_META(INTEGER,"INTEGER") || !(BUILD_TERM_META(_ptTree1))) {
  300 #line 529 "chopb.met"
  301                                         MulFreeTree(8,_ptRes1,_ptTree1,_ptRes0,_ptTree0,_addlist1,inter,list,statTree);
  302                                         TOKEN_EXIT(statement_exit,"INTEGER")
  303 #line 529 "chopb.met"
  304                                     } else {
  305 #line 529 "chopb.met"
  306                                         tokenAhead = 0 ;
  307 #line 529 "chopb.met"
  308                                     }
  309 #line 529 "chopb.met"
  310                                     ReplaceTree(_ptRes1, 1, _ptTree1);
  311 #line 529 "chopb.met"
  312                                     _ptTree0=_ptRes1;
  313 #line 529 "chopb.met"
  314                                 }
  315 #line 529 "chopb.met"
  316                                 ReplaceTree(_ptRes0, 1, _ptTree0);
  317 #line 529 "chopb.met"
  318                                 statTree=_ptRes0;
  319 #line 529 "chopb.met"
  320                             }
  321 #line 529 "chopb.met"
  322 #line 532 "chopb.met"
  323                             (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
  324 #line 532 "chopb.met"
  325                             if (  !SEE_TOKEN( SUPE,">") || !(CommTerm(),1)) {
  326 #line 532 "chopb.met"
  327                                 MulFreeTree(4,_addlist1,inter,list,statTree);
  328                                 TOKEN_EXIT(statement_exit,">")
  329 #line 532 "chopb.met"
  330                             } else {
  331 #line 532 "chopb.met"
  332                                 tokenAhead = 0 ;
  333 #line 532 "chopb.met"
  334                             }
  335 #line 532 "chopb.met"
  336 #line 532 "chopb.met"
  337                             break;
  338 #line 532 "chopb.met"
  339                         default :
  340 #line 532 "chopb.met"
  341                             MulFreeTree(4,_addlist1,inter,list,statTree);
  342                             CASE_EXIT(statement_exit,"either > or ,")
  343 #line 532 "chopb.met"
  344                             break;
  345 #line 532 "chopb.met"
  346                     }
  347 #line 532 "chopb.met"
  348                     break;
  349 #line 532 "chopb.met"
  350 #line 535 "chopb.met"
  351                 case TAB_BEG : 
  352 #line 535 "chopb.met"
  353                     tokenAhead = 0 ;
  354 #line 535 "chopb.met"
  355                     CommTerm();
  356 #line 535 "chopb.met"
  357 #line 536 "chopb.met"
  358                     (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
  359 #line 536 "chopb.met"
  360                     switch( lexEl.Value) {
  361 #line 536 "chopb.met"
  362 #line 537 "chopb.met"
  363                         case SUPE : 
  364 #line 537 "chopb.met"
  365                             tokenAhead = 0 ;
  366 #line 537 "chopb.met"
  367                             CommTerm();
  368 #line 537 "chopb.met"
  369 #line 537 "chopb.met"
  370                             {
  371 #line 537 "chopb.met"
  372                                 PPTREE _ptRes0=0;
  373 #line 537 "chopb.met"
  374                                 _ptRes0= MakeTree(TAB, 1);
  375 #line 537 "chopb.met"
  376                                 statTree=_ptRes0;
  377 #line 537 "chopb.met"
  378                             }
  379 #line 537 "chopb.met"
  380                             break;
  381 #line 537 "chopb.met"
  382 #line 540 "chopb.met"
  383                         case VIRG : 
  384 #line 540 "chopb.met"
  385                             tokenAhead = 0 ;
  386 #line 540 "chopb.met"
  387                             CommTerm();
  388 #line 540 "chopb.met"
  389 #line 539 "chopb.met"
  390 #line 540 "chopb.met"
  391                             {
  392 #line 540 "chopb.met"
  393                                 PPTREE _ptTree0=0,_ptRes0=0;
  394 #line 540 "chopb.met"
  395                                 _ptRes0= MakeTree(TAB, 1);
  396 #line 540 "chopb.met"
  397                                 {
  398 #line 540 "chopb.met"
  399                                     PPTREE _ptTree1=0,_ptRes1=0;
  400 #line 540 "chopb.met"
  401                                     _ptRes1= MakeTree(INTEGER, 1);
  402 #line 540 "chopb.met"
  403                                     (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
  404 #line 540 "chopb.met"
  405                                     if ( ! TERM_OR_META(INTEGER,"INTEGER") || !(BUILD_TERM_META(_ptTree1))) {
  406 #line 540 "chopb.met"
  407                                         MulFreeTree(8,_ptRes1,_ptTree1,_ptRes0,_ptTree0,_addlist1,inter,list,statTree);
  408                                         TOKEN_EXIT(statement_exit,"INTEGER")
  409 #line 540 "chopb.met"
  410                                     } else {
  411 #line 540 "chopb.met"
  412                                         tokenAhead = 0 ;
  413 #line 540 "chopb.met"
  414                                     }
  415 #line 540 "chopb.met"
  416                                     ReplaceTree(_ptRes1, 1, _ptTree1);
  417 #line 540 "chopb.met"
  418                                     _ptTree0=_ptRes1;
  419 #line 540 "chopb.met"
  420                                 }
  421 #line 540 "chopb.met"
  422                                 ReplaceTree(_ptRes0, 1, _ptTree0);
  423 #line 540 "chopb.met"
  424                                 statTree=_ptRes0;
  425 #line 540 "chopb.met"
  426                             }
  427 #line 540 "chopb.met"
  428 #line 543 "chopb.met"
  429                             (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
  430 #line 543 "chopb.met"
  431                             if (  !SEE_TOKEN( SUPE,">") || !(CommTerm(),1)) {
  432 #line 543 "chopb.met"
  433                                 MulFreeTree(4,_addlist1,inter,list,statTree);
  434                                 TOKEN_EXIT(statement_exit,">")
  435 #line 543 "chopb.met"
  436                             } else {
  437 #line 543 "chopb.met"
  438                                 tokenAhead = 0 ;
  439 #line 543 "chopb.met"
  440                             }
  441 #line 543 "chopb.met"
  442 #line 543 "chopb.met"
  443                             break;
  444 #line 543 "chopb.met"
  445                         default :
  446 #line 543 "chopb.met"
  447                             MulFreeTree(4,_addlist1,inter,list,statTree);
  448                             CASE_EXIT(statement_exit,"either > or ,")
  449 #line 543 "chopb.met"
  450                             break;
  451 #line 543 "chopb.met"
  452                     }
  453 #line 543 "chopb.met"
  454                     break;
  455 #line 543 "chopb.met"
  456 #line 546 "chopb.met"
  457                 case NL_BEG : 
  458 #line 546 "chopb.met"
  459                     tokenAhead = 0 ;
  460 #line 546 "chopb.met"
  461                     CommTerm();
  462 #line 546 "chopb.met"
  463 #line 547 "chopb.met"
  464                     (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
  465 #line 547 "chopb.met"
  466                     switch( lexEl.Value) {
  467 #line 547 "chopb.met"
  468 #line 548 "chopb.met"
  469                         case SUPE : 
  470 #line 548 "chopb.met"
  471                             tokenAhead = 0 ;
  472 #line 548 "chopb.met"
  473                             CommTerm();
  474 #line 548 "chopb.met"
  475 #line 548 "chopb.met"
  476                             {
  477 #line 548 "chopb.met"
  478                                 PPTREE _ptRes0=0;
  479 #line 548 "chopb.met"
  480                                 _ptRes0= MakeTree(NEWLINE, 1);
  481 #line 548 "chopb.met"
  482                                 statTree=_ptRes0;
  483 #line 548 "chopb.met"
  484                             }
  485 #line 548 "chopb.met"
  486                             break;
  487 #line 548 "chopb.met"
  488 #line 551 "chopb.met"
  489                         case VIRG : 
  490 #line 551 "chopb.met"
  491                             tokenAhead = 0 ;
  492 #line 551 "chopb.met"
  493                             CommTerm();
  494 #line 551 "chopb.met"
  495 #line 550 "chopb.met"
  496 #line 551 "chopb.met"
  497                             {
  498 #line 551 "chopb.met"
  499                                 PPTREE _ptTree0=0,_ptRes0=0;
  500 #line 551 "chopb.met"
  501                                 _ptRes0= MakeTree(NEWLINE, 1);
  502 #line 551 "chopb.met"
  503                                 {
  504 #line 551 "chopb.met"
  505                                     PPTREE _ptTree1=0,_ptRes1=0;
  506 #line 551 "chopb.met"
  507                                     _ptRes1= MakeTree(INTEGER, 1);
  508 #line 551 "chopb.met"
  509                                     (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
  510 #line 551 "chopb.met"
  511                                     if ( ! TERM_OR_META(INTEGER,"INTEGER") || !(BUILD_TERM_META(_ptTree1))) {
  512 #line 551 "chopb.met"
  513                                         MulFreeTree(8,_ptRes1,_ptTree1,_ptRes0,_ptTree0,_addlist1,inter,list,statTree);
  514                                         TOKEN_EXIT(statement_exit,"INTEGER")
  515 #line 551 "chopb.met"
  516                                     } else {
  517 #line 551 "chopb.met"
  518                                         tokenAhead = 0 ;
  519 #line 551 "chopb.met"
  520                                     }
  521 #line 551 "chopb.met"
  522                                     ReplaceTree(_ptRes1, 1, _ptTree1);
  523 #line 551 "chopb.met"
  524                                     _ptTree0=_ptRes1;
  525 #line 551 "chopb.met"
  526                                 }
  527 #line 551 "chopb.met"
  528                                 ReplaceTree(_ptRes0, 1, _ptTree0);
  529 #line 551 "chopb.met"
  530                                 statTree=_ptRes0;
  531 #line 551 "chopb.met"
  532                             }
  533 #line 551 "chopb.met"
  534 #line 554 "chopb.met"
  535                             (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
  536 #line 554 "chopb.met"
  537                             if (  !SEE_TOKEN( SUPE,">") || !(CommTerm(),1)) {
  538 #line 554 "chopb.met"
  539                                 MulFreeTree(4,_addlist1,inter,list,statTree);
  540                                 TOKEN_EXIT(statement_exit,">")
  541 #line 554 "chopb.met"
  542                             } else {
  543 #line 554 "chopb.met"
  544                                 tokenAhead = 0 ;
  545 #line 554 "chopb.met"
  546                             }
  547 #line 554 "chopb.met"
  548 #line 554 "chopb.met"
  549                             break;
  550 #line 554 "chopb.met"
  551                         default :
  552 #line 554 "chopb.met"
  553                             MulFreeTree(4,_addlist1,inter,list,statTree);
  554                             CASE_EXIT(statement_exit,"either > or ,")
  555 #line 554 "chopb.met"
  556                             break;
  557 #line 554 "chopb.met"
  558                     }
  559 #line 554 "chopb.met"
  560                     break;
  561 #line 554 "chopb.met"
  562                 default :
  563 #line 554 "chopb.met"
  564                     MulFreeTree(4,_addlist1,inter,list,statTree);
  565                     CASE_EXIT(statement_exit,"either SPACE_BEG or TAB_BEG or NL_BEG")
  566 #line 554 "chopb.met"
  567                     break;
  568 #line 554 "chopb.met"
  569             }
  570 #line 554 "chopb.met"
  571 #line 558 "chopb.met"
  572             if ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN(PVIR,";") && (tokenAhead = 0,CommTerm(),1)){
  573 #line 558 "chopb.met"
  574 #line 558 "chopb.met"
  575             }
  576 #line 558 "chopb.met"
  577 #line 558 "chopb.met"
  578             break;
  579 #line 558 "chopb.met"
  580 #line 561 "chopb.met"
  581         case FOREACH : 
  582 #line 561 "chopb.met"
  583             tokenAhead = 0 ;
  584 #line 561 "chopb.met"
  585             CommTerm();
  586 #line 561 "chopb.met"
  587 #line 562 "chopb.met"
  588 #line 563 "chopb.met"
  589             {
  590 #line 563 "chopb.met"
  591                 PPTREE _ptRes0=0;
  592 #line 563 "chopb.met"
  593                 _ptRes0= MakeTree(FOREACH, 3);
  594 #line 563 "chopb.met"
  595                 statTree=_ptRes0;
  596 #line 563 "chopb.met"
  597             }
  598 #line 563 "chopb.met"
  599 #line 564 "chopb.met"
  600             (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
  601 #line 564 "chopb.met"
  602             if (  !SEE_TOKEN( POUV,"(") || !(CommTerm(),1)) {
  603 #line 564 "chopb.met"
  604                 MulFreeTree(4,_addlist1,inter,list,statTree);
  605                 TOKEN_EXIT(statement_exit,"(")
  606 #line 564 "chopb.met"
  607             } else {
  608 #line 564 "chopb.met"
  609                 tokenAhead = 0 ;
  610 #line 564 "chopb.met"
  611             }
  612 #line 564 "chopb.met"
  613 #line 565 "chopb.met"
  614             {
  615 #line 565 "chopb.met"
  616                 PPTREE _ptTree0=0;
  617 #line 565 "chopb.met"
  618                 if ( (_ptTree0=NQUICK_CALL(_Tak(assignment_expression)(error_free), 15, chopb))== (PPTREE) -1 ) {
  619 #line 565 "chopb.met"
  620                     MulFreeTree(5,_ptTree0,_addlist1,inter,list,statTree);
  621                     PROG_EXIT(statement_exit,"statement")
  622 #line 565 "chopb.met"
  623                 }
  624 #line 565 "chopb.met"
  625                 ReplaceTree(statTree , 1 , _ptTree0);
  626 #line 565 "chopb.met"
  627             }
  628 #line 565 "chopb.met"
  629 #line 566 "chopb.met"
  630             (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
  631 #line 566 "chopb.met"
  632             if (  !SEE_TOKEN( VIRG,",") || !(CommTerm(),1)) {
  633 #line 566 "chopb.met"
  634                 MulFreeTree(4,_addlist1,inter,list,statTree);
  635                 TOKEN_EXIT(statement_exit,",")
  636 #line 566 "chopb.met"
  637             } else {
  638 #line 566 "chopb.met"
  639                 tokenAhead = 0 ;
  640 #line 566 "chopb.met"
  641             }
  642 #line 566 "chopb.met"
  643 #line 567 "chopb.met"
  644             {
  645 #line 567 "chopb.met"
  646                 PPTREE _ptTree0=0;
  647 #line 567 "chopb.met"
  648                 if ( (_ptTree0=NQUICK_CALL(_Tak(assignment_expression)(error_free), 15, chopb))== (PPTREE) -1 ) {
  649 #line 567 "chopb.met"
  650                     MulFreeTree(5,_ptTree0,_addlist1,inter,list,statTree);
  651                     PROG_EXIT(statement_exit,"statement")
  652 #line 567 "chopb.met"
  653                 }
  654 #line 567 "chopb.met"
  655                 ReplaceTree(statTree , 2 , _ptTree0);
  656 #line 567 "chopb.met"
  657             }
  658 #line 567 "chopb.met"
  659 #line 568 "chopb.met"
  660             (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
  661 #line 568 "chopb.met"
  662             if (  !SEE_TOKEN( VIRG,",") || !(CommTerm(),1)) {
  663 #line 568 "chopb.met"
  664                 MulFreeTree(4,_addlist1,inter,list,statTree);
  665                 TOKEN_EXIT(statement_exit,",")
  666 #line 568 "chopb.met"
  667             } else {
  668 #line 568 "chopb.met"
  669                 tokenAhead = 0 ;
  670 #line 568 "chopb.met"
  671             }
  672 #line 568 "chopb.met"
  673 #line 572 "chopb.met"
  674             if (! (NPUSH_CALL_AFF_VERIF(inter = ,_Tak(statement), 119, chopb))){
  675 #line 572 "chopb.met"
  676 #line 574 "chopb.met"
  677                 if ( (inter=NQUICK_CALL(_Tak(expression)(error_free), 52, chopb))== (PPTREE) -1 ) {
  678 #line 574 "chopb.met"
  679                     MulFreeTree(4,_addlist1,inter,list,statTree);
  680                     PROG_EXIT(statement_exit,"statement")
  681 #line 574 "chopb.met"
  682                 }
  683 #line 574 "chopb.met"
  684             }
  685 #line 574 "chopb.met"
  686 #line 575 "chopb.met"
  687             ReplaceTree(statTree ,3 ,inter );
  688 #line 575 "chopb.met"
  689 #line 576 "chopb.met"
  690             (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
  691 #line 576 "chopb.met"
  692             if (  !SEE_TOKEN( PFER,")") || !(CommTerm(),1)) {
  693 #line 576 "chopb.met"
  694                 MulFreeTree(4,_addlist1,inter,list,statTree);
  695                 TOKEN_EXIT(statement_exit,")")
  696 #line 576 "chopb.met"
  697             } else {
  698 #line 576 "chopb.met"
  699                 tokenAhead = 0 ;
  700 #line 576 "chopb.met"
  701             }
  702 #line 576 "chopb.met"
  703 #line 577 "chopb.met"
  704             if ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN(PVIR,";") && (tokenAhead = 0,CommTerm(),1)){
  705 #line 577 "chopb.met"
  706 #line 577 "chopb.met"
  707             }
  708 #line 577 "chopb.met"
  709 #line 577 "chopb.met"
  710             break;
  711 #line 577 "chopb.met"
  712 #line 580 "chopb.met"
  713         case FORALLSONS : 
  714 #line 580 "chopb.met"
  715             tokenAhead = 0 ;
  716 #line 580 "chopb.met"
  717             CommTerm();
  718 #line 580 "chopb.met"
  719 #line 581 "chopb.met"
  720 #line 582 "chopb.met"
  721             {
  722 #line 582 "chopb.met"
  723                 PPTREE _ptRes0=0;
  724 #line 582 "chopb.met"
  725                 _ptRes0= MakeTree(FORALLSONS, 2);
  726 #line 582 "chopb.met"
  727                 statTree=_ptRes0;
  728 #line 582 "chopb.met"
  729             }
  730 #line 582 "chopb.met"
  731 #line 583 "chopb.met"
  732             (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
  733 #line 583 "chopb.met"
  734             if (  !SEE_TOKEN( POUV,"(") || !(CommTerm(),1)) {
  735 #line 583 "chopb.met"
  736                 MulFreeTree(4,_addlist1,inter,list,statTree);
  737                 TOKEN_EXIT(statement_exit,"(")
  738 #line 583 "chopb.met"
  739             } else {
  740 #line 583 "chopb.met"
  741                 tokenAhead = 0 ;
  742 #line 583 "chopb.met"
  743             }
  744 #line 583 "chopb.met"
  745 #line 584 "chopb.met"
  746             {
  747 #line 584 "chopb.met"
  748                 PPTREE _ptTree0=0;
  749 #line 584 "chopb.met"
  750                 if ( (_ptTree0=NQUICK_CALL(_Tak(assignment_expression)(error_free), 15, chopb))== (PPTREE) -1 ) {
  751 #line 584 "chopb.met"
  752                     MulFreeTree(5,_ptTree0,_addlist1,inter,list,statTree);
  753                     PROG_EXIT(statement_exit,"statement")
  754 #line 584 "chopb.met"
  755                 }
  756 #line 584 "chopb.met"
  757                 ReplaceTree(statTree , 1 , _ptTree0);
  758 #line 584 "chopb.met"
  759             }
  760 #line 584 "chopb.met"
  761 #line 585 "chopb.met"
  762             (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
  763 #line 585 "chopb.met"
  764             if (  !SEE_TOKEN( VIRG,",") || !(CommTerm(),1)) {
  765 #line 585 "chopb.met"
  766                 MulFreeTree(4,_addlist1,inter,list,statTree);
  767                 TOKEN_EXIT(statement_exit,",")
  768 #line 585 "chopb.met"
  769             } else {
  770 #line 585 "chopb.met"
  771                 tokenAhead = 0 ;
  772 #line 585 "chopb.met"
  773             }
  774 #line 585 "chopb.met"
  775 #line 586 "chopb.met"
  776             {
  777 #line 586 "chopb.met"
  778                 PPTREE _ptTree0=0;
  779 #line 586 "chopb.met"
  780                 if ( (_ptTree0=NQUICK_CALL(_Tak(statement)(error_free), 119, chopb))== (PPTREE) -1 ) {
  781 #line 586 "chopb.met"
  782                     MulFreeTree(5,_ptTree0,_addlist1,inter,list,statTree);
  783                     PROG_EXIT(statement_exit,"statement")
  784 #line 586 "chopb.met"
  785                 }
  786 #line 586 "chopb.met"
  787                 ReplaceTree(statTree , 2 , _ptTree0);
  788 #line 586 "chopb.met"
  789             }
  790 #line 586 "chopb.met"
  791 #line 587 "chopb.met"
  792             (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
  793 #line 587 "chopb.met"
  794             if (  !SEE_TOKEN( PFER,")") || !(CommTerm(),1)) {
  795 #line 587 "chopb.met"
  796                 MulFreeTree(4,_addlist1,inter,list,statTree);
  797                 TOKEN_EXIT(statement_exit,")")
  798 #line 587 "chopb.met"
  799             } else {
  800 #line 587 "chopb.met"
  801                 tokenAhead = 0 ;
  802 #line 587 "chopb.met"
  803             }
  804 #line 587 "chopb.met"
  805 #line 588 "chopb.met"
  806             if ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN(PVIR,";") && (tokenAhead = 0,CommTerm(),1)){
  807 #line 588 "chopb.met"
  808 #line 588 "chopb.met"
  809             }
  810 #line 588 "chopb.met"
  811 #line 588 "chopb.met"
  812             break;
  813 #line 588 "chopb.met"
  814 #line 592 "chopb.met"
  815         default : 
  816 #line 592 "chopb.met"
  817 #line 592 "chopb.met"
  818             if (NPUSH_CALL_AFF_VERIF(statTree = ,_Tak(cplus::statement), 141, chopb)){
  819 #line 592 "chopb.met"
  820 #line 593 "chopb.met"
  821                 {
  822 #line 593 "chopb.met"
  823                     _retValue = statTree ;
  824 #line 593 "chopb.met"
  825                     goto statement_ret;
  826 #line 593 "chopb.met"
  827                     
  828 #line 593 "chopb.met"
  829                 }
  830 #line 593 "chopb.met"
  831             } else {
  832 #line 593 "chopb.met"
  833 #line 595 "chopb.met"
  834 #line 596 "chopb.met"
  835                 if (NPUSH_CALL_VERIF(_Tak(ident_mul), 65, chopb)){
  836 #line 596 "chopb.met"
  837 #line 599 "chopb.met"
  838                     
  839 #line 599 "chopb.met"
  840                     MulFreeTree(4,_addlist1,inter,list,statTree);
  841                     LEX_EXIT ("",0);
  842 #line 599 "chopb.met"
  843                     goto statement_exit;
  844 #line 599 "chopb.met"
  845 #line 600 "chopb.met"
  846                 } else {
  847 #line 600 "chopb.met"
  848 #line 602 "chopb.met"
  849 #line 603 "chopb.met"
  850                     if ( (statTree=NQUICK_CALL(_Tak(expression)(error_free), 52, chopb))== (PPTREE) -1 ) {
  851 #line 603 "chopb.met"
  852                         MulFreeTree(4,_addlist1,inter,list,statTree);
  853                         PROG_EXIT(statement_exit,"statement")
  854 #line 603 "chopb.met"
  855                     }
  856 #line 603 "chopb.met"
  857 #line 604 "chopb.met"
  858                     if ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN(PVIR,";") && (tokenAhead = 0,CommTerm(),1)){
  859 #line 604 "chopb.met"
  860 #line 604 "chopb.met"
  861                     }
  862 #line 604 "chopb.met"
  863 #line 604 "chopb.met"
  864                 }
  865 #line 604 "chopb.met"
  866 #line 604 "chopb.met"
  867             }
  868 #line 604 "chopb.met"
  869             break;
  870 #line 604 "chopb.met"
  871     }
  872 #line 604 "chopb.met"
  873 #line 609 "chopb.met"
  874     {
  875 #line 609 "chopb.met"
  876         _retValue = statTree ;
  877 #line 609 "chopb.met"
  878         goto statement_ret;
  879 #line 609 "chopb.met"
  880         
  881 #line 609 "chopb.met"
  882     }
  883 #line 609 "chopb.met"
  884 #line 609 "chopb.met"
  885 #line 609 "chopb.met"
  886 
  887 #line 610 "chopb.met"
  888 (tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
  889 #line 610 "chopb.met"
  890 if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
  891 #line 610 "chopb.met"
  892 return((PPTREE) 0);
  893 #line 610 "chopb.met"
  894 
  895 #line 610 "chopb.met"
  896 statement_exit :
  897 #line 610 "chopb.met"
  898 
  899 #line 610 "chopb.met"
  900     _Debug = TRACE_RULE("statement",TRACE_EXIT,(PPTREE)0);
  901 #line 610 "chopb.met"
  902     _funcLevel--;
  903 #line 610 "chopb.met"
  904     return((PPTREE) -1) ;
  905 #line 610 "chopb.met"
  906 
  907 #line 610 "chopb.met"
  908 statement_ret :
  909 #line 610 "chopb.met"
  910     
  911 #line 610 "chopb.met"
  912     _Debug = TRACE_RULE("statement",TRACE_RETURN,_retValue);
  913 #line 610 "chopb.met"
  914     (tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
  915 #line 610 "chopb.met"
  916     if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,_retValue,lastTree); else {_lastTree=_retValue;_funcLevel--;}
  917 #line 610 "chopb.met"
  918     return _retValue ;
  919 #line 610 "chopb.met"
  920 }
  921 #line 610 "chopb.met"
  922 
  923 #line 610 "chopb.met"
  924 #line 645 "chopb.met"
  925 PPTREE chopb::take_follow ( int error_free)
  926 #line 645 "chopb.met"
  927 {
  928 #line 645 "chopb.met"
  929     int  _oldinMakeTree = inMakeTree;
  930 #line 645 "chopb.met"
  931     PFILE_POSITION _filePosition = (PFILE_POSITION) 0;
  932 
  933 #line 645 "chopb.met"
  934     int _value,_nbPre = 0 ;
  935 #line 645 "chopb.met"
  936     PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
  937 #line 645 "chopb.met"
  938     int _Debug = TRACE_RULE("take_follow",TRACE_ENTER,(PPTREE)0);
  939 #line 645 "chopb.met"
  940     PPTREE lastTree = _lastTree,_retValue ;
  941 #line 645 "chopb.met"
  942 #line 645 "chopb.met"
  943     PPTREE _addlist1 = (PPTREE) 0;
  944 #line 645 "chopb.met"
  945 #line 645 "chopb.met"
  946     PPTREE statTree = (PPTREE) 0,list = (PPTREE) 0,name = (PPTREE) 0;
  947 #line 645 "chopb.met"
  948 #line 647 "chopb.met"
  949 #line 648 "chopb.met"
  950     {
  951 #line 648 "chopb.met"
  952         PPTREE _ptRes0=0;
  953 #line 648 "chopb.met"
  954         _ptRes0= MakeTree(NODE_TREE, 1);
  955 #line 648 "chopb.met"
  956         statTree=_ptRes0;
  957 #line 648 "chopb.met"
  958     }
  959 #line 648 "chopb.met"
  960 #line 649 "chopb.met"
  961     if ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN(INFESUPE,"<>") && (tokenAhead = 0,CommTerm(),1)){
  962 #line 649 "chopb.met"
  963 #line 649 "chopb.met"
  964     } else {
  965 #line 649 "chopb.met"
  966 #line 651 "chopb.met"
  967 #line 652 "chopb.met"
  968         (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
  969 #line 652 "chopb.met"
  970         if (  !SEE_TOKEN( INFE,"<") || !(CommTerm(),1)) {
  971 #line 652 "chopb.met"
  972             MulFreeTree(4,_addlist1,list,name,statTree);
  973             TOKEN_EXIT(take_follow_exit,"<")
  974 #line 652 "chopb.met"
  975         } else {
  976 #line 652 "chopb.met"
  977             tokenAhead = 0 ;
  978 #line 652 "chopb.met"
  979         }
  980 #line 652 "chopb.met"
  981 #line 653 "chopb.met"
  982         if (NPUSH_CALL_AFF_VERIF(name = ,_Tak(qualified_name), 100, chopb)){
  983 #line 653 "chopb.met"
  984 #line 654 "chopb.met"
  985             list =AddList(list ,name );
  986 #line 654 "chopb.met"
  987 #line 654 "chopb.met"
  988         } else {
  989 #line 654 "chopb.met"
  990 #line 656 "chopb.met"
  991             list =AddList(list , (PPTREE) 0);
  992 #line 656 "chopb.met"
  993         }
  994 #line 656 "chopb.met"
  995 #line 657 "chopb.met"
  996         {
  997 #line 657 "chopb.met"
  998             inMakeTree = 1 ;
  999 #line 657 "chopb.met"
 1000 #line 659 "chopb.met"
 1001 #line 659 "chopb.met"
 1002             _addlist1 = list ;
 1003 #line 659 "chopb.met"
 1004 #line 658 "chopb.met"
 1005             while ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN(VIRG,",") && (tokenAhead = 0,CommTerm(),1)) { 
 1006 #line 658 "chopb.met"
 1007 #line 659 "chopb.met"
 1008 #line 659 "chopb.met"
 1009                 {
 1010 #line 659 "chopb.met"
 1011                     PPTREE _ptTree0=0;
 1012 #line 659 "chopb.met"
 1013                     if ( (_ptTree0=NQUICK_CALL(_Tak(take_follow_super)(error_free), 146, chopb))== (PPTREE) -1 ) {
 1014 #line 659 "chopb.met"
 1015                         MulFreeTree(5,_ptTree0,_addlist1,list,name,statTree);
 1016                         PROG_EXIT(take_follow_exit,"take_follow")
 1017 #line 659 "chopb.met"
 1018                     }
 1019 #line 659 "chopb.met"
 1020                     _addlist1 =AddList(_addlist1 , _ptTree0);
 1021 #line 659 "chopb.met"
 1022                 }
 1023 #line 659 "chopb.met"
 1024 #line 659 "chopb.met"
 1025                 if (list){
 1026 #line 659 "chopb.met"
 1027 #line 659 "chopb.met"
 1028                     _addlist1 = SonTree (_addlist1 ,2 );
 1029 #line 659 "chopb.met"
 1030                 } else {
 1031 #line 659 "chopb.met"
 1032 #line 659 "chopb.met"
 1033                     list = _addlist1 ;
 1034 #line 659 "chopb.met"
 1035                 }
 1036 #line 659 "chopb.met"
 1037             } 
 1038 #line 659 "chopb.met"
 1039             inMakeTree =  _oldinMakeTree;
 1040 #line 659 "chopb.met"
 1041         }
 1042 #line 659 "chopb.met"
 1043 #line 660 "chopb.met"
 1044         (tokenAhead == 17|| (LexSup(),TRACE_LEX(1)));
 1045 #line 660 "chopb.met"
 1046         if ( ! TERM_OR_META(MAKETREE_SUP,"MAKETREE_SUP") || !(CommTerm(),1)) {
 1047 #line 660 "chopb.met"
 1048             MulFreeTree(4,_addlist1,list,name,statTree);
 1049             TOKEN_EXIT(take_follow_exit,"MAKETREE_SUP")
 1050 #line 660 "chopb.met"
 1051         } else {
 1052 #line 660 "chopb.met"
 1053             tokenAhead = 0 ;
 1054 #line 660 "chopb.met"
 1055         }
 1056 #line 660 "chopb.met"
 1057 #line 660 "chopb.met"
 1058     }
 1059 #line 660 "chopb.met"
 1060 #line 662 "chopb.met"
 1061     ReplaceTree(statTree ,1 ,list );
 1062 #line 662 "chopb.met"
 1063 #line 662 "chopb.met"
 1064 #line 664 "chopb.met"
 1065     {
 1066 #line 664 "chopb.met"
 1067         _retValue = statTree ;
 1068 #line 664 "chopb.met"
 1069         goto take_follow_ret;
 1070 #line 664 "chopb.met"
 1071         
 1072 #line 664 "chopb.met"
 1073     }
 1074 #line 664 "chopb.met"
 1075 #line 664 "chopb.met"
 1076 #line 664 "chopb.met"
 1077 
 1078 #line 665 "chopb.met"
 1079 (tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
 1080 #line 665 "chopb.met"
 1081 if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
 1082 #line 665 "chopb.met"
 1083 inMakeTree =  _oldinMakeTree;
 1084 #line 665 "chopb.met"
 1085 return((PPTREE) 0);
 1086 #line 665 "chopb.met"
 1087 
 1088 #line 665 "chopb.met"
 1089 take_follow_exit :
 1090 #line 665 "chopb.met"
 1091 
 1092 #line 665 "chopb.met"
 1093     _Debug = TRACE_RULE("take_follow",TRACE_EXIT,(PPTREE)0);
 1094 #line 665 "chopb.met"
 1095     _funcLevel--;
 1096 #line 665 "chopb.met"
 1097     inMakeTree =  _oldinMakeTree;
 1098 #line 665 "chopb.met"
 1099     return((PPTREE) -1) ;
 1100 #line 665 "chopb.met"
 1101 
 1102 #line 665 "chopb.met"
 1103 take_follow_ret :
 1104 #line 665 "chopb.met"
 1105     
 1106 #line 665 "chopb.met"
 1107     _Debug = TRACE_RULE("take_follow",TRACE_RETURN,_retValue);
 1108 #line 665 "chopb.met"
 1109     (tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
 1110 #line 665 "chopb.met"
 1111     if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,_retValue,lastTree); else {_lastTree=_retValue;_funcLevel--;}
 1112 #line 665 "chopb.met"
 1113     inMakeTree =  _oldinMakeTree;
 1114 #line 665 "chopb.met"
 1115     return _retValue ;
 1116 #line 665 "chopb.met"
 1117 }
 1118 #line 665 "chopb.met"
 1119 
 1120 #line 665 "chopb.met"
 1121 #line 629 "chopb.met"
 1122 PPTREE chopb::take_follow_list ( int error_free)
 1123 #line 629 "chopb.met"
 1124 {
 1125 #line 629 "chopb.met"
 1126     int  _oldor_not_ok = or_not_ok;
 1127 #line 629 "chopb.met"
 1128     PFILE_POSITION _filePosition = (PFILE_POSITION) 0;
 1129 
 1130 #line 629 "chopb.met"
 1131     int _value,_nbPre = 0 ;
 1132 #line 629 "chopb.met"
 1133     PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
 1134 #line 629 "chopb.met"
 1135     int _Debug = TRACE_RULE("take_follow_list",TRACE_ENTER,(PPTREE)0);
 1136 #line 629 "chopb.met"
 1137     PPTREE lastTree = _lastTree,_retValue ;
 1138 #line 629 "chopb.met"
 1139 #line 629 "chopb.met"
 1140     PPTREE _addlist1 = (PPTREE) 0;
 1141 #line 629 "chopb.met"
 1142 #line 629 "chopb.met"
 1143     PPTREE statTree = (PPTREE) 0,list = (PPTREE) 0,inter = (PPTREE) 0;
 1144 #line 629 "chopb.met"
 1145 #line 631 "chopb.met"
 1146     {
 1147 #line 631 "chopb.met"
 1148         or_not_ok = 1 ;
 1149 #line 631 "chopb.met"
 1150 #line 632 "chopb.met"
 1151 #line 633 "chopb.met"
 1152         {
 1153 #line 633 "chopb.met"
 1154             PPTREE _ptRes0=0;
 1155 #line 633 "chopb.met"
 1156             _ptRes0= MakeTree(NODE_LIST, 1);
 1157 #line 633 "chopb.met"
 1158             statTree=_ptRes0;
 1159 #line 633 "chopb.met"
 1160         }
 1161 #line 633 "chopb.met"
 1162 #line 634 "chopb.met"
 1163         if (NPUSH_CALL_AFF_VERIF(inter = ,_Tak(take_follow_super), 146, chopb)){
 1164 #line 634 "chopb.met"
 1165 #line 635 "chopb.met"
 1166 #line 636 "chopb.met"
 1167             list =AddList(list ,inter );
 1168 #line 636 "chopb.met"
 1169 #line 636 "chopb.met"
 1170             _addlist1 = list ;
 1171 #line 636 "chopb.met"
 1172 #line 637 "chopb.met"
 1173             while ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN(VBARVBAR,"||") && (tokenAhead = 0,CommTerm(),1)) { 
 1174 #line 637 "chopb.met"
 1175 #line 638 "chopb.met"
 1176 #line 638 "chopb.met"
 1177                 {
 1178 #line 638 "chopb.met"
 1179                     PPTREE _ptTree0=0;
 1180 #line 638 "chopb.met"
 1181                     if ( (_ptTree0=NQUICK_CALL(_Tak(take_follow_super)(error_free), 146, chopb))== (PPTREE) -1 ) {
 1182 #line 638 "chopb.met"
 1183                         MulFreeTree(5,_ptTree0,_addlist1,inter,list,statTree);
 1184                         PROG_EXIT(take_follow_list_exit,"take_follow_list")
 1185 #line 638 "chopb.met"
 1186                     }
 1187 #line 638 "chopb.met"
 1188                     _addlist1 =AddList(_addlist1 , _ptTree0);
 1189 #line 638 "chopb.met"
 1190                 }
 1191 #line 638 "chopb.met"
 1192 #line 638 "chopb.met"
 1193                 if (list){
 1194 #line 638 "chopb.met"
 1195 #line 638 "chopb.met"
 1196                     _addlist1 = SonTree (_addlist1 ,2 );
 1197 #line 638 "chopb.met"
 1198                 } else {
 1199 #line 638 "chopb.met"
 1200 #line 638 "chopb.met"
 1201                     list = _addlist1 ;
 1202 #line 638 "chopb.met"
 1203                 }
 1204 #line 638 "chopb.met"
 1205             } 
 1206 #line 638 "chopb.met"
 1207 #line 638 "chopb.met"
 1208 #line 638 "chopb.met"
 1209         }
 1210 #line 638 "chopb.met"
 1211 #line 640 "chopb.met"
 1212         ReplaceTree(statTree ,1 ,list );
 1213 #line 640 "chopb.met"
 1214 #line 640 "chopb.met"
 1215         or_not_ok =  _oldor_not_ok;
 1216 #line 640 "chopb.met"
 1217     }
 1218 #line 640 "chopb.met"
 1219 #line 642 "chopb.met"
 1220     {
 1221 #line 642 "chopb.met"
 1222         _retValue = statTree ;
 1223 #line 642 "chopb.met"
 1224         goto take_follow_list_ret;
 1225 #line 642 "chopb.met"
 1226         
 1227 #line 642 "chopb.met"
 1228     }
 1229 #line 642 "chopb.met"
 1230 #line 642 "chopb.met"
 1231 #line 642 "chopb.met"
 1232 
 1233 #line 643 "chopb.met"
 1234 (tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
 1235 #line 643 "chopb.met"
 1236 if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
 1237 #line 643 "chopb.met"
 1238 or_not_ok =  _oldor_not_ok;
 1239 #line 643 "chopb.met"
 1240 return((PPTREE) 0);
 1241 #line 643 "chopb.met"
 1242 
 1243 #line 643 "chopb.met"
 1244 take_follow_list_exit :
 1245 #line 643 "chopb.met"
 1246 
 1247 #line 643 "chopb.met"
 1248     _Debug = TRACE_RULE("take_follow_list",TRACE_EXIT,(PPTREE)0);
 1249 #line 643 "chopb.met"
 1250     _funcLevel--;
 1251 #line 643 "chopb.met"
 1252     or_not_ok =  _oldor_not_ok;
 1253 #line 643 "chopb.met"
 1254     return((PPTREE) -1) ;
 1255 #line 643 "chopb.met"
 1256 
 1257 #line 643 "chopb.met"
 1258 take_follow_list_ret :
 1259 #line 643 "chopb.met"
 1260     
 1261 #line 643 "chopb.met"
 1262     _Debug = TRACE_RULE("take_follow_list",TRACE_RETURN,_retValue);
 1263 #line 643 "chopb.met"
 1264     (tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
 1265 #line 643 "chopb.met"
 1266     if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,_retValue,lastTree); else {_lastTree=_retValue;_funcLevel--;}
 1267 #line 643 "chopb.met"
 1268     or_not_ok =  _oldor_not_ok;
 1269 #line 643 "chopb.met"
 1270     return _retValue ;
 1271 #line 643 "chopb.met"
 1272 }
 1273 #line 643 "chopb.met"
 1274 
 1275 #line 643 "chopb.met"
 1276 #line 612 "chopb.met"
 1277 PPTREE chopb::take_follow_super ( int error_free)
 1278 #line 612 "chopb.met"
 1279 {
 1280 #line 612 "chopb.met"
 1281     PFILE_POSITION _filePosition = (PFILE_POSITION) 0;
 1282 
 1283 #line 612 "chopb.met"
 1284     int _value,_nbPre = 0 ;
 1285 #line 612 "chopb.met"
 1286     PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
 1287 #line 612 "chopb.met"
 1288     int _Debug = TRACE_RULE("take_follow_super",TRACE_ENTER,(PPTREE)0);
 1289 #line 612 "chopb.met"
 1290     PPTREE lastTree = _lastTree,_retValue ;
 1291 #line 612 "chopb.met"
 1292 #line 612 "chopb.met"
 1293     PPTREE identTree = (PPTREE) 0;
 1294 #line 612 "chopb.met"
 1295 #line 614 "chopb.met"
 1296     (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
 1297 #line 614 "chopb.met"
 1298     switch( lexEl.Value) {
 1299 #line 614 "chopb.met"
 1300 #line 615 "chopb.met"
 1301         case POINPOINPOIN : 
 1302 #line 615 "chopb.met"
 1303             tokenAhead = 0 ;
 1304 #line 615 "chopb.met"
 1305             CommTerm();
 1306 #line 615 "chopb.met"
 1307 #line 615 "chopb.met"
 1308             {
 1309 #line 615 "chopb.met"
 1310                 PPTREE _ptTree0=0;
 1311 #line 615 "chopb.met"
 1312                 if ( (_ptTree0=NQUICK_CALL(_Tak(take_follow_list)(error_free), 145, chopb))== (PPTREE) -1 ) {
 1313 #line 615 "chopb.met"
 1314                     MulFreeTree(2,_ptTree0,identTree);
 1315                     PROG_EXIT(take_follow_super_exit,"take_follow_super")
 1316 #line 615 "chopb.met"
 1317                 }
 1318 #line 615 "chopb.met"
 1319                 _retValue =_ptTree0;
 1320 #line 615 "chopb.met"
 1321                 goto take_follow_super_ret;
 1322 #line 615 "chopb.met"
 1323             }
 1324 #line 615 "chopb.met"
 1325             break;
 1326 #line 615 "chopb.met"
 1327 #line 618 "chopb.met"
 1328         case POUV : 
 1329 #line 618 "chopb.met"
 1330             tokenAhead = 0 ;
 1331 #line 618 "chopb.met"
 1332             CommTerm();
 1333 #line 618 "chopb.met"
 1334 #line 617 "chopb.met"
 1335             if ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN(PFER,")") && (tokenAhead = 0,CommTerm(),1)){
 1336 #line 617 "chopb.met"
 1337 #line 618 "chopb.met"
 1338                 {
 1339 #line 618 "chopb.met"
 1340                     PPTREE _ptTree0=0;
 1341 #line 618 "chopb.met"
 1342                     {
 1343 #line 618 "chopb.met"
 1344                         PPTREE _ptRes1=0;
 1345 #line 618 "chopb.met"
 1346                         _ptRes1= MakeTree(NIL, 0);
 1347 #line 618 "chopb.met"
 1348                         _ptTree0=_ptRes1;
 1349 #line 618 "chopb.met"
 1350                     }
 1351 #line 618 "chopb.met"
 1352                     _retValue =_ptTree0;
 1353 #line 618 "chopb.met"
 1354                     goto take_follow_super_ret;
 1355 #line 618 "chopb.met"
 1356                 }
 1357 #line 618 "chopb.met"
 1358             } else {
 1359 #line 618 "chopb.met"
 1360 #line 620 "chopb.met"
 1361 #line 621 "chopb.met"
 1362                 if ( (identTree=NQUICK_CALL(_Tak(assignment_expression)(error_free), 15, chopb))== (PPTREE) -1 ) {
 1363 #line 621 "chopb.met"
 1364                     MulFreeTree(1,identTree);
 1365                     PROG_EXIT(take_follow_super_exit,"take_follow_super")
 1366 #line 621 "chopb.met"
 1367                 }
 1368 #line 621 "chopb.met"
 1369 #line 622 "chopb.met"
 1370                 (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
 1371 #line 622 "chopb.met"
 1372                 if (  !SEE_TOKEN( PFER,")") || !(CommTerm(),1)) {
 1373 #line 622 "chopb.met"
 1374                     MulFreeTree(1,identTree);
 1375                     TOKEN_EXIT(take_follow_super_exit,")")
 1376 #line 622 "chopb.met"
 1377                 } else {
 1378 #line 622 "chopb.met"
 1379                     tokenAhead = 0 ;
 1380 #line 622 "chopb.met"
 1381                 }
 1382 #line 622 "chopb.met"
 1383 #line 623 "chopb.met"
 1384                 {
 1385 #line 623 "chopb.met"
 1386                     _retValue = identTree ;
 1387 #line 623 "chopb.met"
 1388                     goto take_follow_super_ret;
 1389 #line 623 "chopb.met"
 1390                     
 1391 #line 623 "chopb.met"
 1392                 }
 1393 #line 623 "chopb.met"
 1394 #line 623 "chopb.met"
 1395             }
 1396 #line 623 "chopb.met"
 1397             break;
 1398 #line 623 "chopb.met"
 1399 #line 625 "chopb.met"
 1400         default : 
 1401 #line 625 "chopb.met"
 1402 #line 625 "chopb.met"
 1403             {
 1404 #line 625 "chopb.met"
 1405                 PPTREE _ptTree0=0;
 1406 #line 625 "chopb.met"
 1407                 if ( (_ptTree0=NQUICK_CALL(_Tak(assignment_expression)(error_free), 15, chopb))== (PPTREE) -1 ) {
 1408 #line 625 "chopb.met"
 1409                     MulFreeTree(2,_ptTree0,identTree);
 1410                     PROG_EXIT(take_follow_super_exit,"take_follow_super")
 1411 #line 625 "chopb.met"
 1412                 }
 1413 #line 625 "chopb.met"
 1414                 _retValue =_ptTree0;
 1415 #line 625 "chopb.met"
 1416                 goto take_follow_super_ret;
 1417 #line 625 "chopb.met"
 1418             }
 1419 #line 625 "chopb.met"
 1420             break;
 1421 #line 625 "chopb.met"
 1422     }
 1423 #line 625 "chopb.met"
 1424 #line 625 "chopb.met"
 1425 #line 626 "chopb.met"
 1426 (tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
 1427 #line 626 "chopb.met"
 1428 if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
 1429 #line 626 "chopb.met"
 1430 return((PPTREE) 0);
 1431 #line 626 "chopb.met"
 1432 
 1433 #line 626 "chopb.met"
 1434 take_follow_super_exit :
 1435 #line 626 "chopb.met"
 1436 
 1437 #line 626 "chopb.met"
 1438     _Debug = TRACE_RULE("take_follow_super",TRACE_EXIT,(PPTREE)0);
 1439 #line 626 "chopb.met"
 1440     _funcLevel--;
 1441 #line 626 "chopb.met"
 1442     return((PPTREE) -1) ;
 1443 #line 626 "chopb.met"
 1444 
 1445 #line 626 "chopb.met"
 1446 take_follow_super_ret :
 1447 #line 626 "chopb.met"
 1448     
 1449 #line 626 "chopb.met"
 1450     _Debug = TRACE_RULE("take_follow_super",TRACE_RETURN,_retValue);
 1451 #line 626 "chopb.met"
 1452     (tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
 1453 #line 626 "chopb.met"
 1454     if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,_retValue,lastTree); else {_lastTree=_retValue;_funcLevel--;}
 1455 #line 626 "chopb.met"
 1456     return _retValue ;
 1457 #line 626 "chopb.met"
 1458 }
 1459 #line 626 "chopb.met"
 1460 
 1461 #line 626 "chopb.met"