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

#include "token.h"
#include "cplus.h"


#line 1398 "cplus.met"
PPTREE cplus::inside_declaration ( int error_free)
#line 1398 "cplus.met"
{
#line 1398 "cplus.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 1398 "cplus.met"
    int _value,_nbPre = 0 ;
#line 1398 "cplus.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 1398 "cplus.met"
    int _Debug = TRACE_RULE("inside_declaration",TRACE_ENTER,(PPTREE)0);
#line 1398 "cplus.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 1398 "cplus.met"
#line 1398 "cplus.met"
    PPTREE retTree = (PPTREE) 0;
#line 1398 "cplus.met"
#line 1400 "cplus.met"
    if (((! (NPUSH_CALL_AFF_VERIF(retTree = ,_Tak(ext_all), 49, cplus))) && 
#line 1400 "cplus.met"
        (! (NPUSH_CALL_AFF_VERIF(retTree = ,_Tak(inside_declaration1), 65, cplus)))) && 
#line 1400 "cplus.met"
       (! (NPUSH_CALL_AFF_VERIF(retTree = ,_Tak(inside_declaration2), 66, cplus)))){
#line 1400 "cplus.met"
#line 1403 "cplus.met"
        LEX_EXIT ("",0);
#line 1403 "cplus.met"
        goto inside_declaration_exit;
#line 1403 "cplus.met"
#line 1403 "cplus.met"
    }
#line 1403 "cplus.met"
#line 1404 "cplus.met"
    {
#line 1404 "cplus.met"
        _retValue = retTree ;
#line 1404 "cplus.met"
        goto inside_declaration_ret;
#line 1404 "cplus.met"
        
#line 1404 "cplus.met"
    }
#line 1404 "cplus.met"
#line 1405 "cplus.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 1405 "cplus.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 1405 "cplus.met"
return((PPTREE) 0);
#line 1405 "cplus.met"

#line 1405 "cplus.met"
inside_declaration_exit :
#line 1405 "cplus.met"

#line 1405 "cplus.met"
    {
#line 1405 "cplus.met"
        MulFreeTree(1,retTree);
#line 1405 "cplus.met"
    }
#line 1405 "cplus.met"
    _Debug = TRACE_RULE("inside_declaration",TRACE_EXIT,(PPTREE)0);
#line 1405 "cplus.met"
    _funcLevel--;
#line 1405 "cplus.met"
    return((PPTREE) -1) ;
#line 1405 "cplus.met"

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

#line 1405 "cplus.met"
#line 1384 "cplus.met"
PPTREE cplus::inside_declaration1 ( int error_free)
#line 1384 "cplus.met"
{
#line 1384 "cplus.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 1384 "cplus.met"
    int _value,_nbPre = 0 ;
#line 1384 "cplus.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 1384 "cplus.met"
    int _Debug = TRACE_RULE("inside_declaration1",TRACE_ENTER,(PPTREE)0);
#line 1384 "cplus.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 1384 "cplus.met"
#line 1384 "cplus.met"
    PPTREE otherTree = (PPTREE) 0,list = (PPTREE) 0;
#line 1384 "cplus.met"
#line 1386 "cplus.met"
    {
#line 1386 "cplus.met"
        PPTREE _ptTree0,_ptRes0;
#line 1386 "cplus.met"
        _ptRes0= MakeTree(DECLARATION, 3);
#line 1386 "cplus.met"
        if ( (_ptTree0=NQUICK_CALL(_Tak(type_specifier)(error_free), 119, cplus))== (PPTREE) -1 ) {
#line 1386 "cplus.met"
            PROG_EXIT(inside_declaration1_exit,"inside_declaration1")
#line 1386 "cplus.met"
        }
#line 1386 "cplus.met"
        ReplaceTree(_ptRes0, 2, _ptTree0);
#line 1386 "cplus.met"
        otherTree=_ptRes0;
#line 1386 "cplus.met"
    }
#line 1386 "cplus.met"
#line 1387 "cplus.met"
    {
#line 1387 "cplus.met"
        PPTREE _ptTree0;
#line 1387 "cplus.met"
        if ( (_ptTree0=NQUICK_CALL(_Tak(bit_field_decl)(error_free), 14, cplus))== (PPTREE) -1 ) {
#line 1387 "cplus.met"
            PROG_EXIT(inside_declaration1_exit,"inside_declaration1")
#line 1387 "cplus.met"
        }
#line 1387 "cplus.met"
        list =AddList(list , _ptTree0);
#line 1387 "cplus.met"
    }
#line 1387 "cplus.met"
#line 1388 "cplus.met"
    {
#line 1388 "cplus.met"
        PPTREE _ptTree0;
#line 1388 "cplus.met"
        _ptTree0=ReplaceTree(otherTree ,3 ,list );
#line 1388 "cplus.met"
        _retValue =_ptTree0;
#line 1388 "cplus.met"
        goto inside_declaration1_ret;
#line 1388 "cplus.met"
    }
#line 1388 "cplus.met"
#line 1389 "cplus.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 1389 "cplus.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 1389 "cplus.met"
return((PPTREE) 0);
#line 1389 "cplus.met"

#line 1389 "cplus.met"
inside_declaration1_exit :
#line 1389 "cplus.met"

#line 1389 "cplus.met"
    {
#line 1389 "cplus.met"
        MulFreeTree(2,list,otherTree);
#line 1389 "cplus.met"
    }
#line 1389 "cplus.met"
    _Debug = TRACE_RULE("inside_declaration1",TRACE_EXIT,(PPTREE)0);
#line 1389 "cplus.met"
    _funcLevel--;
#line 1389 "cplus.met"
    return((PPTREE) -1) ;
#line 1389 "cplus.met"

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

#line 1389 "cplus.met"
#line 1391 "cplus.met"
PPTREE cplus::inside_declaration2 ( int error_free)
#line 1391 "cplus.met"
{
#line 1391 "cplus.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 1391 "cplus.met"
    int _value,_nbPre = 0 ;
#line 1391 "cplus.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 1391 "cplus.met"
    int _Debug = TRACE_RULE("inside_declaration2",TRACE_ENTER,(PPTREE)0);
#line 1391 "cplus.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 1391 "cplus.met"
#line 1391 "cplus.met"
    PPTREE otherTree = (PPTREE) 0,list = (PPTREE) 0;
#line 1391 "cplus.met"
#line 1393 "cplus.met"
    {
#line 1393 "cplus.met"
        PPTREE _ptRes0;
#line 1393 "cplus.met"
        _ptRes0= MakeTree(DECLARATION, 3);
#line 1393 "cplus.met"
        otherTree=_ptRes0;
#line 1393 "cplus.met"
    }
#line 1393 "cplus.met"
#line 1394 "cplus.met"
    {
#line 1394 "cplus.met"
        PPTREE _ptTree0;
#line 1394 "cplus.met"
        if ( (_ptTree0=NQUICK_CALL(_Tak(bit_field_decl)(error_free), 14, cplus))== (PPTREE) -1 ) {
#line 1394 "cplus.met"
            PROG_EXIT(inside_declaration2_exit,"inside_declaration2")
#line 1394 "cplus.met"
        }
#line 1394 "cplus.met"
        list =AddList(list , _ptTree0);
#line 1394 "cplus.met"
    }
#line 1394 "cplus.met"
#line 1395 "cplus.met"
    {
#line 1395 "cplus.met"
        PPTREE _ptTree0;
#line 1395 "cplus.met"
        _ptTree0=ReplaceTree(otherTree ,3 ,list );
#line 1395 "cplus.met"
        _retValue =_ptTree0;
#line 1395 "cplus.met"
        goto inside_declaration2_ret;
#line 1395 "cplus.met"
    }
#line 1395 "cplus.met"
#line 1396 "cplus.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 1396 "cplus.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 1396 "cplus.met"
return((PPTREE) 0);
#line 1396 "cplus.met"

#line 1396 "cplus.met"
inside_declaration2_exit :
#line 1396 "cplus.met"

#line 1396 "cplus.met"
    {
#line 1396 "cplus.met"
        MulFreeTree(2,list,otherTree);
#line 1396 "cplus.met"
    }
#line 1396 "cplus.met"
    _Debug = TRACE_RULE("inside_declaration2",TRACE_EXIT,(PPTREE)0);
#line 1396 "cplus.met"
    _funcLevel--;
#line 1396 "cplus.met"
    return((PPTREE) -1) ;
#line 1396 "cplus.met"

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

#line 1396 "cplus.met"
#line 2799 "cplus.met"
PPTREE cplus::label_beg ( int error_free)
#line 2799 "cplus.met"
{
#line 2799 "cplus.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 2799 "cplus.met"
    int _value,_nbPre = 0 ;
#line 2799 "cplus.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 2799 "cplus.met"
    int _Debug = TRACE_RULE("label_beg",TRACE_ENTER,(PPTREE)0);
#line 2799 "cplus.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 2799 "cplus.met"
#line 2800 "cplus.met"
    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 2800 "cplus.met"
    if ( ! TERM_OR_META(IDENT,"IDENT") || !(CommTerm(),1)) 
#line 2800 "cplus.met"
        TOKEN_EXIT(label_beg_exit,"IDENT")
#line 2800 "cplus.met"
#line 2801 "cplus.met"
    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 2801 "cplus.met"
    if (  !SEE_TOKEN( DPOI,":") || !(CommTerm(),1)) 
#line 2801 "cplus.met"
        TOKEN_EXIT(label_beg_exit,":")
#line 2801 "cplus.met"
#line 2802 "cplus.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 2802 "cplus.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 2802 "cplus.met"
return((PPTREE) 0);
#line 2802 "cplus.met"

#line 2802 "cplus.met"
label_beg_exit :
#line 2802 "cplus.met"

#line 2802 "cplus.met"
    _Debug = TRACE_RULE("label_beg",TRACE_EXIT,(PPTREE)0);
#line 2802 "cplus.met"
    _funcLevel--;
#line 2802 "cplus.met"
    return((PPTREE) -1) ;
#line 2802 "cplus.met"

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

#line 2802 "cplus.met"
#line 859 "cplus.met"
PPTREE cplus::linkage_specification ( int error_free)
#line 859 "cplus.met"
{
#line 859 "cplus.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 859 "cplus.met"
    int _value,_nbPre = 0 ;
#line 859 "cplus.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 859 "cplus.met"
    int _Debug = TRACE_RULE("linkage_specification",TRACE_ENTER,(PPTREE)0);
#line 859 "cplus.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 859 "cplus.met"
#line 859 "cplus.met"
    PPTREE _addlist1 = (PPTREE) 0;
#line 859 "cplus.met"
#line 859 "cplus.met"
    PPTREE retTree = (PPTREE) 0,list = (PPTREE) 0,declaration = (PPTREE) 0;
#line 859 "cplus.met"
#line 861 "cplus.met"
    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 861 "cplus.met"
    if (  !SEE_TOKEN( EXTERN,"extern") || !(CommTerm(),1)) 
#line 861 "cplus.met"
        TOKEN_EXIT(linkage_specification_exit,"extern")
#line 861 "cplus.met"
#line 862 "cplus.met"
    {
#line 862 "cplus.met"
        PPTREE _ptTree0,_ptRes0;
#line 862 "cplus.met"
        _ptRes0= MakeTree(EXTERNAL, 2);
#line 862 "cplus.met"
        {
#line 862 "cplus.met"
            PPTREE _ptTree1,_ptRes1;
#line 862 "cplus.met"
            _ptRes1= MakeTree(STRING, 1);
#line 862 "cplus.met"
            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 862 "cplus.met"
            if ( ! TERM_OR_META(STRING,"STRING") || !(BUILD_TERM_META(_ptTree1))) 
#line 862 "cplus.met"
                TOKEN_EXIT(linkage_specification_exit,"STRING")
#line 862 "cplus.met"
            ReplaceTree(_ptRes1, 1, _ptTree1);
#line 862 "cplus.met"
            _ptTree0=_ptRes1;
#line 862 "cplus.met"
        }
#line 862 "cplus.met"
        ReplaceTree(_ptRes0, 1, _ptTree0);
#line 862 "cplus.met"
        retTree=_ptRes0;
#line 862 "cplus.met"
    }
#line 862 "cplus.met"
#line 863 "cplus.met"
    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 863 "cplus.met"
    switch( lexEl.Value) {
#line 863 "cplus.met"
#line 866 "cplus.met"
        case AOUV : 
#line 866 "cplus.met"
            tokenAhead = 0 ;
#line 866 "cplus.met"
            CommTerm();
#line 866 "cplus.met"
#line 865 "cplus.met"
#line 865 "cplus.met"
            _addlist1 = list ;
#line 865 "cplus.met"
#line 866 "cplus.met"
            while (NPUSH_CALL_AFF_VERIF(declaration = ,_Tak(ext_all), 49, cplus)) { 
#line 866 "cplus.met"
#line 867 "cplus.met"
#line 867 "cplus.met"
                _addlist1 =AddList(_addlist1 ,declaration );
#line 867 "cplus.met"
#line 867 "cplus.met"
                if (list){
#line 867 "cplus.met"
#line 867 "cplus.met"
                    _addlist1 = SonTree (_addlist1 ,2 );
#line 867 "cplus.met"
                } else {
#line 867 "cplus.met"
#line 867 "cplus.met"
                    list = _addlist1 ;
#line 867 "cplus.met"
                }
#line 867 "cplus.met"
            } 
#line 867 "cplus.met"
#line 868 "cplus.met"
            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 868 "cplus.met"
            if (  !SEE_TOKEN( AFER,"}") || !(CommTerm(),1)) 
#line 868 "cplus.met"
                TOKEN_EXIT(linkage_specification_exit,"}")
#line 868 "cplus.met"
#line 869 "cplus.met"
            {
#line 869 "cplus.met"
                PPTREE _ptTree0;
#line 869 "cplus.met"
                {
#line 869 "cplus.met"
                    PPTREE _ptTree1;
#line 869 "cplus.met"
                    {
#line 869 "cplus.met"
                        PPTREE _ptRes2;
#line 869 "cplus.met"
                        _ptRes2= MakeTree(COMPOUND_EXT, 1);
#line 869 "cplus.met"
                        ReplaceTree(_ptRes2, 1, list );
#line 869 "cplus.met"
                        _ptTree1=_ptRes2;
#line 869 "cplus.met"
                    }
#line 869 "cplus.met"
                    _ptTree0=ReplaceTree(retTree , 2 , _ptTree1);
#line 869 "cplus.met"
                }
#line 869 "cplus.met"
                _retValue =_ptTree0;
#line 869 "cplus.met"
                goto linkage_specification_ret;
#line 869 "cplus.met"
            }
#line 869 "cplus.met"
            break;
#line 869 "cplus.met"
#line 871 "cplus.met"
        default : 
#line 871 "cplus.met"
#line 871 "cplus.met"
            {
#line 871 "cplus.met"
                PPTREE _ptTree0;
#line 871 "cplus.met"
                {
#line 871 "cplus.met"
                    PPTREE _ptTree1;
#line 871 "cplus.met"
                    if ( (_ptTree1=NQUICK_CALL(_Tak(ext_all)(error_free), 49, cplus))== (PPTREE) -1 ) {
#line 871 "cplus.met"
                        PROG_EXIT(linkage_specification_exit,"linkage_specification")
#line 871 "cplus.met"
                    }
#line 871 "cplus.met"
                    _ptTree0=ReplaceTree(retTree , 2 , _ptTree1);
#line 871 "cplus.met"
                }
#line 871 "cplus.met"
                _retValue =_ptTree0;
#line 871 "cplus.met"
                goto linkage_specification_ret;
#line 871 "cplus.met"
            }
#line 871 "cplus.met"
            break;
#line 871 "cplus.met"
    }
#line 871 "cplus.met"
#line 873 "cplus.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 873 "cplus.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 873 "cplus.met"
return((PPTREE) 0);
#line 873 "cplus.met"

#line 873 "cplus.met"
linkage_specification_exit :
#line 873 "cplus.met"

#line 873 "cplus.met"
    {
#line 873 "cplus.met"
        MulFreeTree(4,declaration,list,retTree,_addlist1);
#line 873 "cplus.met"
    }
#line 873 "cplus.met"
    _Debug = TRACE_RULE("linkage_specification",TRACE_EXIT,(PPTREE)0);
#line 873 "cplus.met"
    _funcLevel--;
#line 873 "cplus.met"
    return((PPTREE) -1) ;
#line 873 "cplus.met"

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

#line 873 "cplus.met"
#line 2217 "cplus.met"
PPTREE cplus::logical_and_expression ( int error_free)
#line 2217 "cplus.met"
{
#line 2217 "cplus.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 2217 "cplus.met"
    int _value,_nbPre = 0 ;
#line 2217 "cplus.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 2217 "cplus.met"
    int _Debug = TRACE_RULE("logical_and_expression",TRACE_ENTER,(PPTREE)0);
#line 2217 "cplus.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 2217 "cplus.met"
#line 2217 "cplus.met"
    PPTREE expTree = (PPTREE) 0;
#line 2217 "cplus.met"
#line 2219 "cplus.met"
    if ( (expTree=NQUICK_CALL(_Tak(inclusive_or_expression)(error_free), 62, cplus))== (PPTREE) -1 ) {
#line 2219 "cplus.met"
        PROG_EXIT(logical_and_expression_exit,"logical_and_expression")
#line 2219 "cplus.met"
    }
#line 2219 "cplus.met"
#line 2220 "cplus.met"
    while ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN(ETCOETCO,"&&") && (tokenAhead = 0,CommTerm(),1)) { 
#line 2220 "cplus.met"
#line 2221 "cplus.met"
        {
#line 2221 "cplus.met"
            PPTREE _ptTree0,_ptRes0;
#line 2221 "cplus.met"
            _ptRes0= MakeTree(AND, 2);
#line 2221 "cplus.met"
            ReplaceTree(_ptRes0, 1, expTree );
#line 2221 "cplus.met"
            if ( (_ptTree0=NQUICK_CALL(_Tak(inclusive_or_expression)(error_free), 62, cplus))== (PPTREE) -1 ) {
#line 2221 "cplus.met"
                PROG_EXIT(logical_and_expression_exit,"logical_and_expression")
#line 2221 "cplus.met"
            }
#line 2221 "cplus.met"
            ReplaceTree(_ptRes0, 2, _ptTree0);
#line 2221 "cplus.met"
            expTree=_ptRes0;
#line 2221 "cplus.met"
        }
#line 2221 "cplus.met"
    } 
#line 2221 "cplus.met"
#line 2222 "cplus.met"
    {
#line 2222 "cplus.met"
        _retValue = expTree ;
#line 2222 "cplus.met"
        goto logical_and_expression_ret;
#line 2222 "cplus.met"
        
#line 2222 "cplus.met"
    }
#line 2222 "cplus.met"
#line 2223 "cplus.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 2223 "cplus.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 2223 "cplus.met"
return((PPTREE) 0);
#line 2223 "cplus.met"

#line 2223 "cplus.met"
logical_and_expression_exit :
#line 2223 "cplus.met"

#line 2223 "cplus.met"
    {
#line 2223 "cplus.met"
        MulFreeTree(1,expTree);
#line 2223 "cplus.met"
    }
#line 2223 "cplus.met"
    _Debug = TRACE_RULE("logical_and_expression",TRACE_EXIT,(PPTREE)0);
#line 2223 "cplus.met"
    _funcLevel--;
#line 2223 "cplus.met"
    return((PPTREE) -1) ;
#line 2223 "cplus.met"

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

#line 2223 "cplus.met"
#line 2209 "cplus.met"
PPTREE cplus::logical_or_expression ( int error_free)
#line 2209 "cplus.met"
{
#line 2209 "cplus.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 2209 "cplus.met"
    int _value,_nbPre = 0 ;
#line 2209 "cplus.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 2209 "cplus.met"
    int _Debug = TRACE_RULE("logical_or_expression",TRACE_ENTER,(PPTREE)0);
#line 2209 "cplus.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 2209 "cplus.met"
#line 2209 "cplus.met"
    PPTREE expTree = (PPTREE) 0;
#line 2209 "cplus.met"
#line 2211 "cplus.met"
    if ( (expTree=NQUICK_CALL(_Tak(logical_and_expression)(error_free), 69, cplus))== (PPTREE) -1 ) {
#line 2211 "cplus.met"
        PROG_EXIT(logical_or_expression_exit,"logical_or_expression")
#line 2211 "cplus.met"
    }
#line 2211 "cplus.met"
#line 2212 "cplus.met"
    while ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN(VBARVBAR,"||") && (tokenAhead = 0,CommTerm(),1)) { 
#line 2212 "cplus.met"
#line 2213 "cplus.met"
        {
#line 2213 "cplus.met"
            PPTREE _ptTree0,_ptRes0;
#line 2213 "cplus.met"
            _ptRes0= MakeTree(OR, 2);
#line 2213 "cplus.met"
            ReplaceTree(_ptRes0, 1, expTree );
#line 2213 "cplus.met"
            if ( (_ptTree0=NQUICK_CALL(_Tak(logical_and_expression)(error_free), 69, cplus))== (PPTREE) -1 ) {
#line 2213 "cplus.met"
                PROG_EXIT(logical_or_expression_exit,"logical_or_expression")
#line 2213 "cplus.met"
            }
#line 2213 "cplus.met"
            ReplaceTree(_ptRes0, 2, _ptTree0);
#line 2213 "cplus.met"
            expTree=_ptRes0;
#line 2213 "cplus.met"
        }
#line 2213 "cplus.met"
    } 
#line 2213 "cplus.met"
#line 2214 "cplus.met"
    {
#line 2214 "cplus.met"
        _retValue = expTree ;
#line 2214 "cplus.met"
        goto logical_or_expression_ret;
#line 2214 "cplus.met"
        
#line 2214 "cplus.met"
    }
#line 2214 "cplus.met"
#line 2215 "cplus.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 2215 "cplus.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 2215 "cplus.met"
return((PPTREE) 0);
#line 2215 "cplus.met"

#line 2215 "cplus.met"
logical_or_expression_exit :
#line 2215 "cplus.met"

#line 2215 "cplus.met"
    {
#line 2215 "cplus.met"
        MulFreeTree(1,expTree);
#line 2215 "cplus.met"
    }
#line 2215 "cplus.met"
    _Debug = TRACE_RULE("logical_or_expression",TRACE_EXIT,(PPTREE)0);
#line 2215 "cplus.met"
    _funcLevel--;
#line 2215 "cplus.met"
    return((PPTREE) -1) ;
#line 2215 "cplus.met"

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

#line 2215 "cplus.met"
#line 1762 "cplus.met"
PPTREE cplus::long_short_int_char ( int error_free)
#line 1762 "cplus.met"
{
#line 1762 "cplus.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 1762 "cplus.met"
    int _value,_nbPre = 0 ;
#line 1762 "cplus.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 1762 "cplus.met"
    int _Debug = TRACE_RULE("long_short_int_char",TRACE_ENTER,(PPTREE)0);
#line 1762 "cplus.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 1762 "cplus.met"
#line 1763 "cplus.met"
    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 1763 "cplus.met"
    switch( lexEl.Value) {
#line 1763 "cplus.met"
#line 1764 "cplus.met"
        case INT : 
#line 1764 "cplus.met"
            tokenAhead = 0 ;
#line 1764 "cplus.met"
            CommTerm();
#line 1764 "cplus.met"
#line 1764 "cplus.met"
            {
#line 1764 "cplus.met"
                PPTREE _ptTree0;
#line 1764 "cplus.met"
                {
#line 1764 "cplus.met"
                    PPTREE _ptRes1;
#line 1764 "cplus.met"
                    _ptRes1= MakeTree(TINT, 0);
#line 1764 "cplus.met"
                    _ptTree0=_ptRes1;
#line 1764 "cplus.met"
                }
#line 1764 "cplus.met"
                _retValue =_ptTree0;
#line 1764 "cplus.met"
                goto long_short_int_char_ret;
#line 1764 "cplus.met"
            }
#line 1764 "cplus.met"
            break;
#line 1764 "cplus.met"
#line 1765 "cplus.met"
        case LONG : 
#line 1765 "cplus.met"
            tokenAhead = 0 ;
#line 1765 "cplus.met"
            CommTerm();
#line 1765 "cplus.met"
#line 1766 "cplus.met"
            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 1766 "cplus.met"
            switch( lexEl.Value) {
#line 1766 "cplus.met"
#line 1767 "cplus.met"
                case INT : 
#line 1767 "cplus.met"
                    tokenAhead = 0 ;
#line 1767 "cplus.met"
                    CommTerm();
#line 1767 "cplus.met"
#line 1767 "cplus.met"
                    {
#line 1767 "cplus.met"
                        PPTREE _ptTree0;
#line 1767 "cplus.met"
                        {
#line 1767 "cplus.met"
                            PPTREE _ptTree1,_ptRes1;
#line 1767 "cplus.met"
                            _ptRes1= MakeTree(TLONG, 1);
#line 1767 "cplus.met"
                            {
#line 1767 "cplus.met"
                                PPTREE _ptRes2;
#line 1767 "cplus.met"
                                _ptRes2= MakeTree(TINT, 0);
#line 1767 "cplus.met"
                                _ptTree1=_ptRes2;
#line 1767 "cplus.met"
                            }
#line 1767 "cplus.met"
                            ReplaceTree(_ptRes1, 1, _ptTree1);
#line 1767 "cplus.met"
                            _ptTree0=_ptRes1;
#line 1767 "cplus.met"
                        }
#line 1767 "cplus.met"
                        _retValue =_ptTree0;
#line 1767 "cplus.met"
                        goto long_short_int_char_ret;
#line 1767 "cplus.met"
                    }
#line 1767 "cplus.met"
                    break;
#line 1767 "cplus.met"
#line 1768 "cplus.met"
                default : 
#line 1768 "cplus.met"
#line 1768 "cplus.met"
                    {
#line 1768 "cplus.met"
                        PPTREE _ptTree0;
#line 1768 "cplus.met"
                        {
#line 1768 "cplus.met"
                            PPTREE _ptRes1;
#line 1768 "cplus.met"
                            _ptRes1= MakeTree(TLONG, 1);
#line 1768 "cplus.met"
                            _ptTree0=_ptRes1;
#line 1768 "cplus.met"
                        }
#line 1768 "cplus.met"
                        _retValue =_ptTree0;
#line 1768 "cplus.met"
                        goto long_short_int_char_ret;
#line 1768 "cplus.met"
                    }
#line 1768 "cplus.met"
                    break;
#line 1768 "cplus.met"
            }
#line 1768 "cplus.met"
            break;
#line 1768 "cplus.met"
#line 1770 "cplus.met"
        case SHORT : 
#line 1770 "cplus.met"
            tokenAhead = 0 ;
#line 1770 "cplus.met"
            CommTerm();
#line 1770 "cplus.met"
#line 1771 "cplus.met"
            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 1771 "cplus.met"
            switch( lexEl.Value) {
#line 1771 "cplus.met"
#line 1772 "cplus.met"
                case INT : 
#line 1772 "cplus.met"
                    tokenAhead = 0 ;
#line 1772 "cplus.met"
                    CommTerm();
#line 1772 "cplus.met"
#line 1772 "cplus.met"
                    {
#line 1772 "cplus.met"
                        PPTREE _ptTree0;
#line 1772 "cplus.met"
                        {
#line 1772 "cplus.met"
                            PPTREE _ptTree1,_ptRes1;
#line 1772 "cplus.met"
                            _ptRes1= MakeTree(TSHORT, 1);
#line 1772 "cplus.met"
                            {
#line 1772 "cplus.met"
                                PPTREE _ptRes2;
#line 1772 "cplus.met"
                                _ptRes2= MakeTree(TINT, 0);
#line 1772 "cplus.met"
                                _ptTree1=_ptRes2;
#line 1772 "cplus.met"
                            }
#line 1772 "cplus.met"
                            ReplaceTree(_ptRes1, 1, _ptTree1);
#line 1772 "cplus.met"
                            _ptTree0=_ptRes1;
#line 1772 "cplus.met"
                        }
#line 1772 "cplus.met"
                        _retValue =_ptTree0;
#line 1772 "cplus.met"
                        goto long_short_int_char_ret;
#line 1772 "cplus.met"
                    }
#line 1772 "cplus.met"
                    break;
#line 1772 "cplus.met"
#line 1773 "cplus.met"
                default : 
#line 1773 "cplus.met"
#line 1773 "cplus.met"
                    {
#line 1773 "cplus.met"
                        PPTREE _ptTree0;
#line 1773 "cplus.met"
                        {
#line 1773 "cplus.met"
                            PPTREE _ptRes1;
#line 1773 "cplus.met"
                            _ptRes1= MakeTree(TSHORT, 1);
#line 1773 "cplus.met"
                            _ptTree0=_ptRes1;
#line 1773 "cplus.met"
                        }
#line 1773 "cplus.met"
                        _retValue =_ptTree0;
#line 1773 "cplus.met"
                        goto long_short_int_char_ret;
#line 1773 "cplus.met"
                    }
#line 1773 "cplus.met"
                    break;
#line 1773 "cplus.met"
            }
#line 1773 "cplus.met"
            break;
#line 1773 "cplus.met"
#line 1775 "cplus.met"
        case CHAR : 
#line 1775 "cplus.met"
            tokenAhead = 0 ;
#line 1775 "cplus.met"
            CommTerm();
#line 1775 "cplus.met"
#line 1775 "cplus.met"
            {
#line 1775 "cplus.met"
                PPTREE _ptTree0;
#line 1775 "cplus.met"
                {
#line 1775 "cplus.met"
                    PPTREE _ptRes1;
#line 1775 "cplus.met"
                    _ptRes1= MakeTree(TCHAR, 0);
#line 1775 "cplus.met"
                    _ptTree0=_ptRes1;
#line 1775 "cplus.met"
                }
#line 1775 "cplus.met"
                _retValue =_ptTree0;
#line 1775 "cplus.met"
                goto long_short_int_char_ret;
#line 1775 "cplus.met"
            }
#line 1775 "cplus.met"
            break;
#line 1775 "cplus.met"
        default :
#line 1775 "cplus.met"
            CASE_EXIT(long_short_int_char_exit,"either int or long or short or char")
#line 1775 "cplus.met"
            break;
#line 1775 "cplus.met"
    }
#line 1775 "cplus.met"
#line 1777 "cplus.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 1777 "cplus.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 1777 "cplus.met"
return((PPTREE) 0);
#line 1777 "cplus.met"

#line 1777 "cplus.met"
long_short_int_char_exit :
#line 1777 "cplus.met"

#line 1777 "cplus.met"
    _Debug = TRACE_RULE("long_short_int_char",TRACE_EXIT,(PPTREE)0);
#line 1777 "cplus.met"
    _funcLevel--;
#line 1777 "cplus.met"
    return((PPTREE) -1) ;
#line 1777 "cplus.met"

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

#line 1777 "cplus.met"
#line 1570 "cplus.met"
PPTREE cplus::macro ( int error_free)
#line 1570 "cplus.met"
{
#line 1570 "cplus.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 1570 "cplus.met"
    int _value,_nbPre = 0 ;
#line 1570 "cplus.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 1570 "cplus.met"
    int _Debug = TRACE_RULE("macro",TRACE_ENTER,(PPTREE)0);
#line 1570 "cplus.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 1570 "cplus.met"
#line 1570 "cplus.met"
    PPTREE retTree = (PPTREE) 0,valTree = (PPTREE) 0;
#line 1570 "cplus.met"
#line 1572 "cplus.met"
    (tokenAhead == 13|| (specific(),TRACE_LEX(1)));
#line 1572 "cplus.met"
    switch( lexEl.Value) {
#line 1572 "cplus.met"
#line 1573 "cplus.met"
        case META : 
#line 1573 "cplus.met"
        case DECLARE_SERIAL : 
#line 1573 "cplus.met"
            tokenAhead = 0 ;
#line 1573 "cplus.met"
            CommTerm();
#line 1573 "cplus.met"
#line 1573 "cplus.met"
            {
#line 1573 "cplus.met"
                PPTREE _ptRes0;
#line 1573 "cplus.met"
                _ptRes0= MakeTree(IDENT, 1);
#line 1573 "cplus.met"
                ReplaceTree(_ptRes0, 1, MakeString ("DECLARE_SERIAL"));
#line 1573 "cplus.met"
                retTree=_ptRes0;
#line 1573 "cplus.met"
            }
#line 1573 "cplus.met"
            break;
#line 1573 "cplus.met"
#line 1574 "cplus.met"
        case DECLARE_DYNAMIC : 
#line 1574 "cplus.met"
            tokenAhead = 0 ;
#line 1574 "cplus.met"
            CommTerm();
#line 1574 "cplus.met"
#line 1574 "cplus.met"
            {
#line 1574 "cplus.met"
                PPTREE _ptRes0;
#line 1574 "cplus.met"
                _ptRes0= MakeTree(IDENT, 1);
#line 1574 "cplus.met"
                ReplaceTree(_ptRes0, 1, MakeString ("DECLARE_DYNAMIC"));
#line 1574 "cplus.met"
                retTree=_ptRes0;
#line 1574 "cplus.met"
            }
#line 1574 "cplus.met"
            break;
#line 1574 "cplus.met"
#line 1575 "cplus.met"
        case DECLARE_MESSAGE_MAP : 
#line 1575 "cplus.met"
            tokenAhead = 0 ;
#line 1575 "cplus.met"
            CommTerm();
#line 1575 "cplus.met"
#line 1575 "cplus.met"
            {
#line 1575 "cplus.met"
                PPTREE _ptRes0;
#line 1575 "cplus.met"
                _ptRes0= MakeTree(IDENT, 1);
#line 1575 "cplus.met"
                ReplaceTree(_ptRes0, 1, MakeString ("DECLARE_MESSAGE_MAP"));
#line 1575 "cplus.met"
                retTree=_ptRes0;
#line 1575 "cplus.met"
            }
#line 1575 "cplus.met"
            break;
#line 1575 "cplus.met"
#line 1577 "cplus.met"
        case IMPLEMENT_DYNAMIC : 
#line 1577 "cplus.met"
            tokenAhead = 0 ;
#line 1577 "cplus.met"
            CommTerm();
#line 1577 "cplus.met"
#line 1577 "cplus.met"
            {
#line 1577 "cplus.met"
                PPTREE _ptRes0;
#line 1577 "cplus.met"
                _ptRes0= MakeTree(IDENT, 1);
#line 1577 "cplus.met"
                ReplaceTree(_ptRes0, 1, MakeString ("IMPLEMENT_DYNAMIC"));
#line 1577 "cplus.met"
                retTree=_ptRes0;
#line 1577 "cplus.met"
            }
#line 1577 "cplus.met"
            break;
#line 1577 "cplus.met"
#line 1579 "cplus.met"
        case IMPLEMENT_DYNCREATE : 
#line 1579 "cplus.met"
            tokenAhead = 0 ;
#line 1579 "cplus.met"
            CommTerm();
#line 1579 "cplus.met"
#line 1579 "cplus.met"
            {
#line 1579 "cplus.met"
                PPTREE _ptRes0;
#line 1579 "cplus.met"
                _ptRes0= MakeTree(IDENT, 1);
#line 1579 "cplus.met"
                ReplaceTree(_ptRes0, 1, MakeString ("IMPLEMENT_DYNCREATE"));
#line 1579 "cplus.met"
                retTree=_ptRes0;
#line 1579 "cplus.met"
            }
#line 1579 "cplus.met"
            break;
#line 1579 "cplus.met"
#line 1581 "cplus.met"
        case IMPLEMENT_SERIAL : 
#line 1581 "cplus.met"
            tokenAhead = 0 ;
#line 1581 "cplus.met"
            CommTerm();
#line 1581 "cplus.met"
#line 1581 "cplus.met"
            {
#line 1581 "cplus.met"
                PPTREE _ptRes0;
#line 1581 "cplus.met"
                _ptRes0= MakeTree(IDENT, 1);
#line 1581 "cplus.met"
                ReplaceTree(_ptRes0, 1, MakeString ("IMPLEMENT_SERIAL"));
#line 1581 "cplus.met"
                retTree=_ptRes0;
#line 1581 "cplus.met"
            }
#line 1581 "cplus.met"
            break;
#line 1581 "cplus.met"
#line 1583 "cplus.met"
        case BEGIN_MESSAGE_MAP : 
#line 1583 "cplus.met"
            tokenAhead = 0 ;
#line 1583 "cplus.met"
            CommTerm();
#line 1583 "cplus.met"
#line 1583 "cplus.met"
            {
#line 1583 "cplus.met"
                PPTREE _ptRes0;
#line 1583 "cplus.met"
                _ptRes0= MakeTree(IDENT, 1);
#line 1583 "cplus.met"
                ReplaceTree(_ptRes0, 1, MakeString ("BEGIN_MESSAGE_MAP"));
#line 1583 "cplus.met"
                retTree=_ptRes0;
#line 1583 "cplus.met"
            }
#line 1583 "cplus.met"
            break;
#line 1583 "cplus.met"
#line 1585 "cplus.met"
        case END_MESSAGE_MAP : 
#line 1585 "cplus.met"
            tokenAhead = 0 ;
#line 1585 "cplus.met"
            CommTerm();
#line 1585 "cplus.met"
#line 1585 "cplus.met"
            {
#line 1585 "cplus.met"
                PPTREE _ptRes0;
#line 1585 "cplus.met"
                _ptRes0= MakeTree(IDENT, 1);
#line 1585 "cplus.met"
                ReplaceTree(_ptRes0, 1, MakeString ("END_MESSAGE_MAP"));
#line 1585 "cplus.met"
                retTree=_ptRes0;
#line 1585 "cplus.met"
            }
#line 1585 "cplus.met"
            break;
#line 1585 "cplus.met"
#line 1586 "cplus.met"
        case CATCH_UPPER : 
#line 1586 "cplus.met"
            tokenAhead = 0 ;
#line 1586 "cplus.met"
            CommTerm();
#line 1586 "cplus.met"
#line 1586 "cplus.met"
            {
#line 1586 "cplus.met"
                PPTREE _ptRes0;
#line 1586 "cplus.met"
                _ptRes0= MakeTree(IDENT, 1);
#line 1586 "cplus.met"
                ReplaceTree(_ptRes0, 1, MakeString ("CATCH"));
#line 1586 "cplus.met"
                retTree=_ptRes0;
#line 1586 "cplus.met"
            }
#line 1586 "cplus.met"
            break;
#line 1586 "cplus.met"
#line 1587 "cplus.met"
        case CATCH_ALL : 
#line 1587 "cplus.met"
            tokenAhead = 0 ;
#line 1587 "cplus.met"
            CommTerm();
#line 1587 "cplus.met"
#line 1587 "cplus.met"
            {
#line 1587 "cplus.met"
                PPTREE _ptRes0;
#line 1587 "cplus.met"
                _ptRes0= MakeTree(IDENT, 1);
#line 1587 "cplus.met"
                ReplaceTree(_ptRes0, 1, MakeString ("CATCH_ALL"));
#line 1587 "cplus.met"
                retTree=_ptRes0;
#line 1587 "cplus.met"
            }
#line 1587 "cplus.met"
            break;
#line 1587 "cplus.met"
#line 1588 "cplus.met"
        case AND_CATCH : 
#line 1588 "cplus.met"
            tokenAhead = 0 ;
#line 1588 "cplus.met"
            CommTerm();
#line 1588 "cplus.met"
#line 1588 "cplus.met"
            {
#line 1588 "cplus.met"
                PPTREE _ptRes0;
#line 1588 "cplus.met"
                _ptRes0= MakeTree(IDENT, 1);
#line 1588 "cplus.met"
                ReplaceTree(_ptRes0, 1, MakeString ("AND_CATCH"));
#line 1588 "cplus.met"
                retTree=_ptRes0;
#line 1588 "cplus.met"
            }
#line 1588 "cplus.met"
            break;
#line 1588 "cplus.met"
#line 1589 "cplus.met"
        default : 
#line 1589 "cplus.met"
#line 1589 "cplus.met"
            LEX_EXIT ("",0);
#line 1589 "cplus.met"
            goto macro_exit;
#line 1589 "cplus.met"
            break;
#line 1589 "cplus.met"
    }
#line 1589 "cplus.met"
#line 1591 "cplus.met"
    {
#line 1591 "cplus.met"
        PPTREE _ptRes0;
#line 1591 "cplus.met"
        _ptRes0= MakeTree(MACRO, 2);
#line 1591 "cplus.met"
        ReplaceTree(_ptRes0, 1, retTree );
#line 1591 "cplus.met"
        retTree=_ptRes0;
#line 1591 "cplus.met"
    }
#line 1591 "cplus.met"
#line 1592 "cplus.met"
    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 1592 "cplus.met"
    if (  !SEE_TOKEN( POUV,"(") || !(CommTerm(),1)) 
#line 1592 "cplus.met"
        TOKEN_EXIT(macro_exit,"(")
#line 1592 "cplus.met"
#line 1593 "cplus.met"
    if (NPUSH_CALL_AFF_VERIF(valTree = ,_Tak(expression), 47, cplus)){
#line 1593 "cplus.met"
#line 1594 "cplus.met"
        ReplaceTree(retTree ,2 ,valTree );
#line 1594 "cplus.met"
#line 1594 "cplus.met"
    }
#line 1594 "cplus.met"
#line 1595 "cplus.met"
    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 1595 "cplus.met"
    if (  !SEE_TOKEN( PFER,")") || !(CommTerm(),1)) 
#line 1595 "cplus.met"
        TOKEN_EXIT(macro_exit,")")
#line 1595 "cplus.met"
#line 1596 "cplus.met"
    if ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN(PVIR,";") && (tokenAhead = 0,CommTerm(),1)){
#line 1596 "cplus.met"
#line 1596 "cplus.met"
    }
#line 1596 "cplus.met"
#line 1598 "cplus.met"
    {
#line 1598 "cplus.met"
        _retValue = retTree ;
#line 1598 "cplus.met"
        goto macro_ret;
#line 1598 "cplus.met"
        
#line 1598 "cplus.met"
    }
#line 1598 "cplus.met"
#line 1599 "cplus.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 1599 "cplus.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 1599 "cplus.met"
return((PPTREE) 0);
#line 1599 "cplus.met"

#line 1599 "cplus.met"
macro_exit :
#line 1599 "cplus.met"

#line 1599 "cplus.met"
    {
#line 1599 "cplus.met"
        MulFreeTree(2,valTree,retTree);
#line 1599 "cplus.met"
    }
#line 1599 "cplus.met"
    _Debug = TRACE_RULE("macro",TRACE_EXIT,(PPTREE)0);
#line 1599 "cplus.met"
    _funcLevel--;
#line 1599 "cplus.met"
    return((PPTREE) -1) ;
#line 1599 "cplus.met"

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

#line 1599 "cplus.met"
#line 1601 "cplus.met"
PPTREE cplus::macro_extended ( int error_free)
#line 1601 "cplus.met"
{
#line 1601 "cplus.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 1601 "cplus.met"
    int _value,_nbPre = 0 ;
#line 1601 "cplus.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 1601 "cplus.met"
    int _Debug = TRACE_RULE("macro_extended",TRACE_ENTER,(PPTREE)0);
#line 1601 "cplus.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 1601 "cplus.met"
#line 1601 "cplus.met"
    PPTREE retTree = (PPTREE) 0,valTree = (PPTREE) 0;
#line 1601 "cplus.met"
#line 1603 "cplus.met"
#line 1604 "cplus.met"
    if(((tokenAhead == 13|| (specific(),TRACE_LEX(1)))&&TERM_OR_META(DECLARE_SERIAL,"DECLARE_SERIAL") && (tokenAhead = 0,CommTerm(),1))){
#line 1604 "cplus.met"
#line 1604 "cplus.met"
        {
#line 1604 "cplus.met"
            PPTREE _ptRes0;
#line 1604 "cplus.met"
            _ptRes0= MakeTree(IDENT, 1);
#line 1604 "cplus.met"
            ReplaceTree(_ptRes0, 1, MakeString ("DECLARE_SERIAL"));
#line 1604 "cplus.met"
            retTree=_ptRes0;
#line 1604 "cplus.met"
        }
#line 1604 "cplus.met"
    } else 
#line 1604 "cplus.met"
#line 1605 "cplus.met"
    if(((tokenAhead == 13|| (specific(),TRACE_LEX(1)))&&TERM_OR_META(IMPLEMENT_DYNAMIC,"IMPLEMENT_DYNAMIC") && (tokenAhead = 0,CommTerm(),1))){
#line 1605 "cplus.met"
#line 1605 "cplus.met"
        {
#line 1605 "cplus.met"
            PPTREE _ptRes0;
#line 1605 "cplus.met"
            _ptRes0= MakeTree(IDENT, 1);
#line 1605 "cplus.met"
            ReplaceTree(_ptRes0, 1, MakeString ("IMPLEMENT_DYNAMIC"));
#line 1605 "cplus.met"
            retTree=_ptRes0;
#line 1605 "cplus.met"
        }
#line 1605 "cplus.met"
    } else 
#line 1605 "cplus.met"
#line 1607 "cplus.met"
    if(((tokenAhead == 13|| (specific(),TRACE_LEX(1)))&&TERM_OR_META(IMPLEMENT_DYNCREATE,"IMPLEMENT_DYNCREATE") && (tokenAhead = 0,CommTerm(),1))){
#line 1607 "cplus.met"
#line 1607 "cplus.met"
        {
#line 1607 "cplus.met"
            PPTREE _ptRes0;
#line 1607 "cplus.met"
            _ptRes0= MakeTree(IDENT, 1);
#line 1607 "cplus.met"
            ReplaceTree(_ptRes0, 1, MakeString ("IMPLEMENT_DYNCREATE"));
#line 1607 "cplus.met"
            retTree=_ptRes0;
#line 1607 "cplus.met"
        }
#line 1607 "cplus.met"
    } else 
#line 1607 "cplus.met"
#line 1609 "cplus.met"
    if(((tokenAhead == 13|| (specific(),TRACE_LEX(1)))&&TERM_OR_META(IMPLEMENT_SERIAL,"IMPLEMENT_SERIAL") && (tokenAhead = 0,CommTerm(),1))){
#line 1609 "cplus.met"
#line 1609 "cplus.met"
        {
#line 1609 "cplus.met"
            PPTREE _ptRes0;
#line 1609 "cplus.met"
            _ptRes0= MakeTree(IDENT, 1);
#line 1609 "cplus.met"
            ReplaceTree(_ptRes0, 1, MakeString ("IMPLEMENT_SERIAL"));
#line 1609 "cplus.met"
            retTree=_ptRes0;
#line 1609 "cplus.met"
        }
#line 1609 "cplus.met"
    } else 
#line 1609 "cplus.met"
#line 1611 "cplus.met"
    if(((tokenAhead == 13|| (specific(),TRACE_LEX(1)))&&TERM_OR_META(DECLARE_DYNAMIC,"DECLARE_DYNAMIC") && (tokenAhead = 0,CommTerm(),1))){
#line 1611 "cplus.met"
#line 1611 "cplus.met"
        {
#line 1611 "cplus.met"
            PPTREE _ptRes0;
#line 1611 "cplus.met"
            _ptRes0= MakeTree(IDENT, 1);
#line 1611 "cplus.met"
            ReplaceTree(_ptRes0, 1, MakeString ("DECLARE_DYNAMIC"));
#line 1611 "cplus.met"
            retTree=_ptRes0;
#line 1611 "cplus.met"
        }
#line 1611 "cplus.met"
    } else 
#line 1611 "cplus.met"
#line 1612 "cplus.met"
    if(((tokenAhead == 13|| (specific(),TRACE_LEX(1)))&&TERM_OR_META(BEGIN_MESSAGE_MAP,"BEGIN_MESSAGE_MAP") && (tokenAhead = 0,CommTerm(),1))){
#line 1612 "cplus.met"
#line 1612 "cplus.met"
        {
#line 1612 "cplus.met"
            PPTREE _ptRes0;
#line 1612 "cplus.met"
            _ptRes0= MakeTree(IDENT, 1);
#line 1612 "cplus.met"
            ReplaceTree(_ptRes0, 1, MakeString ("BEGIN_MESSAGE_MAP"));
#line 1612 "cplus.met"
            retTree=_ptRes0;
#line 1612 "cplus.met"
        }
#line 1612 "cplus.met"
    } else 
#line 1612 "cplus.met"
#line 1614 "cplus.met"
    if(((tokenAhead == 13|| (specific(),TRACE_LEX(1)))&&TERM_OR_META(CATCH_UPPER,"CATCH_UPPER") && (tokenAhead = 0,CommTerm(),1))){
#line 1614 "cplus.met"
#line 1614 "cplus.met"
        {
#line 1614 "cplus.met"
            PPTREE _ptRes0;
#line 1614 "cplus.met"
            _ptRes0= MakeTree(IDENT, 1);
#line 1614 "cplus.met"
            ReplaceTree(_ptRes0, 1, MakeString ("CATCH"));
#line 1614 "cplus.met"
            retTree=_ptRes0;
#line 1614 "cplus.met"
        }
#line 1614 "cplus.met"
    } else 
#line 1614 "cplus.met"
#line 1615 "cplus.met"
    if(((tokenAhead == 13|| (specific(),TRACE_LEX(1)))&&TERM_OR_META(CATCH_ALL,"CATCH_ALL") && (tokenAhead = 0,CommTerm(),1))){
#line 1615 "cplus.met"
#line 1615 "cplus.met"
        {
#line 1615 "cplus.met"
            PPTREE _ptRes0;
#line 1615 "cplus.met"
            _ptRes0= MakeTree(IDENT, 1);
#line 1615 "cplus.met"
            ReplaceTree(_ptRes0, 1, MakeString ("CATCH_ALL"));
#line 1615 "cplus.met"
            retTree=_ptRes0;
#line 1615 "cplus.met"
        }
#line 1615 "cplus.met"
    } else 
#line 1615 "cplus.met"
#line 1616 "cplus.met"
    if(((tokenAhead == 13|| (specific(),TRACE_LEX(1)))&&TERM_OR_META(AND_CATCH,"AND_CATCH") && (tokenAhead = 0,CommTerm(),1))){
#line 1616 "cplus.met"
#line 1616 "cplus.met"
        {
#line 1616 "cplus.met"
            PPTREE _ptRes0;
#line 1616 "cplus.met"
            _ptRes0= MakeTree(IDENT, 1);
#line 1616 "cplus.met"
            ReplaceTree(_ptRes0, 1, MakeString ("AND_CATCH"));
#line 1616 "cplus.met"
            retTree=_ptRes0;
#line 1616 "cplus.met"
        }
#line 1616 "cplus.met"
    } else 
#line 1616 "cplus.met"
#line 1617 "cplus.met"
    if(((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN( IDENT,"IDENT"))){
#line 1617 "cplus.met"
#line 1617 "cplus.met"
        {
#line 1617 "cplus.met"
            PPTREE _ptTree0,_ptRes0;
#line 1617 "cplus.met"
            _ptRes0= MakeTree(IDENT, 1);
#line 1617 "cplus.met"
            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 1617 "cplus.met"
            if ( ! TERM_OR_META(IDENT,"IDENT") || !(BUILD_TERM_META(_ptTree0))) 
#line 1617 "cplus.met"
                TOKEN_EXIT(macro_extended_exit,"IDENT")
#line 1617 "cplus.met"
            ReplaceTree(_ptRes0, 1, _ptTree0);
#line 1617 "cplus.met"
            retTree=_ptRes0;
#line 1617 "cplus.met"
        }
#line 1617 "cplus.met"
    } else 
#line 1617 "cplus.met"
#line 1618 "cplus.met"
    if (1) {
#line 1618 "cplus.met"
#line 1618 "cplus.met"
        LEX_EXIT ("",0);
#line 1618 "cplus.met"
        goto macro_extended_exit;
#line 1618 "cplus.met"
    } else 
#line 1618 "cplus.met"
     ;
#line 1618 "cplus.met"
#line 1620 "cplus.met"
    {
#line 1620 "cplus.met"
        PPTREE _ptRes0;
#line 1620 "cplus.met"
        _ptRes0= MakeTree(MACRO, 2);
#line 1620 "cplus.met"
        ReplaceTree(_ptRes0, 1, retTree );
#line 1620 "cplus.met"
        retTree=_ptRes0;
#line 1620 "cplus.met"
    }
#line 1620 "cplus.met"
#line 1621 "cplus.met"
    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 1621 "cplus.met"
    if (  !SEE_TOKEN( POUV,"(") || !(CommTerm(),1)) 
#line 1621 "cplus.met"
        TOKEN_EXIT(macro_extended_exit,"(")
#line 1621 "cplus.met"
#line 1622 "cplus.met"
    if (NPUSH_CALL_AFF_VERIF(valTree = ,_Tak(expression), 47, cplus)){
#line 1622 "cplus.met"
#line 1623 "cplus.met"
        ReplaceTree(retTree ,2 ,valTree );
#line 1623 "cplus.met"
#line 1623 "cplus.met"
    }
#line 1623 "cplus.met"
#line 1624 "cplus.met"
    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 1624 "cplus.met"
    if (  !SEE_TOKEN( PFER,")") || !(CommTerm(),1)) 
#line 1624 "cplus.met"
        TOKEN_EXIT(macro_extended_exit,")")
#line 1624 "cplus.met"
#line 1625 "cplus.met"
    if ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN(PVIR,";") && (tokenAhead = 0,CommTerm(),1)){
#line 1625 "cplus.met"
#line 1625 "cplus.met"
    }
#line 1625 "cplus.met"
#line 1627 "cplus.met"
    {
#line 1627 "cplus.met"
        _retValue = retTree ;
#line 1627 "cplus.met"
        goto macro_extended_ret;
#line 1627 "cplus.met"
        
#line 1627 "cplus.met"
    }
#line 1627 "cplus.met"
#line 1628 "cplus.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 1628 "cplus.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 1628 "cplus.met"
return((PPTREE) 0);
#line 1628 "cplus.met"

#line 1628 "cplus.met"
macro_extended_exit :
#line 1628 "cplus.met"

#line 1628 "cplus.met"
    {
#line 1628 "cplus.met"
        MulFreeTree(2,valTree,retTree);
#line 1628 "cplus.met"
    }
#line 1628 "cplus.met"
    _Debug = TRACE_RULE("macro_extended",TRACE_EXIT,(PPTREE)0);
#line 1628 "cplus.met"
    _funcLevel--;
#line 1628 "cplus.met"
    return((PPTREE) -1) ;
#line 1628 "cplus.met"

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

#line 1628 "cplus.met"
#line 1816 "cplus.met"
PPTREE cplus::member_declarator ( int error_free)
#line 1816 "cplus.met"
{
#line 1816 "cplus.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 1816 "cplus.met"
    int _value,_nbPre = 0 ;
#line 1816 "cplus.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 1816 "cplus.met"
    int _Debug = TRACE_RULE("member_declarator",TRACE_ENTER,(PPTREE)0);
#line 1816 "cplus.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 1816 "cplus.met"
#line 1816 "cplus.met"
    PPTREE retTree = (PPTREE) 0;
#line 1816 "cplus.met"
#line 1818 "cplus.met"
    {
#line 1818 "cplus.met"
        PPTREE _ptTree0,_ptRes0;
#line 1818 "cplus.met"
        _ptRes0= MakeTree(MEMBER_DECLARATOR, 2);
#line 1818 "cplus.met"
        if ( (_ptTree0=NQUICK_CALL(_Tak(complete_class_name)(error_free), 21, cplus))== (PPTREE) -1 ) {
#line 1818 "cplus.met"
            PROG_EXIT(member_declarator_exit,"member_declarator")
#line 1818 "cplus.met"
        }
#line 1818 "cplus.met"
        ReplaceTree(_ptRes0, 1, _ptTree0);
#line 1818 "cplus.met"
        retTree=_ptRes0;
#line 1818 "cplus.met"
    }
#line 1818 "cplus.met"
#line 1819 "cplus.met"
    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 1819 "cplus.met"
    if (  !SEE_TOKEN( DPOIDPOI,"::") || !(CommTerm(),1)) 
#line 1819 "cplus.met"
        TOKEN_EXIT(member_declarator_exit,"::")
#line 1819 "cplus.met"
#line 1820 "cplus.met"
    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 1820 "cplus.met"
    if (  !SEE_TOKEN( ETOI,"*") || !(CommTerm(),1)) 
#line 1820 "cplus.met"
        TOKEN_EXIT(member_declarator_exit,"*")
#line 1820 "cplus.met"
#line 1821 "cplus.met"
    {
#line 1821 "cplus.met"
        _retValue = retTree ;
#line 1821 "cplus.met"
        goto member_declarator_ret;
#line 1821 "cplus.met"
        
#line 1821 "cplus.met"
    }
#line 1821 "cplus.met"
#line 1822 "cplus.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 1822 "cplus.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 1822 "cplus.met"
return((PPTREE) 0);
#line 1822 "cplus.met"

#line 1822 "cplus.met"
member_declarator_exit :
#line 1822 "cplus.met"

#line 1822 "cplus.met"
    {
#line 1822 "cplus.met"
        MulFreeTree(1,retTree);
#line 1822 "cplus.met"
    }
#line 1822 "cplus.met"
    _Debug = TRACE_RULE("member_declarator",TRACE_EXIT,(PPTREE)0);
#line 1822 "cplus.met"
    _funcLevel--;
#line 1822 "cplus.met"
    return((PPTREE) -1) ;
#line 1822 "cplus.met"

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

#line 1822 "cplus.met"
#line 1630 "cplus.met"
PPTREE cplus::message_map ( int error_free)
#line 1630 "cplus.met"
{
#line 1630 "cplus.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 1630 "cplus.met"
    int _value,_nbPre = 0 ;
#line 1630 "cplus.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 1630 "cplus.met"
    int _Debug = TRACE_RULE("message_map",TRACE_ENTER,(PPTREE)0);
#line 1630 "cplus.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 1630 "cplus.met"
#line 1630 "cplus.met"
    PPTREE _addlist1 = (PPTREE) 0;
#line 1630 "cplus.met"
#line 1630 "cplus.met"
    PPTREE retTree = (PPTREE) 0,list = (PPTREE) 0;
#line 1630 "cplus.met"
#line 1632 "cplus.met"
    (tokenAhead == 13|| (specific(),TRACE_LEX(1)));
#line 1632 "cplus.met"
    switch( lexEl.Value) {
#line 1632 "cplus.met"
#line 1633 "cplus.met"
        case META : 
#line 1633 "cplus.met"
        case BEGIN_MESSAGE_MAP : 
#line 1633 "cplus.met"
#line 1633 "cplus.met"
            break;
#line 1633 "cplus.met"
        default :
#line 1633 "cplus.met"
            CASE_EXIT(message_map_exit,"BEGIN_MESSAGE_MAP")
#line 1633 "cplus.met"
            break;
#line 1633 "cplus.met"
    }
#line 1633 "cplus.met"
#line 1635 "cplus.met"
    {
#line 1635 "cplus.met"
        PPTREE _ptRes0;
#line 1635 "cplus.met"
        _ptRes0= MakeTree(MESSAGE_MAP, 1);
#line 1635 "cplus.met"
        retTree=_ptRes0;
#line 1635 "cplus.met"
    }
#line 1635 "cplus.met"
#line 1635 "cplus.met"
    _addlist1 = list ;
#line 1635 "cplus.met"
#line 1636 "cplus.met"
    while (! ((tokenAhead == 13|| (specific(),TRACE_LEX(1)))&&SEE_TOKEN( END_MESSAGE_MAP,"END_MESSAGE_MAP"))) { 
#line 1636 "cplus.met"
#line 1637 "cplus.met"
#line 1637 "cplus.met"
        {
#line 1637 "cplus.met"
            PPTREE _ptTree0;
#line 1637 "cplus.met"
            if ( (_ptTree0=NQUICK_CALL(_Tak(macro_extended)(error_free), 73, cplus))== (PPTREE) -1 ) {
#line 1637 "cplus.met"
                PROG_EXIT(message_map_exit,"message_map")
#line 1637 "cplus.met"
            }
#line 1637 "cplus.met"
            _addlist1 =AddList(_addlist1 , _ptTree0);
#line 1637 "cplus.met"
        }
#line 1637 "cplus.met"
#line 1637 "cplus.met"
        if (list){
#line 1637 "cplus.met"
#line 1637 "cplus.met"
            _addlist1 = SonTree (_addlist1 ,2 );
#line 1637 "cplus.met"
        } else {
#line 1637 "cplus.met"
#line 1637 "cplus.met"
            list = _addlist1 ;
#line 1637 "cplus.met"
        }
#line 1637 "cplus.met"
    } 
#line 1637 "cplus.met"
#line 1638 "cplus.met"
    if ( (NQUICK_CALL(_Tak(macro)(error_free), 72, cplus))== (PPTREE) -1 ) {
#line 1638 "cplus.met"
        PROG_EXIT(message_map_exit,"message_map")
#line 1638 "cplus.met"
    }
#line 1638 "cplus.met"
#line 1639 "cplus.met"
    {
#line 1639 "cplus.met"
        PPTREE _ptTree0;
#line 1639 "cplus.met"
        _ptTree0=ReplaceTree(retTree ,1 ,list );
#line 1639 "cplus.met"
        _retValue =_ptTree0;
#line 1639 "cplus.met"
        goto message_map_ret;
#line 1639 "cplus.met"
    }
#line 1639 "cplus.met"
#line 1640 "cplus.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 1640 "cplus.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 1640 "cplus.met"
return((PPTREE) 0);
#line 1640 "cplus.met"

#line 1640 "cplus.met"
message_map_exit :
#line 1640 "cplus.met"

#line 1640 "cplus.met"
    {
#line 1640 "cplus.met"
        MulFreeTree(3,list,retTree,_addlist1);
#line 1640 "cplus.met"
    }
#line 1640 "cplus.met"
    _Debug = TRACE_RULE("message_map",TRACE_EXIT,(PPTREE)0);
#line 1640 "cplus.met"
    _funcLevel--;
#line 1640 "cplus.met"
    return((PPTREE) -1) ;
#line 1640 "cplus.met"

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

#line 1640 "cplus.met"
#line 2304 "cplus.met"
PPTREE cplus::multiplicative_expression ( int error_free)
#line 2304 "cplus.met"
{
#line 2304 "cplus.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 2304 "cplus.met"
    int _value,_nbPre = 0 ;
#line 2304 "cplus.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 2304 "cplus.met"
    int _Debug = TRACE_RULE("multiplicative_expression",TRACE_ENTER,(PPTREE)0);
#line 2304 "cplus.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 2304 "cplus.met"
#line 2304 "cplus.met"
    PPTREE expTree = (PPTREE) 0;
#line 2304 "cplus.met"
#line 2306 "cplus.met"
    if ( (expTree=NQUICK_CALL(_Tak(pm_expression)(error_free), 87, cplus))== (PPTREE) -1 ) {
#line 2306 "cplus.met"
        PROG_EXIT(multiplicative_expression_exit,"multiplicative_expression")
#line 2306 "cplus.met"
    }
#line 2306 "cplus.met"
#line 2307 "cplus.met"
    while ((((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN( ETOI,"*")) || 
#line 2307 "cplus.met"
           ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN( SLAS,"SLAS"))) || 
#line 2307 "cplus.met"
          ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN( POURC,"%"))) { 
#line 2307 "cplus.met"
#line 2308 "cplus.met"
        (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 2308 "cplus.met"
        switch( lexEl.Value) {
#line 2308 "cplus.met"
#line 2309 "cplus.met"
            case ETOI : 
#line 2309 "cplus.met"
                tokenAhead = 0 ;
#line 2309 "cplus.met"
                CommTerm();
#line 2309 "cplus.met"
#line 2309 "cplus.met"
                {
#line 2309 "cplus.met"
                    PPTREE _ptTree0,_ptRes0;
#line 2309 "cplus.met"
                    _ptRes0= MakeTree(MUL, 2);
#line 2309 "cplus.met"
                    ReplaceTree(_ptRes0, 1, expTree );
#line 2309 "cplus.met"
                    if ( (_ptTree0=NQUICK_CALL(_Tak(pm_expression)(error_free), 87, cplus))== (PPTREE) -1 ) {
#line 2309 "cplus.met"
                        PROG_EXIT(multiplicative_expression_exit,"multiplicative_expression")
#line 2309 "cplus.met"
                    }
#line 2309 "cplus.met"
                    ReplaceTree(_ptRes0, 2, _ptTree0);
#line 2309 "cplus.met"
                    expTree=_ptRes0;
#line 2309 "cplus.met"
                }
#line 2309 "cplus.met"
                break;
#line 2309 "cplus.met"
#line 2310 "cplus.met"
            case META : 
#line 2310 "cplus.met"
            case SLAS : 
#line 2310 "cplus.met"
                tokenAhead = 0 ;
#line 2310 "cplus.met"
                CommTerm();
#line 2310 "cplus.met"
#line 2310 "cplus.met"
                {
#line 2310 "cplus.met"
                    PPTREE _ptTree0,_ptRes0;
#line 2310 "cplus.met"
                    _ptRes0= MakeTree(DIV, 2);
#line 2310 "cplus.met"
                    ReplaceTree(_ptRes0, 1, expTree );
#line 2310 "cplus.met"
                    if ( (_ptTree0=NQUICK_CALL(_Tak(pm_expression)(error_free), 87, cplus))== (PPTREE) -1 ) {
#line 2310 "cplus.met"
                        PROG_EXIT(multiplicative_expression_exit,"multiplicative_expression")
#line 2310 "cplus.met"
                    }
#line 2310 "cplus.met"
                    ReplaceTree(_ptRes0, 2, _ptTree0);
#line 2310 "cplus.met"
                    expTree=_ptRes0;
#line 2310 "cplus.met"
                }
#line 2310 "cplus.met"
                break;
#line 2310 "cplus.met"
#line 2311 "cplus.met"
            case POURC : 
#line 2311 "cplus.met"
                tokenAhead = 0 ;
#line 2311 "cplus.met"
                CommTerm();
#line 2311 "cplus.met"
#line 2311 "cplus.met"
                {
#line 2311 "cplus.met"
                    PPTREE _ptTree0,_ptRes0;
#line 2311 "cplus.met"
                    _ptRes0= MakeTree(REM, 2);
#line 2311 "cplus.met"
                    ReplaceTree(_ptRes0, 1, expTree );
#line 2311 "cplus.met"
                    if ( (_ptTree0=NQUICK_CALL(_Tak(pm_expression)(error_free), 87, cplus))== (PPTREE) -1 ) {
#line 2311 "cplus.met"
                        PROG_EXIT(multiplicative_expression_exit,"multiplicative_expression")
#line 2311 "cplus.met"
                    }
#line 2311 "cplus.met"
                    ReplaceTree(_ptRes0, 2, _ptTree0);
#line 2311 "cplus.met"
                    expTree=_ptRes0;
#line 2311 "cplus.met"
                }
#line 2311 "cplus.met"
                break;
#line 2311 "cplus.met"
            default :
#line 2311 "cplus.met"
                CASE_EXIT(multiplicative_expression_exit,"either * or SLAS or %")
#line 2311 "cplus.met"
                break;
#line 2311 "cplus.met"
        }
#line 2311 "cplus.met"
    } 
#line 2311 "cplus.met"
#line 2313 "cplus.met"
    {
#line 2313 "cplus.met"
        _retValue = expTree ;
#line 2313 "cplus.met"
        goto multiplicative_expression_ret;
#line 2313 "cplus.met"
        
#line 2313 "cplus.met"
    }
#line 2313 "cplus.met"
#line 2314 "cplus.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 2314 "cplus.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 2314 "cplus.met"
return((PPTREE) 0);
#line 2314 "cplus.met"

#line 2314 "cplus.met"
multiplicative_expression_exit :
#line 2314 "cplus.met"

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

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

#line 2314 "cplus.met"
#line 2413 "cplus.met"
PPTREE cplus::new_1 ( int error_free)
#line 2413 "cplus.met"
{
#line 2413 "cplus.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 2413 "cplus.met"
    int _value,_nbPre = 0 ;
#line 2413 "cplus.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 2413 "cplus.met"
    int _Debug = TRACE_RULE("new_1",TRACE_ENTER,(PPTREE)0);
#line 2413 "cplus.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 2413 "cplus.met"
#line 2413 "cplus.met"
    PPTREE retTree = (PPTREE) 0;
#line 2413 "cplus.met"
#line 2415 "cplus.met"
    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 2415 "cplus.met"
    if (  !SEE_TOKEN( POUV,"(") || !(CommTerm(),1)) 
#line 2415 "cplus.met"
        TOKEN_EXIT(new_1_exit,"(")
#line 2415 "cplus.met"
#line 2416 "cplus.met"
    if ( (retTree=NQUICK_CALL(_Tak(expression)(error_free), 47, cplus))== (PPTREE) -1 ) {
#line 2416 "cplus.met"
        PROG_EXIT(new_1_exit,"new_1")
#line 2416 "cplus.met"
    }
#line 2416 "cplus.met"
#line 2417 "cplus.met"
    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 2417 "cplus.met"
    if (  !SEE_TOKEN( PFER,")") || !(CommTerm(),1)) 
#line 2417 "cplus.met"
        TOKEN_EXIT(new_1_exit,")")
#line 2417 "cplus.met"
#line 2418 "cplus.met"
    if ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN(POUV,"(") && (tokenAhead = 0,CommTerm(),1)){
#line 2418 "cplus.met"
#line 2419 "cplus.met"
#line 2420 "cplus.met"
        {
#line 2420 "cplus.met"
            PPTREE _ptTree0,_ptRes0;
#line 2420 "cplus.met"
            _ptRes0= MakeTree(NEW, 3);
#line 2420 "cplus.met"
            ReplaceTree(_ptRes0, 1, retTree );
#line 2420 "cplus.met"
            if ( (_ptTree0=NQUICK_CALL(_Tak(type_name)(error_free), 118, cplus))== (PPTREE) -1 ) {
#line 2420 "cplus.met"
                PROG_EXIT(new_1_exit,"new_1")
#line 2420 "cplus.met"
            }
#line 2420 "cplus.met"
            ReplaceTree(_ptRes0, 2, _ptTree0);
#line 2420 "cplus.met"
            retTree=_ptRes0;
#line 2420 "cplus.met"
        }
#line 2420 "cplus.met"
#line 2421 "cplus.met"
        (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 2421 "cplus.met"
        if (  !SEE_TOKEN( PFER,")") || !(CommTerm(),1)) 
#line 2421 "cplus.met"
            TOKEN_EXIT(new_1_exit,")")
#line 2421 "cplus.met"
#line 2422 "cplus.met"
        {
#line 2422 "cplus.met"
            _retValue = retTree ;
#line 2422 "cplus.met"
            goto new_1_ret;
#line 2422 "cplus.met"
            
#line 2422 "cplus.met"
        }
#line 2422 "cplus.met"
#line 2423 "cplus.met"
    } else {
#line 2423 "cplus.met"
#line 2425 "cplus.met"
        {
#line 2425 "cplus.met"
            PPTREE _ptTree0,_ptRes0;
#line 2425 "cplus.met"
            _ptRes0= MakeTree(NEW, 3);
#line 2425 "cplus.met"
            ReplaceTree(_ptRes0, 1, retTree );
#line 2425 "cplus.met"
            if ( (_ptTree0=NQUICK_CALL(_Tak(new_type_name)(error_free), 80, cplus))== (PPTREE) -1 ) {
#line 2425 "cplus.met"
                PROG_EXIT(new_1_exit,"new_1")
#line 2425 "cplus.met"
            }
#line 2425 "cplus.met"
            ReplaceTree(_ptRes0, 2, _ptTree0);
#line 2425 "cplus.met"
            retTree=_ptRes0;
#line 2425 "cplus.met"
        }
#line 2425 "cplus.met"
    }
#line 2425 "cplus.met"
#line 2426 "cplus.met"
    {
#line 2426 "cplus.met"
        _retValue = retTree ;
#line 2426 "cplus.met"
        goto new_1_ret;
#line 2426 "cplus.met"
        
#line 2426 "cplus.met"
    }
#line 2426 "cplus.met"
#line 2427 "cplus.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 2427 "cplus.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 2427 "cplus.met"
return((PPTREE) 0);
#line 2427 "cplus.met"

#line 2427 "cplus.met"
new_1_exit :
#line 2427 "cplus.met"

#line 2427 "cplus.met"
    {
#line 2427 "cplus.met"
        MulFreeTree(1,retTree);
#line 2427 "cplus.met"
    }
#line 2427 "cplus.met"
    _Debug = TRACE_RULE("new_1",TRACE_EXIT,(PPTREE)0);
#line 2427 "cplus.met"
    _funcLevel--;
#line 2427 "cplus.met"
    return((PPTREE) -1) ;
#line 2427 "cplus.met"

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

#line 2427 "cplus.met"
#line 2429 "cplus.met"
PPTREE cplus::new_2 ( int error_free)
#line 2429 "cplus.met"
{
#line 2429 "cplus.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 2429 "cplus.met"
    int _value,_nbPre = 0 ;
#line 2429 "cplus.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 2429 "cplus.met"
    int _Debug = TRACE_RULE("new_2",TRACE_ENTER,(PPTREE)0);
#line 2429 "cplus.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 2429 "cplus.met"
#line 2429 "cplus.met"
    PPTREE retTree = (PPTREE) 0;
#line 2429 "cplus.met"
#line 2431 "cplus.met"
    if ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN(POUV,"(") && (tokenAhead = 0,CommTerm(),1)){
#line 2431 "cplus.met"
#line 2432 "cplus.met"
#line 2433 "cplus.met"
        {
#line 2433 "cplus.met"
            PPTREE _ptTree0,_ptRes0;
#line 2433 "cplus.met"
            _ptRes0= MakeTree(NEW, 3);
#line 2433 "cplus.met"
            if ( (_ptTree0=NQUICK_CALL(_Tak(type_name)(error_free), 118, cplus))== (PPTREE) -1 ) {
#line 2433 "cplus.met"
                PROG_EXIT(new_2_exit,"new_2")
#line 2433 "cplus.met"
            }
#line 2433 "cplus.met"
            ReplaceTree(_ptRes0, 2, _ptTree0);
#line 2433 "cplus.met"
            retTree=_ptRes0;
#line 2433 "cplus.met"
        }
#line 2433 "cplus.met"
#line 2434 "cplus.met"
        (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 2434 "cplus.met"
        if (  !SEE_TOKEN( PFER,")") || !(CommTerm(),1)) 
#line 2434 "cplus.met"
            TOKEN_EXIT(new_2_exit,")")
#line 2434 "cplus.met"
#line 2435 "cplus.met"
        {
#line 2435 "cplus.met"
            _retValue = retTree ;
#line 2435 "cplus.met"
            goto new_2_ret;
#line 2435 "cplus.met"
            
#line 2435 "cplus.met"
        }
#line 2435 "cplus.met"
#line 2436 "cplus.met"
    } else {
#line 2436 "cplus.met"
#line 2438 "cplus.met"
        {
#line 2438 "cplus.met"
            PPTREE _ptTree0,_ptRes0;
#line 2438 "cplus.met"
            _ptRes0= MakeTree(NEW, 3);
#line 2438 "cplus.met"
            if ( (_ptTree0=NQUICK_CALL(_Tak(new_type_name)(error_free), 80, cplus))== (PPTREE) -1 ) {
#line 2438 "cplus.met"
                PROG_EXIT(new_2_exit,"new_2")
#line 2438 "cplus.met"
            }
#line 2438 "cplus.met"
            ReplaceTree(_ptRes0, 2, _ptTree0);
#line 2438 "cplus.met"
            retTree=_ptRes0;
#line 2438 "cplus.met"
        }
#line 2438 "cplus.met"
    }
#line 2438 "cplus.met"
#line 2439 "cplus.met"
    {
#line 2439 "cplus.met"
        _retValue = retTree ;
#line 2439 "cplus.met"
        goto new_2_ret;
#line 2439 "cplus.met"
        
#line 2439 "cplus.met"
    }
#line 2439 "cplus.met"
#line 2440 "cplus.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 2440 "cplus.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 2440 "cplus.met"
return((PPTREE) 0);
#line 2440 "cplus.met"

#line 2440 "cplus.met"
new_2_exit :
#line 2440 "cplus.met"

#line 2440 "cplus.met"
    {
#line 2440 "cplus.met"
        MulFreeTree(1,retTree);
#line 2440 "cplus.met"
    }
#line 2440 "cplus.met"
    _Debug = TRACE_RULE("new_2",TRACE_EXIT,(PPTREE)0);
#line 2440 "cplus.met"
    _funcLevel--;
#line 2440 "cplus.met"
    return((PPTREE) -1) ;
#line 2440 "cplus.met"

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

#line 2440 "cplus.met"
#line 2039 "cplus.met"
PPTREE cplus::new_declarator ( int error_free)
#line 2039 "cplus.met"
{
#line 2039 "cplus.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 2039 "cplus.met"
    int _value,_nbPre = 0 ;
#line 2039 "cplus.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 2039 "cplus.met"
    int _Debug = TRACE_RULE("new_declarator",TRACE_ENTER,(PPTREE)0);
#line 2039 "cplus.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 2039 "cplus.met"
#line 2039 "cplus.met"
    PPTREE valTree = (PPTREE) 0,retTree = (PPTREE) 0,expList = (PPTREE) 0;
#line 2039 "cplus.met"
#line 2041 "cplus.met"
    if (NPUSH_CALL_AFF_VERIF(valTree = ,_Tak(range_modifier), 98, cplus)){
#line 2041 "cplus.met"
#line 2042 "cplus.met"
        {
#line 2042 "cplus.met"
            PPTREE _ptTree0;
#line 2042 "cplus.met"
            {
#line 2042 "cplus.met"
                PPTREE _ptTree1;
#line 2042 "cplus.met"
                if ( (_ptTree1=NQUICK_CALL(_Tak(new_declarator)(error_free), 79, cplus))== (PPTREE) -1 ) {
#line 2042 "cplus.met"
                    PROG_EXIT(new_declarator_exit,"new_declarator")
#line 2042 "cplus.met"
                }
#line 2042 "cplus.met"
                _ptTree0=ReplaceTree(valTree , 2 , _ptTree1);
#line 2042 "cplus.met"
            }
#line 2042 "cplus.met"
            _retValue =_ptTree0;
#line 2042 "cplus.met"
            goto new_declarator_ret;
#line 2042 "cplus.met"
        }
#line 2042 "cplus.met"
    }
#line 2042 "cplus.met"
#line 2043 "cplus.met"
    retTree = (PPTREE) 0;
#line 2043 "cplus.met"
#line 2044 "cplus.met"
    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 2044 "cplus.met"
    switch( lexEl.Value) {
#line 2044 "cplus.met"
#line 2045 "cplus.met"
        case ETOI : 
#line 2045 "cplus.met"
            tokenAhead = 0 ;
#line 2045 "cplus.met"
            CommTerm();
#line 2045 "cplus.met"
#line 2045 "cplus.met"
            {
#line 2045 "cplus.met"
                PPTREE _ptTree0;
#line 2045 "cplus.met"
                {
#line 2045 "cplus.met"
                    PPTREE _ptTree1,_ptRes1;
#line 2045 "cplus.met"
                    _ptRes1= MakeTree(TYP_ADDR, 1);
#line 2045 "cplus.met"
                    if ( (_ptTree1=NQUICK_CALL(_Tak(new_declarator)(error_free), 79, cplus))== (PPTREE) -1 ) {
#line 2045 "cplus.met"
                        PROG_EXIT(new_declarator_exit,"new_declarator")
#line 2045 "cplus.met"
                    }
#line 2045 "cplus.met"
                    ReplaceTree(_ptRes1, 1, _ptTree1);
#line 2045 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2045 "cplus.met"
                }
#line 2045 "cplus.met"
                _retValue =_ptTree0;
#line 2045 "cplus.met"
                goto new_declarator_ret;
#line 2045 "cplus.met"
            }
#line 2045 "cplus.met"
            break;
#line 2045 "cplus.met"
#line 2046 "cplus.met"
        case META : 
#line 2046 "cplus.met"
        case IDENT : 
#line 2046 "cplus.met"
#line 2047 "cplus.met"
#line 2048 "cplus.met"
            if ( (valTree=NQUICK_CALL(_Tak(member_declarator)(error_free), 74, cplus))== (PPTREE) -1 ) {
#line 2048 "cplus.met"
                PROG_EXIT(new_declarator_exit,"new_declarator")
#line 2048 "cplus.met"
            }
#line 2048 "cplus.met"
#line 2049 "cplus.met"
            {
#line 2049 "cplus.met"
                PPTREE _ptTree0;
#line 2049 "cplus.met"
                {
#line 2049 "cplus.met"
                    PPTREE _ptTree1;
#line 2049 "cplus.met"
                    if ( (_ptTree1=NQUICK_CALL(_Tak(new_declarator)(error_free), 79, cplus))== (PPTREE) -1 ) {
#line 2049 "cplus.met"
                        PROG_EXIT(new_declarator_exit,"new_declarator")
#line 2049 "cplus.met"
                    }
#line 2049 "cplus.met"
                    _ptTree0=ReplaceTree(valTree , 2 , _ptTree1);
#line 2049 "cplus.met"
                }
#line 2049 "cplus.met"
                _retValue =_ptTree0;
#line 2049 "cplus.met"
                goto new_declarator_ret;
#line 2049 "cplus.met"
            }
#line 2049 "cplus.met"
            break;
#line 2049 "cplus.met"
#line 2058 "cplus.met"
        default : 
#line 2058 "cplus.met"
#line 2054 "cplus.met"
#line 2056 "cplus.met"
            while ((tokenAhead == 1|| (Lex(),TRACE_LEX(1)))&&SEE_TOKEN(COUV,"[") && (tokenAhead = 0,CommTerm(),1)) { 
#line 2056 "cplus.met"
#line 2057 "cplus.met"
#line 2058 "cplus.met"
                if (NPUSH_CALL_AFF_VERIF(expList = ,_Tak(expression), 47, cplus)){
#line 2058 "cplus.met"
#line 2059 "cplus.met"
                    {
#line 2059 "cplus.met"
                        PPTREE _ptRes0;
#line 2059 "cplus.met"
                        _ptRes0= MakeTree(TYP_ARRAY, 2);
#line 2059 "cplus.met"
                        ReplaceTree(_ptRes0, 1, retTree );
#line 2059 "cplus.met"
                        ReplaceTree(_ptRes0, 2, expList );
#line 2059 "cplus.met"
                        retTree=_ptRes0;
#line 2059 "cplus.met"
                    }
#line 2059 "cplus.met"
                } else {
#line 2059 "cplus.met"
#line 2061 "cplus.met"
                    {
#line 2061 "cplus.met"
                        PPTREE _ptRes0;
#line 2061 "cplus.met"
                        _ptRes0= MakeTree(TYP_ARRAY, 2);
#line 2061 "cplus.met"
                        ReplaceTree(_ptRes0, 1, retTree );
#line 2061 "cplus.met"
                        retTree=_ptRes0;
#line 2061 "cplus.met"
                    }
#line 2061 "cplus.met"
                }
#line 2061 "cplus.met"
#line 2062 "cplus.met"
                (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 2062 "cplus.met"
                if (  !SEE_TOKEN( CFER,"]") || !(CommTerm(),1)) 
#line 2062 "cplus.met"
                    TOKEN_EXIT(new_declarator_exit,"]")
#line 2062 "cplus.met"
            } 
#line 2062 "cplus.met"
#line 2064 "cplus.met"
            {
#line 2064 "cplus.met"
                _retValue = retTree ;
#line 2064 "cplus.met"
                goto new_declarator_ret;
#line 2064 "cplus.met"
                
#line 2064 "cplus.met"
            }
#line 2064 "cplus.met"
            break;
#line 2064 "cplus.met"
    }
#line 2064 "cplus.met"
#line 2067 "cplus.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 2067 "cplus.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 2067 "cplus.met"
return((PPTREE) 0);
#line 2067 "cplus.met"

#line 2067 "cplus.met"
new_declarator_exit :
#line 2067 "cplus.met"

#line 2067 "cplus.met"
    {
#line 2067 "cplus.met"
        MulFreeTree(3,expList,retTree,valTree);
#line 2067 "cplus.met"
    }
#line 2067 "cplus.met"
    _Debug = TRACE_RULE("new_declarator",TRACE_EXIT,(PPTREE)0);
#line 2067 "cplus.met"
    _funcLevel--;
#line 2067 "cplus.met"
    return((PPTREE) -1) ;
#line 2067 "cplus.met"

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

#line 2067 "cplus.met"
#line 2136 "cplus.met"
PPTREE cplus::new_type_name ( int error_free)
#line 2136 "cplus.met"
{
#line 2136 "cplus.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 2136 "cplus.met"
    int _value,_nbPre = 0 ;
#line 2136 "cplus.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 2136 "cplus.met"
    int _Debug = TRACE_RULE("new_type_name",TRACE_ENTER,(PPTREE)0);
#line 2136 "cplus.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 2136 "cplus.met"
#line 2136 "cplus.met"
    PPTREE retTree = (PPTREE) 0,valTree = (PPTREE) 0;
#line 2136 "cplus.met"
#line 2138 "cplus.met"
    if ( (retTree=NQUICK_CALL(_Tak(type_specifier)(error_free), 119, cplus))== (PPTREE) -1 ) {
#line 2138 "cplus.met"
        PROG_EXIT(new_type_name_exit,"new_type_name")
#line 2138 "cplus.met"
    }
#line 2138 "cplus.met"
#line 2139 "cplus.met"
    if (NPUSH_CALL_AFF_VERIF(valTree = ,_Tak(new_declarator), 79, cplus)){
#line 2139 "cplus.met"
#line 2140 "cplus.met"
        {
#line 2140 "cplus.met"
            PPTREE _ptRes0;
#line 2140 "cplus.met"
            _ptRes0= MakeTree(NEW_DECLARATOR, 2);
#line 2140 "cplus.met"
            ReplaceTree(_ptRes0, 1, retTree );
#line 2140 "cplus.met"
            ReplaceTree(_ptRes0, 2, valTree );
#line 2140 "cplus.met"
            valTree=_ptRes0;
#line 2140 "cplus.met"
        }
#line 2140 "cplus.met"
    } else {
#line 2140 "cplus.met"
#line 2142 "cplus.met"
        valTree = retTree ;
#line 2142 "cplus.met"
    }
#line 2142 "cplus.met"
#line 2143 "cplus.met"
    {
#line 2143 "cplus.met"
        _retValue = valTree ;
#line 2143 "cplus.met"
        goto new_type_name_ret;
#line 2143 "cplus.met"
        
#line 2143 "cplus.met"
    }
#line 2143 "cplus.met"
#line 2144 "cplus.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 2144 "cplus.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 2144 "cplus.met"
return((PPTREE) 0);
#line 2144 "cplus.met"

#line 2144 "cplus.met"
new_type_name_exit :
#line 2144 "cplus.met"

#line 2144 "cplus.met"
    {
#line 2144 "cplus.met"
        MulFreeTree(2,valTree,retTree);
#line 2144 "cplus.met"
    }
#line 2144 "cplus.met"
    _Debug = TRACE_RULE("new_type_name",TRACE_EXIT,(PPTREE)0);
#line 2144 "cplus.met"
    _funcLevel--;
#line 2144 "cplus.met"
    return((PPTREE) -1) ;
#line 2144 "cplus.met"

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

#line 2144 "cplus.met"
#line 2579 "cplus.met"
PPTREE cplus::operator_function_name ( int error_free)
#line 2579 "cplus.met"
{
#line 2579 "cplus.met"
    PFILE_POSITION _filePosition = (PFILE_POSITION) 0;

#line 2579 "cplus.met"
    int _value,_nbPre = 0 ;
#line 2579 "cplus.met"
    PCOMM_ELEM _ptPreComm = ((tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1))),listComm?LookComm(&_nbPre):(_funcLevel++,(PCOMM_ELEM)0));
#line 2579 "cplus.met"
    int _Debug = TRACE_RULE("operator_function_name",TRACE_ENTER,(PPTREE)0);
#line 2579 "cplus.met"
    PPTREE lastTree = _lastTree,_retValue ;
#line 2579 "cplus.met"
#line 2579 "cplus.met"
    PPTREE retTree = (PPTREE) 0,valTree = (PPTREE) 0,list = (PPTREE) 0;
#line 2579 "cplus.met"
#line 2581 "cplus.met"
    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 2581 "cplus.met"
    if (  !SEE_TOKEN( OPERATOR,"operator") || !(CommTerm(),1)) 
#line 2581 "cplus.met"
        TOKEN_EXIT(operator_function_name_exit,"operator")
#line 2581 "cplus.met"
#line 2582 "cplus.met"
    (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 2582 "cplus.met"
    switch( lexEl.Value) {
#line 2582 "cplus.met"
#line 2583 "cplus.met"
        case NEW : 
#line 2583 "cplus.met"
            tokenAhead = 0 ;
#line 2583 "cplus.met"
            CommTerm();
#line 2583 "cplus.met"
#line 2583 "cplus.met"
            {
#line 2583 "cplus.met"
                PPTREE _ptTree0;
#line 2583 "cplus.met"
                {
#line 2583 "cplus.met"
                    PPTREE _ptRes1;
#line 2583 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2583 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("new"));
#line 2583 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2583 "cplus.met"
                }
#line 2583 "cplus.met"
                _retValue =_ptTree0;
#line 2583 "cplus.met"
                goto operator_function_name_ret;
#line 2583 "cplus.met"
            }
#line 2583 "cplus.met"
            break;
#line 2583 "cplus.met"
#line 2584 "cplus.met"
        case DELETE : 
#line 2584 "cplus.met"
            tokenAhead = 0 ;
#line 2584 "cplus.met"
            CommTerm();
#line 2584 "cplus.met"
#line 2584 "cplus.met"
            {
#line 2584 "cplus.met"
                PPTREE _ptTree0;
#line 2584 "cplus.met"
                {
#line 2584 "cplus.met"
                    PPTREE _ptRes1;
#line 2584 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2584 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("delete"));
#line 2584 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2584 "cplus.met"
                }
#line 2584 "cplus.met"
                _retValue =_ptTree0;
#line 2584 "cplus.met"
                goto operator_function_name_ret;
#line 2584 "cplus.met"
            }
#line 2584 "cplus.met"
            break;
#line 2584 "cplus.met"
#line 2585 "cplus.met"
        case PLUS : 
#line 2585 "cplus.met"
            tokenAhead = 0 ;
#line 2585 "cplus.met"
            CommTerm();
#line 2585 "cplus.met"
#line 2585 "cplus.met"
            {
#line 2585 "cplus.met"
                PPTREE _ptTree0;
#line 2585 "cplus.met"
                {
#line 2585 "cplus.met"
                    PPTREE _ptRes1;
#line 2585 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2585 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("+"));
#line 2585 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2585 "cplus.met"
                }
#line 2585 "cplus.met"
                _retValue =_ptTree0;
#line 2585 "cplus.met"
                goto operator_function_name_ret;
#line 2585 "cplus.met"
            }
#line 2585 "cplus.met"
            break;
#line 2585 "cplus.met"
#line 2586 "cplus.met"
        case TIRE : 
#line 2586 "cplus.met"
            tokenAhead = 0 ;
#line 2586 "cplus.met"
            CommTerm();
#line 2586 "cplus.met"
#line 2586 "cplus.met"
            {
#line 2586 "cplus.met"
                PPTREE _ptTree0;
#line 2586 "cplus.met"
                {
#line 2586 "cplus.met"
                    PPTREE _ptRes1;
#line 2586 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2586 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("-"));
#line 2586 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2586 "cplus.met"
                }
#line 2586 "cplus.met"
                _retValue =_ptTree0;
#line 2586 "cplus.met"
                goto operator_function_name_ret;
#line 2586 "cplus.met"
            }
#line 2586 "cplus.met"
            break;
#line 2586 "cplus.met"
#line 2587 "cplus.met"
        case ETOI : 
#line 2587 "cplus.met"
            tokenAhead = 0 ;
#line 2587 "cplus.met"
            CommTerm();
#line 2587 "cplus.met"
#line 2587 "cplus.met"
            {
#line 2587 "cplus.met"
                PPTREE _ptTree0;
#line 2587 "cplus.met"
                {
#line 2587 "cplus.met"
                    PPTREE _ptRes1;
#line 2587 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2587 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("*"));
#line 2587 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2587 "cplus.met"
                }
#line 2587 "cplus.met"
                _retValue =_ptTree0;
#line 2587 "cplus.met"
                goto operator_function_name_ret;
#line 2587 "cplus.met"
            }
#line 2587 "cplus.met"
            break;
#line 2587 "cplus.met"
#line 2588 "cplus.met"
        case META : 
#line 2588 "cplus.met"
        case SLAS : 
#line 2588 "cplus.met"
            tokenAhead = 0 ;
#line 2588 "cplus.met"
            CommTerm();
#line 2588 "cplus.met"
#line 2588 "cplus.met"
            {
#line 2588 "cplus.met"
                PPTREE _ptTree0;
#line 2588 "cplus.met"
                {
#line 2588 "cplus.met"
                    PPTREE _ptRes1;
#line 2588 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2588 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("/"));
#line 2588 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2588 "cplus.met"
                }
#line 2588 "cplus.met"
                _retValue =_ptTree0;
#line 2588 "cplus.met"
                goto operator_function_name_ret;
#line 2588 "cplus.met"
            }
#line 2588 "cplus.met"
            break;
#line 2588 "cplus.met"
#line 2589 "cplus.met"
        case POURC : 
#line 2589 "cplus.met"
            tokenAhead = 0 ;
#line 2589 "cplus.met"
            CommTerm();
#line 2589 "cplus.met"
#line 2589 "cplus.met"
            {
#line 2589 "cplus.met"
                PPTREE _ptTree0;
#line 2589 "cplus.met"
                {
#line 2589 "cplus.met"
                    PPTREE _ptRes1;
#line 2589 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2589 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("%"));
#line 2589 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2589 "cplus.met"
                }
#line 2589 "cplus.met"
                _retValue =_ptTree0;
#line 2589 "cplus.met"
                goto operator_function_name_ret;
#line 2589 "cplus.met"
            }
#line 2589 "cplus.met"
            break;
#line 2589 "cplus.met"
#line 2590 "cplus.met"
        case CHAP : 
#line 2590 "cplus.met"
            tokenAhead = 0 ;
#line 2590 "cplus.met"
            CommTerm();
#line 2590 "cplus.met"
#line 2590 "cplus.met"
            {
#line 2590 "cplus.met"
                PPTREE _ptTree0;
#line 2590 "cplus.met"
                {
#line 2590 "cplus.met"
                    PPTREE _ptRes1;
#line 2590 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2590 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("^"));
#line 2590 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2590 "cplus.met"
                }
#line 2590 "cplus.met"
                _retValue =_ptTree0;
#line 2590 "cplus.met"
                goto operator_function_name_ret;
#line 2590 "cplus.met"
            }
#line 2590 "cplus.met"
            break;
#line 2590 "cplus.met"
#line 2591 "cplus.met"
        case ETCO : 
#line 2591 "cplus.met"
            tokenAhead = 0 ;
#line 2591 "cplus.met"
            CommTerm();
#line 2591 "cplus.met"
#line 2591 "cplus.met"
            {
#line 2591 "cplus.met"
                PPTREE _ptTree0;
#line 2591 "cplus.met"
                {
#line 2591 "cplus.met"
                    PPTREE _ptRes1;
#line 2591 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2591 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("&"));
#line 2591 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2591 "cplus.met"
                }
#line 2591 "cplus.met"
                _retValue =_ptTree0;
#line 2591 "cplus.met"
                goto operator_function_name_ret;
#line 2591 "cplus.met"
            }
#line 2591 "cplus.met"
            break;
#line 2591 "cplus.met"
#line 2592 "cplus.met"
        case VBAR : 
#line 2592 "cplus.met"
            tokenAhead = 0 ;
#line 2592 "cplus.met"
            CommTerm();
#line 2592 "cplus.met"
#line 2592 "cplus.met"
            {
#line 2592 "cplus.met"
                PPTREE _ptTree0;
#line 2592 "cplus.met"
                {
#line 2592 "cplus.met"
                    PPTREE _ptRes1;
#line 2592 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2592 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("|"));
#line 2592 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2592 "cplus.met"
                }
#line 2592 "cplus.met"
                _retValue =_ptTree0;
#line 2592 "cplus.met"
                goto operator_function_name_ret;
#line 2592 "cplus.met"
            }
#line 2592 "cplus.met"
            break;
#line 2592 "cplus.met"
#line 2593 "cplus.met"
        case TILD : 
#line 2593 "cplus.met"
            tokenAhead = 0 ;
#line 2593 "cplus.met"
            CommTerm();
#line 2593 "cplus.met"
#line 2593 "cplus.met"
            {
#line 2593 "cplus.met"
                PPTREE _ptTree0;
#line 2593 "cplus.met"
                {
#line 2593 "cplus.met"
                    PPTREE _ptRes1;
#line 2593 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2593 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("~"));
#line 2593 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2593 "cplus.met"
                }
#line 2593 "cplus.met"
                _retValue =_ptTree0;
#line 2593 "cplus.met"
                goto operator_function_name_ret;
#line 2593 "cplus.met"
            }
#line 2593 "cplus.met"
            break;
#line 2593 "cplus.met"
#line 2594 "cplus.met"
        case EXCL : 
#line 2594 "cplus.met"
            tokenAhead = 0 ;
#line 2594 "cplus.met"
            CommTerm();
#line 2594 "cplus.met"
#line 2594 "cplus.met"
            {
#line 2594 "cplus.met"
                PPTREE _ptTree0;
#line 2594 "cplus.met"
                {
#line 2594 "cplus.met"
                    PPTREE _ptRes1;
#line 2594 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2594 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("!"));
#line 2594 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2594 "cplus.met"
                }
#line 2594 "cplus.met"
                _retValue =_ptTree0;
#line 2594 "cplus.met"
                goto operator_function_name_ret;
#line 2594 "cplus.met"
            }
#line 2594 "cplus.met"
            break;
#line 2594 "cplus.met"
#line 2595 "cplus.met"
        case EGAL : 
#line 2595 "cplus.met"
            tokenAhead = 0 ;
#line 2595 "cplus.met"
            CommTerm();
#line 2595 "cplus.met"
#line 2595 "cplus.met"
            {
#line 2595 "cplus.met"
                PPTREE _ptTree0;
#line 2595 "cplus.met"
                {
#line 2595 "cplus.met"
                    PPTREE _ptRes1;
#line 2595 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2595 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("="));
#line 2595 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2595 "cplus.met"
                }
#line 2595 "cplus.met"
                _retValue =_ptTree0;
#line 2595 "cplus.met"
                goto operator_function_name_ret;
#line 2595 "cplus.met"
            }
#line 2595 "cplus.met"
            break;
#line 2595 "cplus.met"
#line 2596 "cplus.met"
        case SUPE : 
#line 2596 "cplus.met"
            tokenAhead = 0 ;
#line 2596 "cplus.met"
            CommTerm();
#line 2596 "cplus.met"
#line 2596 "cplus.met"
            {
#line 2596 "cplus.met"
                PPTREE _ptTree0;
#line 2596 "cplus.met"
                {
#line 2596 "cplus.met"
                    PPTREE _ptRes1;
#line 2596 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2596 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString (">"));
#line 2596 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2596 "cplus.met"
                }
#line 2596 "cplus.met"
                _retValue =_ptTree0;
#line 2596 "cplus.met"
                goto operator_function_name_ret;
#line 2596 "cplus.met"
            }
#line 2596 "cplus.met"
            break;
#line 2596 "cplus.met"
#line 2597 "cplus.met"
        case INFE : 
#line 2597 "cplus.met"
            tokenAhead = 0 ;
#line 2597 "cplus.met"
            CommTerm();
#line 2597 "cplus.met"
#line 2597 "cplus.met"
            {
#line 2597 "cplus.met"
                PPTREE _ptTree0;
#line 2597 "cplus.met"
                {
#line 2597 "cplus.met"
                    PPTREE _ptRes1;
#line 2597 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2597 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("<"));
#line 2597 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2597 "cplus.met"
                }
#line 2597 "cplus.met"
                _retValue =_ptTree0;
#line 2597 "cplus.met"
                goto operator_function_name_ret;
#line 2597 "cplus.met"
            }
#line 2597 "cplus.met"
            break;
#line 2597 "cplus.met"
#line 2598 "cplus.met"
        case PLUSEGAL : 
#line 2598 "cplus.met"
            tokenAhead = 0 ;
#line 2598 "cplus.met"
            CommTerm();
#line 2598 "cplus.met"
#line 2598 "cplus.met"
            {
#line 2598 "cplus.met"
                PPTREE _ptTree0;
#line 2598 "cplus.met"
                {
#line 2598 "cplus.met"
                    PPTREE _ptRes1;
#line 2598 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2598 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("+="));
#line 2598 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2598 "cplus.met"
                }
#line 2598 "cplus.met"
                _retValue =_ptTree0;
#line 2598 "cplus.met"
                goto operator_function_name_ret;
#line 2598 "cplus.met"
            }
#line 2598 "cplus.met"
            break;
#line 2598 "cplus.met"
#line 2599 "cplus.met"
        case TIREEGAL : 
#line 2599 "cplus.met"
            tokenAhead = 0 ;
#line 2599 "cplus.met"
            CommTerm();
#line 2599 "cplus.met"
#line 2599 "cplus.met"
            {
#line 2599 "cplus.met"
                PPTREE _ptTree0;
#line 2599 "cplus.met"
                {
#line 2599 "cplus.met"
                    PPTREE _ptRes1;
#line 2599 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2599 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("-="));
#line 2599 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2599 "cplus.met"
                }
#line 2599 "cplus.met"
                _retValue =_ptTree0;
#line 2599 "cplus.met"
                goto operator_function_name_ret;
#line 2599 "cplus.met"
            }
#line 2599 "cplus.met"
            break;
#line 2599 "cplus.met"
#line 2600 "cplus.met"
        case ETOIEGAL : 
#line 2600 "cplus.met"
            tokenAhead = 0 ;
#line 2600 "cplus.met"
            CommTerm();
#line 2600 "cplus.met"
#line 2600 "cplus.met"
            {
#line 2600 "cplus.met"
                PPTREE _ptTree0;
#line 2600 "cplus.met"
                {
#line 2600 "cplus.met"
                    PPTREE _ptRes1;
#line 2600 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2600 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("*="));
#line 2600 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2600 "cplus.met"
                }
#line 2600 "cplus.met"
                _retValue =_ptTree0;
#line 2600 "cplus.met"
                goto operator_function_name_ret;
#line 2600 "cplus.met"
            }
#line 2600 "cplus.met"
            break;
#line 2600 "cplus.met"
#line 2601 "cplus.met"
        case SLASEGAL : 
#line 2601 "cplus.met"
            tokenAhead = 0 ;
#line 2601 "cplus.met"
            CommTerm();
#line 2601 "cplus.met"
#line 2601 "cplus.met"
            {
#line 2601 "cplus.met"
                PPTREE _ptTree0;
#line 2601 "cplus.met"
                {
#line 2601 "cplus.met"
                    PPTREE _ptRes1;
#line 2601 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2601 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("/="));
#line 2601 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2601 "cplus.met"
                }
#line 2601 "cplus.met"
                _retValue =_ptTree0;
#line 2601 "cplus.met"
                goto operator_function_name_ret;
#line 2601 "cplus.met"
            }
#line 2601 "cplus.met"
            break;
#line 2601 "cplus.met"
#line 2602 "cplus.met"
        case POURCEGAL : 
#line 2602 "cplus.met"
            tokenAhead = 0 ;
#line 2602 "cplus.met"
            CommTerm();
#line 2602 "cplus.met"
#line 2602 "cplus.met"
            {
#line 2602 "cplus.met"
                PPTREE _ptTree0;
#line 2602 "cplus.met"
                {
#line 2602 "cplus.met"
                    PPTREE _ptRes1;
#line 2602 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2602 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("%="));
#line 2602 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2602 "cplus.met"
                }
#line 2602 "cplus.met"
                _retValue =_ptTree0;
#line 2602 "cplus.met"
                goto operator_function_name_ret;
#line 2602 "cplus.met"
            }
#line 2602 "cplus.met"
            break;
#line 2602 "cplus.met"
#line 2603 "cplus.met"
        case CHAPEGAL : 
#line 2603 "cplus.met"
            tokenAhead = 0 ;
#line 2603 "cplus.met"
            CommTerm();
#line 2603 "cplus.met"
#line 2603 "cplus.met"
            {
#line 2603 "cplus.met"
                PPTREE _ptTree0;
#line 2603 "cplus.met"
                {
#line 2603 "cplus.met"
                    PPTREE _ptRes1;
#line 2603 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2603 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("^="));
#line 2603 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2603 "cplus.met"
                }
#line 2603 "cplus.met"
                _retValue =_ptTree0;
#line 2603 "cplus.met"
                goto operator_function_name_ret;
#line 2603 "cplus.met"
            }
#line 2603 "cplus.met"
            break;
#line 2603 "cplus.met"
#line 2604 "cplus.met"
        case ETCOEGAL : 
#line 2604 "cplus.met"
            tokenAhead = 0 ;
#line 2604 "cplus.met"
            CommTerm();
#line 2604 "cplus.met"
#line 2604 "cplus.met"
            {
#line 2604 "cplus.met"
                PPTREE _ptTree0;
#line 2604 "cplus.met"
                {
#line 2604 "cplus.met"
                    PPTREE _ptRes1;
#line 2604 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2604 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("&="));
#line 2604 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2604 "cplus.met"
                }
#line 2604 "cplus.met"
                _retValue =_ptTree0;
#line 2604 "cplus.met"
                goto operator_function_name_ret;
#line 2604 "cplus.met"
            }
#line 2604 "cplus.met"
            break;
#line 2604 "cplus.met"
#line 2605 "cplus.met"
        case VBAREGAL : 
#line 2605 "cplus.met"
            tokenAhead = 0 ;
#line 2605 "cplus.met"
            CommTerm();
#line 2605 "cplus.met"
#line 2605 "cplus.met"
            {
#line 2605 "cplus.met"
                PPTREE _ptTree0;
#line 2605 "cplus.met"
                {
#line 2605 "cplus.met"
                    PPTREE _ptRes1;
#line 2605 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2605 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("|="));
#line 2605 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2605 "cplus.met"
                }
#line 2605 "cplus.met"
                _retValue =_ptTree0;
#line 2605 "cplus.met"
                goto operator_function_name_ret;
#line 2605 "cplus.met"
            }
#line 2605 "cplus.met"
            break;
#line 2605 "cplus.met"
#line 2606 "cplus.met"
        case EXCLEGAL : 
#line 2606 "cplus.met"
            tokenAhead = 0 ;
#line 2606 "cplus.met"
            CommTerm();
#line 2606 "cplus.met"
#line 2606 "cplus.met"
            {
#line 2606 "cplus.met"
                PPTREE _ptTree0;
#line 2606 "cplus.met"
                {
#line 2606 "cplus.met"
                    PPTREE _ptRes1;
#line 2606 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2606 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("!="));
#line 2606 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2606 "cplus.met"
                }
#line 2606 "cplus.met"
                _retValue =_ptTree0;
#line 2606 "cplus.met"
                goto operator_function_name_ret;
#line 2606 "cplus.met"
            }
#line 2606 "cplus.met"
            break;
#line 2606 "cplus.met"
#line 2607 "cplus.met"
        case EGALEGAL : 
#line 2607 "cplus.met"
            tokenAhead = 0 ;
#line 2607 "cplus.met"
            CommTerm();
#line 2607 "cplus.met"
#line 2607 "cplus.met"
            {
#line 2607 "cplus.met"
                PPTREE _ptTree0;
#line 2607 "cplus.met"
                {
#line 2607 "cplus.met"
                    PPTREE _ptRes1;
#line 2607 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2607 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("=="));
#line 2607 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2607 "cplus.met"
                }
#line 2607 "cplus.met"
                _retValue =_ptTree0;
#line 2607 "cplus.met"
                goto operator_function_name_ret;
#line 2607 "cplus.met"
            }
#line 2607 "cplus.met"
            break;
#line 2607 "cplus.met"
#line 2608 "cplus.met"
        case INFEEGAL : 
#line 2608 "cplus.met"
            tokenAhead = 0 ;
#line 2608 "cplus.met"
            CommTerm();
#line 2608 "cplus.met"
#line 2608 "cplus.met"
            {
#line 2608 "cplus.met"
                PPTREE _ptTree0;
#line 2608 "cplus.met"
                {
#line 2608 "cplus.met"
                    PPTREE _ptRes1;
#line 2608 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2608 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("<="));
#line 2608 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2608 "cplus.met"
                }
#line 2608 "cplus.met"
                _retValue =_ptTree0;
#line 2608 "cplus.met"
                goto operator_function_name_ret;
#line 2608 "cplus.met"
            }
#line 2608 "cplus.met"
            break;
#line 2608 "cplus.met"
#line 2609 "cplus.met"
        case SUPEEGAL : 
#line 2609 "cplus.met"
            tokenAhead = 0 ;
#line 2609 "cplus.met"
            CommTerm();
#line 2609 "cplus.met"
#line 2609 "cplus.met"
            {
#line 2609 "cplus.met"
                PPTREE _ptTree0;
#line 2609 "cplus.met"
                {
#line 2609 "cplus.met"
                    PPTREE _ptRes1;
#line 2609 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2609 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString (">="));
#line 2609 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2609 "cplus.met"
                }
#line 2609 "cplus.met"
                _retValue =_ptTree0;
#line 2609 "cplus.met"
                goto operator_function_name_ret;
#line 2609 "cplus.met"
            }
#line 2609 "cplus.met"
            break;
#line 2609 "cplus.met"
#line 2610 "cplus.met"
        case INFEINFE : 
#line 2610 "cplus.met"
            tokenAhead = 0 ;
#line 2610 "cplus.met"
            CommTerm();
#line 2610 "cplus.met"
#line 2610 "cplus.met"
            {
#line 2610 "cplus.met"
                PPTREE _ptTree0;
#line 2610 "cplus.met"
                {
#line 2610 "cplus.met"
                    PPTREE _ptRes1;
#line 2610 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2610 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("<<"));
#line 2610 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2610 "cplus.met"
                }
#line 2610 "cplus.met"
                _retValue =_ptTree0;
#line 2610 "cplus.met"
                goto operator_function_name_ret;
#line 2610 "cplus.met"
            }
#line 2610 "cplus.met"
            break;
#line 2610 "cplus.met"
#line 2611 "cplus.met"
        case SUPESUPE : 
#line 2611 "cplus.met"
            tokenAhead = 0 ;
#line 2611 "cplus.met"
            CommTerm();
#line 2611 "cplus.met"
#line 2611 "cplus.met"
            {
#line 2611 "cplus.met"
                PPTREE _ptTree0;
#line 2611 "cplus.met"
                {
#line 2611 "cplus.met"
                    PPTREE _ptRes1;
#line 2611 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2611 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString (">>"));
#line 2611 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2611 "cplus.met"
                }
#line 2611 "cplus.met"
                _retValue =_ptTree0;
#line 2611 "cplus.met"
                goto operator_function_name_ret;
#line 2611 "cplus.met"
            }
#line 2611 "cplus.met"
            break;
#line 2611 "cplus.met"
#line 2612 "cplus.met"
        case INFEINFEEGAL : 
#line 2612 "cplus.met"
            tokenAhead = 0 ;
#line 2612 "cplus.met"
            CommTerm();
#line 2612 "cplus.met"
#line 2612 "cplus.met"
            {
#line 2612 "cplus.met"
                PPTREE _ptTree0;
#line 2612 "cplus.met"
                {
#line 2612 "cplus.met"
                    PPTREE _ptRes1;
#line 2612 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2612 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("<<="));
#line 2612 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2612 "cplus.met"
                }
#line 2612 "cplus.met"
                _retValue =_ptTree0;
#line 2612 "cplus.met"
                goto operator_function_name_ret;
#line 2612 "cplus.met"
            }
#line 2612 "cplus.met"
            break;
#line 2612 "cplus.met"
#line 2613 "cplus.met"
        case SUPESUPEEGAL : 
#line 2613 "cplus.met"
            tokenAhead = 0 ;
#line 2613 "cplus.met"
            CommTerm();
#line 2613 "cplus.met"
#line 2613 "cplus.met"
            {
#line 2613 "cplus.met"
                PPTREE _ptTree0;
#line 2613 "cplus.met"
                {
#line 2613 "cplus.met"
                    PPTREE _ptRes1;
#line 2613 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2613 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString (">>="));
#line 2613 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2613 "cplus.met"
                }
#line 2613 "cplus.met"
                _retValue =_ptTree0;
#line 2613 "cplus.met"
                goto operator_function_name_ret;
#line 2613 "cplus.met"
            }
#line 2613 "cplus.met"
            break;
#line 2613 "cplus.met"
#line 2614 "cplus.met"
        case ETCOETCO : 
#line 2614 "cplus.met"
            tokenAhead = 0 ;
#line 2614 "cplus.met"
            CommTerm();
#line 2614 "cplus.met"
#line 2614 "cplus.met"
            {
#line 2614 "cplus.met"
                PPTREE _ptTree0;
#line 2614 "cplus.met"
                {
#line 2614 "cplus.met"
                    PPTREE _ptRes1;
#line 2614 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2614 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("&&"));
#line 2614 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2614 "cplus.met"
                }
#line 2614 "cplus.met"
                _retValue =_ptTree0;
#line 2614 "cplus.met"
                goto operator_function_name_ret;
#line 2614 "cplus.met"
            }
#line 2614 "cplus.met"
            break;
#line 2614 "cplus.met"
#line 2615 "cplus.met"
        case VBARVBAR : 
#line 2615 "cplus.met"
            tokenAhead = 0 ;
#line 2615 "cplus.met"
            CommTerm();
#line 2615 "cplus.met"
#line 2615 "cplus.met"
            {
#line 2615 "cplus.met"
                PPTREE _ptTree0;
#line 2615 "cplus.met"
                {
#line 2615 "cplus.met"
                    PPTREE _ptRes1;
#line 2615 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2615 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("||"));
#line 2615 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2615 "cplus.met"
                }
#line 2615 "cplus.met"
                _retValue =_ptTree0;
#line 2615 "cplus.met"
                goto operator_function_name_ret;
#line 2615 "cplus.met"
            }
#line 2615 "cplus.met"
            break;
#line 2615 "cplus.met"
#line 2616 "cplus.met"
        case PLUSPLUS : 
#line 2616 "cplus.met"
            tokenAhead = 0 ;
#line 2616 "cplus.met"
            CommTerm();
#line 2616 "cplus.met"
#line 2616 "cplus.met"
            {
#line 2616 "cplus.met"
                PPTREE _ptTree0;
#line 2616 "cplus.met"
                {
#line 2616 "cplus.met"
                    PPTREE _ptRes1;
#line 2616 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2616 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("++"));
#line 2616 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2616 "cplus.met"
                }
#line 2616 "cplus.met"
                _retValue =_ptTree0;
#line 2616 "cplus.met"
                goto operator_function_name_ret;
#line 2616 "cplus.met"
            }
#line 2616 "cplus.met"
            break;
#line 2616 "cplus.met"
#line 2617 "cplus.met"
        case TIRETIRE : 
#line 2617 "cplus.met"
            tokenAhead = 0 ;
#line 2617 "cplus.met"
            CommTerm();
#line 2617 "cplus.met"
#line 2617 "cplus.met"
            {
#line 2617 "cplus.met"
                PPTREE _ptTree0;
#line 2617 "cplus.met"
                {
#line 2617 "cplus.met"
                    PPTREE _ptRes1;
#line 2617 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2617 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("--"));
#line 2617 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2617 "cplus.met"
                }
#line 2617 "cplus.met"
                _retValue =_ptTree0;
#line 2617 "cplus.met"
                goto operator_function_name_ret;
#line 2617 "cplus.met"
            }
#line 2617 "cplus.met"
            break;
#line 2617 "cplus.met"
#line 2618 "cplus.met"
        case VIRG : 
#line 2618 "cplus.met"
            tokenAhead = 0 ;
#line 2618 "cplus.met"
            CommTerm();
#line 2618 "cplus.met"
#line 2618 "cplus.met"
            {
#line 2618 "cplus.met"
                PPTREE _ptTree0;
#line 2618 "cplus.met"
                {
#line 2618 "cplus.met"
                    PPTREE _ptRes1;
#line 2618 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2618 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString (","));
#line 2618 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2618 "cplus.met"
                }
#line 2618 "cplus.met"
                _retValue =_ptTree0;
#line 2618 "cplus.met"
                goto operator_function_name_ret;
#line 2618 "cplus.met"
            }
#line 2618 "cplus.met"
            break;
#line 2618 "cplus.met"
#line 2619 "cplus.met"
        case TIRESUPE : 
#line 2619 "cplus.met"
            tokenAhead = 0 ;
#line 2619 "cplus.met"
            CommTerm();
#line 2619 "cplus.met"
#line 2619 "cplus.met"
            {
#line 2619 "cplus.met"
                PPTREE _ptTree0;
#line 2619 "cplus.met"
                {
#line 2619 "cplus.met"
                    PPTREE _ptRes1;
#line 2619 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2619 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("->"));
#line 2619 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2619 "cplus.met"
                }
#line 2619 "cplus.met"
                _retValue =_ptTree0;
#line 2619 "cplus.met"
                goto operator_function_name_ret;
#line 2619 "cplus.met"
            }
#line 2619 "cplus.met"
            break;
#line 2619 "cplus.met"
#line 2620 "cplus.met"
        case TIRESUPEETOI : 
#line 2620 "cplus.met"
            tokenAhead = 0 ;
#line 2620 "cplus.met"
            CommTerm();
#line 2620 "cplus.met"
#line 2620 "cplus.met"
            {
#line 2620 "cplus.met"
                PPTREE _ptTree0;
#line 2620 "cplus.met"
                {
#line 2620 "cplus.met"
                    PPTREE _ptRes1;
#line 2620 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2620 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("->*"));
#line 2620 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2620 "cplus.met"
                }
#line 2620 "cplus.met"
                _retValue =_ptTree0;
#line 2620 "cplus.met"
                goto operator_function_name_ret;
#line 2620 "cplus.met"
            }
#line 2620 "cplus.met"
            break;
#line 2620 "cplus.met"
#line 2623 "cplus.met"
        case POUV : 
#line 2623 "cplus.met"
            tokenAhead = 0 ;
#line 2623 "cplus.met"
            CommTerm();
#line 2623 "cplus.met"
#line 2622 "cplus.met"
#line 2623 "cplus.met"
            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 2623 "cplus.met"
            if (  !SEE_TOKEN( PFER,")") || !(CommTerm(),1)) 
#line 2623 "cplus.met"
                TOKEN_EXIT(operator_function_name_exit,")")
#line 2623 "cplus.met"
#line 2624 "cplus.met"
            {
#line 2624 "cplus.met"
                PPTREE _ptTree0;
#line 2624 "cplus.met"
                {
#line 2624 "cplus.met"
                    PPTREE _ptRes1;
#line 2624 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2624 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("()"));
#line 2624 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2624 "cplus.met"
                }
#line 2624 "cplus.met"
                _retValue =_ptTree0;
#line 2624 "cplus.met"
                goto operator_function_name_ret;
#line 2624 "cplus.met"
            }
#line 2624 "cplus.met"
            break;
#line 2624 "cplus.met"
#line 2628 "cplus.met"
        case COUV : 
#line 2628 "cplus.met"
            tokenAhead = 0 ;
#line 2628 "cplus.met"
            CommTerm();
#line 2628 "cplus.met"
#line 2627 "cplus.met"
#line 2628 "cplus.met"
            (tokenAhead == 1|| (Lex(),TRACE_LEX(1)));
#line 2628 "cplus.met"
            if (  !SEE_TOKEN( CFER,"]") || !(CommTerm(),1)) 
#line 2628 "cplus.met"
                TOKEN_EXIT(operator_function_name_exit,"]")
#line 2628 "cplus.met"
#line 2629 "cplus.met"
            {
#line 2629 "cplus.met"
                PPTREE _ptTree0;
#line 2629 "cplus.met"
                {
#line 2629 "cplus.met"
                    PPTREE _ptRes1;
#line 2629 "cplus.met"
                    _ptRes1= MakeTree(OPERATOR, 1);
#line 2629 "cplus.met"
                    ReplaceTree(_ptRes1, 1, MakeString ("[]"));
#line 2629 "cplus.met"
                    _ptTree0=_ptRes1;
#line 2629 "cplus.met"
                }
#line 2629 "cplus.met"
                _retValue =_ptTree0;
#line 2629 "cplus.met"
                goto operator_function_name_ret;
#line 2629 "cplus.met"
            }
#line 2629 "cplus.met"
            break;
#line 2629 "cplus.met"
#line 2629 "cplus.met"
        default : 
#line 2629 "cplus.met"
#line 2629 "cplus.met"
            break;
#line 2629 "cplus.met"
    }
#line 2629 "cplus.met"
#line 2633 "cplus.met"
    if (NPUSH_CALL_AFF_VERIF(retTree = ,_Tak(const_or_volatile), 24, cplus)){
#line 2633 "cplus.met"
#line 2634 "cplus.met"
        {
#line 2634 "cplus.met"
            PPTREE _ptRes0;
#line 2634 "cplus.met"
            _ptRes0= MakeTree(FOR_DECLARATION, 3);
#line 2634 "cplus.met"
            ReplaceTree(_ptRes0, 1, retTree );
#line 2634 "cplus.met"
            retTree=_ptRes0;
#line 2634 "cplus.met"
        }
#line 2634 "cplus.met"
    } else {
#line 2634 "cplus.met"
#line 2636 "cplus.met"
        {
#line 2636 "cplus.met"
            PPTREE _ptRes0;
#line 2636 "cplus.met"
            _ptRes0= MakeTree(FOR_DECLARATION, 3);
#line 2636 "cplus.met"
            retTree=_ptRes0;
#line 2636 "cplus.met"
        }
#line 2636 "cplus.met"
    }
#line 2636 "cplus.met"
#line 2637 "cplus.met"
    {
#line 2637 "cplus.met"
        PPTREE _ptTree0;
#line 2637 "cplus.met"
        if ( (_ptTree0=NQUICK_CALL(_Tak(type_specifier)(error_free), 119, cplus))== (PPTREE) -1 ) {
#line 2637 "cplus.met"
            PROG_EXIT(operator_function_name_exit,"operator_function_name")
#line 2637 "cplus.met"
        }
#line 2637 "cplus.met"
        ReplaceTree(retTree , 2 , _ptTree0);
#line 2637 "cplus.met"
    }
#line 2637 "cplus.met"
#line 2638 "cplus.met"
    if (NPUSH_CALL_AFF_VERIF(valTree = ,_Tak(ptr_operator), 92, cplus)){
#line 2638 "cplus.met"
#line 2639 "cplus.met"
#line 2640 "cplus.met"
        list =AddList(list ,valTree );
#line 2640 "cplus.met"
#line 2641 "cplus.met"
        ReplaceTree(retTree ,3 ,list );
#line 2641 "cplus.met"
#line 2642 "cplus.met"
    }
#line 2642 "cplus.met"
#line 2643 "cplus.met"
    {
#line 2643 "cplus.met"
        PPTREE _ptTree0;
#line 2643 "cplus.met"
        {
#line 2643 "cplus.met"
            PPTREE _ptRes1;
#line 2643 "cplus.met"
            _ptRes1= MakeTree(OPERATOR, 1);
#line 2643 "cplus.met"
            ReplaceTree(_ptRes1, 1, retTree );
#line 2643 "cplus.met"
            _ptTree0=_ptRes1;
#line 2643 "cplus.met"
        }
#line 2643 "cplus.met"
        _retValue =_ptTree0;
#line 2643 "cplus.met"
        goto operator_function_name_ret;
#line 2643 "cplus.met"
    }
#line 2643 "cplus.met"
#line 2644 "cplus.met"
(tokenAhead|| (LexComment(),tokenAhead=-1,TRACE_LEX(1)));
#line 2644 "cplus.met"
if (_nbPre || listComm) AddComm(_ptPreComm,_nbPre,(PPTREE) 0,lastTree); else {_lastTree=(PPTREE)0;_funcLevel--;}
#line 2644 "cplus.met"
return((PPTREE) 0);
#line 2644 "cplus.met"

#line 2644 "cplus.met"
operator_function_name_exit :
#line 2644 "cplus.met"

#line 2644 "cplus.met"
    {
#line 2644 "cplus.met"
        MulFreeTree(3,list,valTree,retTree);
#line 2644 "cplus.met"
    }
#line 2644 "cplus.met"
    _Debug = TRACE_RULE("operator_function_name",TRACE_EXIT,(PPTREE)0);
#line 2644 "cplus.met"
    _funcLevel--;
#line 2644 "cplus.met"
    return((PPTREE) -1) ;
#line 2644 "cplus.met"

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

#line 2644 "cplus.met"
