
/*************************************************************************/
/*                                                                       */
/*        Produced by MetaGen version 2.0  -    1989-1995                 */
/*       Syntaxic Analyzer Meta Generator developped by                  */
/*                  Eric Lavillonniere                                   */
/*                                                                       */
/*************************************************************************/

#include "token.h"
#include "chopb.h"


#line 274 "chopb.met"
PPTREE chopb::assignment_expression ( int error_free)
#line 274 "chopb.met"
{
#line 274 "chopb.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 274 "chopb.met"
    int _value,_nbPre = 0 ;
#line 274 "chopb.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 274 "chopb.met"
    int _Debug = TRACE_RULE("assignment_expression",TRACE_ENTER,(PPTREE)0);
#line 274 "chopb.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 274 "chopb.met"
#line 274 "chopb.met"
    PPTREE expTree = (PPTREE) 0,expFollow = (PPTREE) 0;
#line 274 "chopb.met"
#line 276 "chopb.met"
    if ( (expTree=NQUICK_CALL(_Tak(conditional_expression)(error_free), 23, chopb))== (PPTREE) -1 ) {
#line 276 "chopb.met"
        PROG_EXIT(assignment_expression_exit,"assignment_expression")
#line 276 "chopb.met"
    }
#line 276 "chopb.met"
#line 277 "chopb.met"
    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 277 "chopb.met"
    switch( lexEl.Value) {
#line 277 "chopb.met"
#line 278 "chopb.met"
        case ETOIETOIEGAL : 
#line 278 "chopb.met"
            tokenAhead = 0 ;
#line 278 "chopb.met"
            CommTerm();
#line 278 "chopb.met"
#line 278 "chopb.met"
            {
#line 278 "chopb.met"
                PPTREE _ptTree0;
#line 278 "chopb.met"
                {
#line 278 "chopb.met"
                    PPTREE _ptTree1,_ptRes1;
#line 278 "chopb.met"
                    _ptRes1= MakeTree(EXPO_AFF, 2);
#line 278 "chopb.met"
                    ReplaceTree(_ptRes1, 1, expTree );
#line 278 "chopb.met"
                    if ( (_ptTree1=NQUICK_CALL(_Tak(assignment_expression)(error_free), 11, chopb))== (PPTREE) -1 ) {
#line 278 "chopb.met"
                        PROG_EXIT(assignment_expression_exit,"assignment_expression")
#line 278 "chopb.met"
                    }
#line 278 "chopb.met"
                    ReplaceTree(_ptRes1, 2, _ptTree1);
#line 278 "chopb.met"
                    _ptTree0=_ptRes1;
#line 278 "chopb.met"
                }
#line 278 "chopb.met"
                _retValue =_ptTree0;
#line 278 "chopb.met"
                goto assignment_expression_ret;
#line 278 "chopb.met"
            }
#line 278 "chopb.met"
            break;
#line 278 "chopb.met"
#line 281 "chopb.met"
        default : 
#line 281 "chopb.met"
#line 281 "chopb.met"
            if (NPUSH_CALL_AFF_VERIF(expFollow = ,_Tak(assignment_end), 10, chopb)){
#line 281 "chopb.met"
#line 282 "chopb.met"
#line 283 "chopb.met"
                ReplaceTree(expFollow ,1 ,expTree );
#line 283 "chopb.met"
#line 284 "chopb.met"
                expTree = expFollow ;
#line 284 "chopb.met"
#line 285 "chopb.met"
            }
#line 285 "chopb.met"
            break;
#line 285 "chopb.met"
    }
#line 285 "chopb.met"
#line 287 "chopb.met"
    {
#line 287 "chopb.met"
        _retValue = expTree ;
#line 287 "chopb.met"
        goto assignment_expression_ret;
#line 287 "chopb.met"
        
#line 287 "chopb.met"
    }
#line 287 "chopb.met"
#line 288 "chopb.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 288 "chopb.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 288 "chopb.met"
return((PPTREE) 0);
#line 288 "chopb.met"

#line 288 "chopb.met"
assignment_expression_exit :
#line 288 "chopb.met"

#line 288 "chopb.met"
    {
#line 288 "chopb.met"
        MulFreeTree(2,expFollow,expTree);
#line 288 "chopb.met"
    }
#line 288 "chopb.met"
    _Debug = TRACE_RULE("assignment_expression",TRACE_EXIT,(PPTREE)0);
#line 288 "chopb.met"
    _funcLevel--;
#line 288 "chopb.met"
    return((PPTREE) -1) ;
#line 288 "chopb.met"

#line 288 "chopb.met"
assignment_expression_ret :
#line 288 "chopb.met"
    
#line 288 "chopb.met"
    _Debug = TRACE_RULE("assignment_expression",TRACE_RETURN,_retValue);
#line 288 "chopb.met"
    (tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 288 "chopb.met"
    if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,_retValue,lastTree); else {_lastTree=_retValue;_funcLevel--;}
#line 288 "chopb.met"
    return _retValue ;
#line 288 "chopb.met"
}
#line 288 "chopb.met"

#line 288 "chopb.met"
#line 373 "chopb.met"
PPTREE chopb::cast_expression_value ( int error_free)
#line 373 "chopb.met"
{
#line 373 "chopb.met"
    int  _oldinMakeTree = inMakeTree;
#line 373 "chopb.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 373 "chopb.met"
    int _value,_nbPre = 0 ;
#line 373 "chopb.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 373 "chopb.met"
    int _Debug = TRACE_RULE("cast_expression_value",TRACE_ENTER,(PPTREE)0);
#line 373 "chopb.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 373 "chopb.met"
#line 373 "chopb.met"
    PPTREE ret = (PPTREE) 0;
#line 373 "chopb.met"
#line 375 "chopb.met"
    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 375 "chopb.met"
    if (  !SEE_TOKEN( POUV,"(") || !(CommTerm(),1)) 
#line 375 "chopb.met"
        TOKEN_EXIT(cast_expression_value_exit,"(")
#line 375 "chopb.met"
#line 376 "chopb.met"
    {
#line 376 "chopb.met"
        inMakeTree = 0 ;
#line 376 "chopb.met"
#line 377 "chopb.met"
        if ( (ret=NQUICK_CALL(_Tak(type_name)(error_free), 118, chopb))== (PPTREE) -1 ) {
#line 377 "chopb.met"
            PROG_EXIT(cast_expression_value_exit,"cast_expression_value")
#line 377 "chopb.met"
        }
#line 377 "chopb.met"
        inMakeTree =  _oldinMakeTree;
#line 377 "chopb.met"
    }
#line 377 "chopb.met"
#line 378 "chopb.met"
    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 378 "chopb.met"
    if (  !SEE_TOKEN( PFER,")") || !(CommTerm(),1)) 
#line 378 "chopb.met"
        TOKEN_EXIT(cast_expression_value_exit,")")
#line 378 "chopb.met"
#line 379 "chopb.met"
    {
#line 379 "chopb.met"
        PPTREE _ptTree0;
#line 379 "chopb.met"
        {
#line 379 "chopb.met"
            PPTREE _ptTree1,_ptRes1;
#line 379 "chopb.met"
            _ptRes1= MakeTree(CAST, 2);
#line 379 "chopb.met"
            ReplaceTree(_ptRes1, 1, ret );
#line 379 "chopb.met"
            if ( (_ptTree1=NQUICK_CALL(_Tak(cast_expression)(error_free), 15, chopb))== (PPTREE) -1 ) {
#line 379 "chopb.met"
                PROG_EXIT(cast_expression_value_exit,"cast_expression_value")
#line 379 "chopb.met"
            }
#line 379 "chopb.met"
            ReplaceTree(_ptRes1, 2, _ptTree1);
#line 379 "chopb.met"
            _ptTree0=_ptRes1;
#line 379 "chopb.met"
        }
#line 379 "chopb.met"
        _retValue =_ptTree0;
#line 379 "chopb.met"
        goto cast_expression_value_ret;
#line 379 "chopb.met"
    }
#line 379 "chopb.met"
#line 380 "chopb.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 380 "chopb.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 380 "chopb.met"
inMakeTree =  _oldinMakeTree;
#line 380 "chopb.met"
return((PPTREE) 0);
#line 380 "chopb.met"

#line 380 "chopb.met"
cast_expression_value_exit :
#line 380 "chopb.met"

#line 380 "chopb.met"
    {
#line 380 "chopb.met"
        MulFreeTree(1,ret);
#line 380 "chopb.met"
    }
#line 380 "chopb.met"
    _Debug = TRACE_RULE("cast_expression_value",TRACE_EXIT,(PPTREE)0);
#line 380 "chopb.met"
    _funcLevel--;
#line 380 "chopb.met"
    inMakeTree =  _oldinMakeTree;
#line 380 "chopb.met"
    return((PPTREE) -1) ;
#line 380 "chopb.met"

#line 380 "chopb.met"
cast_expression_value_ret :
#line 380 "chopb.met"
    
#line 380 "chopb.met"
    _Debug = TRACE_RULE("cast_expression_value",TRACE_RETURN,_retValue);
#line 380 "chopb.met"
    (tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 380 "chopb.met"
    if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,_retValue,lastTree); else {_lastTree=_retValue;_funcLevel--;}
#line 380 "chopb.met"
    inMakeTree =  _oldinMakeTree;
#line 380 "chopb.met"
    return _retValue ;
#line 380 "chopb.met"
}
#line 380 "chopb.met"

#line 380 "chopb.met"
#line 382 "chopb.met"
PPTREE chopb::exclusive_or_expression ( int error_free)
#line 382 "chopb.met"
{
#line 382 "chopb.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 382 "chopb.met"
    int _value,_nbPre = 0 ;
#line 382 "chopb.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 382 "chopb.met"
    int _Debug = TRACE_RULE("exclusive_or_expression",TRACE_ENTER,(PPTREE)0);
#line 382 "chopb.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 382 "chopb.met"
#line 382 "chopb.met"
    PPTREE expTree = (PPTREE) 0,ret = (PPTREE) 0;
#line 382 "chopb.met"
#line 384 "chopb.met"
    if ( (expTree=NQUICK_CALL(_Tak(and_expression)(error_free), 5, chopb))== (PPTREE) -1 ) {
#line 384 "chopb.met"
        PROG_EXIT(exclusive_or_expression_exit,"exclusive_or_expression")
#line 384 "chopb.met"
    }
#line 384 "chopb.met"
#line 385 "chopb.met"
    while ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN(CHAP,"^") && (tokenAhead = 0,CommTerm(),1)) { 
#line 385 "chopb.met"
#line 386 "chopb.met"
        if (NPUSH_CALL_AFF_VERIF(ret = ,_Tak(and_expression), 5, chopb)){
#line 386 "chopb.met"
#line 387 "chopb.met"
            {
#line 387 "chopb.met"
                PPTREE _ptRes0;
#line 387 "chopb.met"
                _ptRes0= MakeTree(LXOR, 2);
#line 387 "chopb.met"
                ReplaceTree(_ptRes0, 1, expTree );
#line 387 "chopb.met"
                ReplaceTree(_ptRes0, 2, ret );
#line 387 "chopb.met"
                expTree=_ptRes0;
#line 387 "chopb.met"
            }
#line 387 "chopb.met"
        } else {
#line 387 "chopb.met"
#line 389 "chopb.met"
            {
#line 389 "chopb.met"
                PPTREE _ptRes0;
#line 389 "chopb.met"
                _ptRes0= MakeTree(LXOR, 2);
#line 389 "chopb.met"
                ReplaceTree(_ptRes0, 1, expTree );
#line 389 "chopb.met"
                expTree=_ptRes0;
#line 389 "chopb.met"
            }
#line 389 "chopb.met"
        }
#line 389 "chopb.met"
    } 
#line 389 "chopb.met"
#line 390 "chopb.met"
    {
#line 390 "chopb.met"
        _retValue = expTree ;
#line 390 "chopb.met"
        goto exclusive_or_expression_ret;
#line 390 "chopb.met"
        
#line 390 "chopb.met"
    }
#line 390 "chopb.met"
#line 391 "chopb.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 391 "chopb.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 391 "chopb.met"
return((PPTREE) 0);
#line 391 "chopb.met"

#line 391 "chopb.met"
exclusive_or_expression_exit :
#line 391 "chopb.met"

#line 391 "chopb.met"
    {
#line 391 "chopb.met"
        MulFreeTree(2,ret,expTree);
#line 391 "chopb.met"
    }
#line 391 "chopb.met"
    _Debug = TRACE_RULE("exclusive_or_expression",TRACE_EXIT,(PPTREE)0);
#line 391 "chopb.met"
    _funcLevel--;
#line 391 "chopb.met"
    return((PPTREE) -1) ;
#line 391 "chopb.met"

#line 391 "chopb.met"
exclusive_or_expression_ret :
#line 391 "chopb.met"
    
#line 391 "chopb.met"
    _Debug = TRACE_RULE("exclusive_or_expression",TRACE_RETURN,_retValue);
#line 391 "chopb.met"
    (tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 391 "chopb.met"
    if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,_retValue,lastTree); else {_lastTree=_retValue;_funcLevel--;}
#line 391 "chopb.met"
    return _retValue ;
#line 391 "chopb.met"
}
#line 391 "chopb.met"

#line 391 "chopb.met"
#line 260 "chopb.met"
PPTREE chopb::expression ( int error_free)
#line 260 "chopb.met"
{
#line 260 "chopb.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 260 "chopb.met"
    int _value,_nbPre = 0 ;
#line 260 "chopb.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 260 "chopb.met"
    int _Debug = TRACE_RULE("expression",TRACE_ENTER,(PPTREE)0);
#line 260 "chopb.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 260 "chopb.met"
#line 260 "chopb.met"
    PPTREE _addlist1 = (PPTREE) 0;
#line 260 "chopb.met"
#line 260 "chopb.met"
    PPTREE expTree = (PPTREE) 0,list = (PPTREE) 0;
#line 260 "chopb.met"
#line 262 "chopb.met"
    if ( (expTree=NQUICK_CALL(_Tak(assignment_expression)(error_free), 11, chopb))== (PPTREE) -1 ) {
#line 262 "chopb.met"
        PROG_EXIT(expression_exit,"expression")
#line 262 "chopb.met"
    }
#line 262 "chopb.met"
#line 263 "chopb.met"
    if ((! (inMakeTree)) && 
#line 263 "chopb.met"
       ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN( VIRG,","))){
#line 263 "chopb.met"
#line 264 "chopb.met"
#line 265 "chopb.met"
        list =AddList(list ,expTree );
#line 265 "chopb.met"
#line 265 "chopb.met"
        _addlist1 = list ;
#line 265 "chopb.met"
#line 266 "chopb.met"
        while ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN(VIRG,",") && (tokenAhead = 0,CommTerm(),1)) { 
#line 266 "chopb.met"
#line 267 "chopb.met"
#line 267 "chopb.met"
            {
#line 267 "chopb.met"
                PPTREE _ptTree0;
#line 267 "chopb.met"
                if ( (_ptTree0=NQUICK_CALL(_Tak(assignment_expression)(error_free), 11, chopb))== (PPTREE) -1 ) {
#line 267 "chopb.met"
                    PROG_EXIT(expression_exit,"expression")
#line 267 "chopb.met"
                }
#line 267 "chopb.met"
                _addlist1 =AddList(_addlist1 , _ptTree0);
#line 267 "chopb.met"
            }
#line 267 "chopb.met"
#line 267 "chopb.met"
            if (list){
#line 267 "chopb.met"
#line 267 "chopb.met"
                _addlist1 = SonTree (_addlist1 ,2 );
#line 267 "chopb.met"
            } else {
#line 267 "chopb.met"
#line 267 "chopb.met"
                list = _addlist1 ;
#line 267 "chopb.met"
            }
#line 267 "chopb.met"
        } 
#line 267 "chopb.met"
#line 268 "chopb.met"
        {
#line 268 "chopb.met"
            PPTREE _ptTree0;
#line 268 "chopb.met"
            {
#line 268 "chopb.met"
                PPTREE _ptRes1;
#line 268 "chopb.met"
                _ptRes1= MakeTree(EXP_SEQ, 1);
#line 268 "chopb.met"
                ReplaceTree(_ptRes1, 1, list );
#line 268 "chopb.met"
                _ptTree0=_ptRes1;
#line 268 "chopb.met"
            }
#line 268 "chopb.met"
            _retValue =_ptTree0;
#line 268 "chopb.met"
            goto expression_ret;
#line 268 "chopb.met"
        }
#line 268 "chopb.met"
#line 269 "chopb.met"
    } else {
#line 269 "chopb.met"
#line 271 "chopb.met"
        {
#line 271 "chopb.met"
            _retValue = expTree ;
#line 271 "chopb.met"
            goto expression_ret;
#line 271 "chopb.met"
            
#line 271 "chopb.met"
        }
#line 271 "chopb.met"
    }
#line 271 "chopb.met"
#line 272 "chopb.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 272 "chopb.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 272 "chopb.met"
return((PPTREE) 0);
#line 272 "chopb.met"

#line 272 "chopb.met"
expression_exit :
#line 272 "chopb.met"

#line 272 "chopb.met"
    {
#line 272 "chopb.met"
        MulFreeTree(3,list,expTree,_addlist1);
#line 272 "chopb.met"
    }
#line 272 "chopb.met"
    _Debug = TRACE_RULE("expression",TRACE_EXIT,(PPTREE)0);
#line 272 "chopb.met"
    _funcLevel--;
#line 272 "chopb.met"
    return((PPTREE) -1) ;
#line 272 "chopb.met"

#line 272 "chopb.met"
expression_ret :
#line 272 "chopb.met"
    
#line 272 "chopb.met"
    _Debug = TRACE_RULE("expression",TRACE_RETURN,_retValue);
#line 272 "chopb.met"
    (tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 272 "chopb.met"
    if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,_retValue,lastTree); else {_lastTree=_retValue;_funcLevel--;}
#line 272 "chopb.met"
    return _retValue ;
#line 272 "chopb.met"
}
#line 272 "chopb.met"

#line 272 "chopb.met"
#line 358 "chopb.met"
PPTREE chopb::multiplicative_expression ( int error_free)
#line 358 "chopb.met"
{
#line 358 "chopb.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 358 "chopb.met"
    int _value,_nbPre = 0 ;
#line 358 "chopb.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 358 "chopb.met"
    int _Debug = TRACE_RULE("multiplicative_expression",TRACE_ENTER,(PPTREE)0);
#line 358 "chopb.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 358 "chopb.met"
#line 358 "chopb.met"
    PPTREE expTree = (PPTREE) 0;
#line 358 "chopb.met"
#line 360 "chopb.met"
    if ( (expTree=NQUICK_CALL(_Tak(pm_expression)(error_free), 87, chopb))== (PPTREE) -1 ) {
#line 360 "chopb.met"
        PROG_EXIT(multiplicative_expression_exit,"multiplicative_expression")
#line 360 "chopb.met"
    }
#line 360 "chopb.met"
#line 361 "chopb.met"
    while (((((tokenAhead == 15|| (LexEtoiEtoi(),TRACE_LEX(1)))&&SEE_TOKEN( SIMP_ETOI,"SIMP_ETOI")) || 
#line 361 "chopb.met"
            ((tokenAhead == 15|| (LexEtoiEtoi(),TRACE_LEX(1)))&&SEE_TOKEN( ETOI_ETOI,"ETOI_ETOI"))) || 
#line 361 "chopb.met"
           ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN( SLAS,"SLAS"))) || 
#line 361 "chopb.met"
          ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN( POURC,"%"))) { 
#line 361 "chopb.met"
#line 362 "chopb.met"
#line 363 "chopb.met"
        if(((tokenAhead == 15|| (LexEtoiEtoi(),TRACE_LEX(1)))&&TERM_OR_META(ETOI_ETOI,"ETOI_ETOI") && (tokenAhead = 0,CommTerm(),1))){
#line 363 "chopb.met"
#line 363 "chopb.met"
            {
#line 363 "chopb.met"
                PPTREE _ptTree0,_ptRes0;
#line 363 "chopb.met"
                _ptRes0= MakeTree(EXPO, 2);
#line 363 "chopb.met"
                ReplaceTree(_ptRes0, 1, expTree );
#line 363 "chopb.met"
                if ( (_ptTree0=NQUICK_CALL(_Tak(pm_expression)(error_free), 87, chopb))== (PPTREE) -1 ) {
#line 363 "chopb.met"
                    PROG_EXIT(multiplicative_expression_exit,"multiplicative_expression")
#line 363 "chopb.met"
                }
#line 363 "chopb.met"
                ReplaceTree(_ptRes0, 2, _ptTree0);
#line 363 "chopb.met"
                expTree=_ptRes0;
#line 363 "chopb.met"
            }
#line 363 "chopb.met"
        } else 
#line 363 "chopb.met"
#line 365 "chopb.met"
        if(((tokenAhead == 15|| (LexEtoiEtoi(),TRACE_LEX(1)))&&TERM_OR_META(SIMP_ETOI,"SIMP_ETOI") && (tokenAhead = 0,CommTerm(),1))){
#line 365 "chopb.met"
#line 365 "chopb.met"
            {
#line 365 "chopb.met"
                PPTREE _ptTree0,_ptRes0;
#line 365 "chopb.met"
                _ptRes0= MakeTree(MUL, 2);
#line 365 "chopb.met"
                ReplaceTree(_ptRes0, 1, expTree );
#line 365 "chopb.met"
                if ( (_ptTree0=NQUICK_CALL(_Tak(pm_expression)(error_free), 87, chopb))== (PPTREE) -1 ) {
#line 365 "chopb.met"
                    PROG_EXIT(multiplicative_expression_exit,"multiplicative_expression")
#line 365 "chopb.met"
                }
#line 365 "chopb.met"
                ReplaceTree(_ptRes0, 2, _ptTree0);
#line 365 "chopb.met"
                expTree=_ptRes0;
#line 365 "chopb.met"
            }
#line 365 "chopb.met"
        } else 
#line 365 "chopb.met"
#line 367 "chopb.met"
        if(((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&TERM_OR_META(SLAS,"SLAS") && (tokenAhead = 0,CommTerm(),1))){
#line 367 "chopb.met"
#line 367 "chopb.met"
            {
#line 367 "chopb.met"
                PPTREE _ptTree0,_ptRes0;
#line 367 "chopb.met"
                _ptRes0= MakeTree(DIV, 2);
#line 367 "chopb.met"
                ReplaceTree(_ptRes0, 1, expTree );
#line 367 "chopb.met"
                if ( (_ptTree0=NQUICK_CALL(_Tak(pm_expression)(error_free), 87, chopb))== (PPTREE) -1 ) {
#line 367 "chopb.met"
                    PROG_EXIT(multiplicative_expression_exit,"multiplicative_expression")
#line 367 "chopb.met"
                }
#line 367 "chopb.met"
                ReplaceTree(_ptRes0, 2, _ptTree0);
#line 367 "chopb.met"
                expTree=_ptRes0;
#line 367 "chopb.met"
            }
#line 367 "chopb.met"
        } else 
#line 367 "chopb.met"
#line 368 "chopb.met"
        if(((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN(POURC,"%") && (tokenAhead = 0,CommTerm(),1))){
#line 368 "chopb.met"
#line 368 "chopb.met"
            {
#line 368 "chopb.met"
                PPTREE _ptTree0,_ptRes0;
#line 368 "chopb.met"
                _ptRes0= MakeTree(REM, 2);
#line 368 "chopb.met"
                ReplaceTree(_ptRes0, 1, expTree );
#line 368 "chopb.met"
                if ( (_ptTree0=NQUICK_CALL(_Tak(pm_expression)(error_free), 87, chopb))== (PPTREE) -1 ) {
#line 368 "chopb.met"
                    PROG_EXIT(multiplicative_expression_exit,"multiplicative_expression")
#line 368 "chopb.met"
                }
#line 368 "chopb.met"
                ReplaceTree(_ptRes0, 2, _ptTree0);
#line 368 "chopb.met"
                expTree=_ptRes0;
#line 368 "chopb.met"
            }
#line 368 "chopb.met"
        } else 
#line 368 "chopb.met"
         ;
#line 368 "chopb.met"
    } 
#line 368 "chopb.met"
#line 370 "chopb.met"
    {
#line 370 "chopb.met"
        _retValue = expTree ;
#line 370 "chopb.met"
        goto multiplicative_expression_ret;
#line 370 "chopb.met"
        
#line 370 "chopb.met"
    }
#line 370 "chopb.met"
#line 371 "chopb.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 371 "chopb.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 371 "chopb.met"
return((PPTREE) 0);
#line 371 "chopb.met"

#line 371 "chopb.met"
multiplicative_expression_exit :
#line 371 "chopb.met"

#line 371 "chopb.met"
    {
#line 371 "chopb.met"
        MulFreeTree(1,expTree);
#line 371 "chopb.met"
    }
#line 371 "chopb.met"
    _Debug = TRACE_RULE("multiplicative_expression",TRACE_EXIT,(PPTREE)0);
#line 371 "chopb.met"
    _funcLevel--;
#line 371 "chopb.met"
    return((PPTREE) -1) ;
#line 371 "chopb.met"

#line 371 "chopb.met"
multiplicative_expression_ret :
#line 371 "chopb.met"
    
#line 371 "chopb.met"
    _Debug = TRACE_RULE("multiplicative_expression",TRACE_RETURN,_retValue);
#line 371 "chopb.met"
    (tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 371 "chopb.met"
    if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,_retValue,lastTree); else {_lastTree=_retValue;_funcLevel--;}
#line 371 "chopb.met"
    return _retValue ;
#line 371 "chopb.met"
}
#line 371 "chopb.met"

#line 371 "chopb.met"
#line 647 "chopb.met"
PPTREE chopb::old ( int error_free)
#line 647 "chopb.met"
{
#line 647 "chopb.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 647 "chopb.met"
    int _value,_nbPre = 0 ;
#line 647 "chopb.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 647 "chopb.met"
    int _Debug = TRACE_RULE("old",TRACE_ENTER,(PPTREE)0);
#line 647 "chopb.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 647 "chopb.met"
#line 648 "chopb.met"
    {
#line 648 "chopb.met"
        PPTREE _ptTree0;
#line 648 "chopb.met"
        {
#line 648 "chopb.met"
            PPTREE _ptRes1;
#line 648 "chopb.met"
            _ptRes1= MakeTree(BOX, 1);
#line 648 "chopb.met"
            _ptTree0=_ptRes1;
#line 648 "chopb.met"
        }
#line 648 "chopb.met"
        _retValue =_ptTree0;
#line 648 "chopb.met"
        goto old_ret;
#line 648 "chopb.met"
    }
#line 648 "chopb.met"
#line 648 "chopb.met"
#line 648 "chopb.met"

#line 649 "chopb.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 649 "chopb.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 649 "chopb.met"
return((PPTREE) 0);
#line 649 "chopb.met"

#line 649 "chopb.met"
old_exit :
#line 649 "chopb.met"

#line 649 "chopb.met"
    _Debug = TRACE_RULE("old",TRACE_EXIT,(PPTREE)0);
#line 649 "chopb.met"
    _funcLevel--;
#line 649 "chopb.met"
    return((PPTREE) -1) ;
#line 649 "chopb.met"

#line 649 "chopb.met"
old_ret :
#line 649 "chopb.met"
    
#line 649 "chopb.met"
    _Debug = TRACE_RULE("old",TRACE_RETURN,_retValue);
#line 649 "chopb.met"
    (tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 649 "chopb.met"
    if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,_retValue,lastTree); else {_lastTree=_retValue;_funcLevel--;}
#line 649 "chopb.met"
    return _retValue ;
#line 649 "chopb.met"
}
#line 649 "chopb.met"

#line 649 "chopb.met"
#line 322 "chopb.met"
PPTREE chopb::postfix_expression ( int error_free)
#line 322 "chopb.met"
{
#line 322 "chopb.met"
    int  _oldinMakeTree = inMakeTree;
#line 322 "chopb.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 322 "chopb.met"
    int _value,_nbPre = 0 ;
#line 322 "chopb.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 322 "chopb.met"
    int _Debug = TRACE_RULE("postfix_expression",TRACE_ENTER,(PPTREE)0);
#line 322 "chopb.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 322 "chopb.met"
#line 322 "chopb.met"
    PPTREE expTree = (PPTREE) 0,expList = (PPTREE) 0;
#line 322 "chopb.met"
#line 324 "chopb.met"
    if (! (NPUSH_CALL_AFF_VERIF(expTree = ,_Tak(primary_expression), 89, chopb))){
#line 324 "chopb.met"
#line 325 "chopb.met"
#line 326 "chopb.met"
        if ( (expTree=NQUICK_CALL(_Tak(simple_type_name)(error_free), 106, chopb))== (PPTREE) -1 ) {
#line 326 "chopb.met"
            PROG_EXIT(postfix_expression_exit,"postfix_expression")
#line 326 "chopb.met"
        }
#line 326 "chopb.met"
#line 327 "chopb.met"
        if (! ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN( POUV,"("))){
#line 327 "chopb.met"
#line 328 "chopb.met"
            LEX_EXIT ("",0);
#line 328 "chopb.met"
            goto postfix_expression_exit;
#line 328 "chopb.met"
#line 328 "chopb.met"
        }
#line 328 "chopb.met"
#line 329 "chopb.met"
    }
#line 329 "chopb.met"
#line 330 "chopb.met"
    while (((((((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN( POUV,"(")) || 
#line 330 "chopb.met"
              ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN( COUV,"["))) || 
#line 330 "chopb.met"
             ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN( POINT,"POINT"))) || 
#line 330 "chopb.met"
            ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN( TIRESUPE,"->"))) || 
#line 330 "chopb.met"
           ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN( PLUSPLUS,"++"))) || 
#line 330 "chopb.met"
          ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN( TIRETIRE,"--"))) { 
#line 330 "chopb.met"
#line 331 "chopb.met"
        (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 331 "chopb.met"
        switch( lexEl.Value) {
#line 331 "chopb.met"
#line 334 "chopb.met"
            case POUV : 
#line 334 "chopb.met"
                tokenAhead = 0 ;
#line 334 "chopb.met"
                CommTerm();
#line 334 "chopb.met"
#line 332 "chopb.met"
                {
#line 332 "chopb.met"
                    inMakeTree = 0 ;
#line 332 "chopb.met"
#line 333 "chopb.met"
#line 334 "chopb.met"
                    if (NPUSH_CALL_AFF_VERIF(expList = ,_Tak(expression), 47, chopb)){
#line 334 "chopb.met"
#line 335 "chopb.met"
                        {
#line 335 "chopb.met"
                            PPTREE _ptRes0;
#line 335 "chopb.met"
                            _ptRes0= MakeTree(EXP_LIST, 2);
#line 335 "chopb.met"
                            ReplaceTree(_ptRes0, 1, expTree );
#line 335 "chopb.met"
                            ReplaceTree(_ptRes0, 2, expList );
#line 335 "chopb.met"
                            expTree=_ptRes0;
#line 335 "chopb.met"
                        }
#line 335 "chopb.met"
                    } else {
#line 335 "chopb.met"
#line 337 "chopb.met"
                        {
#line 337 "chopb.met"
                            PPTREE _ptRes0;
#line 337 "chopb.met"
                            _ptRes0= MakeTree(EXP_LIST, 2);
#line 337 "chopb.met"
                            ReplaceTree(_ptRes0, 1, expTree );
#line 337 "chopb.met"
                            expTree=_ptRes0;
#line 337 "chopb.met"
                        }
#line 337 "chopb.met"
                    }
#line 337 "chopb.met"
#line 338 "chopb.met"
                    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 338 "chopb.met"
                    if (  !SEE_TOKEN( PFER,")") || !(CommTerm(),1)) 
#line 338 "chopb.met"
                        TOKEN_EXIT(postfix_expression_exit,")")
#line 338 "chopb.met"
                    inMakeTree =  _oldinMakeTree;
#line 338 "chopb.met"
                }
#line 338 "chopb.met"
                break;
#line 338 "chopb.met"
#line 342 "chopb.met"
            case COUV : 
#line 342 "chopb.met"
                tokenAhead = 0 ;
#line 342 "chopb.met"
                CommTerm();
#line 342 "chopb.met"
#line 340 "chopb.met"
                {
#line 340 "chopb.met"
                    inMakeTree = 0 ;
#line 340 "chopb.met"
#line 341 "chopb.met"
#line 342 "chopb.met"
                    if (NPUSH_CALL_AFF_VERIF(expList = ,_Tak(expression), 47, chopb)){
#line 342 "chopb.met"
#line 343 "chopb.met"
                        {
#line 343 "chopb.met"
                            PPTREE _ptRes0;
#line 343 "chopb.met"
                            _ptRes0= MakeTree(EXP_ARRAY, 2);
#line 343 "chopb.met"
                            ReplaceTree(_ptRes0, 1, expTree );
#line 343 "chopb.met"
                            ReplaceTree(_ptRes0, 2, expList );
#line 343 "chopb.met"
                            expTree=_ptRes0;
#line 343 "chopb.met"
                        }
#line 343 "chopb.met"
                    } else {
#line 343 "chopb.met"
#line 345 "chopb.met"
                        {
#line 345 "chopb.met"
                            PPTREE _ptRes0;
#line 345 "chopb.met"
                            _ptRes0= MakeTree(EXP_ARRAY, 2);
#line 345 "chopb.met"
                            ReplaceTree(_ptRes0, 1, expTree );
#line 345 "chopb.met"
                            expTree=_ptRes0;
#line 345 "chopb.met"
                        }
#line 345 "chopb.met"
                    }
#line 345 "chopb.met"
#line 346 "chopb.met"
                    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 346 "chopb.met"
                    if (  !SEE_TOKEN( CFER,"]") || !(CommTerm(),1)) 
#line 346 "chopb.met"
                        TOKEN_EXIT(postfix_expression_exit,"]")
#line 346 "chopb.met"
                    inMakeTree =  _oldinMakeTree;
#line 346 "chopb.met"
                }
#line 346 "chopb.met"
                break;
#line 346 "chopb.met"
#line 348 "chopb.met"
            case META : 
#line 348 "chopb.met"
            case POINT : 
#line 348 "chopb.met"
                tokenAhead = 0 ;
#line 348 "chopb.met"
                CommTerm();
#line 348 "chopb.met"
#line 348 "chopb.met"
                {
#line 348 "chopb.met"
                    PPTREE _ptTree0,_ptRes0;
#line 348 "chopb.met"
                    _ptRes0= MakeTree(REF, 2);
#line 348 "chopb.met"
                    ReplaceTree(_ptRes0, 1, expTree );
#line 348 "chopb.met"
                    if ( (_ptTree0=NQUICK_CALL(_Tak(primary_expression)(error_free), 89, chopb))== (PPTREE) -1 ) {
#line 348 "chopb.met"
                        PROG_EXIT(postfix_expression_exit,"postfix_expression")
#line 348 "chopb.met"
                    }
#line 348 "chopb.met"
                    ReplaceTree(_ptRes0, 2, _ptTree0);
#line 348 "chopb.met"
                    expTree=_ptRes0;
#line 348 "chopb.met"
                }
#line 348 "chopb.met"
                break;
#line 348 "chopb.met"
#line 350 "chopb.met"
            case TIRESUPE : 
#line 350 "chopb.met"
                tokenAhead = 0 ;
#line 350 "chopb.met"
                CommTerm();
#line 350 "chopb.met"
#line 350 "chopb.met"
                {
#line 350 "chopb.met"
                    PPTREE _ptTree0,_ptRes0;
#line 350 "chopb.met"
                    _ptRes0= MakeTree(ARROW, 2);
#line 350 "chopb.met"
                    ReplaceTree(_ptRes0, 1, expTree );
#line 350 "chopb.met"
                    if ( (_ptTree0=NQUICK_CALL(_Tak(primary_expression)(error_free), 89, chopb))== (PPTREE) -1 ) {
#line 350 "chopb.met"
                        PROG_EXIT(postfix_expression_exit,"postfix_expression")
#line 350 "chopb.met"
                    }
#line 350 "chopb.met"
                    ReplaceTree(_ptRes0, 2, _ptTree0);
#line 350 "chopb.met"
                    expTree=_ptRes0;
#line 350 "chopb.met"
                }
#line 350 "chopb.met"
                break;
#line 350 "chopb.met"
#line 352 "chopb.met"
            case PLUSPLUS : 
#line 352 "chopb.met"
                tokenAhead = 0 ;
#line 352 "chopb.met"
                CommTerm();
#line 352 "chopb.met"
#line 352 "chopb.met"
                {
#line 352 "chopb.met"
                    PPTREE _ptRes0;
#line 352 "chopb.met"
                    _ptRes0= MakeTree(AINCR, 1);
#line 352 "chopb.met"
                    ReplaceTree(_ptRes0, 1, expTree );
#line 352 "chopb.met"
                    expTree=_ptRes0;
#line 352 "chopb.met"
                }
#line 352 "chopb.met"
                break;
#line 352 "chopb.met"
#line 353 "chopb.met"
            case TIRETIRE : 
#line 353 "chopb.met"
                tokenAhead = 0 ;
#line 353 "chopb.met"
                CommTerm();
#line 353 "chopb.met"
#line 353 "chopb.met"
                {
#line 353 "chopb.met"
                    PPTREE _ptRes0;
#line 353 "chopb.met"
                    _ptRes0= MakeTree(ADECR, 1);
#line 353 "chopb.met"
                    ReplaceTree(_ptRes0, 1, expTree );
#line 353 "chopb.met"
                    expTree=_ptRes0;
#line 353 "chopb.met"
                }
#line 353 "chopb.met"
                break;
#line 353 "chopb.met"
            default :
#line 353 "chopb.met"
                CASE_EXIT(postfix_expression_exit,"either ( or [ or POINT or -> or ++ or --")
#line 353 "chopb.met"
                break;
#line 353 "chopb.met"
        }
#line 353 "chopb.met"
    } 
#line 353 "chopb.met"
#line 355 "chopb.met"
    {
#line 355 "chopb.met"
        _retValue = expTree ;
#line 355 "chopb.met"
        goto postfix_expression_ret;
#line 355 "chopb.met"
        
#line 355 "chopb.met"
    }
#line 355 "chopb.met"
#line 356 "chopb.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 356 "chopb.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 356 "chopb.met"
inMakeTree =  _oldinMakeTree;
#line 356 "chopb.met"
return((PPTREE) 0);
#line 356 "chopb.met"

#line 356 "chopb.met"
postfix_expression_exit :
#line 356 "chopb.met"

#line 356 "chopb.met"
    {
#line 356 "chopb.met"
        MulFreeTree(2,expList,expTree);
#line 356 "chopb.met"
    }
#line 356 "chopb.met"
    _Debug = TRACE_RULE("postfix_expression",TRACE_EXIT,(PPTREE)0);
#line 356 "chopb.met"
    _funcLevel--;
#line 356 "chopb.met"
    inMakeTree =  _oldinMakeTree;
#line 356 "chopb.met"
    return((PPTREE) -1) ;
#line 356 "chopb.met"

#line 356 "chopb.met"
postfix_expression_ret :
#line 356 "chopb.met"
    
#line 356 "chopb.met"
    _Debug = TRACE_RULE("postfix_expression",TRACE_RETURN,_retValue);
#line 356 "chopb.met"
    (tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 356 "chopb.met"
    if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,_retValue,lastTree); else {_lastTree=_retValue;_funcLevel--;}
#line 356 "chopb.met"
    inMakeTree =  _oldinMakeTree;
#line 356 "chopb.met"
    return _retValue ;
#line 356 "chopb.met"
}
#line 356 "chopb.met"

#line 356 "chopb.met"
#line 393 "chopb.met"
PPTREE chopb::primary_expression ( int error_free)
#line 393 "chopb.met"
{
#line 393 "chopb.met"
    int  _oldparse = parse;
#line 393 "chopb.met"
    int  _oldinMakeTree = inMakeTree;
#line 393 "chopb.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 393 "chopb.met"
    int _value,_nbPre = 0 ;
#line 393 "chopb.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 393 "chopb.met"
    int _Debug = TRACE_RULE("primary_expression",TRACE_ENTER,(PPTREE)0);
#line 393 "chopb.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 393 "chopb.met"
#line 393 "chopb.met"
    PPTREE _addlist1 = (PPTREE) 0;
#line 393 "chopb.met"
#line 393 "chopb.met"
    PPTREE result = (PPTREE) 0,expTree = (PPTREE) 0,list = (PPTREE) 0,statTree = (PPTREE) 0;
#line 393 "chopb.met"
#line 395 "chopb.met"
    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 395 "chopb.met"
    switch( lexEl.Value) {
#line 395 "chopb.met"
#line 396 "chopb.met"
        case INFESUPE : 
#line 396 "chopb.met"
            tokenAhead = 0 ;
#line 396 "chopb.met"
            CommTerm();
#line 396 "chopb.met"
#line 396 "chopb.met"
            {
#line 396 "chopb.met"
                PPTREE _ptTree0;
#line 396 "chopb.met"
                {
#line 396 "chopb.met"
                    PPTREE _ptRes1;
#line 396 "chopb.met"
                    _ptRes1= MakeTree(DEF_IDENT, 0);
#line 396 "chopb.met"
                    _ptTree0=_ptRes1;
#line 396 "chopb.met"
                }
#line 396 "chopb.met"
                _retValue =_ptTree0;
#line 396 "chopb.met"
                goto primary_expression_ret;
#line 396 "chopb.met"
            }
#line 396 "chopb.met"
            break;
#line 396 "chopb.met"
#line 397 "chopb.met"
        case INFE : 
#line 397 "chopb.met"
#line 397 "chopb.met"
            {
#line 397 "chopb.met"
                PPTREE _ptTree0;
#line 397 "chopb.met"
                if ( (_ptTree0=NQUICK_CALL(_Tak(take_follow)(error_free), 135, chopb))== (PPTREE) -1 ) {
#line 397 "chopb.met"
                    PROG_EXIT(primary_expression_exit,"primary_expression")
#line 397 "chopb.met"
                }
#line 397 "chopb.met"
                _retValue =_ptTree0;
#line 397 "chopb.met"
                goto primary_expression_ret;
#line 397 "chopb.met"
            }
#line 397 "chopb.met"
            break;
#line 397 "chopb.met"
#line 398 "chopb.met"
        case POINPOINPOIN : 
#line 398 "chopb.met"
            tokenAhead = 0 ;
#line 398 "chopb.met"
            CommTerm();
#line 398 "chopb.met"
#line 398 "chopb.met"
            {
#line 398 "chopb.met"
                PPTREE _ptTree0;
#line 398 "chopb.met"
                if ( (_ptTree0=NQUICK_CALL(_Tak(take_follow_list)(error_free), 136, chopb))== (PPTREE) -1 ) {
#line 398 "chopb.met"
                    PROG_EXIT(primary_expression_exit,"primary_expression")
#line 398 "chopb.met"
                }
#line 398 "chopb.met"
                _retValue =_ptTree0;
#line 398 "chopb.met"
                goto primary_expression_ret;
#line 398 "chopb.met"
            }
#line 398 "chopb.met"
            break;
#line 398 "chopb.met"
#line 399 "chopb.met"
        case VALUE : 
#line 399 "chopb.met"
            tokenAhead = 0 ;
#line 399 "chopb.met"
            CommTerm();
#line 399 "chopb.met"
#line 400 "chopb.met"
#line 401 "chopb.met"
            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 401 "chopb.met"
            if (  !SEE_TOKEN( POUV,"(") || !(CommTerm(),1)) 
#line 401 "chopb.met"
                TOKEN_EXIT(primary_expression_exit,"(")
#line 401 "chopb.met"
#line 402 "chopb.met"
            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 402 "chopb.met"
            switch( lexEl.Value) {
#line 402 "chopb.met"
#line 403 "chopb.met"
                case META : 
#line 403 "chopb.met"
                case IDENT : 
#line 403 "chopb.met"
#line 403 "chopb.met"
                    {
#line 403 "chopb.met"
                        PPTREE _ptTree0,_ptRes0;
#line 403 "chopb.met"
                        _ptRes0= MakeTree(VALUE, 1);
#line 403 "chopb.met"
                        {
#line 403 "chopb.met"
                            PPTREE _ptTree1,_ptRes1;
#line 403 "chopb.met"
                            _ptRes1= MakeTree(IDENT, 1);
#line 403 "chopb.met"
                            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 403 "chopb.met"
                            if ( ! TERM_OR_META(IDENT,"IDENT") || !(BUILD_TERM_META(_ptTree1))) 
#line 403 "chopb.met"
                                TOKEN_EXIT(primary_expression_exit,"IDENT")
#line 403 "chopb.met"
                            ReplaceTree(_ptRes1, 1, _ptTree1);
#line 403 "chopb.met"
                            _ptTree0=_ptRes1;
#line 403 "chopb.met"
                        }
#line 403 "chopb.met"
                        ReplaceTree(_ptRes0, 1, _ptTree0);
#line 403 "chopb.met"
                        statTree=_ptRes0;
#line 403 "chopb.met"
                    }
#line 403 "chopb.met"
                    break;
#line 403 "chopb.met"
#line 405 "chopb.met"
                case INFESUPE : 
#line 405 "chopb.met"
                    tokenAhead = 0 ;
#line 405 "chopb.met"
                    CommTerm();
#line 405 "chopb.met"
#line 405 "chopb.met"
                    {
#line 405 "chopb.met"
                        PPTREE _ptTree0,_ptRes0;
#line 405 "chopb.met"
                        _ptRes0= MakeTree(VALUE, 1);
#line 405 "chopb.met"
                        {
#line 405 "chopb.met"
                            PPTREE _ptRes1;
#line 405 "chopb.met"
                            _ptRes1= MakeTree(DEF_IDENT, 0);
#line 405 "chopb.met"
                            _ptTree0=_ptRes1;
#line 405 "chopb.met"
                        }
#line 405 "chopb.met"
                        ReplaceTree(_ptRes0, 1, _ptTree0);
#line 405 "chopb.met"
                        statTree=_ptRes0;
#line 405 "chopb.met"
                    }
#line 405 "chopb.met"
                    break;
#line 405 "chopb.met"
                default :
#line 405 "chopb.met"
                    CASE_EXIT(primary_expression_exit,"either IDENT or <>")
#line 405 "chopb.met"
                    break;
#line 405 "chopb.met"
            }
#line 405 "chopb.met"
#line 407 "chopb.met"
            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 407 "chopb.met"
            if (  !SEE_TOKEN( PFER,")") || !(CommTerm(),1)) 
#line 407 "chopb.met"
                TOKEN_EXIT(primary_expression_exit,")")
#line 407 "chopb.met"
#line 408 "chopb.met"
            {
#line 408 "chopb.met"
                _retValue = statTree ;
#line 408 "chopb.met"
                goto primary_expression_ret;
#line 408 "chopb.met"
                
#line 408 "chopb.met"
            }
#line 408 "chopb.met"
            break;
#line 408 "chopb.met"
#line 410 "chopb.met"
        case NEXTL : 
#line 410 "chopb.met"
            tokenAhead = 0 ;
#line 410 "chopb.met"
            CommTerm();
#line 410 "chopb.met"
#line 411 "chopb.met"
#line 412 "chopb.met"
            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 412 "chopb.met"
            if (  !SEE_TOKEN( POUV,"(") || !(CommTerm(),1)) 
#line 412 "chopb.met"
                TOKEN_EXIT(primary_expression_exit,"(")
#line 412 "chopb.met"
#line 413 "chopb.met"
            if ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN( IDENT,"IDENT")){
#line 413 "chopb.met"
#line 414 "chopb.met"
                {
#line 414 "chopb.met"
                    PPTREE _ptTree0,_ptRes0;
#line 414 "chopb.met"
                    _ptRes0= MakeTree(NEXT, 1);
#line 414 "chopb.met"
                    {
#line 414 "chopb.met"
                        PPTREE _ptTree1,_ptRes1;
#line 414 "chopb.met"
                        _ptRes1= MakeTree(IDENT, 1);
#line 414 "chopb.met"
                        (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 414 "chopb.met"
                        if ( ! TERM_OR_META(IDENT,"IDENT") || !(BUILD_TERM_META(_ptTree1))) 
#line 414 "chopb.met"
                            TOKEN_EXIT(primary_expression_exit,"IDENT")
#line 414 "chopb.met"
                        ReplaceTree(_ptRes1, 1, _ptTree1);
#line 414 "chopb.met"
                        _ptTree0=_ptRes1;
#line 414 "chopb.met"
                    }
#line 414 "chopb.met"
                    ReplaceTree(_ptRes0, 1, _ptTree0);
#line 414 "chopb.met"
                    statTree=_ptRes0;
#line 414 "chopb.met"
                }
#line 414 "chopb.met"
            } else {
#line 414 "chopb.met"
#line 416 "chopb.met"
#line 417 "chopb.met"
                (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 417 "chopb.met"
                if (  !SEE_TOKEN( INFESUPE,"<>") || !(CommTerm(),1)) 
#line 417 "chopb.met"
                    TOKEN_EXIT(primary_expression_exit,"<>")
#line 417 "chopb.met"
#line 418 "chopb.met"
                {
#line 418 "chopb.met"
                    PPTREE _ptTree0,_ptRes0;
#line 418 "chopb.met"
                    _ptRes0= MakeTree(NEXT, 1);
#line 418 "chopb.met"
                    {
#line 418 "chopb.met"
                        PPTREE _ptRes1;
#line 418 "chopb.met"
                        _ptRes1= MakeTree(DEF_IDENT, 0);
#line 418 "chopb.met"
                        _ptTree0=_ptRes1;
#line 418 "chopb.met"
                    }
#line 418 "chopb.met"
                    ReplaceTree(_ptRes0, 1, _ptTree0);
#line 418 "chopb.met"
                    statTree=_ptRes0;
#line 418 "chopb.met"
                }
#line 418 "chopb.met"
            }
#line 418 "chopb.met"
#line 420 "chopb.met"
            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 420 "chopb.met"
            if (  !SEE_TOKEN( PFER,")") || !(CommTerm(),1)) 
#line 420 "chopb.met"
                TOKEN_EXIT(primary_expression_exit,")")
#line 420 "chopb.met"
#line 421 "chopb.met"
            {
#line 421 "chopb.met"
                _retValue = statTree ;
#line 421 "chopb.met"
                goto primary_expression_ret;
#line 421 "chopb.met"
                
#line 421 "chopb.met"
            }
#line 421 "chopb.met"
            break;
#line 421 "chopb.met"
#line 423 "chopb.met"
        case PARSE : 
#line 423 "chopb.met"
            tokenAhead = 0 ;
#line 423 "chopb.met"
            CommTerm();
#line 423 "chopb.met"
#line 424 "chopb.met"
#line 425 "chopb.met"
            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 425 "chopb.met"
            if (  !SEE_TOKEN( POUV,"(") || !(CommTerm(),1)) 
#line 425 "chopb.met"
                TOKEN_EXIT(primary_expression_exit,"(")
#line 425 "chopb.met"
#line 426 "chopb.met"
             nb_par_parse = 1 ; 
#line 426 "chopb.met"
#line 427 "chopb.met"
            {
#line 427 "chopb.met"
                parse = 1 ;
#line 427 "chopb.met"
#line 428 "chopb.met"
#line 428 "chopb.met"
                _addlist1 = list ;
#line 428 "chopb.met"
#line 428 "chopb.met"
                while ((tokenAhead == 16|| (LexParse(),TRACE_LEX(1)))&&SEE_TOKEN( PARSE_ELEM,"PARSE_ELEM")) { 
#line 428 "chopb.met"
#line 429 "chopb.met"
#line 429 "chopb.met"
                    {
#line 429 "chopb.met"
                        PPTREE _ptTree0;
#line 429 "chopb.met"
                        {
#line 429 "chopb.met"
                            PPTREE _ptTree1,_ptRes1;
#line 429 "chopb.met"
                            _ptRes1= MakeTree(PARSE_ELEM, 1);
#line 429 "chopb.met"
                            (tokenAhead == 16|| (LexParse(),TRACE_LEX(1)));
#line 429 "chopb.met"
                            if ( ! TERM_OR_META(PARSE_ELEM,"PARSE_ELEM") || !(BUILD_TERM_META(_ptTree1))) 
#line 429 "chopb.met"
                                TOKEN_EXIT(primary_expression_exit,"PARSE_ELEM")
#line 429 "chopb.met"
                            ReplaceTree(_ptRes1, 1, _ptTree1);
#line 429 "chopb.met"
                            _ptTree0=_ptRes1;
#line 429 "chopb.met"
                        }
#line 429 "chopb.met"
                        _addlist1 =AddList(_addlist1 , _ptTree0);
#line 429 "chopb.met"
                    }
#line 429 "chopb.met"
#line 429 "chopb.met"
                    if (list){
#line 429 "chopb.met"
#line 429 "chopb.met"
                        _addlist1 = SonTree (_addlist1 ,2 );
#line 429 "chopb.met"
                    } else {
#line 429 "chopb.met"
#line 429 "chopb.met"
                        list = _addlist1 ;
#line 429 "chopb.met"
                    }
#line 429 "chopb.met"
                } 
#line 429 "chopb.met"
                parse =  _oldparse;
#line 429 "chopb.met"
            }
#line 429 "chopb.met"
#line 430 "chopb.met"
            {
#line 430 "chopb.met"
                PPTREE _ptTree0;
#line 430 "chopb.met"
                {
#line 430 "chopb.met"
                    PPTREE _ptRes1;
#line 430 "chopb.met"
                    _ptRes1= MakeTree(PARSE, 1);
#line 430 "chopb.met"
                    ReplaceTree(_ptRes1, 1, list );
#line 430 "chopb.met"
                    _ptTree0=_ptRes1;
#line 430 "chopb.met"
                }
#line 430 "chopb.met"
                _retValue =_ptTree0;
#line 430 "chopb.met"
                goto primary_expression_ret;
#line 430 "chopb.met"
            }
#line 430 "chopb.met"
            break;
#line 430 "chopb.met"
#line 432 "chopb.met"
        case IN : 
#line 432 "chopb.met"
            tokenAhead = 0 ;
#line 432 "chopb.met"
            CommTerm();
#line 432 "chopb.met"
#line 433 "chopb.met"
#line 434 "chopb.met"
            {
#line 434 "chopb.met"
                PPTREE _ptTree0,_ptRes0;
#line 434 "chopb.met"
                _ptRes0= MakeTree(IN_LANG, 2);
#line 434 "chopb.met"
                if ( (_ptTree0=NQUICK_CALL(_Tak(expression)(error_free), 47, chopb))== (PPTREE) -1 ) {
#line 434 "chopb.met"
                    PROG_EXIT(primary_expression_exit,"primary_expression")
#line 434 "chopb.met"
                }
#line 434 "chopb.met"
                ReplaceTree(_ptRes0, 1, _ptTree0);
#line 434 "chopb.met"
                statTree=_ptRes0;
#line 434 "chopb.met"
            }
#line 434 "chopb.met"
#line 435 "chopb.met"
            {
#line 435 "chopb.met"
                PPTREE _ptTree0;
#line 435 "chopb.met"
                {
#line 435 "chopb.met"
                    PPTREE _ptTree1;
#line 435 "chopb.met"
                    if ( (_ptTree1=NQUICK_CALL(_Tak(statement)(error_free), 112, chopb))== (PPTREE) -1 ) {
#line 435 "chopb.met"
                        PROG_EXIT(primary_expression_exit,"primary_expression")
#line 435 "chopb.met"
                    }
#line 435 "chopb.met"
                    _ptTree0=ReplaceTree(statTree , 2 , _ptTree1);
#line 435 "chopb.met"
                }
#line 435 "chopb.met"
                _retValue =_ptTree0;
#line 435 "chopb.met"
                goto primary_expression_ret;
#line 435 "chopb.met"
            }
#line 435 "chopb.met"
            break;
#line 435 "chopb.met"
#line 439 "chopb.met"
        case POUV : 
#line 439 "chopb.met"
            tokenAhead = 0 ;
#line 439 "chopb.met"
            CommTerm();
#line 439 "chopb.met"
#line 437 "chopb.met"
            {
#line 437 "chopb.met"
                inMakeTree = 0 ;
#line 437 "chopb.met"
#line 438 "chopb.met"
#line 439 "chopb.met"
                if (NPUSH_CALL_AFF_VERIF(expTree = ,_Tak(expression), 47, chopb)){
#line 439 "chopb.met"
#line 440 "chopb.met"
#line 441 "chopb.met"
                    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 441 "chopb.met"
                    if (  !SEE_TOKEN( PFER,")") || !(CommTerm(),1)) 
#line 441 "chopb.met"
                        TOKEN_EXIT(primary_expression_exit,")")
#line 441 "chopb.met"
#line 442 "chopb.met"
                    {
#line 442 "chopb.met"
                        PPTREE _ptRes0;
#line 442 "chopb.met"
                        _ptRes0= MakeTree(EXP, 1);
#line 442 "chopb.met"
                        ReplaceTree(_ptRes0, 1, expTree );
#line 442 "chopb.met"
                        expTree=_ptRes0;
#line 442 "chopb.met"
                    }
#line 442 "chopb.met"
#line 443 "chopb.met"
                } else {
#line 443 "chopb.met"
#line 445 "chopb.met"
#line 446 "chopb.met"
                    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 446 "chopb.met"
                    if (  !SEE_TOKEN( PFER,")") || !(CommTerm(),1)) 
#line 446 "chopb.met"
                        TOKEN_EXIT(primary_expression_exit,")")
#line 446 "chopb.met"
#line 447 "chopb.met"
                    {
#line 447 "chopb.met"
                        PPTREE _ptRes0;
#line 447 "chopb.met"
                        _ptRes0= MakeTree(NIL, 0);
#line 447 "chopb.met"
                        expTree=_ptRes0;
#line 447 "chopb.met"
                    }
#line 447 "chopb.met"
                }
#line 447 "chopb.met"
#line 449 "chopb.met"
                {
#line 449 "chopb.met"
                    _retValue = expTree ;
#line 449 "chopb.met"
                    goto primary_expression_ret;
#line 449 "chopb.met"
                    
#line 449 "chopb.met"
                }
#line 449 "chopb.met"
                inMakeTree =  _oldinMakeTree;
#line 449 "chopb.met"
            }
#line 449 "chopb.met"
            break;
#line 449 "chopb.met"
#line 451 "chopb.met"
        case OPERATOR : 
#line 451 "chopb.met"
#line 451 "chopb.met"
            {
#line 451 "chopb.met"
                PPTREE _ptTree0;
#line 451 "chopb.met"
                if ( (_ptTree0=NQUICK_CALL(_Tak(operator_function_name)(error_free), 81, chopb))== (PPTREE) -1 ) {
#line 451 "chopb.met"
                    PROG_EXIT(primary_expression_exit,"primary_expression")
#line 451 "chopb.met"
                }
#line 451 "chopb.met"
                _retValue =_ptTree0;
#line 451 "chopb.met"
                goto primary_expression_ret;
#line 451 "chopb.met"
            }
#line 451 "chopb.met"
            break;
#line 451 "chopb.met"
#line 452 "chopb.met"
        case TILD : 
#line 452 "chopb.met"
#line 452 "chopb.met"
            {
#line 452 "chopb.met"
                PPTREE _ptTree0;
#line 452 "chopb.met"
                if ( (_ptTree0=NQUICK_CALL(_Tak(qualified_name)(error_free), 93, chopb))== (PPTREE) -1 ) {
#line 452 "chopb.met"
                    PROG_EXIT(primary_expression_exit,"primary_expression")
#line 452 "chopb.met"
                }
#line 452 "chopb.met"
                _retValue =_ptTree0;
#line 452 "chopb.met"
                goto primary_expression_ret;
#line 452 "chopb.met"
            }
#line 452 "chopb.met"
            break;
#line 452 "chopb.met"
#line 453 "chopb.met"
        case META : 
#line 453 "chopb.met"
#line 454 "chopb.met"
#line 455 "chopb.met"
            {
#line 455 "chopb.met"
                PPTREE _ptTree0;
#line 455 "chopb.met"
                {
#line 455 "chopb.met"
                    PPTREE _ptTree1,_ptRes1;
#line 455 "chopb.met"
                    _ptRes1= MakeTree(META, 1);
#line 455 "chopb.met"
                    (tokenAhead == 7|| (LexMeta(),TRACE_LEX(1)));
#line 455 "chopb.met"
                    if ( ! TERM_OR_META(META,"META") || !(BUILD_TERM_META(_ptTree1))) 
#line 455 "chopb.met"
                        TOKEN_EXIT(primary_expression_exit,"META")
#line 455 "chopb.met"
                    ReplaceTree(_ptRes1, 1, _ptTree1);
#line 455 "chopb.met"
                    _ptTree0=_ptRes1;
#line 455 "chopb.met"
                }
#line 455 "chopb.met"
                _retValue =_ptTree0;
#line 455 "chopb.met"
                goto primary_expression_ret;
#line 455 "chopb.met"
            }
#line 455 "chopb.met"
            break;
#line 455 "chopb.met"
#line 457 "chopb.met"
        case IDENT : 
#line 457 "chopb.met"
#line 458 "chopb.met"
            if ((tokenAhead == 12|| (PushFunction(),TRACE_LEX(1)))&&TERM_OR_META(PUSH_FUNCTION,"PUSH_FUNCTION") && !(tokenAhead = 0) && ( BUILD_TERM_META(result))) {
#line 458 "chopb.met"
#line 459 "chopb.met"
#line 460 "chopb.met"
                (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 460 "chopb.met"
                if (  !SEE_TOKEN( POUV,"(") || !(CommTerm(),1)) 
#line 460 "chopb.met"
                    TOKEN_EXIT(primary_expression_exit,"(")
#line 460 "chopb.met"
#line 461 "chopb.met"
                {
#line 461 "chopb.met"
                    PPTREE _ptTree0;
#line 461 "chopb.met"
                    {
#line 461 "chopb.met"
                        PPTREE _ptTree1,_ptRes1;
#line 461 "chopb.met"
                        _ptRes1= MakeTree(IDENT, 1);
#line 461 "chopb.met"
                        (tokenAhead == 11|| (PushArgument(),TRACE_LEX(1)));
#line 461 "chopb.met"
                        if ( ! TERM_OR_META(PUSH_ARGUMENT,"PUSH_ARGUMENT") || !(BUILD_TERM_META(_ptTree1))) 
#line 461 "chopb.met"
                            TOKEN_EXIT(primary_expression_exit,"PUSH_ARGUMENT")
#line 461 "chopb.met"
                        ReplaceTree(_ptRes1, 1, _ptTree1);
#line 461 "chopb.met"
                        _ptTree0=_ptRes1;
#line 461 "chopb.met"
                    }
#line 461 "chopb.met"
                    list =AddList(list , _ptTree0);
#line 461 "chopb.met"
                }
#line 461 "chopb.met"
#line 462 "chopb.met"
                (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 462 "chopb.met"
                if (  !SEE_TOKEN( VIRG,",") || !(CommTerm(),1)) 
#line 462 "chopb.met"
                    TOKEN_EXIT(primary_expression_exit,",")
#line 462 "chopb.met"
#line 463 "chopb.met"
                {
#line 463 "chopb.met"
                    PPTREE _ptTree0;
#line 463 "chopb.met"
                    if ( (_ptTree0=NQUICK_CALL(_Tak(expression)(error_free), 47, chopb))== (PPTREE) -1 ) {
#line 463 "chopb.met"
                        PROG_EXIT(primary_expression_exit,"primary_expression")
#line 463 "chopb.met"
                    }
#line 463 "chopb.met"
                    list =AddList(list , _ptTree0);
#line 463 "chopb.met"
                }
#line 463 "chopb.met"
#line 464 "chopb.met"
                {
#line 464 "chopb.met"
                    PPTREE _ptRes0;
#line 464 "chopb.met"
                    _ptRes0= MakeTree(EXP_SEQ, 1);
#line 464 "chopb.met"
                    ReplaceTree(_ptRes0, 1, list );
#line 464 "chopb.met"
                    expTree=_ptRes0;
#line 464 "chopb.met"
                }
#line 464 "chopb.met"
#line 465 "chopb.met"
                (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 465 "chopb.met"
                if (  !SEE_TOKEN( PFER,")") || !(CommTerm(),1)) 
#line 465 "chopb.met"
                    TOKEN_EXIT(primary_expression_exit,")")
#line 465 "chopb.met"
#line 466 "chopb.met"
                {
#line 466 "chopb.met"
                    PPTREE _ptTree0;
#line 466 "chopb.met"
                    {
#line 466 "chopb.met"
                        PPTREE _ptTree1,_ptRes1;
#line 466 "chopb.met"
                        _ptRes1= MakeTree(EXP_LIST, 2);
#line 466 "chopb.met"
                        {
#line 466 "chopb.met"
                            PPTREE _ptRes2;
#line 466 "chopb.met"
                            _ptRes2= MakeTree(IDENT, 1);
#line 466 "chopb.met"
                            ReplaceTree(_ptRes2, 1, result );
#line 466 "chopb.met"
                            _ptTree1=_ptRes2;
#line 466 "chopb.met"
                        }
#line 466 "chopb.met"
                        ReplaceTree(_ptRes1, 1, _ptTree1);
#line 466 "chopb.met"
                        ReplaceTree(_ptRes1, 2, expTree );
#line 466 "chopb.met"
                        _ptTree0=_ptRes1;
#line 466 "chopb.met"
                    }
#line 466 "chopb.met"
                    _retValue =_ptTree0;
#line 466 "chopb.met"
                    goto primary_expression_ret;
#line 466 "chopb.met"
                }
#line 466 "chopb.met"
#line 467 "chopb.met"
            } else {
#line 467 "chopb.met"
#line 469 "chopb.met"
                {
#line 469 "chopb.met"
                    PPTREE _ptTree0;
#line 469 "chopb.met"
                    if ( (_ptTree0=NQUICK_CALL(_Tak(qualified_name)(error_free), 93, chopb))== (PPTREE) -1 ) {
#line 469 "chopb.met"
                        PROG_EXIT(primary_expression_exit,"primary_expression")
#line 469 "chopb.met"
                    }
#line 469 "chopb.met"
                    _retValue =_ptTree0;
#line 469 "chopb.met"
                    goto primary_expression_ret;
#line 469 "chopb.met"
                }
#line 469 "chopb.met"
            }
#line 469 "chopb.met"
            break;
#line 469 "chopb.met"
#line 470 "chopb.met"
        case STRING : 
#line 470 "chopb.met"
#line 470 "chopb.met"
            {
#line 470 "chopb.met"
                PPTREE _ptTree0;
#line 470 "chopb.met"
                if ( (_ptTree0=NQUICK_CALL(_Tak(string_list)(error_free), 113, chopb))== (PPTREE) -1 ) {
#line 470 "chopb.met"
                    PROG_EXIT(primary_expression_exit,"primary_expression")
#line 470 "chopb.met"
                }
#line 470 "chopb.met"
                _retValue =_ptTree0;
#line 470 "chopb.met"
                goto primary_expression_ret;
#line 470 "chopb.met"
            }
#line 470 "chopb.met"
            break;
#line 470 "chopb.met"
#line 471 "chopb.met"
        case VA_ARG : 
#line 471 "chopb.met"
            tokenAhead = 0 ;
#line 471 "chopb.met"
            CommTerm();
#line 471 "chopb.met"
#line 472 "chopb.met"
#line 473 "chopb.met"
            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 473 "chopb.met"
            if (  !SEE_TOKEN( POUV,"(") || !(CommTerm(),1)) 
#line 473 "chopb.met"
                TOKEN_EXIT(primary_expression_exit,"(")
#line 473 "chopb.met"
#line 474 "chopb.met"
            {
#line 474 "chopb.met"
                PPTREE _ptTree0,_ptRes0;
#line 474 "chopb.met"
                _ptRes0= MakeTree(VA_ARG, 2);
#line 474 "chopb.met"
                if ( (_ptTree0=NQUICK_CALL(_Tak(assignment_expression)(error_free), 11, chopb))== (PPTREE) -1 ) {
#line 474 "chopb.met"
                    PROG_EXIT(primary_expression_exit,"primary_expression")
#line 474 "chopb.met"
                }
#line 474 "chopb.met"
                ReplaceTree(_ptRes0, 1, _ptTree0);
#line 474 "chopb.met"
                expTree=_ptRes0;
#line 474 "chopb.met"
            }
#line 474 "chopb.met"
#line 475 "chopb.met"
            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 475 "chopb.met"
            if (  !SEE_TOKEN( VIRG,",") || !(CommTerm(),1)) 
#line 475 "chopb.met"
                TOKEN_EXIT(primary_expression_exit,",")
#line 475 "chopb.met"
#line 476 "chopb.met"
            {
#line 476 "chopb.met"
                PPTREE _ptTree0;
#line 476 "chopb.met"
                if ( (_ptTree0=NQUICK_CALL(_Tak(type_name)(error_free), 118, chopb))== (PPTREE) -1 ) {
#line 476 "chopb.met"
                    PROG_EXIT(primary_expression_exit,"primary_expression")
#line 476 "chopb.met"
                }
#line 476 "chopb.met"
                ReplaceTree(expTree , 2 , _ptTree0);
#line 476 "chopb.met"
            }
#line 476 "chopb.met"
#line 477 "chopb.met"
            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 477 "chopb.met"
            if (  !SEE_TOKEN( PFER,")") || !(CommTerm(),1)) 
#line 477 "chopb.met"
                TOKEN_EXIT(primary_expression_exit,")")
#line 477 "chopb.met"
#line 478 "chopb.met"
            {
#line 478 "chopb.met"
                _retValue = expTree ;
#line 478 "chopb.met"
                goto primary_expression_ret;
#line 478 "chopb.met"
                
#line 478 "chopb.met"
            }
#line 478 "chopb.met"
            break;
#line 478 "chopb.met"
#line 480 "chopb.met"
        default : 
#line 480 "chopb.met"
#line 480 "chopb.met"
            {
#line 480 "chopb.met"
                PPTREE _ptTree0;
#line 480 "chopb.met"
                if ( (_ptTree0=NQUICK_CALL(_Tak(constan)(error_free), 25, chopb))== (PPTREE) -1 ) {
#line 480 "chopb.met"
                    PROG_EXIT(primary_expression_exit,"primary_expression")
#line 480 "chopb.met"
                }
#line 480 "chopb.met"
                _retValue =_ptTree0;
#line 480 "chopb.met"
                goto primary_expression_ret;
#line 480 "chopb.met"
            }
#line 480 "chopb.met"
            break;
#line 480 "chopb.met"
    }
#line 480 "chopb.met"
#line 482 "chopb.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 482 "chopb.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 482 "chopb.met"
parse =  _oldparse;
#line 482 "chopb.met"
inMakeTree =  _oldinMakeTree;
#line 482 "chopb.met"
return((PPTREE) 0);
#line 482 "chopb.met"

#line 482 "chopb.met"
primary_expression_exit :
#line 482 "chopb.met"

#line 482 "chopb.met"
    {
#line 482 "chopb.met"
        MulFreeTree(5,statTree,list,expTree,result,_addlist1);
#line 482 "chopb.met"
    }
#line 482 "chopb.met"
    _Debug = TRACE_RULE("primary_expression",TRACE_EXIT,(PPTREE)0);
#line 482 "chopb.met"
    _funcLevel--;
#line 482 "chopb.met"
    parse =  _oldparse;
#line 482 "chopb.met"
    inMakeTree =  _oldinMakeTree;
#line 482 "chopb.met"
    return((PPTREE) -1) ;
#line 482 "chopb.met"

#line 482 "chopb.met"
primary_expression_ret :
#line 482 "chopb.met"
    
#line 482 "chopb.met"
    _Debug = TRACE_RULE("primary_expression",TRACE_RETURN,_retValue);
#line 482 "chopb.met"
    (tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 482 "chopb.met"
    if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,_retValue,lastTree); else {_lastTree=_retValue;_funcLevel--;}
#line 482 "chopb.met"
    parse =  _oldparse;
#line 482 "chopb.met"
    inMakeTree =  _oldinMakeTree;
#line 482 "chopb.met"
    return _retValue ;
#line 482 "chopb.met"
}
#line 482 "chopb.met"

#line 482 "chopb.met"
#line 251 "chopb.met"
PPTREE chopb::prog ( int error_free)
#line 251 "chopb.met"
{
#line 251 "chopb.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 251 "chopb.met"
    int _value,_nbPre = 0 ;
#line 251 "chopb.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 251 "chopb.met"
    int _Debug = TRACE_RULE("prog",TRACE_ENTER,(PPTREE)0);
#line 251 "chopb.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 251 "chopb.met"
#line 251 "chopb.met"
    PPTREE langTree = (PPTREE) 0;
#line 251 "chopb.met"
#line 253 "chopb.met"
    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 253 "chopb.met"
    if (  !SEE_TOKEN( LANGUAGE,"language") || !(CommTerm(),1)) 
#line 253 "chopb.met"
        TOKEN_EXIT(prog_exit,"language")
#line 253 "chopb.met"
#line 254 "chopb.met"
    {
#line 254 "chopb.met"
        PPTREE _ptTree0,_ptRes0;
#line 254 "chopb.met"
        _ptRes0= MakeTree(CHOP_DEF, 2);
#line 254 "chopb.met"
        {
#line 254 "chopb.met"
            PPTREE _ptTree1,_ptRes1;
#line 254 "chopb.met"
            _ptRes1= MakeTree(IDENT, 1);
#line 254 "chopb.met"
            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 254 "chopb.met"
            if ( ! TERM_OR_META(IDENT,"IDENT") || !(BUILD_TERM_META(_ptTree1))) 
#line 254 "chopb.met"
                TOKEN_EXIT(prog_exit,"IDENT")
#line 254 "chopb.met"
            ReplaceTree(_ptRes1, 1, _ptTree1);
#line 254 "chopb.met"
            _ptTree0=_ptRes1;
#line 254 "chopb.met"
        }
#line 254 "chopb.met"
        ReplaceTree(_ptRes0, 1, _ptTree0);
#line 254 "chopb.met"
        langTree=_ptRes0;
#line 254 "chopb.met"
    }
#line 254 "chopb.met"
#line 255 "chopb.met"
    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 255 "chopb.met"
    if (  !SEE_TOKEN( PVIR,";") || !(CommTerm(),1)) 
#line 255 "chopb.met"
        TOKEN_EXIT(prog_exit,";")
#line 255 "chopb.met"
#line 256 "chopb.met"
    {
#line 256 "chopb.met"
        PPTREE _ptTree0;
#line 256 "chopb.met"
        if ( (_ptTree0=NQUICK_CALL(_Tak(program)(error_free), 90, chopb))== (PPTREE) -1 ) {
#line 256 "chopb.met"
            PROG_EXIT(prog_exit,"prog")
#line 256 "chopb.met"
        }
#line 256 "chopb.met"
        ReplaceTree(langTree , 2 , _ptTree0);
#line 256 "chopb.met"
    }
#line 256 "chopb.met"
#line 257 "chopb.met"
    {
#line 257 "chopb.met"
        _retValue = langTree ;
#line 257 "chopb.met"
        goto prog_ret;
#line 257 "chopb.met"
        
#line 257 "chopb.met"
    }
#line 257 "chopb.met"
#line 258 "chopb.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 258 "chopb.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 258 "chopb.met"
return((PPTREE) 0);
#line 258 "chopb.met"

#line 258 "chopb.met"
prog_exit :
#line 258 "chopb.met"

#line 258 "chopb.met"
    {
#line 258 "chopb.met"
        MulFreeTree(1,langTree);
#line 258 "chopb.met"
    }
#line 258 "chopb.met"
    _Debug = TRACE_RULE("prog",TRACE_EXIT,(PPTREE)0);
#line 258 "chopb.met"
    _funcLevel--;
#line 258 "chopb.met"
    return((PPTREE) -1) ;
#line 258 "chopb.met"

#line 258 "chopb.met"
prog_ret :
#line 258 "chopb.met"
    
#line 258 "chopb.met"
    _Debug = TRACE_RULE("prog",TRACE_RETURN,_retValue);
#line 258 "chopb.met"
    (tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 258 "chopb.met"
    if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,_retValue,lastTree); else {_lastTree=_retValue;_funcLevel--;}
#line 258 "chopb.met"
    return _retValue ;
#line 258 "chopb.met"
}
#line 258 "chopb.met"

#line 258 "chopb.met"
#line 290 "chopb.met"
PPTREE chopb::relational_expression ( int error_free)
#line 290 "chopb.met"
{
#line 290 "chopb.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 290 "chopb.met"
    int _value,_nbPre = 0 ;
#line 290 "chopb.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 290 "chopb.met"
    int _Debug = TRACE_RULE("relational_expression",TRACE_ENTER,(PPTREE)0);
#line 290 "chopb.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 290 "chopb.met"
#line 290 "chopb.met"
    PPTREE expTree = (PPTREE) 0;
#line 290 "chopb.met"
#line 292 "chopb.met"
    if ( (expTree=NQUICK_CALL(_Tak(shift_expression)(error_free), 104, chopb))== (PPTREE) -1 ) {
#line 292 "chopb.met"
        PROG_EXIT(relational_expression_exit,"relational_expression")
#line 292 "chopb.met"
    }
#line 292 "chopb.met"
#line 293 "chopb.met"
    while (((((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN( INFEEGAL,"<=")) || 
#line 293 "chopb.met"
            ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN( SUPEEGAL,">="))) || 
#line 293 "chopb.met"
           ((((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN( SUPE,">")) && 
#line 293 "chopb.met"
            (! (inMakeTree))))) || 
#line 293 "chopb.met"
          ((((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN( INFE,"<")) && 
#line 293 "chopb.met"
           (! (((((tokenAhead == 18|| (formatBeg(),TRACE_LEX(1)))&&SEE_TOKEN( SPACE_BEG,"SPACE_BEG")) || 
#line 293 "chopb.met"
                ((tokenAhead == 18|| (formatBeg(),TRACE_LEX(1)))&&SEE_TOKEN( TAB_BEG,"TAB_BEG"))) || 
#line 293 "chopb.met"
               ((tokenAhead == 18|| (formatBeg(),TRACE_LEX(1)))&&SEE_TOKEN( NL_BEG,"NL_BEG")))))))) { 
#line 293 "chopb.met"
#line 298 "chopb.met"
        (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 298 "chopb.met"
        switch( lexEl.Value) {
#line 298 "chopb.met"
#line 299 "chopb.met"
            case INFEEGAL : 
#line 299 "chopb.met"
                tokenAhead = 0 ;
#line 299 "chopb.met"
                CommTerm();
#line 299 "chopb.met"
#line 299 "chopb.met"
                {
#line 299 "chopb.met"
                    PPTREE _ptTree0,_ptRes0;
#line 299 "chopb.met"
                    _ptRes0= MakeTree(LEQU, 2);
#line 299 "chopb.met"
                    ReplaceTree(_ptRes0, 1, expTree );
#line 299 "chopb.met"
                    if ( (_ptTree0=NQUICK_CALL(_Tak(shift_expression)(error_free), 104, chopb))== (PPTREE) -1 ) {
#line 299 "chopb.met"
                        PROG_EXIT(relational_expression_exit,"relational_expression")
#line 299 "chopb.met"
                    }
#line 299 "chopb.met"
                    ReplaceTree(_ptRes0, 2, _ptTree0);
#line 299 "chopb.met"
                    expTree=_ptRes0;
#line 299 "chopb.met"
                }
#line 299 "chopb.met"
                break;
#line 299 "chopb.met"
#line 301 "chopb.met"
            case SUPEEGAL : 
#line 301 "chopb.met"
                tokenAhead = 0 ;
#line 301 "chopb.met"
                CommTerm();
#line 301 "chopb.met"
#line 301 "chopb.met"
                {
#line 301 "chopb.met"
                    PPTREE _ptTree0,_ptRes0;
#line 301 "chopb.met"
                    _ptRes0= MakeTree(GEQU, 2);
#line 301 "chopb.met"
                    ReplaceTree(_ptRes0, 1, expTree );
#line 301 "chopb.met"
                    if ( (_ptTree0=NQUICK_CALL(_Tak(shift_expression)(error_free), 104, chopb))== (PPTREE) -1 ) {
#line 301 "chopb.met"
                        PROG_EXIT(relational_expression_exit,"relational_expression")
#line 301 "chopb.met"
                    }
#line 301 "chopb.met"
                    ReplaceTree(_ptRes0, 2, _ptTree0);
#line 301 "chopb.met"
                    expTree=_ptRes0;
#line 301 "chopb.met"
                }
#line 301 "chopb.met"
                break;
#line 301 "chopb.met"
#line 303 "chopb.met"
            case SUPE : 
#line 303 "chopb.met"
                tokenAhead = 0 ;
#line 303 "chopb.met"
                CommTerm();
#line 303 "chopb.met"
#line 303 "chopb.met"
                {
#line 303 "chopb.met"
                    PPTREE _ptTree0,_ptRes0;
#line 303 "chopb.met"
                    _ptRes0= MakeTree(GT, 2);
#line 303 "chopb.met"
                    ReplaceTree(_ptRes0, 1, expTree );
#line 303 "chopb.met"
                    if ( (_ptTree0=NQUICK_CALL(_Tak(shift_expression)(error_free), 104, chopb))== (PPTREE) -1 ) {
#line 303 "chopb.met"
                        PROG_EXIT(relational_expression_exit,"relational_expression")
#line 303 "chopb.met"
                    }
#line 303 "chopb.met"
                    ReplaceTree(_ptRes0, 2, _ptTree0);
#line 303 "chopb.met"
                    expTree=_ptRes0;
#line 303 "chopb.met"
                }
#line 303 "chopb.met"
                break;
#line 303 "chopb.met"
#line 304 "chopb.met"
            case INFE : 
#line 304 "chopb.met"
                tokenAhead = 0 ;
#line 304 "chopb.met"
                CommTerm();
#line 304 "chopb.met"
#line 304 "chopb.met"
                {
#line 304 "chopb.met"
                    PPTREE _ptTree0,_ptRes0;
#line 304 "chopb.met"
                    _ptRes0= MakeTree(LT, 2);
#line 304 "chopb.met"
                    ReplaceTree(_ptRes0, 1, expTree );
#line 304 "chopb.met"
                    if ( (_ptTree0=NQUICK_CALL(_Tak(shift_expression)(error_free), 104, chopb))== (PPTREE) -1 ) {
#line 304 "chopb.met"
                        PROG_EXIT(relational_expression_exit,"relational_expression")
#line 304 "chopb.met"
                    }
#line 304 "chopb.met"
                    ReplaceTree(_ptRes0, 2, _ptTree0);
#line 304 "chopb.met"
                    expTree=_ptRes0;
#line 304 "chopb.met"
                }
#line 304 "chopb.met"
                break;
#line 304 "chopb.met"
            default :
#line 304 "chopb.met"
                CASE_EXIT(relational_expression_exit,"either <= or >= or > or <")
#line 304 "chopb.met"
                break;
#line 304 "chopb.met"
        }
#line 304 "chopb.met"
    } 
#line 304 "chopb.met"
#line 306 "chopb.met"
    {
#line 306 "chopb.met"
        _retValue = expTree ;
#line 306 "chopb.met"
        goto relational_expression_ret;
#line 306 "chopb.met"
        
#line 306 "chopb.met"
    }
#line 306 "chopb.met"
#line 307 "chopb.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 307 "chopb.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 307 "chopb.met"
return((PPTREE) 0);
#line 307 "chopb.met"

#line 307 "chopb.met"
relational_expression_exit :
#line 307 "chopb.met"

#line 307 "chopb.met"
    {
#line 307 "chopb.met"
        MulFreeTree(1,expTree);
#line 307 "chopb.met"
    }
#line 307 "chopb.met"
    _Debug = TRACE_RULE("relational_expression",TRACE_EXIT,(PPTREE)0);
#line 307 "chopb.met"
    _funcLevel--;
#line 307 "chopb.met"
    return((PPTREE) -1) ;
#line 307 "chopb.met"

#line 307 "chopb.met"
relational_expression_ret :
#line 307 "chopb.met"
    
#line 307 "chopb.met"
    _Debug = TRACE_RULE("relational_expression",TRACE_RETURN,_retValue);
#line 307 "chopb.met"
    (tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 307 "chopb.met"
    if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,_retValue,lastTree); else {_lastTree=_retValue;_funcLevel--;}
#line 307 "chopb.met"
    return _retValue ;
#line 307 "chopb.met"
}
#line 307 "chopb.met"

#line 307 "chopb.met"
#line 309 "chopb.met"
PPTREE chopb::shift_expression ( int error_free)
#line 309 "chopb.met"
{
#line 309 "chopb.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 309 "chopb.met"
    int _value,_nbPre = 0 ;
#line 309 "chopb.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 309 "chopb.met"
    int _Debug = TRACE_RULE("shift_expression",TRACE_ENTER,(PPTREE)0);
#line 309 "chopb.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 309 "chopb.met"
#line 309 "chopb.met"
    PPTREE expTree = (PPTREE) 0;
#line 309 "chopb.met"
#line 311 "chopb.met"
    if ( (expTree=NQUICK_CALL(_Tak(additive_expression)(error_free), 2, chopb))== (PPTREE) -1 ) {
#line 311 "chopb.met"
        PROG_EXIT(shift_expression_exit,"shift_expression")
#line 311 "chopb.met"
    }
#line 311 "chopb.met"
#line 312 "chopb.met"
    while (((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN( INFEINFE,"<<")) || 
#line 312 "chopb.met"
          (((! (inMakeTree)) && 
#line 312 "chopb.met"
           ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN( SUPESUPE,">>"))))) { 
#line 312 "chopb.met"
#line 313 "chopb.met"
        (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 313 "chopb.met"
        switch( lexEl.Value) {
#line 313 "chopb.met"
#line 314 "chopb.met"
            case INFEINFE : 
#line 314 "chopb.met"
                tokenAhead = 0 ;
#line 314 "chopb.met"
                CommTerm();
#line 314 "chopb.met"
#line 314 "chopb.met"
                {
#line 314 "chopb.met"
                    PPTREE _ptTree0,_ptRes0;
#line 314 "chopb.met"
                    _ptRes0= MakeTree(LSHI, 2);
#line 314 "chopb.met"
                    ReplaceTree(_ptRes0, 1, expTree );
#line 314 "chopb.met"
                    if ( (_ptTree0=NQUICK_CALL(_Tak(additive_expression)(error_free), 2, chopb))== (PPTREE) -1 ) {
#line 314 "chopb.met"
                        PROG_EXIT(shift_expression_exit,"shift_expression")
#line 314 "chopb.met"
                    }
#line 314 "chopb.met"
                    ReplaceTree(_ptRes0, 2, _ptTree0);
#line 314 "chopb.met"
                    expTree=_ptRes0;
#line 314 "chopb.met"
                }
#line 314 "chopb.met"
                break;
#line 314 "chopb.met"
#line 316 "chopb.met"
            case SUPESUPE : 
#line 316 "chopb.met"
                tokenAhead = 0 ;
#line 316 "chopb.met"
                CommTerm();
#line 316 "chopb.met"
#line 316 "chopb.met"
                {
#line 316 "chopb.met"
                    PPTREE _ptTree0,_ptRes0;
#line 316 "chopb.met"
                    _ptRes0= MakeTree(RSHI, 2);
#line 316 "chopb.met"
                    ReplaceTree(_ptRes0, 1, expTree );
#line 316 "chopb.met"
                    if ( (_ptTree0=NQUICK_CALL(_Tak(additive_expression)(error_free), 2, chopb))== (PPTREE) -1 ) {
#line 316 "chopb.met"
                        PROG_EXIT(shift_expression_exit,"shift_expression")
#line 316 "chopb.met"
                    }
#line 316 "chopb.met"
                    ReplaceTree(_ptRes0, 2, _ptTree0);
#line 316 "chopb.met"
                    expTree=_ptRes0;
#line 316 "chopb.met"
                }
#line 316 "chopb.met"
                break;
#line 316 "chopb.met"
            default :
#line 316 "chopb.met"
                CASE_EXIT(shift_expression_exit,"either << or >>")
#line 316 "chopb.met"
                break;
#line 316 "chopb.met"
        }
#line 316 "chopb.met"
    } 
#line 316 "chopb.met"
#line 319 "chopb.met"
    {
#line 319 "chopb.met"
        _retValue = expTree ;
#line 319 "chopb.met"
        goto shift_expression_ret;
#line 319 "chopb.met"
        
#line 319 "chopb.met"
    }
#line 319 "chopb.met"
#line 320 "chopb.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 320 "chopb.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 320 "chopb.met"
return((PPTREE) 0);
#line 320 "chopb.met"

#line 320 "chopb.met"
shift_expression_exit :
#line 320 "chopb.met"

#line 320 "chopb.met"
    {
#line 320 "chopb.met"
        MulFreeTree(1,expTree);
#line 320 "chopb.met"
    }
#line 320 "chopb.met"
    _Debug = TRACE_RULE("shift_expression",TRACE_EXIT,(PPTREE)0);
#line 320 "chopb.met"
    _funcLevel--;
#line 320 "chopb.met"
    return((PPTREE) -1) ;
#line 320 "chopb.met"

#line 320 "chopb.met"
shift_expression_ret :
#line 320 "chopb.met"
    
#line 320 "chopb.met"
    _Debug = TRACE_RULE("shift_expression",TRACE_RETURN,_retValue);
#line 320 "chopb.met"
    (tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 320 "chopb.met"
    if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,_retValue,lastTree); else {_lastTree=_retValue;_funcLevel--;}
#line 320 "chopb.met"
    return _retValue ;
#line 320 "chopb.met"
}
#line 320 "chopb.met"

#line 320 "chopb.met"
#line 484 "chopb.met"
PPTREE chopb::statement ( int error_free)
#line 484 "chopb.met"
{
#line 484 "chopb.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 484 "chopb.met"
    int _value,_nbPre = 0 ;
#line 484 "chopb.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 484 "chopb.met"
    int _Debug = TRACE_RULE("statement",TRACE_ENTER,(PPTREE)0);
#line 484 "chopb.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 484 "chopb.met"
#line 484 "chopb.met"
    PPTREE _addlist1 = (PPTREE) 0;
#line 484 "chopb.met"
#line 484 "chopb.met"
    PPTREE statTree = (PPTREE) 0,inter = (PPTREE) 0,list = (PPTREE) 0;
#line 484 "chopb.met"
#line 486 "chopb.met"
    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 486 "chopb.met"
    switch( lexEl.Value) {
#line 486 "chopb.met"
#line 489 "chopb.met"
        case ARRO : 
#line 489 "chopb.met"
            tokenAhead = 0 ;
#line 489 "chopb.met"
            CommTerm();
#line 489 "chopb.met"
#line 488 "chopb.met"
#line 489 "chopb.met"
            {
#line 489 "chopb.met"
                PPTREE _ptTree0,_ptRes0;
#line 489 "chopb.met"
                _ptRes0= MakeTree(ARRO, 1);
#line 489 "chopb.met"
                {
#line 489 "chopb.met"
                    PPTREE _ptTree1,_ptRes1;
#line 489 "chopb.met"
                    _ptRes1= MakeTree(IDENT, 1);
#line 489 "chopb.met"
                    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 489 "chopb.met"
                    if ( ! TERM_OR_META(IDENT,"IDENT") || !(BUILD_TERM_META(_ptTree1))) 
#line 489 "chopb.met"
                        TOKEN_EXIT(statement_exit,"IDENT")
#line 489 "chopb.met"
                    ReplaceTree(_ptRes1, 1, _ptTree1);
#line 489 "chopb.met"
                    _ptTree0=_ptRes1;
#line 489 "chopb.met"
                }
#line 489 "chopb.met"
                ReplaceTree(_ptRes0, 1, _ptTree0);
#line 489 "chopb.met"
                statTree=_ptRes0;
#line 489 "chopb.met"
            }
#line 489 "chopb.met"
#line 490 "chopb.met"
            if ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN(PVIR,";") && (tokenAhead = 0,CommTerm(),1)){
#line 490 "chopb.met"
#line 490 "chopb.met"
            }
#line 490 "chopb.met"
            break;
#line 490 "chopb.met"
#line 494 "chopb.met"
        case AOUVAOUV : 
#line 494 "chopb.met"
            tokenAhead = 0 ;
#line 494 "chopb.met"
            CommTerm();
#line 494 "chopb.met"
#line 493 "chopb.met"
#line 494 "chopb.met"
            if ( (inter=NQUICK_CALL(_Tak(statement)(error_free), 112, chopb))== (PPTREE) -1 ) {
#line 494 "chopb.met"
                PROG_EXIT(statement_exit,"statement")
#line 494 "chopb.met"
            }
#line 494 "chopb.met"
#line 494 "chopb.met"
            _addlist1 = list ;
#line 494 "chopb.met"
#line 495 "chopb.met"
            do {
#line 495 "chopb.met"
#line 496 "chopb.met"
                _addlist1 =AddList(_addlist1 ,inter );
#line 496 "chopb.met"
#line 496 "chopb.met"
                if (list){
#line 496 "chopb.met"
#line 496 "chopb.met"
                    _addlist1 = SonTree (_addlist1 ,2 );
#line 496 "chopb.met"
                } else {
#line 496 "chopb.met"
#line 496 "chopb.met"
                    list = _addlist1 ;
#line 496 "chopb.met"
                }
#line 496 "chopb.met"
#line 497 "chopb.met"
                if ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN(PVIR,";") && (tokenAhead = 0,CommTerm(),1)){
#line 497 "chopb.met"
#line 497 "chopb.met"
                }
#line 497 "chopb.met"
#line 498 "chopb.met"
            } while ( !(! (NPUSH_CALL_AFF_VERIF(inter = ,_Tak(statement), 112, chopb)))) ;
#line 498 "chopb.met"
#line 499 "chopb.met"
            {
#line 499 "chopb.met"
                PPTREE _ptRes0;
#line 499 "chopb.met"
                _ptRes0= MakeTree(ALINEA, 1);
#line 499 "chopb.met"
                ReplaceTree(_ptRes0, 1, list );
#line 499 "chopb.met"
                statTree=_ptRes0;
#line 499 "chopb.met"
            }
#line 499 "chopb.met"
#line 500 "chopb.met"
            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 500 "chopb.met"
            if (  !SEE_TOKEN( AFERAFER,"}}") || !(CommTerm(),1)) 
#line 500 "chopb.met"
                TOKEN_EXIT(statement_exit,"}}")
#line 500 "chopb.met"
            break;
#line 500 "chopb.met"
#line 502 "chopb.met"
        case INFESEPASUPE : 
#line 502 "chopb.met"
            tokenAhead = 0 ;
#line 502 "chopb.met"
            CommTerm();
#line 502 "chopb.met"
#line 502 "chopb.met"
            {
#line 502 "chopb.met"
                PPTREE _ptRes0;
#line 502 "chopb.met"
                _ptRes0= MakeTree(SEP_AFTER, 0);
#line 502 "chopb.met"
                statTree=_ptRes0;
#line 502 "chopb.met"
            }
#line 502 "chopb.met"
            break;
#line 502 "chopb.met"
#line 503 "chopb.met"
        case INFESEPBSUPE : 
#line 503 "chopb.met"
            tokenAhead = 0 ;
#line 503 "chopb.met"
            CommTerm();
#line 503 "chopb.met"
#line 503 "chopb.met"
            {
#line 503 "chopb.met"
                PPTREE _ptRes0;
#line 503 "chopb.met"
                _ptRes0= MakeTree(SEP_BEFORE, 0);
#line 503 "chopb.met"
                statTree=_ptRes0;
#line 503 "chopb.met"
            }
#line 503 "chopb.met"
            break;
#line 503 "chopb.met"
#line 504 "chopb.met"
        case INFESEPOSUPE : 
#line 504 "chopb.met"
            tokenAhead = 0 ;
#line 504 "chopb.met"
            CommTerm();
#line 504 "chopb.met"
#line 504 "chopb.met"
            {
#line 504 "chopb.met"
                PPTREE _ptRes0;
#line 504 "chopb.met"
                _ptRes0= MakeTree(SEP_OMIT, 0);
#line 504 "chopb.met"
                statTree=_ptRes0;
#line 504 "chopb.met"
            }
#line 504 "chopb.met"
            break;
#line 504 "chopb.met"
#line 508 "chopb.met"
        case INFE : 
#line 508 "chopb.met"
#line 506 "chopb.met"
#line 507 "chopb.met"
            (tokenAhead == 18|| (formatBeg(),TRACE_LEX(1)));
#line 507 "chopb.met"
            switch( lexEl.Value) {
#line 507 "chopb.met"
#line 508 "chopb.met"
                case META : 
#line 508 "chopb.met"
                case SPACE_BEG : 
#line 508 "chopb.met"
                    tokenAhead = 0 ;
#line 508 "chopb.met"
                    CommTerm();
#line 508 "chopb.met"
#line 509 "chopb.met"
                    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 509 "chopb.met"
                    switch( lexEl.Value) {
#line 509 "chopb.met"
#line 510 "chopb.met"
                        case SUPE : 
#line 510 "chopb.met"
                            tokenAhead = 0 ;
#line 510 "chopb.met"
                            CommTerm();
#line 510 "chopb.met"
#line 510 "chopb.met"
                            {
#line 510 "chopb.met"
                                PPTREE _ptRes0;
#line 510 "chopb.met"
                                _ptRes0= MakeTree(SPACE, 1);
#line 510 "chopb.met"
                                statTree=_ptRes0;
#line 510 "chopb.met"
                            }
#line 510 "chopb.met"
                            break;
#line 510 "chopb.met"
#line 513 "chopb.met"
                        case VIRG : 
#line 513 "chopb.met"
                            tokenAhead = 0 ;
#line 513 "chopb.met"
                            CommTerm();
#line 513 "chopb.met"
#line 512 "chopb.met"
#line 513 "chopb.met"
                            {
#line 513 "chopb.met"
                                PPTREE _ptTree0,_ptRes0;
#line 513 "chopb.met"
                                _ptRes0= MakeTree(SPACE, 1);
#line 513 "chopb.met"
                                {
#line 513 "chopb.met"
                                    PPTREE _ptTree1,_ptRes1;
#line 513 "chopb.met"
                                    _ptRes1= MakeTree(INTEGER, 1);
#line 513 "chopb.met"
                                    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 513 "chopb.met"
                                    if ( ! TERM_OR_META(INTEGER,"INTEGER") || !(BUILD_TERM_META(_ptTree1))) 
#line 513 "chopb.met"
                                        TOKEN_EXIT(statement_exit,"INTEGER")
#line 513 "chopb.met"
                                    ReplaceTree(_ptRes1, 1, _ptTree1);
#line 513 "chopb.met"
                                    _ptTree0=_ptRes1;
#line 513 "chopb.met"
                                }
#line 513 "chopb.met"
                                ReplaceTree(_ptRes0, 1, _ptTree0);
#line 513 "chopb.met"
                                statTree=_ptRes0;
#line 513 "chopb.met"
                            }
#line 513 "chopb.met"
#line 516 "chopb.met"
                            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 516 "chopb.met"
                            if (  !SEE_TOKEN( SUPE,">") || !(CommTerm(),1)) 
#line 516 "chopb.met"
                                TOKEN_EXIT(statement_exit,">")
#line 516 "chopb.met"
                            break;
#line 516 "chopb.met"
                        default :
#line 516 "chopb.met"
                            CASE_EXIT(statement_exit,"either > or ,")
#line 516 "chopb.met"
                            break;
#line 516 "chopb.met"
                    }
#line 516 "chopb.met"
                    break;
#line 516 "chopb.met"
#line 519 "chopb.met"
                case TAB_BEG : 
#line 519 "chopb.met"
                    tokenAhead = 0 ;
#line 519 "chopb.met"
                    CommTerm();
#line 519 "chopb.met"
#line 520 "chopb.met"
                    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 520 "chopb.met"
                    switch( lexEl.Value) {
#line 520 "chopb.met"
#line 521 "chopb.met"
                        case SUPE : 
#line 521 "chopb.met"
                            tokenAhead = 0 ;
#line 521 "chopb.met"
                            CommTerm();
#line 521 "chopb.met"
#line 521 "chopb.met"
                            {
#line 521 "chopb.met"
                                PPTREE _ptRes0;
#line 521 "chopb.met"
                                _ptRes0= MakeTree(TAB, 1);
#line 521 "chopb.met"
                                statTree=_ptRes0;
#line 521 "chopb.met"
                            }
#line 521 "chopb.met"
                            break;
#line 521 "chopb.met"
#line 524 "chopb.met"
                        case VIRG : 
#line 524 "chopb.met"
                            tokenAhead = 0 ;
#line 524 "chopb.met"
                            CommTerm();
#line 524 "chopb.met"
#line 523 "chopb.met"
#line 524 "chopb.met"
                            {
#line 524 "chopb.met"
                                PPTREE _ptTree0,_ptRes0;
#line 524 "chopb.met"
                                _ptRes0= MakeTree(TAB, 1);
#line 524 "chopb.met"
                                {
#line 524 "chopb.met"
                                    PPTREE _ptTree1,_ptRes1;
#line 524 "chopb.met"
                                    _ptRes1= MakeTree(INTEGER, 1);
#line 524 "chopb.met"
                                    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 524 "chopb.met"
                                    if ( ! TERM_OR_META(INTEGER,"INTEGER") || !(BUILD_TERM_META(_ptTree1))) 
#line 524 "chopb.met"
                                        TOKEN_EXIT(statement_exit,"INTEGER")
#line 524 "chopb.met"
                                    ReplaceTree(_ptRes1, 1, _ptTree1);
#line 524 "chopb.met"
                                    _ptTree0=_ptRes1;
#line 524 "chopb.met"
                                }
#line 524 "chopb.met"
                                ReplaceTree(_ptRes0, 1, _ptTree0);
#line 524 "chopb.met"
                                statTree=_ptRes0;
#line 524 "chopb.met"
                            }
#line 524 "chopb.met"
#line 527 "chopb.met"
                            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 527 "chopb.met"
                            if (  !SEE_TOKEN( SUPE,">") || !(CommTerm(),1)) 
#line 527 "chopb.met"
                                TOKEN_EXIT(statement_exit,">")
#line 527 "chopb.met"
                            break;
#line 527 "chopb.met"
                        default :
#line 527 "chopb.met"
                            CASE_EXIT(statement_exit,"either > or ,")
#line 527 "chopb.met"
                            break;
#line 527 "chopb.met"
                    }
#line 527 "chopb.met"
                    break;
#line 527 "chopb.met"
#line 530 "chopb.met"
                case NL_BEG : 
#line 530 "chopb.met"
                    tokenAhead = 0 ;
#line 530 "chopb.met"
                    CommTerm();
#line 530 "chopb.met"
#line 531 "chopb.met"
                    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 531 "chopb.met"
                    switch( lexEl.Value) {
#line 531 "chopb.met"
#line 532 "chopb.met"
                        case SUPE : 
#line 532 "chopb.met"
                            tokenAhead = 0 ;
#line 532 "chopb.met"
                            CommTerm();
#line 532 "chopb.met"
#line 532 "chopb.met"
                            {
#line 532 "chopb.met"
                                PPTREE _ptRes0;
#line 532 "chopb.met"
                                _ptRes0= MakeTree(NEWLINE, 1);
#line 532 "chopb.met"
                                statTree=_ptRes0;
#line 532 "chopb.met"
                            }
#line 532 "chopb.met"
                            break;
#line 532 "chopb.met"
#line 535 "chopb.met"
                        case VIRG : 
#line 535 "chopb.met"
                            tokenAhead = 0 ;
#line 535 "chopb.met"
                            CommTerm();
#line 535 "chopb.met"
#line 534 "chopb.met"
#line 535 "chopb.met"
                            {
#line 535 "chopb.met"
                                PPTREE _ptTree0,_ptRes0;
#line 535 "chopb.met"
                                _ptRes0= MakeTree(NEWLINE, 1);
#line 535 "chopb.met"
                                {
#line 535 "chopb.met"
                                    PPTREE _ptTree1,_ptRes1;
#line 535 "chopb.met"
                                    _ptRes1= MakeTree(INTEGER, 1);
#line 535 "chopb.met"
                                    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 535 "chopb.met"
                                    if ( ! TERM_OR_META(INTEGER,"INTEGER") || !(BUILD_TERM_META(_ptTree1))) 
#line 535 "chopb.met"
                                        TOKEN_EXIT(statement_exit,"INTEGER")
#line 535 "chopb.met"
                                    ReplaceTree(_ptRes1, 1, _ptTree1);
#line 535 "chopb.met"
                                    _ptTree0=_ptRes1;
#line 535 "chopb.met"
                                }
#line 535 "chopb.met"
                                ReplaceTree(_ptRes0, 1, _ptTree0);
#line 535 "chopb.met"
                                statTree=_ptRes0;
#line 535 "chopb.met"
                            }
#line 535 "chopb.met"
#line 538 "chopb.met"
                            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 538 "chopb.met"
                            if (  !SEE_TOKEN( SUPE,">") || !(CommTerm(),1)) 
#line 538 "chopb.met"
                                TOKEN_EXIT(statement_exit,">")
#line 538 "chopb.met"
                            break;
#line 538 "chopb.met"
                        default :
#line 538 "chopb.met"
                            CASE_EXIT(statement_exit,"either > or ,")
#line 538 "chopb.met"
                            break;
#line 538 "chopb.met"
                    }
#line 538 "chopb.met"
                    break;
#line 538 "chopb.met"
                default :
#line 538 "chopb.met"
                    CASE_EXIT(statement_exit,"either SPACE_BEG or TAB_BEG or NL_BEG")
#line 538 "chopb.met"
                    break;
#line 538 "chopb.met"
            }
#line 538 "chopb.met"
#line 542 "chopb.met"
            if ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN(PVIR,";") && (tokenAhead = 0,CommTerm(),1)){
#line 542 "chopb.met"
#line 542 "chopb.met"
            }
#line 542 "chopb.met"
            break;
#line 542 "chopb.met"
#line 544 "chopb.met"
        case FOREACH : 
#line 544 "chopb.met"
            tokenAhead = 0 ;
#line 544 "chopb.met"
            CommTerm();
#line 544 "chopb.met"
#line 545 "chopb.met"
#line 546 "chopb.met"
            {
#line 546 "chopb.met"
                PPTREE _ptRes0;
#line 546 "chopb.met"
                _ptRes0= MakeTree(FOREACH, 3);
#line 546 "chopb.met"
                statTree=_ptRes0;
#line 546 "chopb.met"
            }
#line 546 "chopb.met"
#line 547 "chopb.met"
            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 547 "chopb.met"
            if (  !SEE_TOKEN( POUV,"(") || !(CommTerm(),1)) 
#line 547 "chopb.met"
                TOKEN_EXIT(statement_exit,"(")
#line 547 "chopb.met"
#line 548 "chopb.met"
            {
#line 548 "chopb.met"
                PPTREE _ptTree0;
#line 548 "chopb.met"
                if ( (_ptTree0=NQUICK_CALL(_Tak(assignment_expression)(error_free), 11, chopb))== (PPTREE) -1 ) {
#line 548 "chopb.met"
                    PROG_EXIT(statement_exit,"statement")
#line 548 "chopb.met"
                }
#line 548 "chopb.met"
                ReplaceTree(statTree , 1 , _ptTree0);
#line 548 "chopb.met"
            }
#line 548 "chopb.met"
#line 549 "chopb.met"
            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 549 "chopb.met"
            if (  !SEE_TOKEN( VIRG,",") || !(CommTerm(),1)) 
#line 549 "chopb.met"
                TOKEN_EXIT(statement_exit,",")
#line 549 "chopb.met"
#line 550 "chopb.met"
            {
#line 550 "chopb.met"
                PPTREE _ptTree0;
#line 550 "chopb.met"
                if ( (_ptTree0=NQUICK_CALL(_Tak(assignment_expression)(error_free), 11, chopb))== (PPTREE) -1 ) {
#line 550 "chopb.met"
                    PROG_EXIT(statement_exit,"statement")
#line 550 "chopb.met"
                }
#line 550 "chopb.met"
                ReplaceTree(statTree , 2 , _ptTree0);
#line 550 "chopb.met"
            }
#line 550 "chopb.met"
#line 551 "chopb.met"
            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 551 "chopb.met"
            if (  !SEE_TOKEN( VIRG,",") || !(CommTerm(),1)) 
#line 551 "chopb.met"
                TOKEN_EXIT(statement_exit,",")
#line 551 "chopb.met"
#line 555 "chopb.met"
            if (! (NPUSH_CALL_AFF_VERIF(inter = ,_Tak(statement), 112, chopb))){
#line 555 "chopb.met"
#line 557 "chopb.met"
                if ( (inter=NQUICK_CALL(_Tak(expression)(error_free), 47, chopb))== (PPTREE) -1 ) {
#line 557 "chopb.met"
                    PROG_EXIT(statement_exit,"statement")
#line 557 "chopb.met"
                }
#line 557 "chopb.met"
            }
#line 557 "chopb.met"
#line 558 "chopb.met"
            ReplaceTree(statTree ,3 ,inter );
#line 558 "chopb.met"
#line 559 "chopb.met"
            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 559 "chopb.met"
            if (  !SEE_TOKEN( PFER,")") || !(CommTerm(),1)) 
#line 559 "chopb.met"
                TOKEN_EXIT(statement_exit,")")
#line 559 "chopb.met"
#line 560 "chopb.met"
            if ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN(PVIR,";") && (tokenAhead = 0,CommTerm(),1)){
#line 560 "chopb.met"
#line 560 "chopb.met"
            }
#line 560 "chopb.met"
            break;
#line 560 "chopb.met"
#line 562 "chopb.met"
        case FORALLSONS : 
#line 562 "chopb.met"
            tokenAhead = 0 ;
#line 562 "chopb.met"
            CommTerm();
#line 562 "chopb.met"
#line 563 "chopb.met"
#line 564 "chopb.met"
            {
#line 564 "chopb.met"
                PPTREE _ptRes0;
#line 564 "chopb.met"
                _ptRes0= MakeTree(FORALLSONS, 2);
#line 564 "chopb.met"
                statTree=_ptRes0;
#line 564 "chopb.met"
            }
#line 564 "chopb.met"
#line 565 "chopb.met"
            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 565 "chopb.met"
            if (  !SEE_TOKEN( POUV,"(") || !(CommTerm(),1)) 
#line 565 "chopb.met"
                TOKEN_EXIT(statement_exit,"(")
#line 565 "chopb.met"
#line 566 "chopb.met"
            {
#line 566 "chopb.met"
                PPTREE _ptTree0;
#line 566 "chopb.met"
                if ( (_ptTree0=NQUICK_CALL(_Tak(assignment_expression)(error_free), 11, chopb))== (PPTREE) -1 ) {
#line 566 "chopb.met"
                    PROG_EXIT(statement_exit,"statement")
#line 566 "chopb.met"
                }
#line 566 "chopb.met"
                ReplaceTree(statTree , 1 , _ptTree0);
#line 566 "chopb.met"
            }
#line 566 "chopb.met"
#line 567 "chopb.met"
            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 567 "chopb.met"
            if (  !SEE_TOKEN( VIRG,",") || !(CommTerm(),1)) 
#line 567 "chopb.met"
                TOKEN_EXIT(statement_exit,",")
#line 567 "chopb.met"
#line 568 "chopb.met"
            {
#line 568 "chopb.met"
                PPTREE _ptTree0;
#line 568 "chopb.met"
                if ( (_ptTree0=NQUICK_CALL(_Tak(statement)(error_free), 112, chopb))== (PPTREE) -1 ) {
#line 568 "chopb.met"
                    PROG_EXIT(statement_exit,"statement")
#line 568 "chopb.met"
                }
#line 568 "chopb.met"
                ReplaceTree(statTree , 2 , _ptTree0);
#line 568 "chopb.met"
            }
#line 568 "chopb.met"
#line 569 "chopb.met"
            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 569 "chopb.met"
            if (  !SEE_TOKEN( PFER,")") || !(CommTerm(),1)) 
#line 569 "chopb.met"
                TOKEN_EXIT(statement_exit,")")
#line 569 "chopb.met"
#line 570 "chopb.met"
            if ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN(PVIR,";") && (tokenAhead = 0,CommTerm(),1)){
#line 570 "chopb.met"
#line 570 "chopb.met"
            }
#line 570 "chopb.met"
            break;
#line 570 "chopb.met"
#line 573 "chopb.met"
        default : 
#line 573 "chopb.met"
#line 573 "chopb.met"
            if (NPUSH_CALL_AFF_VERIF(statTree = ,_Tak(cplus::statement), 132, chopb)){
#line 573 "chopb.met"
#line 574 "chopb.met"
                {
#line 574 "chopb.met"
                    _retValue = statTree ;
#line 574 "chopb.met"
                    goto statement_ret;
#line 574 "chopb.met"
                    
#line 574 "chopb.met"
                }
#line 574 "chopb.met"
            } else {
#line 574 "chopb.met"
#line 576 "chopb.met"
#line 577 "chopb.met"
                if (NPUSH_CALL_VERIF(_Tak(ident_mul), 60, chopb)){
#line 577 "chopb.met"
#line 580 "chopb.met"
                    LEX_EXIT ("",0);
#line 580 "chopb.met"
                    goto statement_exit;
#line 580 "chopb.met"
#line 581 "chopb.met"
                } else {
#line 581 "chopb.met"
#line 583 "chopb.met"
#line 584 "chopb.met"
                    if ( (statTree=NQUICK_CALL(_Tak(expression)(error_free), 47, chopb))== (PPTREE) -1 ) {
#line 584 "chopb.met"
                        PROG_EXIT(statement_exit,"statement")
#line 584 "chopb.met"
                    }
#line 584 "chopb.met"
#line 585 "chopb.met"
                    if ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN(PVIR,";") && (tokenAhead = 0,CommTerm(),1)){
#line 585 "chopb.met"
#line 585 "chopb.met"
                    }
#line 585 "chopb.met"
                }
#line 585 "chopb.met"
            }
#line 585 "chopb.met"
            break;
#line 585 "chopb.met"
    }
#line 585 "chopb.met"
#line 589 "chopb.met"
    {
#line 589 "chopb.met"
        _retValue = statTree ;
#line 589 "chopb.met"
        goto statement_ret;
#line 589 "chopb.met"
        
#line 589 "chopb.met"
    }
#line 589 "chopb.met"
#line 590 "chopb.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 590 "chopb.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 590 "chopb.met"
return((PPTREE) 0);
#line 590 "chopb.met"

#line 590 "chopb.met"
statement_exit :
#line 590 "chopb.met"

#line 590 "chopb.met"
    {
#line 590 "chopb.met"
        MulFreeTree(4,list,inter,statTree,_addlist1);
#line 590 "chopb.met"
    }
#line 590 "chopb.met"
    _Debug = TRACE_RULE("statement",TRACE_EXIT,(PPTREE)0);
#line 590 "chopb.met"
    _funcLevel--;
#line 590 "chopb.met"
    return((PPTREE) -1) ;
#line 590 "chopb.met"

#line 590 "chopb.met"
statement_ret :
#line 590 "chopb.met"
    
#line 590 "chopb.met"
    _Debug = TRACE_RULE("statement",TRACE_RETURN,_retValue);
#line 590 "chopb.met"
    (tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 590 "chopb.met"
    if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,_retValue,lastTree); else {_lastTree=_retValue;_funcLevel--;}
#line 590 "chopb.met"
    return _retValue ;
#line 590 "chopb.met"
}
#line 590 "chopb.met"

#line 590 "chopb.met"
