
#line 24 "dchop1.ch"
/*************************************************************************/
#line 24 "dchop1.ch"
/*                                                                       */
#line 24 "dchop1.ch"
/*        Produced by Metachop version 2.0  -    1989-1995               */
#line 24 "dchop1.ch"
/*     Tree      Meta     Chopper      developped    by                  */
#line 24 "dchop1.ch"
/*                  Eric Lavillonniere                                   */
#line 24 "dchop1.ch"
/*                                                                       */
#line 24 "dchop1.ch"
/*************************************************************************/
#line 24 "dchop1.ch"
#line 24 "dchop1.ch"
#include "token.h"
#line 24 "dchop1.ch"
extern int _retVal[50];
#line 24 "dchop1.ch"
extern PPTREE _storeVal[50],_nextVal;
#line 24 "dchop1.ch"
extern PPTREE stackTree[1024];
#line 24 "dchop1.ch"
extern int ptStackTree;
#line 24 "dchop1.ch"
#define decomp decomp_cplus
#line 24 "dchop1.ch"
#line 24 "dchop1.ch"
#ifndef for_elem
#line 24 "dchop1.ch"
#line 24 "dchop1.ch"
#define for_elem _for_elem
#line 24 "dchop1.ch"
#endif
#ifdef INCONNU
#line 24 "dchop1.ch"
#line 24 "dchop1.ch"
PTREE   for_elem ;
#line 24 "dchop1.ch"
#line 24 "dchop1.ch"
#endif
#ifdef FOR_METACHOP
#line 24 "dchop1.ch"
#line 28 "dchop1.ch"
PTREE   postComment ;
#line 28 "dchop1.ch"
#line 28 "dchop1.ch"
#endif

#include "deccplus.h"
#include "memges.h"

#line 34 "dchop1.ch"
#line 34 "dchop1.ch"
int DecompCplus::OpTypeAlign ( PTREE tree )
#line 34 "dchop1.ch"
{
#line 34 "dchop1.ch"
    register PPTREE _inter ;
#line 34 "dchop1.ch"
#line 34 "dchop1.ch"
#line 36 "dchop1.ch"
    PTREE   son ;
#line 36 "dchop1.ch"
#line 36 "dchop1.ch"
#line 38 "dchop1.ch"
    switch ( NumberTree(tree) ) {
#line 38 "dchop1.ch"
#line 38 "dchop1.ch"
        case cplus::EXP_SEQ : 
#line 38 "dchop1.ch"
#line 38 "dchop1.ch"
        _Case0 : 
#line 38 "dchop1.ch"
#line 38 "dchop1.ch"
            ;
#line 38 "dchop1.ch"
#line 38 "dchop1.ch"
            goto _Case1 ;
#line 38 "dchop1.ch"
#line 38 "dchop1.ch"
        case cplus::INITIALIZER : 
#line 38 "dchop1.ch"
#line 38 "dchop1.ch"
        _Case1 : 
#line 38 "dchop1.ch"
#line 38 "dchop1.ch"
            ;
#line 38 "dchop1.ch"
#line 38 "dchop1.ch"
            goto _Case2 ;
#line 38 "dchop1.ch"
#line 38 "dchop1.ch"
        case cplus::BASE_LIST : 
#line 38 "dchop1.ch"
#line 38 "dchop1.ch"
        _Case2 : 
#line 38 "dchop1.ch"
#line 38 "dchop1.ch"
            ;
#line 38 "dchop1.ch"
#line 38 "dchop1.ch"
            goto _Case3 ;
#line 38 "dchop1.ch"
#line 43 "dchop1.ch"
        case cplus::STRING_LIST : 
#line 43 "dchop1.ch"
#line 43 "dchop1.ch"
        _Case3 : 
#line 43 "dchop1.ch"
#line 43 "dchop1.ch"
            ;
#line 43 "dchop1.ch"
#line 43 "dchop1.ch"
            return LIST_ALIGN ;
#line 43 "dchop1.ch"
#line 44 "dchop1.ch"
            break ;
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
        case cplus::AFF : 
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
        _Case4 : 
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
            ;
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
            goto _Case5 ;
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
        case cplus::MUL_AFF : 
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
        _Case5 : 
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
            ;
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
            goto _Case6 ;
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
        case cplus::DIV_AFF : 
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
        _Case6 : 
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
            ;
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
            goto _Case7 ;
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
        case cplus::REM_AFF : 
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
        _Case7 : 
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
            ;
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
            goto _Case8 ;
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
        case cplus::MIN_AFF : 
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
        _Case8 : 
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
            ;
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
            goto _Case9 ;
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
        case cplus::PLU_AFF : 
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
        _Case9 : 
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
            ;
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
            goto _Case10 ;
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
        case cplus::LSH_AFF : 
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
        _Case10 : 
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
            ;
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
            goto _Case11 ;
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
        case cplus::RSH_AFF : 
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
        _Case11 : 
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
            ;
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
            goto _Case12 ;
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
        case cplus::AND_AFF : 
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
        _Case12 : 
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
            ;
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
            goto _Case13 ;
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
        case cplus::OR_AFF : 
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
        _Case13 : 
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
            ;
#line 44 "dchop1.ch"
#line 44 "dchop1.ch"
            goto _Case14 ;
#line 44 "dchop1.ch"
#line 56 "dchop1.ch"
        case cplus::XOR_AFF : 
#line 56 "dchop1.ch"
#line 56 "dchop1.ch"
        _Case14 : 
#line 56 "dchop1.ch"
#line 56 "dchop1.ch"
            ;
#line 56 "dchop1.ch"
#line 56 "dchop1.ch"
            return H_ALIGN ;
#line 56 "dchop1.ch"
#line 57 "dchop1.ch"
            break ;
#line 57 "dchop1.ch"
#line 57 "dchop1.ch"
        case cplus::OR : 
#line 57 "dchop1.ch"
#line 57 "dchop1.ch"
        _Case15 : 
#line 57 "dchop1.ch"
#line 57 "dchop1.ch"
            ;
#line 57 "dchop1.ch"
#line 57 "dchop1.ch"
            goto _Case16 ;
#line 57 "dchop1.ch"
#line 60 "dchop1.ch"
        case cplus::AND : 
#line 60 "dchop1.ch"
#line 60 "dchop1.ch"
        _Case16 : 
#line 60 "dchop1.ch"
#line 60 "dchop1.ch"
            ;
#line 60 "dchop1.ch"
#line 60 "dchop1.ch"
            return V_ALIGN ;
#line 60 "dchop1.ch"
#line 61 "dchop1.ch"
            break ;
#line 61 "dchop1.ch"
#line 63 "dchop1.ch"
        case cplus::COND_AFF : 
#line 63 "dchop1.ch"
#line 63 "dchop1.ch"
        _Case17 : 
#line 63 "dchop1.ch"
#line 63 "dchop1.ch"
            ;
#line 63 "dchop1.ch"
#line 63 "dchop1.ch"
            return COND_ALIGN ;
#line 63 "dchop1.ch"
#line 64 "dchop1.ch"
            break ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        case cplus::LOR : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        _Case18 : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            goto _Case19 ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        case cplus::LXOR : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        _Case19 : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            goto _Case20 ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        case cplus::LAND : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        _Case20 : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            goto _Case21 ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        case cplus::EQU : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        _Case21 : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            goto _Case22 ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        case cplus::NEQU : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        _Case22 : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            goto _Case23 ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        case cplus::LEQU : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        _Case23 : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            goto _Case24 ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        case cplus::GEQU : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        _Case24 : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            goto _Case25 ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        case cplus::GT : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        _Case25 : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            goto _Case26 ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        case cplus::LT : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        _Case26 : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            goto _Case27 ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        case cplus::LSHI : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        _Case27 : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            goto _Case28 ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        case cplus::RSHI : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        _Case28 : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            goto _Case29 ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        case cplus::MINUS : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        _Case29 : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            goto _Case30 ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        case cplus::PLUS : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        _Case30 : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            goto _Case31 ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        case cplus::TYP_AFF : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        _Case31 : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            goto _Case32 ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        case cplus::MUL : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        _Case32 : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            goto _Case33 ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        case cplus::DIV : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        _Case33 : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            goto _Case34 ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        case cplus::REM : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        _Case34 : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            goto _Case35 ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        case cplus::DOT_MEMB : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        _Case35 : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            goto _Case36 ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        case cplus::ARROW_MEMB : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        _Case36 : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            goto _Case37 ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        case cplus::REF : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
        _Case37 : 
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            ;
#line 64 "dchop1.ch"
#line 64 "dchop1.ch"
            goto _Case38 ;
#line 64 "dchop1.ch"
#line 86 "dchop1.ch"
        case cplus::ARROW : 
#line 86 "dchop1.ch"
#line 86 "dchop1.ch"
        _Case38 : 
#line 86 "dchop1.ch"
#line 86 "dchop1.ch"
            ;
#line 86 "dchop1.ch"
#line 86 "dchop1.ch"
            return H_ALIGN ;
#line 86 "dchop1.ch"
#line 87 "dchop1.ch"
            break ;
#line 87 "dchop1.ch"
#line 88 "dchop1.ch"
        default : 
#line 88 "dchop1.ch"
#line 88 "dchop1.ch"
        _Case39 : 
#line 88 "dchop1.ch"
#line 88 "dchop1.ch"
            ;
#line 88 "dchop1.ch"
#line 88 "dchop1.ch"
            return - 1 ;
#line 88 "dchop1.ch"
    }
#line 88 "dchop1.ch"
#line 88 "dchop1.ch"
#line 90 "dchop1.ch"
}
#line 90 "dchop1.ch"

#line 92 "dchop1.ch"
#line 92 "dchop1.ch"
int DecompCplus::OpType ( PTREE tree )
#line 92 "dchop1.ch"
{
#line 92 "dchop1.ch"
    register PPTREE _inter ;
#line 92 "dchop1.ch"
#line 92 "dchop1.ch"
#line 94 "dchop1.ch"
    PTREE   son ;
#line 94 "dchop1.ch"
#line 94 "dchop1.ch"
#line 96 "dchop1.ch"
    switch ( NumberTree(tree) ) {
#line 96 "dchop1.ch"
#line 97 "dchop1.ch"
        case LIST : 
#line 97 "dchop1.ch"
#line 97 "dchop1.ch"
        _Case40 : 
#line 97 "dchop1.ch"
#line 97 "dchop1.ch"
            ;
#line 97 "dchop1.ch"
#line 97 "dchop1.ch"
            return 1000 ;
#line 97 "dchop1.ch"
#line 97 "dchop1.ch"
            goto _Case41 ;
#line 97 "dchop1.ch"
#line 97 "dchop1.ch"
        case cplus::EXP_SEQ : 
#line 97 "dchop1.ch"
#line 97 "dchop1.ch"
        _Case41 : 
#line 97 "dchop1.ch"
#line 97 "dchop1.ch"
            ;
#line 97 "dchop1.ch"
#line 97 "dchop1.ch"
            goto _Case42 ;
#line 97 "dchop1.ch"
#line 97 "dchop1.ch"
        case cplus::INITIALIZER : 
#line 97 "dchop1.ch"
#line 97 "dchop1.ch"
        _Case42 : 
#line 97 "dchop1.ch"
#line 97 "dchop1.ch"
            ;
#line 97 "dchop1.ch"
#line 97 "dchop1.ch"
            goto _Case43 ;
#line 97 "dchop1.ch"
#line 101 "dchop1.ch"
        case cplus::BASE_LIST : 
#line 101 "dchop1.ch"
#line 101 "dchop1.ch"
        _Case43 : 
#line 101 "dchop1.ch"
#line 101 "dchop1.ch"
            ;
#line 101 "dchop1.ch"
#line 101 "dchop1.ch"
            return 0 ;
#line 101 "dchop1.ch"
#line 102 "dchop1.ch"
            break ;
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
        case cplus::AFF : 
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
        _Case44 : 
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
            ;
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
            goto _Case45 ;
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
        case cplus::MUL_AFF : 
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
        _Case45 : 
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
            ;
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
            goto _Case46 ;
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
        case cplus::DIV_AFF : 
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
        _Case46 : 
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
            ;
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
            goto _Case47 ;
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
        case cplus::REM_AFF : 
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
        _Case47 : 
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
            ;
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
            goto _Case48 ;
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
        case cplus::MIN_AFF : 
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
        _Case48 : 
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
            ;
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
            goto _Case49 ;
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
        case cplus::PLU_AFF : 
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
        _Case49 : 
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
            ;
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
            goto _Case50 ;
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
        case cplus::LSH_AFF : 
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
        _Case50 : 
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
            ;
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
            goto _Case51 ;
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
        case cplus::RSH_AFF : 
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
        _Case51 : 
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
            ;
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
            goto _Case52 ;
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
        case cplus::AND_AFF : 
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
        _Case52 : 
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
            ;
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
            goto _Case53 ;
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
        case cplus::OR_AFF : 
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
        _Case53 : 
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
            ;
#line 102 "dchop1.ch"
#line 102 "dchop1.ch"
            goto _Case54 ;
#line 102 "dchop1.ch"
#line 114 "dchop1.ch"
        case cplus::XOR_AFF : 
#line 114 "dchop1.ch"
#line 114 "dchop1.ch"
        _Case54 : 
#line 114 "dchop1.ch"
#line 114 "dchop1.ch"
            ;
#line 114 "dchop1.ch"
#line 114 "dchop1.ch"
            return 100 ;
#line 114 "dchop1.ch"
#line 115 "dchop1.ch"
            break ;
#line 115 "dchop1.ch"
#line 117 "dchop1.ch"
        case cplus::COND_AFF : 
#line 117 "dchop1.ch"
#line 117 "dchop1.ch"
        _Case55 : 
#line 117 "dchop1.ch"
#line 117 "dchop1.ch"
            ;
#line 117 "dchop1.ch"
#line 117 "dchop1.ch"
            return 101 ;
#line 117 "dchop1.ch"
#line 118 "dchop1.ch"
            break ;
#line 118 "dchop1.ch"
#line 120 "dchop1.ch"
        case cplus::OR : 
#line 120 "dchop1.ch"
#line 120 "dchop1.ch"
        _Case56 : 
#line 120 "dchop1.ch"
#line 120 "dchop1.ch"
            ;
#line 120 "dchop1.ch"
#line 120 "dchop1.ch"
            return 102 ;
#line 120 "dchop1.ch"
#line 121 "dchop1.ch"
            break ;
#line 121 "dchop1.ch"
#line 123 "dchop1.ch"
        case cplus::AND : 
#line 123 "dchop1.ch"
#line 123 "dchop1.ch"
        _Case57 : 
#line 123 "dchop1.ch"
#line 123 "dchop1.ch"
            ;
#line 123 "dchop1.ch"
#line 123 "dchop1.ch"
            return 103 ;
#line 123 "dchop1.ch"
#line 124 "dchop1.ch"
            break ;
#line 124 "dchop1.ch"
#line 126 "dchop1.ch"
        case cplus::LOR : 
#line 126 "dchop1.ch"
#line 126 "dchop1.ch"
        _Case58 : 
#line 126 "dchop1.ch"
#line 126 "dchop1.ch"
            ;
#line 126 "dchop1.ch"
#line 126 "dchop1.ch"
            return 104 ;
#line 126 "dchop1.ch"
#line 127 "dchop1.ch"
            break ;
#line 127 "dchop1.ch"
#line 129 "dchop1.ch"
        case cplus::LXOR : 
#line 129 "dchop1.ch"
#line 129 "dchop1.ch"
        _Case59 : 
#line 129 "dchop1.ch"
#line 129 "dchop1.ch"
            ;
#line 129 "dchop1.ch"
#line 129 "dchop1.ch"
            return 105 ;
#line 129 "dchop1.ch"
#line 130 "dchop1.ch"
            break ;
#line 130 "dchop1.ch"
#line 132 "dchop1.ch"
        case cplus::LAND : 
#line 132 "dchop1.ch"
#line 132 "dchop1.ch"
        _Case60 : 
#line 132 "dchop1.ch"
#line 132 "dchop1.ch"
            ;
#line 132 "dchop1.ch"
#line 132 "dchop1.ch"
            return 106 ;
#line 132 "dchop1.ch"
#line 133 "dchop1.ch"
            break ;
#line 133 "dchop1.ch"
#line 133 "dchop1.ch"
        case cplus::EQU : 
#line 133 "dchop1.ch"
#line 133 "dchop1.ch"
        _Case61 : 
#line 133 "dchop1.ch"
#line 133 "dchop1.ch"
            ;
#line 133 "dchop1.ch"
#line 133 "dchop1.ch"
            goto _Case62 ;
#line 133 "dchop1.ch"
#line 136 "dchop1.ch"
        case cplus::NEQU : 
#line 136 "dchop1.ch"
#line 136 "dchop1.ch"
        _Case62 : 
#line 136 "dchop1.ch"
#line 136 "dchop1.ch"
            ;
#line 136 "dchop1.ch"
#line 136 "dchop1.ch"
            return 107 ;
#line 136 "dchop1.ch"
#line 137 "dchop1.ch"
            break ;
#line 137 "dchop1.ch"
#line 137 "dchop1.ch"
        case cplus::LEQU : 
#line 137 "dchop1.ch"
#line 137 "dchop1.ch"
        _Case63 : 
#line 137 "dchop1.ch"
#line 137 "dchop1.ch"
            ;
#line 137 "dchop1.ch"
#line 137 "dchop1.ch"
            goto _Case64 ;
#line 137 "dchop1.ch"
#line 137 "dchop1.ch"
        case cplus::GEQU : 
#line 137 "dchop1.ch"
#line 137 "dchop1.ch"
        _Case64 : 
#line 137 "dchop1.ch"
#line 137 "dchop1.ch"
            ;
#line 137 "dchop1.ch"
#line 137 "dchop1.ch"
            goto _Case65 ;
#line 137 "dchop1.ch"
#line 137 "dchop1.ch"
        case cplus::GT : 
#line 137 "dchop1.ch"
#line 137 "dchop1.ch"
        _Case65 : 
#line 137 "dchop1.ch"
#line 137 "dchop1.ch"
            ;
#line 137 "dchop1.ch"
#line 137 "dchop1.ch"
            goto _Case66 ;
#line 137 "dchop1.ch"
#line 142 "dchop1.ch"
        case cplus::LT : 
#line 142 "dchop1.ch"
#line 142 "dchop1.ch"
        _Case66 : 
#line 142 "dchop1.ch"
#line 142 "dchop1.ch"
            ;
#line 142 "dchop1.ch"
#line 142 "dchop1.ch"
            return 108 ;
#line 142 "dchop1.ch"
#line 143 "dchop1.ch"
            break ;
#line 143 "dchop1.ch"
#line 143 "dchop1.ch"
        case cplus::LSHI : 
#line 143 "dchop1.ch"
#line 143 "dchop1.ch"
        _Case67 : 
#line 143 "dchop1.ch"
#line 143 "dchop1.ch"
            ;
#line 143 "dchop1.ch"
#line 143 "dchop1.ch"
            goto _Case68 ;
#line 143 "dchop1.ch"
#line 146 "dchop1.ch"
        case cplus::RSHI : 
#line 146 "dchop1.ch"
#line 146 "dchop1.ch"
        _Case68 : 
#line 146 "dchop1.ch"
#line 146 "dchop1.ch"
            ;
#line 146 "dchop1.ch"
#line 146 "dchop1.ch"
            return 109 ;
#line 146 "dchop1.ch"
#line 147 "dchop1.ch"
            break ;
#line 147 "dchop1.ch"
#line 147 "dchop1.ch"
        case cplus::MINUS : 
#line 147 "dchop1.ch"
#line 147 "dchop1.ch"
        _Case69 : 
#line 147 "dchop1.ch"
#line 147 "dchop1.ch"
            ;
#line 147 "dchop1.ch"
#line 147 "dchop1.ch"
            goto _Case70 ;
#line 147 "dchop1.ch"
#line 147 "dchop1.ch"
        case cplus::PLUS : 
#line 147 "dchop1.ch"
#line 147 "dchop1.ch"
        _Case70 : 
#line 147 "dchop1.ch"
#line 147 "dchop1.ch"
            ;
#line 147 "dchop1.ch"
#line 147 "dchop1.ch"
            goto _Case71 ;
#line 147 "dchop1.ch"
#line 154 "dchop1.ch"
        case cplus::TYP_AFF : 
#line 154 "dchop1.ch"
#line 154 "dchop1.ch"
        _Case71 : 
#line 154 "dchop1.ch"
#line 154 "dchop1.ch"
            ;
#line 154 "dchop1.ch"
#line 154 "dchop1.ch"
            return 110 ;
#line 154 "dchop1.ch"
#line 155 "dchop1.ch"
            break ;
#line 155 "dchop1.ch"
#line 155 "dchop1.ch"
        case cplus::MUL : 
#line 155 "dchop1.ch"
#line 155 "dchop1.ch"
        _Case72 : 
#line 155 "dchop1.ch"
#line 155 "dchop1.ch"
            ;
#line 155 "dchop1.ch"
#line 155 "dchop1.ch"
            goto _Case73 ;
#line 155 "dchop1.ch"
#line 155 "dchop1.ch"
        case cplus::DIV : 
#line 155 "dchop1.ch"
#line 155 "dchop1.ch"
        _Case73 : 
#line 155 "dchop1.ch"
#line 155 "dchop1.ch"
            ;
#line 155 "dchop1.ch"
#line 155 "dchop1.ch"
            goto _Case74 ;
#line 155 "dchop1.ch"
#line 159 "dchop1.ch"
        case cplus::REM : 
#line 159 "dchop1.ch"
#line 159 "dchop1.ch"
        _Case74 : 
#line 159 "dchop1.ch"
#line 159 "dchop1.ch"
            ;
#line 159 "dchop1.ch"
#line 159 "dchop1.ch"
            return 111 ;
#line 159 "dchop1.ch"
#line 160 "dchop1.ch"
            break ;
#line 160 "dchop1.ch"
#line 160 "dchop1.ch"
        case cplus::DOT_MEMB : 
#line 160 "dchop1.ch"
#line 160 "dchop1.ch"
        _Case75 : 
#line 160 "dchop1.ch"
#line 160 "dchop1.ch"
            ;
#line 160 "dchop1.ch"
#line 160 "dchop1.ch"
            goto _Case76 ;
#line 160 "dchop1.ch"
#line 163 "dchop1.ch"
        case cplus::ARROW_MEMB : 
#line 163 "dchop1.ch"
#line 163 "dchop1.ch"
        _Case76 : 
#line 163 "dchop1.ch"
#line 163 "dchop1.ch"
            ;
#line 163 "dchop1.ch"
#line 163 "dchop1.ch"
            return 112 ;
#line 163 "dchop1.ch"
#line 164 "dchop1.ch"
            break ;
#line 164 "dchop1.ch"
#line 164 "dchop1.ch"
        case cplus::EXP_ARRAY : 
#line 164 "dchop1.ch"
#line 164 "dchop1.ch"
        _Case77 : 
#line 164 "dchop1.ch"
#line 164 "dchop1.ch"
            ;
#line 164 "dchop1.ch"
#line 164 "dchop1.ch"
            goto _Case78 ;
#line 164 "dchop1.ch"
#line 164 "dchop1.ch"
        case cplus::REF : 
#line 164 "dchop1.ch"
#line 164 "dchop1.ch"
        _Case78 : 
#line 164 "dchop1.ch"
#line 164 "dchop1.ch"
            ;
#line 164 "dchop1.ch"
#line 164 "dchop1.ch"
            goto _Case79 ;
#line 164 "dchop1.ch"
#line 168 "dchop1.ch"
        case cplus::ARROW : 
#line 168 "dchop1.ch"
#line 168 "dchop1.ch"
        _Case79 : 
#line 168 "dchop1.ch"
#line 168 "dchop1.ch"
            ;
#line 168 "dchop1.ch"
#line 168 "dchop1.ch"
            return 15 ;
#line 168 "dchop1.ch"
#line 169 "dchop1.ch"
            break ;
#line 169 "dchop1.ch"
#line 171 "dchop1.ch"
        case cplus::EXP : 
#line 171 "dchop1.ch"
#line 171 "dchop1.ch"
        _Case80 : 
#line 171 "dchop1.ch"
#line 171 "dchop1.ch"
            ;
#line 171 "dchop1.ch"
#line 171 "dchop1.ch"
            return 16 ;
#line 171 "dchop1.ch"
#line 172 "dchop1.ch"
            break ;
#line 172 "dchop1.ch"
#line 173 "dchop1.ch"
        default : 
#line 173 "dchop1.ch"
#line 173 "dchop1.ch"
        _Case81 : 
#line 173 "dchop1.ch"
#line 173 "dchop1.ch"
            ;
#line 173 "dchop1.ch"
#line 173 "dchop1.ch"
            return - 1 ;
#line 173 "dchop1.ch"
    }
#line 173 "dchop1.ch"
#line 173 "dchop1.ch"
#line 175 "dchop1.ch"
}
#line 175 "dchop1.ch"

#line 177 "dchop1.ch"
#line 177 "dchop1.ch"
int DecompCplus::IsTop ( PTREE tree, int internal )
#line 177 "dchop1.ch"
{
#line 177 "dchop1.ch"
    register PPTREE _inter ;
#line 177 "dchop1.ch"
#line 177 "dchop1.ch"
#line 179 "dchop1.ch"
    PTREE   treeOld ;
#line 179 "dchop1.ch"
#line 179 "dchop1.ch"
#line 181 "dchop1.ch"
    switch ( NumberTree(tree) ) {
#line 181 "dchop1.ch"
#line 182 "dchop1.ch"
        case cplus::LABEL : 
#line 182 "dchop1.ch"
#line 182 "dchop1.ch"
        _Case82 : 
#line 182 "dchop1.ch"
#line 182 "dchop1.ch"
            ;
#line 182 "dchop1.ch"
#line 182 "dchop1.ch"
            return - 1 ;
#line 182 "dchop1.ch"
#line 182 "dchop1.ch"
            goto _Case83 ;
#line 182 "dchop1.ch"
#line 183 "dchop1.ch"
        case cplus::DECLARATION : 
#line 183 "dchop1.ch"
#line 183 "dchop1.ch"
        _Case83 : 
#line 183 "dchop1.ch"
#line 183 "dchop1.ch"
            ;
#line 183 "dchop1.ch"
#line 183 "dchop1.ch"
            return - 1 ;
#line 183 "dchop1.ch"
#line 183 "dchop1.ch"
            goto _Case84 ;
#line 183 "dchop1.ch"
#line 184 "dchop1.ch"
        case cplus::TYPEDEF : 
#line 184 "dchop1.ch"
#line 184 "dchop1.ch"
        _Case84 : 
#line 184 "dchop1.ch"
#line 184 "dchop1.ch"
            ;
#line 184 "dchop1.ch"
#line 184 "dchop1.ch"
            return - 1 ;
#line 184 "dchop1.ch"
#line 184 "dchop1.ch"
            goto _Case85 ;
#line 184 "dchop1.ch"
#line 185 "dchop1.ch"
        case cplus::IF : 
#line 185 "dchop1.ch"
#line 185 "dchop1.ch"
        _Case85 : 
#line 185 "dchop1.ch"
#line 185 "dchop1.ch"
            ;
#line 185 "dchop1.ch"
#line 185 "dchop1.ch"
            return 1 ;
#line 185 "dchop1.ch"
#line 185 "dchop1.ch"
            goto _Case86 ;
#line 185 "dchop1.ch"
#line 186 "dchop1.ch"
        case cplus::WHILE : 
#line 186 "dchop1.ch"
#line 186 "dchop1.ch"
        _Case86 : 
#line 186 "dchop1.ch"
#line 186 "dchop1.ch"
            ;
#line 186 "dchop1.ch"
#line 186 "dchop1.ch"
            return 2 ;
#line 186 "dchop1.ch"
#line 186 "dchop1.ch"
            goto _Case87 ;
#line 186 "dchop1.ch"
#line 187 "dchop1.ch"
        case cplus::FOR : 
#line 187 "dchop1.ch"
#line 187 "dchop1.ch"
        _Case87 : 
#line 187 "dchop1.ch"
#line 187 "dchop1.ch"
            ;
#line 187 "dchop1.ch"
#line 187 "dchop1.ch"
            return 3 ;
#line 187 "dchop1.ch"
#line 187 "dchop1.ch"
            goto _Case88 ;
#line 187 "dchop1.ch"
#line 188 "dchop1.ch"
        case cplus::DO : 
#line 188 "dchop1.ch"
#line 188 "dchop1.ch"
        _Case88 : 
#line 188 "dchop1.ch"
#line 188 "dchop1.ch"
            ;
#line 188 "dchop1.ch"
#line 188 "dchop1.ch"
            return 4 ;
#line 188 "dchop1.ch"
#line 188 "dchop1.ch"
            goto _Case89 ;
#line 188 "dchop1.ch"
#line 189 "dchop1.ch"
        case cplus::BREAK : 
#line 189 "dchop1.ch"
#line 189 "dchop1.ch"
        _Case89 : 
#line 189 "dchop1.ch"
#line 189 "dchop1.ch"
            ;
#line 189 "dchop1.ch"
#line 189 "dchop1.ch"
            return 5 ;
#line 189 "dchop1.ch"
#line 189 "dchop1.ch"
            goto _Case90 ;
#line 189 "dchop1.ch"
#line 190 "dchop1.ch"
        case cplus::CONTINUE : 
#line 190 "dchop1.ch"
#line 190 "dchop1.ch"
        _Case90 : 
#line 190 "dchop1.ch"
#line 190 "dchop1.ch"
            ;
#line 190 "dchop1.ch"
#line 190 "dchop1.ch"
            return 6 ;
#line 190 "dchop1.ch"
#line 190 "dchop1.ch"
            goto _Case91 ;
#line 190 "dchop1.ch"
#line 192 "dchop1.ch"
        case cplus::COMPOUND : 
#line 192 "dchop1.ch"
#line 192 "dchop1.ch"
        _Case91 : 
#line 192 "dchop1.ch"
#line 192 "dchop1.ch"
            ;
#line 192 "dchop1.ch"
#line 192 "dchop1.ch"
            if ( !internal && IsTop(FatherTree(tree), 1) == - 1 ) 
#line 192 "dchop1.ch"
#line 193 "dchop1.ch"
                return 7 ;
#line 193 "dchop1.ch"
            else 
#line 193 "dchop1.ch"
#line 195 "dchop1.ch"
                return - 1 ;
#line 195 "dchop1.ch"
#line 195 "dchop1.ch"
#line 195 "dchop1.ch"
            goto _Case92 ;
#line 195 "dchop1.ch"
#line 196 "dchop1.ch"
        case cplus::GOTO : 
#line 196 "dchop1.ch"
#line 196 "dchop1.ch"
        _Case92 : 
#line 196 "dchop1.ch"
#line 196 "dchop1.ch"
            ;
#line 196 "dchop1.ch"
#line 196 "dchop1.ch"
            return 8 ;
#line 196 "dchop1.ch"
#line 196 "dchop1.ch"
            goto _Case93 ;
#line 196 "dchop1.ch"
#line 197 "dchop1.ch"
        case cplus::STAT_VOID : 
#line 197 "dchop1.ch"
#line 197 "dchop1.ch"
        _Case93 : 
#line 197 "dchop1.ch"
#line 197 "dchop1.ch"
            ;
#line 197 "dchop1.ch"
#line 197 "dchop1.ch"
            return 9 ;
#line 197 "dchop1.ch"
#line 197 "dchop1.ch"
            goto _Case94 ;
#line 197 "dchop1.ch"
#line 198 "dchop1.ch"
        case cplus::RETURN : 
#line 198 "dchop1.ch"
#line 198 "dchop1.ch"
        _Case94 : 
#line 198 "dchop1.ch"
#line 198 "dchop1.ch"
            ;
#line 198 "dchop1.ch"
#line 198 "dchop1.ch"
            return 11 ;
#line 198 "dchop1.ch"
#line 198 "dchop1.ch"
            goto _Case95 ;
#line 198 "dchop1.ch"
#line 199 "dchop1.ch"
        case cplus::SWITCH : 
#line 199 "dchop1.ch"
#line 199 "dchop1.ch"
        _Case95 : 
#line 199 "dchop1.ch"
#line 199 "dchop1.ch"
            ;
#line 199 "dchop1.ch"
#line 199 "dchop1.ch"
            return 12 ;
#line 199 "dchop1.ch"
#line 199 "dchop1.ch"
            goto _Case96 ;
#line 199 "dchop1.ch"
#line 200 "dchop1.ch"
        case cplus::INCLUDE_DIR : 
#line 200 "dchop1.ch"
#line 200 "dchop1.ch"
        _Case96 : 
#line 200 "dchop1.ch"
#line 200 "dchop1.ch"
            ;
#line 200 "dchop1.ch"
#line 200 "dchop1.ch"
            return 14 ;
#line 200 "dchop1.ch"
#line 200 "dchop1.ch"
            goto _Case97 ;
#line 200 "dchop1.ch"
#line 201 "dchop1.ch"
        case cplus::IF_DIR : 
#line 201 "dchop1.ch"
#line 201 "dchop1.ch"
        _Case97 : 
#line 201 "dchop1.ch"
#line 201 "dchop1.ch"
            ;
#line 201 "dchop1.ch"
#line 201 "dchop1.ch"
            return 15 ;
#line 201 "dchop1.ch"
#line 201 "dchop1.ch"
            goto _Case98 ;
#line 201 "dchop1.ch"
#line 202 "dchop1.ch"
        case cplus::IFDEF_DIR : 
#line 202 "dchop1.ch"
#line 202 "dchop1.ch"
        _Case98 : 
#line 202 "dchop1.ch"
#line 202 "dchop1.ch"
            ;
#line 202 "dchop1.ch"
#line 202 "dchop1.ch"
            return 16 ;
#line 202 "dchop1.ch"
#line 202 "dchop1.ch"
            goto _Case99 ;
#line 202 "dchop1.ch"
#line 203 "dchop1.ch"
        case cplus::IFNDEF_DIR : 
#line 203 "dchop1.ch"
#line 203 "dchop1.ch"
        _Case99 : 
#line 203 "dchop1.ch"
#line 203 "dchop1.ch"
            ;
#line 203 "dchop1.ch"
#line 203 "dchop1.ch"
            return 17 ;
#line 203 "dchop1.ch"
#line 203 "dchop1.ch"
            goto _Case100 ;
#line 203 "dchop1.ch"
#line 204 "dchop1.ch"
        case cplus::NO_PRETTY : 
#line 204 "dchop1.ch"
#line 204 "dchop1.ch"
        _Case100 : 
#line 204 "dchop1.ch"
#line 204 "dchop1.ch"
            ;
#line 204 "dchop1.ch"
#line 204 "dchop1.ch"
            return 17 ;
#line 204 "dchop1.ch"
#line 204 "dchop1.ch"
            goto _Case101 ;
#line 204 "dchop1.ch"
#line 205 "dchop1.ch"
        case cplus::AFF : 
#line 205 "dchop1.ch"
#line 205 "dchop1.ch"
        _Case101 : 
#line 205 "dchop1.ch"
#line 205 "dchop1.ch"
            ;
#line 205 "dchop1.ch"
#line 205 "dchop1.ch"
            ;
#line 205 "dchop1.ch"
#line 205 "dchop1.ch"
            goto _Case102 ;
#line 205 "dchop1.ch"
#line 206 "dchop1.ch"
        case cplus::MUL_AFF : 
#line 206 "dchop1.ch"
#line 206 "dchop1.ch"
        _Case102 : 
#line 206 "dchop1.ch"
#line 206 "dchop1.ch"
            ;
#line 206 "dchop1.ch"
#line 206 "dchop1.ch"
            ;
#line 206 "dchop1.ch"
#line 206 "dchop1.ch"
            goto _Case103 ;
#line 206 "dchop1.ch"
#line 207 "dchop1.ch"
        case cplus::DIV_AFF : 
#line 207 "dchop1.ch"
#line 207 "dchop1.ch"
        _Case103 : 
#line 207 "dchop1.ch"
#line 207 "dchop1.ch"
            ;
#line 207 "dchop1.ch"
#line 207 "dchop1.ch"
            ;
#line 207 "dchop1.ch"
#line 207 "dchop1.ch"
            goto _Case104 ;
#line 207 "dchop1.ch"
#line 208 "dchop1.ch"
        case cplus::REM_AFF : 
#line 208 "dchop1.ch"
#line 208 "dchop1.ch"
        _Case104 : 
#line 208 "dchop1.ch"
#line 208 "dchop1.ch"
            ;
#line 208 "dchop1.ch"
#line 208 "dchop1.ch"
            ;
#line 208 "dchop1.ch"
#line 208 "dchop1.ch"
            goto _Case105 ;
#line 208 "dchop1.ch"
#line 209 "dchop1.ch"
        case cplus::PLU_AFF : 
#line 209 "dchop1.ch"
#line 209 "dchop1.ch"
        _Case105 : 
#line 209 "dchop1.ch"
#line 209 "dchop1.ch"
            ;
#line 209 "dchop1.ch"
#line 209 "dchop1.ch"
            ;
#line 209 "dchop1.ch"
#line 209 "dchop1.ch"
            goto _Case106 ;
#line 209 "dchop1.ch"
#line 210 "dchop1.ch"
        case cplus::MIN_AFF : 
#line 210 "dchop1.ch"
#line 210 "dchop1.ch"
        _Case106 : 
#line 210 "dchop1.ch"
#line 210 "dchop1.ch"
            ;
#line 210 "dchop1.ch"
#line 210 "dchop1.ch"
            ;
#line 210 "dchop1.ch"
#line 210 "dchop1.ch"
            goto _Case107 ;
#line 210 "dchop1.ch"
#line 211 "dchop1.ch"
        case cplus::LSH_AFF : 
#line 211 "dchop1.ch"
#line 211 "dchop1.ch"
        _Case107 : 
#line 211 "dchop1.ch"
#line 211 "dchop1.ch"
            ;
#line 211 "dchop1.ch"
#line 211 "dchop1.ch"
            ;
#line 211 "dchop1.ch"
#line 211 "dchop1.ch"
            goto _Case108 ;
#line 211 "dchop1.ch"
#line 212 "dchop1.ch"
        case cplus::RSH_AFF : 
#line 212 "dchop1.ch"
#line 212 "dchop1.ch"
        _Case108 : 
#line 212 "dchop1.ch"
#line 212 "dchop1.ch"
            ;
#line 212 "dchop1.ch"
#line 212 "dchop1.ch"
            ;
#line 212 "dchop1.ch"
#line 212 "dchop1.ch"
            goto _Case109 ;
#line 212 "dchop1.ch"
#line 213 "dchop1.ch"
        case cplus::AND_AFF : 
#line 213 "dchop1.ch"
#line 213 "dchop1.ch"
        _Case109 : 
#line 213 "dchop1.ch"
#line 213 "dchop1.ch"
            ;
#line 213 "dchop1.ch"
#line 213 "dchop1.ch"
            ;
#line 213 "dchop1.ch"
#line 213 "dchop1.ch"
            goto _Case110 ;
#line 213 "dchop1.ch"
#line 214 "dchop1.ch"
        case cplus::OR_AFF : 
#line 214 "dchop1.ch"
#line 214 "dchop1.ch"
        _Case110 : 
#line 214 "dchop1.ch"
#line 214 "dchop1.ch"
            ;
#line 214 "dchop1.ch"
#line 214 "dchop1.ch"
            ;
#line 214 "dchop1.ch"
#line 214 "dchop1.ch"
            goto _Case111 ;
#line 214 "dchop1.ch"
#line 215 "dchop1.ch"
        case cplus::XOR_AFF : 
#line 215 "dchop1.ch"
#line 215 "dchop1.ch"
        _Case111 : 
#line 215 "dchop1.ch"
#line 215 "dchop1.ch"
            ;
#line 215 "dchop1.ch"
#line 215 "dchop1.ch"
            ;
#line 215 "dchop1.ch"
#line 215 "dchop1.ch"
            goto _Case112 ;
#line 215 "dchop1.ch"
#line 215 "dchop1.ch"
        case cplus::COND_AFF : 
#line 215 "dchop1.ch"
#line 215 "dchop1.ch"
        _Case112 : 
#line 215 "dchop1.ch"
#line 215 "dchop1.ch"
            ;
#line 215 "dchop1.ch"
#line 215 "dchop1.ch"
            goto _Case113 ;
#line 215 "dchop1.ch"
#line 218 "dchop1.ch"
        case cplus::EXP_LIST : 
#line 218 "dchop1.ch"
#line 218 "dchop1.ch"
        _Case113 : 
#line 218 "dchop1.ch"
#line 218 "dchop1.ch"
            ;
#line 218 "dchop1.ch"
#line 218 "dchop1.ch"
            (treeOld=tree);
#line 218 "dchop1.ch"
#line 218 "dchop1.ch"
#line 219 "dchop1.ch"
            (tree=FatherTree(tree));
#line 219 "dchop1.ch"
#line 219 "dchop1.ch"
#line 220 "dchop1.ch"
            while ( tree ) {
#line 220 "dchop1.ch"
#line 221 "dchop1.ch"
                                switch ( NumberTree(tree) ) {
#line 221 "dchop1.ch"
#line 222 "dchop1.ch"
                                    case cplus::LABEL : 
#line 222 "dchop1.ch"
#line 222 "dchop1.ch"
                                    _Case120 : 
#line 222 "dchop1.ch"
#line 222 "dchop1.ch"
                                        ;
#line 222 "dchop1.ch"
#line 222 "dchop1.ch"
                                        return - 1 ;
#line 222 "dchop1.ch"
#line 222 "dchop1.ch"
                                        goto _Case121 ;
#line 222 "dchop1.ch"
#line 223 "dchop1.ch"
                                    case cplus::DECLARATION : 
#line 223 "dchop1.ch"
#line 223 "dchop1.ch"
                                    _Case121 : 
#line 223 "dchop1.ch"
#line 223 "dchop1.ch"
                                        ;
#line 223 "dchop1.ch"
#line 223 "dchop1.ch"
                                        return 101 ;
#line 223 "dchop1.ch"
#line 223 "dchop1.ch"
                                        goto _Case122 ;
#line 223 "dchop1.ch"
#line 224 "dchop1.ch"
                                    case cplus::TYPEDEF : 
#line 224 "dchop1.ch"
#line 224 "dchop1.ch"
                                    _Case122 : 
#line 224 "dchop1.ch"
#line 224 "dchop1.ch"
                                        ;
#line 224 "dchop1.ch"
#line 224 "dchop1.ch"
                                        return 102 ;
#line 224 "dchop1.ch"
#line 224 "dchop1.ch"
                                        goto _Case123 ;
#line 224 "dchop1.ch"
#line 224 "dchop1.ch"
                                    case cplus::IF : 
#line 224 "dchop1.ch"
#line 224 "dchop1.ch"
                                    _Case123 : 
#line 224 "dchop1.ch"
#line 224 "dchop1.ch"
                                        ;
#line 224 "dchop1.ch"
#line 224 "dchop1.ch"
                                        goto _Case124 ;
#line 224 "dchop1.ch"
#line 224 "dchop1.ch"
                                    case cplus::WHILE : 
#line 224 "dchop1.ch"
#line 224 "dchop1.ch"
                                    _Case124 : 
#line 224 "dchop1.ch"
#line 224 "dchop1.ch"
                                        ;
#line 224 "dchop1.ch"
#line 224 "dchop1.ch"
                                        goto _Case125 ;
#line 224 "dchop1.ch"
#line 228 "dchop1.ch"
                                    case cplus::FOR : 
#line 228 "dchop1.ch"
#line 228 "dchop1.ch"
                                    _Case125 : 
#line 228 "dchop1.ch"
#line 228 "dchop1.ch"
                                        ;
#line 228 "dchop1.ch"
#line 228 "dchop1.ch"
                                        if ( ranktree(treeOld) != 1 ) 
#line 228 "dchop1.ch"
#line 229 "dchop1.ch"
                                            return 1 ;
#line 229 "dchop1.ch"
                                        else 
#line 229 "dchop1.ch"
#line 231 "dchop1.ch"
                                            return - 1 ;
#line 231 "dchop1.ch"
#line 231 "dchop1.ch"
#line 231 "dchop1.ch"
                                        goto _Case126 ;
#line 231 "dchop1.ch"
#line 233 "dchop1.ch"
                                    case cplus::DO : 
#line 233 "dchop1.ch"
#line 233 "dchop1.ch"
                                    _Case126 : 
#line 233 "dchop1.ch"
#line 233 "dchop1.ch"
                                        ;
#line 233 "dchop1.ch"
#line 233 "dchop1.ch"
                                        if ( ranktree(treeOld) != 2 ) 
#line 233 "dchop1.ch"
#line 234 "dchop1.ch"
                                            return 4 ;
#line 234 "dchop1.ch"
                                        else 
#line 234 "dchop1.ch"
#line 236 "dchop1.ch"
                                            return - 1 ;
#line 236 "dchop1.ch"
#line 236 "dchop1.ch"
#line 236 "dchop1.ch"
                                        goto _Case127 ;
#line 236 "dchop1.ch"
#line 237 "dchop1.ch"
                                    case cplus::BREAK : 
#line 237 "dchop1.ch"
#line 237 "dchop1.ch"
                                    _Case127 : 
#line 237 "dchop1.ch"
#line 237 "dchop1.ch"
                                        ;
#line 237 "dchop1.ch"
#line 237 "dchop1.ch"
                                        return 5 ;
#line 237 "dchop1.ch"
#line 237 "dchop1.ch"
                                        goto _Case128 ;
#line 237 "dchop1.ch"
#line 238 "dchop1.ch"
                                    case cplus::CONTINUE : 
#line 238 "dchop1.ch"
#line 238 "dchop1.ch"
                                    _Case128 : 
#line 238 "dchop1.ch"
#line 238 "dchop1.ch"
                                        ;
#line 238 "dchop1.ch"
#line 238 "dchop1.ch"
                                        return 6 ;
#line 238 "dchop1.ch"
#line 238 "dchop1.ch"
                                        goto _Case129 ;
#line 238 "dchop1.ch"
#line 239 "dchop1.ch"
                                    case cplus::COMPOUND : 
#line 239 "dchop1.ch"
#line 239 "dchop1.ch"
                                    _Case129 : 
#line 239 "dchop1.ch"
#line 239 "dchop1.ch"
                                        ;
#line 239 "dchop1.ch"
#line 239 "dchop1.ch"
                                        return 7 ;
#line 239 "dchop1.ch"
#line 239 "dchop1.ch"
                                        goto _Case130 ;
#line 239 "dchop1.ch"
#line 240 "dchop1.ch"
                                    case cplus::GOTO : 
#line 240 "dchop1.ch"
#line 240 "dchop1.ch"
                                    _Case130 : 
#line 240 "dchop1.ch"
#line 240 "dchop1.ch"
                                        ;
#line 240 "dchop1.ch"
#line 240 "dchop1.ch"
                                        return - 1 ;
#line 240 "dchop1.ch"
#line 240 "dchop1.ch"
                                        goto _Case131 ;
#line 240 "dchop1.ch"
#line 241 "dchop1.ch"
                                    case cplus::STAT_VOID : 
#line 241 "dchop1.ch"
#line 241 "dchop1.ch"
                                    _Case131 : 
#line 241 "dchop1.ch"
#line 241 "dchop1.ch"
                                        ;
#line 241 "dchop1.ch"
#line 241 "dchop1.ch"
                                        return 9 ;
#line 241 "dchop1.ch"
#line 241 "dchop1.ch"
                                        goto _Case132 ;
#line 241 "dchop1.ch"
#line 242 "dchop1.ch"
                                    case cplus::RETURN : 
#line 242 "dchop1.ch"
#line 242 "dchop1.ch"
                                    _Case132 : 
#line 242 "dchop1.ch"
#line 242 "dchop1.ch"
                                        ;
#line 242 "dchop1.ch"
#line 242 "dchop1.ch"
                                        return - 1 ;
#line 242 "dchop1.ch"
#line 242 "dchop1.ch"
                                        goto _Case133 ;
#line 242 "dchop1.ch"
#line 243 "dchop1.ch"
                                    case cplus::SWITCH : 
#line 243 "dchop1.ch"
#line 243 "dchop1.ch"
                                    _Case133 : 
#line 243 "dchop1.ch"
#line 243 "dchop1.ch"
                                        ;
#line 243 "dchop1.ch"
#line 243 "dchop1.ch"
                                        return - 1 ;
#line 243 "dchop1.ch"
#line 243 "dchop1.ch"
                                        goto _Case134 ;
#line 243 "dchop1.ch"
#line 244 "dchop1.ch"
                                    case cplus::INCLUDE_DIR : 
#line 244 "dchop1.ch"
#line 244 "dchop1.ch"
                                    _Case134 : 
#line 244 "dchop1.ch"
#line 244 "dchop1.ch"
                                        ;
#line 244 "dchop1.ch"
#line 244 "dchop1.ch"
                                        return 14 ;
#line 244 "dchop1.ch"
#line 244 "dchop1.ch"
                                        goto _Case135 ;
#line 244 "dchop1.ch"
#line 246 "dchop1.ch"
                                    case cplus::IF_DIR : 
#line 246 "dchop1.ch"
#line 246 "dchop1.ch"
                                    _Case135 : 
#line 246 "dchop1.ch"
#line 246 "dchop1.ch"
                                        ;
#line 246 "dchop1.ch"
#line 246 "dchop1.ch"
                                        if ( ranktree(treeOld) != 1 ) 
#line 246 "dchop1.ch"
#line 247 "dchop1.ch"
                                            return 15 ;
#line 247 "dchop1.ch"
                                        else 
#line 247 "dchop1.ch"
#line 249 "dchop1.ch"
                                            return - 1 ;
#line 249 "dchop1.ch"
#line 249 "dchop1.ch"
#line 249 "dchop1.ch"
                                        goto _Case136 ;
#line 249 "dchop1.ch"
#line 251 "dchop1.ch"
                                    case cplus::IFDEF_DIR : 
#line 251 "dchop1.ch"
#line 251 "dchop1.ch"
                                    _Case136 : 
#line 251 "dchop1.ch"
#line 251 "dchop1.ch"
                                        ;
#line 251 "dchop1.ch"
#line 251 "dchop1.ch"
                                        if ( ranktree(treeOld) != 1 ) 
#line 251 "dchop1.ch"
#line 252 "dchop1.ch"
                                            return 16 ;
#line 252 "dchop1.ch"
                                        else 
#line 252 "dchop1.ch"
#line 254 "dchop1.ch"
                                            return - 1 ;
#line 254 "dchop1.ch"
#line 254 "dchop1.ch"
#line 254 "dchop1.ch"
                                        goto _Case137 ;
#line 254 "dchop1.ch"
#line 256 "dchop1.ch"
                                    case cplus::IFNDEF_DIR : 
#line 256 "dchop1.ch"
#line 256 "dchop1.ch"
                                    _Case137 : 
#line 256 "dchop1.ch"
#line 256 "dchop1.ch"
                                        ;
#line 256 "dchop1.ch"
#line 256 "dchop1.ch"
                                        if ( ranktree(treeOld) != 1 ) 
#line 256 "dchop1.ch"
#line 257 "dchop1.ch"
                                            return 17 ;
#line 257 "dchop1.ch"
                                        else 
#line 257 "dchop1.ch"
#line 259 "dchop1.ch"
                                            return - 1 ;
#line 259 "dchop1.ch"
#line 259 "dchop1.ch"
#line 259 "dchop1.ch"
                                        goto _Case138 ;
#line 259 "dchop1.ch"
#line 260 "dchop1.ch"
                                    case cplus::NO_PRETTY : 
#line 260 "dchop1.ch"
#line 260 "dchop1.ch"
                                    _Case138 : 
#line 260 "dchop1.ch"
#line 260 "dchop1.ch"
                                        ;
#line 260 "dchop1.ch"
#line 260 "dchop1.ch"
                                        return 17 ;
#line 260 "dchop1.ch"
#line 260 "dchop1.ch"
                                        goto _Case139 ;
#line 260 "dchop1.ch"
#line 261 "dchop1.ch"
                                    case cplus::AFF : 
#line 261 "dchop1.ch"
#line 261 "dchop1.ch"
                                    _Case139 : 
#line 261 "dchop1.ch"
#line 261 "dchop1.ch"
                                        ;
#line 261 "dchop1.ch"
#line 261 "dchop1.ch"
                                        ;
#line 261 "dchop1.ch"
#line 261 "dchop1.ch"
                                        goto _Case140 ;
#line 261 "dchop1.ch"
#line 262 "dchop1.ch"
                                    case cplus::MUL_AFF : 
#line 262 "dchop1.ch"
#line 262 "dchop1.ch"
                                    _Case140 : 
#line 262 "dchop1.ch"
#line 262 "dchop1.ch"
                                        ;
#line 262 "dchop1.ch"
#line 262 "dchop1.ch"
                                        ;
#line 262 "dchop1.ch"
#line 262 "dchop1.ch"
                                        goto _Case141 ;
#line 262 "dchop1.ch"
#line 263 "dchop1.ch"
                                    case cplus::DIV_AFF : 
#line 263 "dchop1.ch"
#line 263 "dchop1.ch"
                                    _Case141 : 
#line 263 "dchop1.ch"
#line 263 "dchop1.ch"
                                        ;
#line 263 "dchop1.ch"
#line 263 "dchop1.ch"
                                        ;
#line 263 "dchop1.ch"
#line 263 "dchop1.ch"
                                        goto _Case142 ;
#line 263 "dchop1.ch"
#line 264 "dchop1.ch"
                                    case cplus::REM_AFF : 
#line 264 "dchop1.ch"
#line 264 "dchop1.ch"
                                    _Case142 : 
#line 264 "dchop1.ch"
#line 264 "dchop1.ch"
                                        ;
#line 264 "dchop1.ch"
#line 264 "dchop1.ch"
                                        ;
#line 264 "dchop1.ch"
#line 264 "dchop1.ch"
                                        goto _Case143 ;
#line 264 "dchop1.ch"
#line 265 "dchop1.ch"
                                    case cplus::PLU_AFF : 
#line 265 "dchop1.ch"
#line 265 "dchop1.ch"
                                    _Case143 : 
#line 265 "dchop1.ch"
#line 265 "dchop1.ch"
                                        ;
#line 265 "dchop1.ch"
#line 265 "dchop1.ch"
                                        ;
#line 265 "dchop1.ch"
#line 265 "dchop1.ch"
                                        goto _Case144 ;
#line 265 "dchop1.ch"
#line 266 "dchop1.ch"
                                    case cplus::MIN_AFF : 
#line 266 "dchop1.ch"
#line 266 "dchop1.ch"
                                    _Case144 : 
#line 266 "dchop1.ch"
#line 266 "dchop1.ch"
                                        ;
#line 266 "dchop1.ch"
#line 266 "dchop1.ch"
                                        ;
#line 266 "dchop1.ch"
#line 266 "dchop1.ch"
                                        goto _Case145 ;
#line 266 "dchop1.ch"
#line 267 "dchop1.ch"
                                    case cplus::LSH_AFF : 
#line 267 "dchop1.ch"
#line 267 "dchop1.ch"
                                    _Case145 : 
#line 267 "dchop1.ch"
#line 267 "dchop1.ch"
                                        ;
#line 267 "dchop1.ch"
#line 267 "dchop1.ch"
                                        ;
#line 267 "dchop1.ch"
#line 267 "dchop1.ch"
                                        goto _Case146 ;
#line 267 "dchop1.ch"
#line 268 "dchop1.ch"
                                    case cplus::RSH_AFF : 
#line 268 "dchop1.ch"
#line 268 "dchop1.ch"
                                    _Case146 : 
#line 268 "dchop1.ch"
#line 268 "dchop1.ch"
                                        ;
#line 268 "dchop1.ch"
#line 268 "dchop1.ch"
                                        ;
#line 268 "dchop1.ch"
#line 268 "dchop1.ch"
                                        goto _Case147 ;
#line 268 "dchop1.ch"
#line 269 "dchop1.ch"
                                    case cplus::AND_AFF : 
#line 269 "dchop1.ch"
#line 269 "dchop1.ch"
                                    _Case147 : 
#line 269 "dchop1.ch"
#line 269 "dchop1.ch"
                                        ;
#line 269 "dchop1.ch"
#line 269 "dchop1.ch"
                                        ;
#line 269 "dchop1.ch"
#line 269 "dchop1.ch"
                                        goto _Case148 ;
#line 269 "dchop1.ch"
#line 270 "dchop1.ch"
                                    case cplus::OR_AFF : 
#line 270 "dchop1.ch"
#line 270 "dchop1.ch"
                                    _Case148 : 
#line 270 "dchop1.ch"
#line 270 "dchop1.ch"
                                        ;
#line 270 "dchop1.ch"
#line 270 "dchop1.ch"
                                        ;
#line 270 "dchop1.ch"
#line 270 "dchop1.ch"
                                        goto _Case149 ;
#line 270 "dchop1.ch"
#line 271 "dchop1.ch"
                                    case cplus::XOR_AFF : 
#line 271 "dchop1.ch"
#line 271 "dchop1.ch"
                                    _Case149 : 
#line 271 "dchop1.ch"
#line 271 "dchop1.ch"
                                        ;
#line 271 "dchop1.ch"
#line 271 "dchop1.ch"
                                        ;
#line 271 "dchop1.ch"
#line 271 "dchop1.ch"
                                        goto _Case150 ;
#line 271 "dchop1.ch"
#line 271 "dchop1.ch"
                                    case cplus::COND_AFF : 
#line 271 "dchop1.ch"
#line 271 "dchop1.ch"
                                    _Case150 : 
#line 271 "dchop1.ch"
#line 271 "dchop1.ch"
                                        ;
#line 271 "dchop1.ch"
#line 271 "dchop1.ch"
                                        goto _Case151 ;
#line 271 "dchop1.ch"
#line 273 "dchop1.ch"
                                    case cplus::EXP_LIST : 
#line 273 "dchop1.ch"
#line 273 "dchop1.ch"
                                    _Case151 : 
#line 273 "dchop1.ch"
#line 273 "dchop1.ch"
                                        ;
#line 273 "dchop1.ch"
#line 273 "dchop1.ch"
                                        return - 1 ;
#line 273 "dchop1.ch"
#line 273 "dchop1.ch"
                                        goto _Case152 ;
#line 273 "dchop1.ch"
#line 275 "dchop1.ch"
                                    default : 
#line 275 "dchop1.ch"
#line 275 "dchop1.ch"
                                    _Case152 : 
#line 275 "dchop1.ch"
#line 275 "dchop1.ch"
                                        ;
#line 275 "dchop1.ch"
#line 275 "dchop1.ch"
                                        (treeOld=tree);
#line 275 "dchop1.ch"
#line 275 "dchop1.ch"
#line 276 "dchop1.ch"
                                        (tree=FatherTree(tree));
#line 276 "dchop1.ch"
#line 276 "dchop1.ch"
                                }
#line 276 "dchop1.ch"
#line 276 "dchop1.ch"
#line 276 "dchop1.ch"
                            }
#line 276 "dchop1.ch"
#line 279 "dchop1.ch"
            if ( internal || IsTop(FatherTree(tree), 1) == - 1 ) 
#line 279 "dchop1.ch"
#line 280 "dchop1.ch"
                return 19 ;
#line 280 "dchop1.ch"
            else 
#line 280 "dchop1.ch"
#line 282 "dchop1.ch"
                return - 1 ;
#line 282 "dchop1.ch"
#line 282 "dchop1.ch"
#line 282 "dchop1.ch"
            goto _Case114 ;
#line 282 "dchop1.ch"
#line 282 "dchop1.ch"
        case LIST : 
#line 282 "dchop1.ch"
#line 282 "dchop1.ch"
        _Case114 : 
#line 282 "dchop1.ch"
#line 282 "dchop1.ch"
            ;
#line 282 "dchop1.ch"
#line 282 "dchop1.ch"
            goto _Case115 ;
#line 282 "dchop1.ch"
#line 284 "dchop1.ch"
        case cplus::ATTRIBUTS : 
#line 284 "dchop1.ch"
#line 284 "dchop1.ch"
        _Case115 : 
#line 284 "dchop1.ch"
#line 284 "dchop1.ch"
            ;
#line 284 "dchop1.ch"
#line 284 "dchop1.ch"
            return - 1 ;
#line 284 "dchop1.ch"
#line 284 "dchop1.ch"
            goto _Case116 ;
#line 284 "dchop1.ch"
#line 285 "dchop1.ch"
        case cplus::EXCEPTION_ANSI : 
#line 285 "dchop1.ch"
#line 285 "dchop1.ch"
        _Case116 : 
#line 285 "dchop1.ch"
#line 285 "dchop1.ch"
            ;
#line 285 "dchop1.ch"
#line 285 "dchop1.ch"
            return 31 ;
#line 285 "dchop1.ch"
#line 285 "dchop1.ch"
            goto _Case117 ;
#line 285 "dchop1.ch"
#line 286 "dchop1.ch"
        case cplus::CATCH_ANSI : 
#line 286 "dchop1.ch"
#line 286 "dchop1.ch"
        _Case117 : 
#line 286 "dchop1.ch"
#line 286 "dchop1.ch"
            ;
#line 286 "dchop1.ch"
#line 286 "dchop1.ch"
            return 32 ;
#line 286 "dchop1.ch"
#line 286 "dchop1.ch"
            goto _Case118 ;
#line 286 "dchop1.ch"
#line 287 "dchop1.ch"
        case cplus::THROW_ANSI : 
#line 287 "dchop1.ch"
#line 287 "dchop1.ch"
        _Case118 : 
#line 287 "dchop1.ch"
#line 287 "dchop1.ch"
            ;
#line 287 "dchop1.ch"
#line 287 "dchop1.ch"
            return 33 ;
#line 287 "dchop1.ch"
#line 287 "dchop1.ch"
            goto _Case119 ;
#line 287 "dchop1.ch"
#line 288 "dchop1.ch"
        default : 
#line 288 "dchop1.ch"
#line 288 "dchop1.ch"
        _Case119 : 
#line 288 "dchop1.ch"
#line 288 "dchop1.ch"
            ;
#line 288 "dchop1.ch"
#line 288 "dchop1.ch"
            return - 1 ;
#line 288 "dchop1.ch"
    }
#line 288 "dchop1.ch"
#line 288 "dchop1.ch"
#line 290 "dchop1.ch"
}
#line 290 "dchop1.ch"

#line 294 "dchop1.ch"
#line 294 "dchop1.ch"
void DecompCplus::Treat ( PTREE tree )
#line 294 "dchop1.ch"
{
#line 294 "dchop1.ch"
    register PPTREE _inter ;
#line 294 "dchop1.ch"
#line 294 "dchop1.ch"
#line 297 "dchop1.ch"
    int oldNbTab = nbTab ;
#line 297 "dchop1.ch"
#line 298 "dchop1.ch"
    int x, y, dx, dy ;
#line 298 "dchop1.ch"
#line 299 "dchop1.ch"
    int x0, y0 ;
#line 299 "dchop1.ch"
#line 302 "dchop1.ch"
    DecompVirt(tree);
#line 302 "dchop1.ch"
#line 303 "dchop1.ch"
    CompleteCoordinates(tree);
#line 303 "dchop1.ch"
#line 304 "dchop1.ch"
    if ( ((_inter = (PPTREE)tree,1) && 
#line 304 "dchop1.ch"
            (NumberTree(_inter) == cplus::ATTRIBUTS) &&
#line 304 "dchop1.ch"
            1) ) 
#line 304 "dchop1.ch"
#line 305 "dchop1.ch"
        FreeCoord(tree);
#line 305 "dchop1.ch"
#line 308 "dchop1.ch"
    {
#line 308 "dchop1.ch"
#line 309 "dchop1.ch"
        ItPtree it (tree) ;
#line 309 "dchop1.ch"
#line 310 "dchop1.ch"
        PPTREE  _for_elem ;
#line 310 "dchop1.ch"
#line 311 "dchop1.ch"
        while ( for_elem = it++ ) {
#line 311 "dchop1.ch"
#line 312 "dchop1.ch"
                                        switch ( NumberTree(for_elem) ) {
#line 312 "dchop1.ch"
#line 314 "dchop1.ch"
                                            case cplus::DECLARATION : 
#line 314 "dchop1.ch"
#line 314 "dchop1.ch"
                                            _Case153 : 
#line 314 "dchop1.ch"
#line 314 "dchop1.ch"
                                                ;
#line 314 "dchop1.ch"
#line 314 "dchop1.ch"
                                                TraiterAlignTypeDecl(for_elem);
#line 314 "dchop1.ch"
#line 315 "dchop1.ch"
                                                break ;
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                            case cplus::AFF : 
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                            _Case154 : 
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                                ;
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                                goto _Case155 ;
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                            case cplus::MUL_AFF : 
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                            _Case155 : 
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                                ;
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                                goto _Case156 ;
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                            case cplus::DIV_AFF : 
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                            _Case156 : 
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                                ;
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                                goto _Case157 ;
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                            case cplus::REM_AFF : 
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                            _Case157 : 
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                                ;
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                                goto _Case158 ;
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                            case cplus::MIN_AFF : 
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                            _Case158 : 
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                                ;
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                                goto _Case159 ;
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                            case cplus::PLU_AFF : 
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                            _Case159 : 
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                                ;
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                                goto _Case160 ;
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                            case cplus::LSH_AFF : 
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                            _Case160 : 
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                                ;
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                                goto _Case161 ;
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                            case cplus::RSH_AFF : 
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                            _Case161 : 
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                                ;
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                                goto _Case162 ;
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                            case cplus::AND_AFF : 
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                            _Case162 : 
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                                ;
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                                goto _Case163 ;
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                            case cplus::OR_AFF : 
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                            _Case163 : 
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                                ;
#line 315 "dchop1.ch"
#line 315 "dchop1.ch"
                                                goto _Case164 ;
#line 315 "dchop1.ch"
#line 327 "dchop1.ch"
                                            case cplus::XOR_AFF : 
#line 327 "dchop1.ch"
#line 327 "dchop1.ch"
                                            _Case164 : 
#line 327 "dchop1.ch"
#line 327 "dchop1.ch"
                                                ;
#line 327 "dchop1.ch"
#line 327 "dchop1.ch"
                                                TraiterAlignAff(for_elem);
#line 327 "dchop1.ch"
#line 328 "dchop1.ch"
                                                it.SkipSon(1);
#line 328 "dchop1.ch"
#line 329 "dchop1.ch"
                                                break ;
#line 329 "dchop1.ch"
                                        }
#line 329 "dchop1.ch"
#line 329 "dchop1.ch"
#line 329 "dchop1.ch"
                                    }
#line 329 "dchop1.ch"
#line 329 "dchop1.ch"
    }
#line 329 "dchop1.ch"
#line 335 "dchop1.ch"
    TraiterSequence(tree);
#line 335 "dchop1.ch"
#line 338 "dchop1.ch"
    nbTab = 0 ;
#line 338 "dchop1.ch"
#line 339 "dchop1.ch"
    if ( FatherTree(tree) ) {
#line 339 "dchop1.ch"
#line 340 "dchop1.ch"
                                GetCoord(tree, &x, &y, &dx, &dy);
#line 340 "dchop1.ch"
#line 341 "dchop1.ch"
                                TreatGeometry(tree, - x + 3);
#line 341 "dchop1.ch"
#line 341 "dchop1.ch"
                             } else 
#line 341 "dchop1.ch"
#line 343 "dchop1.ch"
        TreatGeometry(tree, 0);
#line 343 "dchop1.ch"
#line 343 "dchop1.ch"
#line 346 "dchop1.ch"
    nbTab = oldNbTab ;
#line 346 "dchop1.ch"
#line 348 "dchop1.ch"
    {
#line 348 "dchop1.ch"
#line 348 "dchop1.ch"
        PTREE   _Baum0 ;
#line 348 "dchop1.ch"
#line 348 "dchop1.ch"
#line 348 "dchop1.ch"
        {
#line 348 "dchop1.ch"
            PPTREE _ptTree0= (PPTREE) 0,_ptRes0= (PPTREE) 0;
#line 348 "dchop1.ch"
            _ptRes0 = MakeTree(cplus::DECLARATION, 0);
#line 348 "dchop1.ch"
            _Baum0 = _ptRes0;
#line 348 "dchop1.ch"
        }
#line 348 "dchop1.ch"
#line 348 "dchop1.ch"
#line 348 "dchop1.ch"
        ItPtree it(tree, _Baum0);
#line 348 "dchop1.ch"
#line 349 "dchop1.ch"
        PPTREE  _for_elem ;
#line 349 "dchop1.ch"
#line 350 "dchop1.ch"
        while ( for_elem = it++ ) {
#line 350 "dchop1.ch"
#line 351 "dchop1.ch"
                                        TraiterListDeclaration(for_elem);
#line 351 "dchop1.ch"
#line 351 "dchop1.ch"
                                    }
#line 351 "dchop1.ch"
#line 353 "dchop1.ch"
    }
#line 353 "dchop1.ch"
#line 354 "dchop1.ch"
}
#line 354 "dchop1.ch"

#line 359 "dchop1.ch"
#line 359 "dchop1.ch"
int DecompCplus::TreatGeometrySpecific ( PTREE tree, int x0, int x )
#line 359 "dchop1.ch"
{
#line 359 "dchop1.ch"
    register PPTREE _inter ;
#line 359 "dchop1.ch"
#line 359 "dchop1.ch"
#line 362 "dchop1.ch"
    PTREE   tree1, tree2 ;
#line 362 "dchop1.ch"
#line 362 "dchop1.ch"
#line 365 "dchop1.ch"
    switch ( NumberTree(tree) ) {
#line 365 "dchop1.ch"
#line 366 "dchop1.ch"
        case cplus::FUNC : 
#line 366 "dchop1.ch"
#line 366 "dchop1.ch"
            (tree1=SonTree(tree, 4));
#line 366 "dchop1.ch"
#line 366 "dchop1.ch"
#line 366 "dchop1.ch"
            (tree2=SonTree(tree, 7));
#line 366 "dchop1.ch"
#line 366 "dchop1.ch"
#line 366 "dchop1.ch"
        _Case165 : 
#line 366 "dchop1.ch"
#line 366 "dchop1.ch"
            ;
#line 366 "dchop1.ch"
#line 370 "dchop1.ch"
            if ( tree1 ) 
#line 370 "dchop1.ch"
#line 371 "dchop1.ch"
                TraiterExpList(tree1, x0 + x, 2);
#line 371 "dchop1.ch"
#line 374 "dchop1.ch"
            if ( tree2 ) 
#line 374 "dchop1.ch"
#line 375 "dchop1.ch"
                TraiterExpList(tree2, x0 + x);
#line 375 "dchop1.ch"
#line 376 "dchop1.ch"
            break ;
#line 376 "dchop1.ch"
#line 377 "dchop1.ch"
        case cplus::EXP_ARRAY : 
#line 377 "dchop1.ch"
#line 377 "dchop1.ch"
            (tree2=SonTree(tree, 2));
#line 377 "dchop1.ch"
#line 377 "dchop1.ch"
#line 377 "dchop1.ch"
        _Case166 : 
#line 377 "dchop1.ch"
#line 377 "dchop1.ch"
            ;
#line 377 "dchop1.ch"
#line 377 "dchop1.ch"
            goto _Case167 ;
#line 377 "dchop1.ch"
#line 378 "dchop1.ch"
        case cplus::EXP_LIST : 
#line 378 "dchop1.ch"
#line 378 "dchop1.ch"
            (tree2=SonTree(tree, 2));
#line 378 "dchop1.ch"
#line 378 "dchop1.ch"
#line 378 "dchop1.ch"
        _Case167 : 
#line 378 "dchop1.ch"
#line 378 "dchop1.ch"
            ;
#line 378 "dchop1.ch"
#line 379 "dchop1.ch"
            if ( ((_inter = (PPTREE)tree2,1) && 
#line 379 "dchop1.ch"
                    (NumberTree(_inter) == cplus::EXP_SEQ) &&
#line 379 "dchop1.ch"
                    1) ) 
#line 379 "dchop1.ch"
#line 380 "dchop1.ch"
                TraiterExpListParam(tree2, x0 + x);
#line 380 "dchop1.ch"
            else 
#line 380 "dchop1.ch"
#line 382 "dchop1.ch"
                TraiterMonoParam(tree2, x0 + x);
#line 382 "dchop1.ch"
#line 382 "dchop1.ch"
#line 383 "dchop1.ch"
            break ;
#line 383 "dchop1.ch"
#line 384 "dchop1.ch"
        case cplus::ASM : 
#line 384 "dchop1.ch"
#line 384 "dchop1.ch"
            (tree2=SonTree(tree, 1));
#line 384 "dchop1.ch"
#line 384 "dchop1.ch"
#line 384 "dchop1.ch"
        _Case168 : 
#line 384 "dchop1.ch"
#line 384 "dchop1.ch"
            ;
#line 384 "dchop1.ch"
#line 385 "dchop1.ch"
            TraiterMonoParam(tree2, x0 + x);
#line 385 "dchop1.ch"
#line 386 "dchop1.ch"
            break ;
#line 386 "dchop1.ch"
#line 387 "dchop1.ch"
        case cplus::TYP_LIST : 
#line 387 "dchop1.ch"
#line 387 "dchop1.ch"
            (tree2=SonTree(tree, 2));
#line 387 "dchop1.ch"
#line 387 "dchop1.ch"
#line 387 "dchop1.ch"
        _Case169 : 
#line 387 "dchop1.ch"
#line 387 "dchop1.ch"
            ;
#line 387 "dchop1.ch"
#line 387 "dchop1.ch"
            goto _Case170 ;
#line 387 "dchop1.ch"
#line 388 "dchop1.ch"
        case cplus::PARAM_TYPE : 
#line 388 "dchop1.ch"
#line 388 "dchop1.ch"
            (tree2=SonTree(tree, 2));
#line 388 "dchop1.ch"
#line 388 "dchop1.ch"
#line 388 "dchop1.ch"
        _Case170 : 
#line 388 "dchop1.ch"
#line 388 "dchop1.ch"
            ;
#line 388 "dchop1.ch"
#line 389 "dchop1.ch"
            TraiterExpListParam(tree2, x0 + x);
#line 389 "dchop1.ch"
#line 390 "dchop1.ch"
            break ;
#line 390 "dchop1.ch"
#line 391 "dchop1.ch"
        case cplus::DECLARATION : 
#line 391 "dchop1.ch"
#line 391 "dchop1.ch"
            (tree2=SonTree(tree, 3));
#line 391 "dchop1.ch"
#line 391 "dchop1.ch"
#line 391 "dchop1.ch"
        _Case171 : 
#line 391 "dchop1.ch"
#line 391 "dchop1.ch"
            ;
#line 391 "dchop1.ch"
#line 391 "dchop1.ch"
            goto _Case172 ;
#line 391 "dchop1.ch"
#line 392 "dchop1.ch"
        case cplus::ENUM : 
#line 392 "dchop1.ch"
#line 392 "dchop1.ch"
            (tree2=SonTree(tree, 2));
#line 392 "dchop1.ch"
#line 392 "dchop1.ch"
#line 392 "dchop1.ch"
        _Case172 : 
#line 392 "dchop1.ch"
#line 392 "dchop1.ch"
            ;
#line 392 "dchop1.ch"
#line 393 "dchop1.ch"
            if ( tree2 ) 
#line 393 "dchop1.ch"
#line 394 "dchop1.ch"
                TraiterExpList(tree2, x0 + x);
#line 394 "dchop1.ch"
#line 395 "dchop1.ch"
            break ;
#line 395 "dchop1.ch"
#line 396 "dchop1.ch"
        case cplus::NEW : 
#line 396 "dchop1.ch"
#line 396 "dchop1.ch"
            (tree2=SonTree(tree, 3));
#line 396 "dchop1.ch"
#line 396 "dchop1.ch"
#line 396 "dchop1.ch"
        _Case173 : 
#line 396 "dchop1.ch"
#line 396 "dchop1.ch"
            ;
#line 396 "dchop1.ch"
#line 397 "dchop1.ch"
            if ( tree2 ) 
#line 397 "dchop1.ch"
#line 398 "dchop1.ch"
                TraiterExpListParam(tree2, x0 + x);
#line 398 "dchop1.ch"
#line 399 "dchop1.ch"
            break ;
#line 399 "dchop1.ch"
#line 401 "dchop1.ch"
        case cplus::FOR : 
#line 401 "dchop1.ch"
#line 401 "dchop1.ch"
        _Case174 : 
#line 401 "dchop1.ch"
#line 401 "dchop1.ch"
            ;
#line 401 "dchop1.ch"
#line 401 "dchop1.ch"
            TraiterForDeclaration(tree, x0);
#line 401 "dchop1.ch"
#line 402 "dchop1.ch"
            break ;
#line 402 "dchop1.ch"
#line 405 "dchop1.ch"
        default : 
#line 405 "dchop1.ch"
#line 405 "dchop1.ch"
        _Case175 : 
#line 405 "dchop1.ch"
#line 405 "dchop1.ch"
            ;
#line 405 "dchop1.ch"
#line 404 "dchop1.ch"
            {
#line 404 "dchop1.ch"
#line 405 "dchop1.ch"
                return 0 ;
#line 405 "dchop1.ch"
#line 405 "dchop1.ch"
            }
#line 405 "dchop1.ch"
    }
#line 405 "dchop1.ch"
#line 405 "dchop1.ch"
#line 408 "dchop1.ch"
    return 1 ;
#line 408 "dchop1.ch"
#line 409 "dchop1.ch"
}
#line 409 "dchop1.ch"

#line 413 "dchop1.ch"
#line 413 "dchop1.ch"
int DecompCplus::ComputeTab ( PTREE list, int tabMax, int realign )
#line 413 "dchop1.ch"
{
#line 413 "dchop1.ch"
    register PPTREE _inter ;
#line 413 "dchop1.ch"
#line 413 "dchop1.ch"
#line 416 "dchop1.ch"
    PTREE   son, list1, type ;
#line 416 "dchop1.ch"
#line 416 "dchop1.ch"
#line 417 "dchop1.ch"
    PTREE   declaration, listDecl ;
#line 417 "dchop1.ch"
#line 417 "dchop1.ch"
#line 418 "dchop1.ch"
    int x0, y0, x, y, dx, dy ;
#line 418 "dchop1.ch"
#line 420 "dchop1.ch"
    while ( !((!list)) ) {
#line 420 "dchop1.ch"
#line 421 "dchop1.ch"
                            (son=(list?list.Nextl():(PPTREE)0));
#line 421 "dchop1.ch"
#line 421 "dchop1.ch"
#line 424 "dchop1.ch"
                            if ( ((_inter = (PPTREE)son,1) && 
#line 424 "dchop1.ch"
                                    (NumberTree(_inter) == cplus::ATTRIBUTS) &&
#line 424 "dchop1.ch"
                                    ((declaration=SonTree(_inter,1)),1) &&
#line 424 "dchop1.ch"
                                    ((list1=SonTree(_inter,3)),1) &&
#line 424 "dchop1.ch"
                                    1) ) {
#line 424 "dchop1.ch"
#line 425 "dchop1.ch"
                                            int ok = 0 ;
#line 425 "dchop1.ch"
#line 426 "dchop1.ch"
                                            PTREE   att ;
#line 426 "dchop1.ch"
#line 426 "dchop1.ch"
#line 427 "dchop1.ch"
                                            while ( !((!list1)) ) {
#line 427 "dchop1.ch"
#line 428 "dchop1.ch"
                                                                        (att=(list1?list1.Nextl():(PPTREE)0));
#line 428 "dchop1.ch"
#line 428 "dchop1.ch"
#line 429 "dchop1.ch"
                                                                        if ( ((_inter = (PPTREE)att,1) && 
#line 429 "dchop1.ch"
(NumberTree(_inter) == cplus::GOTO) &&
#line 429 "dchop1.ch"
1)                                                                      ) {
#line 429 "dchop1.ch"
#line 430 "dchop1.ch"
ok = 1 ;
#line 430 "dchop1.ch"
#line 431 "dchop1.ch"
break ;
#line 431 "dchop1.ch"
#line 431 "dchop1.ch"
                                                                          }
#line 431 "dchop1.ch"
#line 431 "dchop1.ch"
                                                                    }
#line 431 "dchop1.ch"
#line 436 "dchop1.ch"
                                            if ( ok ) {
#line 436 "dchop1.ch"
#line 436 "dchop1.ch"
                                                        PTREE   _Baum0 ;
#line 436 "dchop1.ch"
#line 436 "dchop1.ch"
#line 437 "dchop1.ch"
                                                        int x ;
#line 437 "dchop1.ch"
#line 438 "dchop1.ch"
                                                        int deltaLoop = 0 ;
#line 438 "dchop1.ch"
#line 441 "dchop1.ch"
                                                        ((_inter = (PPTREE)declaration,1) && 
#line 441 "dchop1.ch"
                                                            ((type=SonTree(_inter,2)),1) &&
#line 441 "dchop1.ch"
                                                            ((listDecl=SonTree(_inter,3)),1) &&
#line 441 "dchop1.ch"
                                                            1);
#line 441 "dchop1.ch"
                                                        ;
#line 441 "dchop1.ch"
#line 442 "dchop1.ch"
                                                       loop : 
#line 442 "dchop1.ch"
#line 443 "dchop1.ch"
                                                        while ( !(((_inter = (PPTREE)listDecl,1) && 
#line 443 "dchop1.ch"
                                                                        (!SonTree(_inter,2)) &&
#line 443 "dchop1.ch"
                                                                        1)) ) 
#line 443 "dchop1.ch"
#line 444 "dchop1.ch"
                                                            (listDecl?listDecl.Nextl():(PPTREE)0);
#line 444 "dchop1.ch"
#line 445 "dchop1.ch"
                                                        if ( ((_inter = (PPTREE)listDecl,1) && 
#line 445 "dchop1.ch"
                                                                (_retVal[1]=((_storeVal[1]=_inter,_inter=SonTree(_inter,1),1) &&
#line 445 "dchop1.ch"
                                                                    (NumberTree(_inter) == cplus::TYP_LIST) &&
#line 445 "dchop1.ch"
                                                                    ((listDecl=SonTree(_inter,2)),1) &&
#line 445 "dchop1.ch"
                                                                    1),
#line 445 "dchop1.ch"
                                                                    (_inter=_storeVal[1],1),_retVal[1]) &&
#line 445 "dchop1.ch"
                                                                1) ) {
#line 445 "dchop1.ch"
#line 446 "dchop1.ch"
                                                                        deltaLoop++ ;
#line 446 "dchop1.ch"
#line 447 "dchop1.ch"
                                                                        goto loop ;
#line 447 "dchop1.ch"
#line 447 "dchop1.ch"
                                                                     }
#line 447 "dchop1.ch"
#line 449 "dchop1.ch"
                                                        (son=(listDecl?listDecl.Nextl():(PPTREE)0));
#line 449 "dchop1.ch"
#line 449 "dchop1.ch"
#line 453 "dchop1.ch"
                                                        if ( (!son) ) 
#line 453 "dchop1.ch"
#line 454 "dchop1.ch"
                                                            (son=type);
#line 454 "dchop1.ch"
#line 454 "dchop1.ch"
#line 457 "dchop1.ch"
                                                        _Baum0 = (PPTREE) 0 ;
#line 457 "dchop1.ch"
#line 457 "dchop1.ch"
#line 457 "dchop1.ch"
                                                        GetCoordAbs(son, _Baum0, &x0, &y0);
#line 457 "dchop1.ch"
#line 458 "dchop1.ch"
                                                        GetCoord(son, &x, &y, &dx, &dy);
#line 458 "dchop1.ch"
#line 463 "dchop1.ch"
                                                        x = x0 + dx + 3 + deltaLoop ;
#line 463 "dchop1.ch"
#line 466 "dchop1.ch"
                                                        if ( !realign && x > tabMax && x <= MAX_REALIGN ) 
#line 466 "dchop1.ch"
#line 467 "dchop1.ch"
                                                            tabMax = x ;
#line 467 "dchop1.ch"
                                                        else 
#line 468 "dchop1.ch"
                                                        if ( realign && x <= tabMax ) {
#line 468 "dchop1.ch"
#line 469 "dchop1.ch"
char    string [10];
#line 469 "dchop1.ch"
#line 470 "dchop1.ch"
sprintf(string, "%d", tabMax);
#line 470 "dchop1.ch"
#line 471 "dchop1.ch"
{
#line 471 "dchop1.ch"
    PPTREE _ptTree0= (PPTREE) 0,_sonTree0= (PPTREE) 0 ;
#line 471 "dchop1.ch"
    _ptTree0 = StoreRef(MakeString(string));
#line 471 "dchop1.ch"
    ReplaceTree(att, 1, _ptTree0);
#line 471 "dchop1.ch"
}
#line 471 "dchop1.ch"
#line 471 "dchop1.ch"
#line 471 "dchop1.ch"
                                                                                         } else 
#line 472 "dchop1.ch"
                                                        if ( realign ) {
#line 472 "dchop1.ch"
#line 473 "dchop1.ch"
PTREE   subst = (PTREE)0 ;
#line 473 "dchop1.ch"
#line 473 "dchop1.ch"
#line 473 "dchop1.ch"
{
#line 473 "dchop1.ch"
    PPTREE _ptTree0= (PPTREE) 0,_ptRes0= (PPTREE) 0;
#line 473 "dchop1.ch"
    _ptRes0 = MakeTree(cplus::STR, 1);
#line 473 "dchop1.ch"
    _ptTree0 = MakeString(" ") ;
#line 473 "dchop1.ch"
    ReplaceTree(_ptRes0, 1, _ptTree0);
#line 473 "dchop1.ch"
    subst = _ptRes0;
#line 473 "dchop1.ch"
}
#line 473 "dchop1.ch"
#line 473 "dchop1.ch"
#line 474 "dchop1.ch"
{
#line 474 "dchop1.ch"
    PPTREE _ptTree0= (PPTREE) 0,_sonTree0= (PPTREE) 0 ;
#line 474 "dchop1.ch"
    if (_ptTree0= fathertree(att)) {
#line 474 "dchop1.ch"
        int rank = ranktree(att);
#line 474 "dchop1.ch"
        ReplaceTree(_ptTree0,rank,subst);
#line 474 "dchop1.ch"
    }
#line 474 "dchop1.ch"
}
#line 474 "dchop1.ch"
#line 474 "dchop1.ch"
#line 474 "dchop1.ch"
                                                                        }
#line 474 "dchop1.ch"
#line 474 "dchop1.ch"
                                                       }
#line 474 "dchop1.ch"
#line 474 "dchop1.ch"
                                         }
#line 474 "dchop1.ch"
#line 474 "dchop1.ch"
                           }
#line 474 "dchop1.ch"
#line 479 "dchop1.ch"
    return tabMax ;
#line 479 "dchop1.ch"
#line 480 "dchop1.ch"
}
#line 480 "dchop1.ch"

#line 484 "dchop1.ch"
#line 484 "dchop1.ch"
void DecompCplus::TraiterDeclAlign ( PTREE start, PTREE end )
#line 484 "dchop1.ch"
{
#line 484 "dchop1.ch"
    register PPTREE _inter ;
#line 484 "dchop1.ch"
#line 484 "dchop1.ch"
#line 487 "dchop1.ch"
    PTREE   list, son ;
#line 487 "dchop1.ch"
#line 487 "dchop1.ch"
#line 488 "dchop1.ch"
    PTREE   listAttr ;
#line 488 "dchop1.ch"
#line 488 "dchop1.ch"
#line 489 "dchop1.ch"
    int found = 0 ;
#line 489 "dchop1.ch"
#line 490 "dchop1.ch"
    PTREE   father, upFather ;
#line 490 "dchop1.ch"
#line 490 "dchop1.ch"
#line 491 "dchop1.ch"
    PTREE   comm ;
#line 491 "dchop1.ch"
#line 491 "dchop1.ch"
#line 492 "dchop1.ch"
    int ok ;
#line 492 "dchop1.ch"
#line 494 "dchop1.ch"
    if ( end != start ) {
#line 494 "dchop1.ch"
#line 495 "dchop1.ch"
                            (list=start);
#line 495 "dchop1.ch"
#line 495 "dchop1.ch"
#line 496 "dchop1.ch"
                            (end?end.Nextl():(PPTREE)0);
#line 496 "dchop1.ch"
#line 497 "dchop1.ch"
                            while ( !((!list)) && list != end ) {
#line 497 "dchop1.ch"
#line 498 "dchop1.ch"
                                                                        (son=(list?list.Nextl():(PPTREE)0));
#line 498 "dchop1.ch"
#line 498 "dchop1.ch"
#line 499 "dchop1.ch"
                                                                        if ( IsComm(son, POST) ) {
#line 499 "dchop1.ch"
#line 499 "dchop1.ch"
PTREE   _Baum0 ;
#line 499 "dchop1.ch"
#line 499 "dchop1.ch"
#line 500 "dchop1.ch"
found = 1 ;
#line 500 "dchop1.ch"
#line 506 "dchop1.ch"
{
#line 506 "dchop1.ch"
    PPTREE _ptTree0=(PPTREE) 0;
#line 506 "dchop1.ch"
    _ptTree0 = (PPTREE) 0;
#line 506 "dchop1.ch"
    {
#line 506 "dchop1.ch"
        PPTREE _ptTree1= (PPTREE) 0 ;
#line 506 "dchop1.ch"
        {
#line 506 "dchop1.ch"
            PPTREE _ptTree2= (PPTREE) 0,_ptRes2= (PPTREE) 0;
#line 506 "dchop1.ch"
            _ptRes2 = MakeTree(cplus::GOTO, 1);
#line 506 "dchop1.ch"
            _ptTree2 = MakeString("1") ;
#line 506 "dchop1.ch"
            ReplaceTree(_ptRes2, 1, _ptTree2);
#line 506 "dchop1.ch"
            _ptTree1 = _ptRes2;
#line 506 "dchop1.ch"
        }
#line 506 "dchop1.ch"
        _ptTree0 = AddList( _ptTree0,_ptTree1);
#line 506 "dchop1.ch"
    }
#line 506 "dchop1.ch"
    {
#line 506 "dchop1.ch"
        PPTREE _ptTree1= (PPTREE) 0 ;
#line 506 "dchop1.ch"
        {
#line 506 "dchop1.ch"
            PPTREE _ptTree2= (PPTREE) 0,_ptRes2= (PPTREE) 0;
#line 506 "dchop1.ch"
            _ptRes2 = MakeTree(cplus::NEWLINE, 1);
#line 506 "dchop1.ch"
            _ptTree2 = MakeString("1") ;
#line 506 "dchop1.ch"
            ReplaceTree(_ptRes2, 1, _ptTree2);
#line 506 "dchop1.ch"
            _ptTree1 = _ptRes2;
#line 506 "dchop1.ch"
        }
#line 506 "dchop1.ch"
        _ptTree0 = AddList( _ptTree0,_ptTree1);
#line 506 "dchop1.ch"
    }
#line 506 "dchop1.ch"
    listAttr = _ptTree0;
#line 506 "dchop1.ch"
    ;
#line 506 "dchop1.ch"
}
#line 506 "dchop1.ch"
#line 506 "dchop1.ch"
#line 507 "dchop1.ch"
PutAttr(son, listAttr, POST_ATTR, PUT_END);
#line 507 "dchop1.ch"
#line 510 "dchop1.ch"
(comm=GetComm(son));
#line 510 "dchop1.ch"
#line 510 "dchop1.ch"
#line 511 "dchop1.ch"
_Baum0 = (PPTREE) 0 ;
#line 511 "dchop1.ch"
#line 511 "dchop1.ch"
#line 511 "dchop1.ch"
PutComm(son, _Baum0);
#line 511 "dchop1.ch"
#line 512 "dchop1.ch"
PutComm(FatherTree(son), comm);
#line 512 "dchop1.ch"
#line 512 "dchop1.ch"
                                                                                                    }
#line 512 "dchop1.ch"
#line 512 "dchop1.ch"
                                                                    }
#line 512 "dchop1.ch"
#line 515 "dchop1.ch"
                            if ( found ) {
#line 515 "dchop1.ch"
#line 516 "dchop1.ch"
                                            PTREE   list, son ;
#line 516 "dchop1.ch"
#line 516 "dchop1.ch"
#line 519 "dchop1.ch"
                                            ComputeTab(start, ComputeTab(start, 0, 0), 1);
#line 519 "dchop1.ch"
#line 520 "dchop1.ch"
                                            found = 0 ;
#line 520 "dchop1.ch"
#line 520 "dchop1.ch"
                                          }
#line 520 "dchop1.ch"
#line 520 "dchop1.ch"
                          } else 
#line 520 "dchop1.ch"
#line 523 "dchop1.ch"
        (end?end.Nextl():(PPTREE)0);
#line 523 "dchop1.ch"
#line 523 "dchop1.ch"
#line 527 "dchop1.ch"
    {
#line 527 "dchop1.ch"
#line 528 "dchop1.ch"
        PTREE   elem = (PTREE)0 ;
#line 528 "dchop1.ch"
#line 528 "dchop1.ch"
#line 528 "dchop1.ch"
        (elem=start);
#line 528 "dchop1.ch"
#line 528 "dchop1.ch"
#line 529 "dchop1.ch"
        (elem=FatherTree(SFatherTree(elem,cplus::COMPOUND)));
#line 529 "dchop1.ch"
#line 529 "dchop1.ch"
#line 530 "dchop1.ch"
        if ( !(((_inter = (PPTREE)elem,1) && 
#line 530 "dchop1.ch"
                    (NumberTree(_inter) == cplus::FUNC) &&
#line 530 "dchop1.ch"
                    1)) ) 
#line 530 "dchop1.ch"
#line 531 "dchop1.ch"
            return ;
#line 531 "dchop1.ch"
#line 531 "dchop1.ch"
    }
#line 531 "dchop1.ch"
#line 536 "dchop1.ch"
    if ( start && end ) {
#line 536 "dchop1.ch"
#line 537 "dchop1.ch"
                            (son=sontree(start, 1));
#line 537 "dchop1.ch"
#line 537 "dchop1.ch"
#line 538 "dchop1.ch"
                            if ( ((_inter = (PPTREE)son,1) && 
#line 538 "dchop1.ch"
                                    (NumberTree(_inter) == cplus::ATTRIBUTS) &&
#line 538 "dchop1.ch"
                                    ((list=SonTree(_inter,2)),1) &&
#line 538 "dchop1.ch"
                                    1) ) 
#line 538 "dchop1.ch"
#line 542 "dchop1.ch"
                                {
#line 542 "dchop1.ch"
                                    PPTREE _ptTree0= (PPTREE) 0,_sonTree0= (PPTREE) 0 ;
#line 542 "dchop1.ch"
                                    _ptTree0 = list;
#line 542 "dchop1.ch"
                                    {
#line 542 "dchop1.ch"
                                        PPTREE _ptTree1= (PPTREE) 0 ;
#line 542 "dchop1.ch"
                                        {
#line 542 "dchop1.ch"
                                            PPTREE _ptTree2= (PPTREE) 0,_ptRes2= (PPTREE) 0;
#line 542 "dchop1.ch"
                                            _ptRes2 = MakeTree(cplus::NEWLINE, 1);
#line 542 "dchop1.ch"
                                            _ptTree2 = MakeString("2") ;
#line 542 "dchop1.ch"
                                            ReplaceTree(_ptRes2, 1, _ptTree2);
#line 542 "dchop1.ch"
                                            _ptTree1 = _ptRes2;
#line 542 "dchop1.ch"
                                        }
#line 542 "dchop1.ch"
                                        _ptTree0 = AddList( _ptTree0,_ptTree1);
#line 542 "dchop1.ch"
                                    }
#line 542 "dchop1.ch"
                                    ReplaceTree(son, 2, _ptTree0);
#line 542 "dchop1.ch"
                                }
#line 542 "dchop1.ch"
#line 542 "dchop1.ch"
                            else 
#line 543 "dchop1.ch"
                            {
#line 543 "dchop1.ch"
#line 547 "dchop1.ch"
                                (upFather=FatherTree(start));
#line 547 "dchop1.ch"
#line 547 "dchop1.ch"
#line 548 "dchop1.ch"
                                if ( ((_inter = (PPTREE)upFather,1) && 
#line 548 "dchop1.ch"
                                        (NumberTree(_inter) == cplus::COMPOUND) &&
#line 548 "dchop1.ch"
                                        1) ) 
#line 548 "dchop1.ch"
#line 549 "dchop1.ch"
                                    ok = 0 ;
#line 549 "dchop1.ch"
                                else 
#line 549 "dchop1.ch"
#line 551 "dchop1.ch"
                                    ok = 1 ;
#line 551 "dchop1.ch"
#line 551 "dchop1.ch"
#line 552 "dchop1.ch"
                                if ( !ok || IsComm(son, PRE) ) {
#line 552 "dchop1.ch"
#line 552 "dchop1.ch"
                                                                        PTREE   _Baum1 ;
#line 552 "dchop1.ch"
#line 552 "dchop1.ch"
#line 554 "dchop1.ch"
                                                                        {
#line 554 "dchop1.ch"
PPTREE _ptTree0= (PPTREE) 0,_ptRes0= (PPTREE) 0;
#line 554 "dchop1.ch"
_ptRes0 = MakeTree(cplus::ATTRIBUTS, 3);
#line 554 "dchop1.ch"
ReplaceTree(_ptRes0, 1, son);
#line 554 "dchop1.ch"
{
#line 554 "dchop1.ch"
    PPTREE _ptTree1= (PPTREE) 0,_ptRes1= (PPTREE) 0;
#line 554 "dchop1.ch"
    _ptRes1 = MakeTree(LIST, 2);
#line 554 "dchop1.ch"
    {
#line 554 "dchop1.ch"
        PPTREE _ptTree2= (PPTREE) 0,_ptRes2= (PPTREE) 0;
#line 554 "dchop1.ch"
        _ptRes2 = MakeTree(cplus::NEWLINE, 1);
#line 554 "dchop1.ch"
        _ptTree2 = MakeString("1") ;
#line 554 "dchop1.ch"
        ReplaceTree(_ptRes2, 1, _ptTree2);
#line 554 "dchop1.ch"
        _ptTree1 = _ptRes2;
#line 554 "dchop1.ch"
    }
#line 554 "dchop1.ch"
    ReplaceTree(_ptRes1, 1, _ptTree1);
#line 554 "dchop1.ch"
    _ptTree0 = _ptRes1;
#line 554 "dchop1.ch"
}
#line 554 "dchop1.ch"
ReplaceTree(_ptRes0, 2, _ptTree0);
#line 554 "dchop1.ch"
{
#line 554 "dchop1.ch"
    PPTREE _ptTree1= (PPTREE) 0,_ptRes1= (PPTREE) 0;
#line 554 "dchop1.ch"
    _ptRes1 = MakeTree(LIST, 2);
#line 554 "dchop1.ch"
    {
#line 554 "dchop1.ch"
        PPTREE _ptTree2= (PPTREE) 0,_ptRes2= (PPTREE) 0;
#line 554 "dchop1.ch"
        _ptRes2 = MakeTree(cplus::NEWLINE, 1);
#line 554 "dchop1.ch"
        _ptTree2 = MakeString("1") ;
#line 554 "dchop1.ch"
        ReplaceTree(_ptRes2, 1, _ptTree2);
#line 554 "dchop1.ch"
        _ptTree1 = _ptRes2;
#line 554 "dchop1.ch"
    }
#line 554 "dchop1.ch"
    ReplaceTree(_ptRes1, 1, _ptTree1);
#line 554 "dchop1.ch"
    _ptTree0 = _ptRes1;
#line 554 "dchop1.ch"
}
#line 554 "dchop1.ch"
ReplaceTree(_ptRes0, 3, _ptTree0);
#line 554 "dchop1.ch"
_Baum1 = _ptRes0;
#line 554 "dchop1.ch"
                                                                        }
#line 554 "dchop1.ch"
#line 554 "dchop1.ch"
#line 553 "dchop1.ch"
                                                                        replacetree(start, 1, _Baum1);
#line 553 "dchop1.ch"
#line 553 "dchop1.ch"
                                                                    } else 
#line 556 "dchop1.ch"
                                {
#line 556 "dchop1.ch"
#line 556 "dchop1.ch"
                                    PTREE   _Baum2 ;
#line 556 "dchop1.ch"
#line 556 "dchop1.ch"
#line 558 "dchop1.ch"
                                    {
#line 558 "dchop1.ch"
                                        PPTREE _ptTree0= (PPTREE) 0,_ptRes0= (PPTREE) 0;
#line 558 "dchop1.ch"
                                        _ptRes0 = MakeTree(cplus::ATTRIBUTS, 3);
#line 558 "dchop1.ch"
                                        ReplaceTree(_ptRes0, 1, son);
#line 558 "dchop1.ch"
                                        {
#line 558 "dchop1.ch"
                                            PPTREE _ptTree1= (PPTREE) 0,_ptRes1= (PPTREE) 0;
#line 558 "dchop1.ch"
                                            _ptRes1 = MakeTree(LIST, 2);
#line 558 "dchop1.ch"
                                            {
#line 558 "dchop1.ch"
                                                PPTREE _ptTree2= (PPTREE) 0,_ptRes2= (PPTREE) 0;
#line 558 "dchop1.ch"
                                                _ptRes2 = MakeTree(cplus::NEWLINE, 1);
#line 558 "dchop1.ch"
                                                _ptTree2 = MakeString("2") ;
#line 558 "dchop1.ch"
                                                ReplaceTree(_ptRes2, 1, _ptTree2);
#line 558 "dchop1.ch"
                                                _ptTree1 = _ptRes2;
#line 558 "dchop1.ch"
                                            }
#line 558 "dchop1.ch"
                                            ReplaceTree(_ptRes1, 1, _ptTree1);
#line 558 "dchop1.ch"
                                            _ptTree0 = _ptRes1;
#line 558 "dchop1.ch"
                                        }
#line 558 "dchop1.ch"
                                        ReplaceTree(_ptRes0, 2, _ptTree0);
#line 558 "dchop1.ch"
                                        {
#line 558 "dchop1.ch"
                                            PPTREE _ptTree1= (PPTREE) 0,_ptRes1= (PPTREE) 0;
#line 558 "dchop1.ch"
                                            _ptRes1 = MakeTree(LIST, 2);
#line 558 "dchop1.ch"
                                            {
#line 558 "dchop1.ch"
                                                PPTREE _ptTree2= (PPTREE) 0,_ptRes2= (PPTREE) 0;
#line 558 "dchop1.ch"
                                                _ptRes2 = MakeTree(cplus::NEWLINE, 1);
#line 558 "dchop1.ch"
                                                _ptTree2 = MakeString("1") ;
#line 558 "dchop1.ch"
                                                ReplaceTree(_ptRes2, 1, _ptTree2);
#line 558 "dchop1.ch"
                                                _ptTree1 = _ptRes2;
#line 558 "dchop1.ch"
                                            }
#line 558 "dchop1.ch"
                                            ReplaceTree(_ptRes1, 1, _ptTree1);
#line 558 "dchop1.ch"
                                            _ptTree0 = _ptRes1;
#line 558 "dchop1.ch"
                                        }
#line 558 "dchop1.ch"
                                        ReplaceTree(_ptRes0, 3, _ptTree0);
#line 558 "dchop1.ch"
                                        _Baum2 = _ptRes0;
#line 558 "dchop1.ch"
                                    }
#line 558 "dchop1.ch"
#line 558 "dchop1.ch"
#line 557 "dchop1.ch"
                                    replacetree(start, 1, _Baum2);
#line 557 "dchop1.ch"
#line 557 "dchop1.ch"
                                }
#line 557 "dchop1.ch"
#line 557 "dchop1.ch"
                            }
#line 557 "dchop1.ch"
#line 557 "dchop1.ch"
                          }
#line 557 "dchop1.ch"
#line 566 "dchop1.ch"
    if ( end ) {
#line 566 "dchop1.ch"
#line 567 "dchop1.ch"
                    PTREE   listAttr ;
#line 567 "dchop1.ch"
#line 567 "dchop1.ch"
#line 568 "dchop1.ch"
                    (son=sontree(end, 1));
#line 568 "dchop1.ch"
#line 568 "dchop1.ch"
#line 569 "dchop1.ch"
                    {
#line 569 "dchop1.ch"
                        PPTREE _ptTree0=(PPTREE) 0;
#line 569 "dchop1.ch"
                        _ptTree0 = (PPTREE) 0;
#line 569 "dchop1.ch"
                        {
#line 569 "dchop1.ch"
                            PPTREE _ptTree1= (PPTREE) 0 ;
#line 569 "dchop1.ch"
                            {
#line 569 "dchop1.ch"
                                PPTREE _ptTree2= (PPTREE) 0,_ptRes2= (PPTREE) 0;
#line 569 "dchop1.ch"
                                _ptRes2 = MakeTree(cplus::NEWLINE, 1);
#line 569 "dchop1.ch"
                                _ptTree2 = MakeString("2") ;
#line 569 "dchop1.ch"
                                ReplaceTree(_ptRes2, 1, _ptTree2);
#line 569 "dchop1.ch"
                                _ptTree1 = _ptRes2;
#line 569 "dchop1.ch"
                            }
#line 569 "dchop1.ch"
                            _ptTree0 = AddList( _ptTree0,_ptTree1);
#line 569 "dchop1.ch"
                        }
#line 569 "dchop1.ch"
                        listAttr = _ptTree0;
#line 569 "dchop1.ch"
                        ;
#line 569 "dchop1.ch"
                    }
#line 569 "dchop1.ch"
#line 569 "dchop1.ch"
#line 570 "dchop1.ch"
                    PutAttr(son, listAttr, PRE_ATTR, PUT_END);
#line 570 "dchop1.ch"
#line 570 "dchop1.ch"
                }
#line 570 "dchop1.ch"
#line 572 "dchop1.ch"
}
#line 572 "dchop1.ch"

#line 576 "dchop1.ch"
#line 576 "dchop1.ch"
void DecompCplus::TraiterListDeclaration ( PTREE tree )
#line 576 "dchop1.ch"
{
#line 576 "dchop1.ch"
    register PPTREE _inter ;
#line 576 "dchop1.ch"
#line 576 "dchop1.ch"
#line 579 "dchop1.ch"
    PTREE   father = (PTREE)0, fatherOld ;
#line 579 "dchop1.ch"
#line 579 "dchop1.ch"
#line 580 "dchop1.ch"
    PTREE   son ;
#line 580 "dchop1.ch"
#line 580 "dchop1.ch"
#line 581 "dchop1.ch"
    int x0, y0 ;
#line 581 "dchop1.ch"
#line 579 "dchop1.ch"
    (father=FatherTree(tree));
#line 579 "dchop1.ch"
#line 579 "dchop1.ch"
#line 585 "dchop1.ch"
    if ( !(((_inter = (PPTREE)father,1) && 
#line 585 "dchop1.ch"
                (NumberTree(_inter) == LIST) &&
#line 585 "dchop1.ch"
                1)) ) 
#line 585 "dchop1.ch"
#line 586 "dchop1.ch"
        return ;
#line 586 "dchop1.ch"
#line 587 "dchop1.ch"
    (father?father.Nextl():(PPTREE)0);
#line 587 "dchop1.ch"
#line 588 "dchop1.ch"
    (son=(father?father.Nextl():(PPTREE)0));
#line 588 "dchop1.ch"
#line 588 "dchop1.ch"
#line 589 "dchop1.ch"
    if ( !(((_inter = (PPTREE)son,1) && 
#line 589 "dchop1.ch"
                (NumberTree(_inter) == cplus::DECLARATION) &&
#line 589 "dchop1.ch"
                1)) ) {
#line 589 "dchop1.ch"
#line 589 "dchop1.ch"
                        PTREE   _Baum0 ;
#line 589 "dchop1.ch"
#line 589 "dchop1.ch"
#line 592 "dchop1.ch"
                        (fatherOld=(father=FatherTree(tree)));
#line 592 "dchop1.ch"
#line 592 "dchop1.ch"
#line 593 "dchop1.ch"
                        _Baum0 = (PPTREE) 0 ;
#line 593 "dchop1.ch"
#line 593 "dchop1.ch"
#line 593 "dchop1.ch"
                        GetCoordAbs(father, _Baum0, &x0, &y0);
#line 593 "dchop1.ch"
#line 594 "dchop1.ch"
                        MarkCoordTree(father, x0, 0);
#line 594 "dchop1.ch"
#line 597 "dchop1.ch"
                        while ( father && ((_inter = (PPTREE)father,1) && 
#line 597 "dchop1.ch"
                                                (NumberTree(_inter) == LIST) &&
#line 597 "dchop1.ch"
                                                1) ) {
#line 597 "dchop1.ch"
#line 598 "dchop1.ch"
                                                        if ( !(((_inter = (PPTREE)father,1) && 
#line 598 "dchop1.ch"
                                                                    (_retVal[1]=((_storeVal[1]=_inter,_inter=SonTree(_inter,1),1) &&
#line 598 "dchop1.ch"
                                                                        (NumberTree(_inter) == cplus::DECLARATION) &&
#line 598 "dchop1.ch"
                                                                        1),
#line 598 "dchop1.ch"
                                                                        (_inter=_storeVal[1],1),_retVal[1]) &&
#line 598 "dchop1.ch"
                                                                    1)) ) 
#line 598 "dchop1.ch"
#line 599 "dchop1.ch"
                                                            break ;
#line 599 "dchop1.ch"
#line 600 "dchop1.ch"
                                                        (fatherOld=father);
#line 600 "dchop1.ch"
#line 600 "dchop1.ch"
#line 601 "dchop1.ch"
                                                        (father=FatherTree(father));
#line 601 "dchop1.ch"
#line 601 "dchop1.ch"
#line 601 "dchop1.ch"
                                                     }
#line 601 "dchop1.ch"
#line 605 "dchop1.ch"
                        TraiterDeclAlign(fatherOld, FatherTree(tree));
#line 605 "dchop1.ch"
#line 608 "dchop1.ch"
                        UnMarkCoordTree(FatherTree(tree));
#line 608 "dchop1.ch"
#line 608 "dchop1.ch"
                      }
#line 608 "dchop1.ch"
#line 610 "dchop1.ch"
}
#line 610 "dchop1.ch"

#line 614 "dchop1.ch"
#line 614 "dchop1.ch"
int DecompCplus::ComputeStart ( PTREE start, PTREE end )
#line 614 "dchop1.ch"
{
#line 614 "dchop1.ch"
    register PPTREE _inter ;
#line 614 "dchop1.ch"
#line 614 "dchop1.ch"
#line 617 "dchop1.ch"
    int x, y, dx, dy ;
#line 617 "dchop1.ch"
#line 618 "dchop1.ch"
    int x0 = - 1, y0 ;
#line 618 "dchop1.ch"
#line 619 "dchop1.ch"
    int maxPos = 0 ;
#line 619 "dchop1.ch"
#line 620 "dchop1.ch"
    PTREE   son ;
#line 620 "dchop1.ch"
#line 620 "dchop1.ch"
#line 622 "dchop1.ch"
    if ( end == start ) 
#line 622 "dchop1.ch"
#line 623 "dchop1.ch"
        return 0 ;
#line 623 "dchop1.ch"
#line 624 "dchop1.ch"
    (end?end.Nextl():(PPTREE)0);
#line 624 "dchop1.ch"
#line 627 "dchop1.ch"
    while ( start && start != end ) {
#line 627 "dchop1.ch"
#line 628 "dchop1.ch"
                                        (son=(start?start.Nextl():(PPTREE)0));
#line 628 "dchop1.ch"
#line 628 "dchop1.ch"
#line 629 "dchop1.ch"
                                        if ( ((_inter = (PPTREE)son,1) && 
#line 629 "dchop1.ch"
                                                (NumberTree(_inter) == cplus::DECLARATION) &&
#line 629 "dchop1.ch"
                                                (_retVal[1]=((_storeVal[1]=_inter,_inter=SonTree(_inter,3),1) &&
#line 629 "dchop1.ch"
                                                    (NumberTree(_inter) == LIST) &&
#line 629 "dchop1.ch"
                                                    ((son=SonTree(_inter,1)),1) &&
#line 629 "dchop1.ch"
                                                    1),
#line 629 "dchop1.ch"
                                                    (_inter=_storeVal[1],1),_retVal[1]) &&
#line 629 "dchop1.ch"
                                                1) ) {
#line 629 "dchop1.ch"
#line 630 "dchop1.ch"
                                                        GetCoord(son, &x, &y, &dx, &dy);
#line 630 "dchop1.ch"
#line 631 "dchop1.ch"
                                                        if ( x0 < 0 ) {
#line 631 "dchop1.ch"
#line 631 "dchop1.ch"
PTREE   _Baum0 ;
#line 631 "dchop1.ch"
#line 631 "dchop1.ch"
#line 632 "dchop1.ch"
_Baum0 = (PPTREE) 0 ;
#line 632 "dchop1.ch"
#line 632 "dchop1.ch"
#line 632 "dchop1.ch"
GetCoordAbs(son, _Baum0, &x0, &y0);
#line 632 "dchop1.ch"
#line 632 "dchop1.ch"
                                                                        }
#line 632 "dchop1.ch"
#line 634 "dchop1.ch"
                                                        if ( x > maxPos && x + x0 <= MAX_REALIGN ) 
#line 634 "dchop1.ch"
#line 635 "dchop1.ch"
                                                            maxPos = x ;
#line 635 "dchop1.ch"
#line 635 "dchop1.ch"
                                                     }
#line 635 "dchop1.ch"
#line 635 "dchop1.ch"
                                       }
#line 635 "dchop1.ch"
#line 640 "dchop1.ch"
    return maxPos ;
#line 640 "dchop1.ch"
#line 641 "dchop1.ch"
}
#line 641 "dchop1.ch"

#line 645 "dchop1.ch"
#line 645 "dchop1.ch"
void DecompCplus::SetStart ( PTREE start, PTREE end, int pos )
#line 645 "dchop1.ch"
{
#line 645 "dchop1.ch"
    register PPTREE _inter ;
#line 645 "dchop1.ch"
#line 645 "dchop1.ch"
#line 648 "dchop1.ch"
    int x0, y0 ;
#line 648 "dchop1.ch"
#line 649 "dchop1.ch"
    int x, y, dx, dy ;
#line 649 "dchop1.ch"
#line 650 "dchop1.ch"
    PTREE   son, decl ;
#line 650 "dchop1.ch"
#line 650 "dchop1.ch"
#line 651 "dchop1.ch"
    PTREE   list ;
#line 651 "dchop1.ch"
#line 651 "dchop1.ch"
#line 652 "dchop1.ch"
    int delta ;
#line 652 "dchop1.ch"
#line 653 "dchop1.ch"
    PTREE   listAttr ;
#line 653 "dchop1.ch"
#line 653 "dchop1.ch"
#line 654 "dchop1.ch"
    char    string [10];
#line 654 "dchop1.ch"
#line 655 "dchop1.ch"
    int first = 1 ;
#line 655 "dchop1.ch"
#line 657 "dchop1.ch"
    if ( end == start ) 
#line 657 "dchop1.ch"
#line 658 "dchop1.ch"
        return ;
#line 658 "dchop1.ch"
#line 659 "dchop1.ch"
    (end?end.Nextl():(PPTREE)0);
#line 659 "dchop1.ch"
#line 660 "dchop1.ch"
    if ( !pos ) 
#line 660 "dchop1.ch"
#line 661 "dchop1.ch"
        return ;
#line 661 "dchop1.ch"
#line 662 "dchop1.ch"
    pos++ ;
#line 662 "dchop1.ch"
#line 665 "dchop1.ch"
    while ( start && start != end ) {
#line 665 "dchop1.ch"
#line 666 "dchop1.ch"
                                        (son=(start?start.Nextl():(PPTREE)0));
#line 666 "dchop1.ch"
#line 666 "dchop1.ch"
#line 667 "dchop1.ch"
                                        if ( ((_inter = (PPTREE)son,1) && 
#line 667 "dchop1.ch"
                                                (NumberTree(_inter) == cplus::DECLARATION) &&
#line 667 "dchop1.ch"
                                                (_retVal[1]=((_storeVal[1]=_inter,_inter=SonTree(_inter,3),1) &&
#line 667 "dchop1.ch"
                                                    (NumberTree(_inter) == LIST) &&
#line 667 "dchop1.ch"
                                                    ((decl=SonTree(_inter,1)),1) &&
#line 667 "dchop1.ch"
                                                    1),
#line 667 "dchop1.ch"
                                                    (_inter=_storeVal[1],1),_retVal[1]) &&
#line 667 "dchop1.ch"
                                                1) ) {
#line 667 "dchop1.ch"
#line 668 "dchop1.ch"
                                                        GetCoord(decl, &x, &y, &dx, &dy);
#line 668 "dchop1.ch"
#line 669 "dchop1.ch"
                                                        if ( (delta = pos - x) >= 0 ) {
#line 669 "dchop1.ch"
#line 670 "dchop1.ch"
if ( first ) {
#line 670 "dchop1.ch"
#line 670 "dchop1.ch"
                PTREE   _Baum0 ;
#line 670 "dchop1.ch"
#line 670 "dchop1.ch"
#line 671 "dchop1.ch"
                first = 0 ;
#line 671 "dchop1.ch"
#line 672 "dchop1.ch"
                _Baum0 = (PPTREE) 0 ;
#line 672 "dchop1.ch"
#line 672 "dchop1.ch"
#line 672 "dchop1.ch"
                GetCoordAbs(son, _Baum0, &x0, &y0);
#line 672 "dchop1.ch"
#line 675 "dchop1.ch"
                sprintf(string, "%d", pos + x0);
#line 675 "dchop1.ch"
#line 675 "dchop1.ch"
              }
#line 675 "dchop1.ch"
#line 677 "dchop1.ch"
{
#line 677 "dchop1.ch"
    PPTREE _ptTree0=(PPTREE) 0;
#line 677 "dchop1.ch"
    _ptTree0 = (PPTREE) 0;
#line 677 "dchop1.ch"
    {
#line 677 "dchop1.ch"
        PPTREE _ptTree1= (PPTREE) 0 ;
#line 677 "dchop1.ch"
        {
#line 677 "dchop1.ch"
            PPTREE _ptTree2= (PPTREE) 0,_ptRes2= (PPTREE) 0;
#line 677 "dchop1.ch"
            _ptRes2 = MakeTree(cplus::GOTO, 1);
#line 677 "dchop1.ch"
            _ptTree2 = StoreRef(MakeString(string));
#line 677 "dchop1.ch"
            ReplaceTree(_ptRes2, 1, _ptTree2);
#line 677 "dchop1.ch"
            _ptTree1 = _ptRes2;
#line 677 "dchop1.ch"
        }
#line 677 "dchop1.ch"
        _ptTree0 = AddList( _ptTree0,_ptTree1);
#line 677 "dchop1.ch"
    }
#line 677 "dchop1.ch"
    listAttr = _ptTree0;
#line 677 "dchop1.ch"
    ;
#line 677 "dchop1.ch"
}
#line 677 "dchop1.ch"
#line 677 "dchop1.ch"
#line 678 "dchop1.ch"
PutAttr(decl, listAttr, PRE_ATTR, PUT_BEG);
#line 678 "dchop1.ch"
#line 679 "dchop1.ch"
GetCoord(son, &x, &y, &dx, &dy);
#line 679 "dchop1.ch"
#line 680 "dchop1.ch"
PutCoord(son, x, y, dx + delta, dy);
#line 680 "dchop1.ch"
#line 681 "dchop1.ch"
(list=SFatherTree(decl,LIST));
#line 681 "dchop1.ch"
#line 681 "dchop1.ch"
#line 682 "dchop1.ch"
while ( (decl=(list?list.Nextl():(PPTREE)0)) ) {
#line 682 "dchop1.ch"
#line 683 "dchop1.ch"
                                                    GetCoord(decl, &x, &y, &dx, &dy);
#line 683 "dchop1.ch"
#line 684 "dchop1.ch"
                                                    PutCoord(decl, x + delta, y, dx, dy);
#line 684 "dchop1.ch"
#line 684 "dchop1.ch"
                                                   }
#line 684 "dchop1.ch"
#line 684 "dchop1.ch"
                                                                                           }
#line 684 "dchop1.ch"
#line 684 "dchop1.ch"
                                                     }
#line 684 "dchop1.ch"
#line 684 "dchop1.ch"
                                       }
#line 684 "dchop1.ch"
#line 689 "dchop1.ch"
}
#line 689 "dchop1.ch"

#line 693 "dchop1.ch"
#line 693 "dchop1.ch"
void DecompCplus::TraiterAlignTypeDecl ( PTREE tree )
#line 693 "dchop1.ch"
{
#line 693 "dchop1.ch"
    register PPTREE _inter ;
#line 693 "dchop1.ch"
#line 693 "dchop1.ch"
#line 696 "dchop1.ch"
    PTREE   father = (PTREE)0, fatherOld ;
#line 696 "dchop1.ch"
#line 696 "dchop1.ch"
#line 697 "dchop1.ch"
    PTREE   son ;
#line 697 "dchop1.ch"
#line 697 "dchop1.ch"
#line 698 "dchop1.ch"
    int x0, y0 ;
#line 698 "dchop1.ch"
#line 696 "dchop1.ch"
    (father=FatherTree(tree));
#line 696 "dchop1.ch"
#line 696 "dchop1.ch"
#line 702 "dchop1.ch"
    if ( !(((_inter = (PPTREE)father,1) && 
#line 702 "dchop1.ch"
                (NumberTree(_inter) == LIST) &&
#line 702 "dchop1.ch"
                1)) ) 
#line 702 "dchop1.ch"
#line 703 "dchop1.ch"
        return ;
#line 703 "dchop1.ch"
#line 704 "dchop1.ch"
    (father?father.Nextl():(PPTREE)0);
#line 704 "dchop1.ch"
#line 705 "dchop1.ch"
    if ( father ) 
#line 705 "dchop1.ch"
#line 706 "dchop1.ch"
        (son=(father?father.Nextl():(PPTREE)0));
#line 706 "dchop1.ch"
#line 706 "dchop1.ch"
#line 707 "dchop1.ch"
    if ( !(((_inter = (PPTREE)son,1) && 
#line 707 "dchop1.ch"
                (NumberTree(_inter) == cplus::DECLARATION) &&
#line 707 "dchop1.ch"
                1)) ) {
#line 707 "dchop1.ch"
#line 707 "dchop1.ch"
                        PTREE   _Baum0 ;
#line 707 "dchop1.ch"
#line 707 "dchop1.ch"
#line 710 "dchop1.ch"
                        (fatherOld=(father=FatherTree(tree)));
#line 710 "dchop1.ch"
#line 710 "dchop1.ch"
#line 711 "dchop1.ch"
                        _Baum0 = (PPTREE) 0 ;
#line 711 "dchop1.ch"
#line 711 "dchop1.ch"
#line 711 "dchop1.ch"
                        GetCoordAbs(father, _Baum0, &x0, &y0);
#line 711 "dchop1.ch"
#line 712 "dchop1.ch"
                        MarkCoordTree(father, x0, 0);
#line 712 "dchop1.ch"
#line 715 "dchop1.ch"
                        while ( father && ((_inter = (PPTREE)father,1) && 
#line 715 "dchop1.ch"
                                                (NumberTree(_inter) == LIST) &&
#line 715 "dchop1.ch"
                                                1) ) {
#line 715 "dchop1.ch"
#line 716 "dchop1.ch"
                                                        if ( !(((_inter = (PPTREE)father,1) && 
#line 716 "dchop1.ch"
                                                                    (_retVal[1]=((_storeVal[1]=_inter,_inter=SonTree(_inter,1),1) &&
#line 716 "dchop1.ch"
                                                                        (NumberTree(_inter) == cplus::DECLARATION) &&
#line 716 "dchop1.ch"
                                                                        1),
#line 716 "dchop1.ch"
                                                                        (_inter=_storeVal[1],1),_retVal[1]) &&
#line 716 "dchop1.ch"
                                                                    1)) ) 
#line 716 "dchop1.ch"
#line 717 "dchop1.ch"
                                                            break ;
#line 717 "dchop1.ch"
#line 718 "dchop1.ch"
                                                        (fatherOld=father);
#line 718 "dchop1.ch"
#line 718 "dchop1.ch"
#line 719 "dchop1.ch"
                                                        (father=FatherTree(father));
#line 719 "dchop1.ch"
#line 719 "dchop1.ch"
#line 719 "dchop1.ch"
                                                     }
#line 719 "dchop1.ch"
#line 723 "dchop1.ch"
                        SetStart(fatherOld, FatherTree(tree), ComputeStart(fatherOld, FatherTree(tree)));
#line 723 "dchop1.ch"
#line 726 "dchop1.ch"
                        UnMarkCoordTree(FatherTree(tree));
#line 726 "dchop1.ch"
#line 726 "dchop1.ch"
                      }
#line 726 "dchop1.ch"
#line 728 "dchop1.ch"
}
#line 728 "dchop1.ch"

#line 732 "dchop1.ch"
#line 732 "dchop1.ch"
int DecompCplus::ComputeStartAff ( PTREE start, PTREE end )
#line 732 "dchop1.ch"
{
#line 732 "dchop1.ch"
    register PPTREE _inter ;
#line 732 "dchop1.ch"
#line 732 "dchop1.ch"
#line 735 "dchop1.ch"
    int x, y, dx, dy ;
#line 735 "dchop1.ch"
#line 736 "dchop1.ch"
    int x0 = - 1, y0 ;
#line 736 "dchop1.ch"
#line 737 "dchop1.ch"
    int maxPos = 0 ;
#line 737 "dchop1.ch"
#line 738 "dchop1.ch"
    PTREE   son ;
#line 738 "dchop1.ch"
#line 738 "dchop1.ch"
#line 739 "dchop1.ch"
    PTREE   name ;
#line 739 "dchop1.ch"
#line 739 "dchop1.ch"
#line 741 "dchop1.ch"
    if ( end == start ) 
#line 741 "dchop1.ch"
#line 742 "dchop1.ch"
        return 0 ;
#line 742 "dchop1.ch"
#line 743 "dchop1.ch"
    (end?end.Nextl():(PPTREE)0);
#line 743 "dchop1.ch"
#line 746 "dchop1.ch"
    while ( start && start != end ) {
#line 746 "dchop1.ch"
#line 747 "dchop1.ch"
                                        (son=(start?start.Nextl():(PPTREE)0));
#line 747 "dchop1.ch"
#line 747 "dchop1.ch"
#line 748 "dchop1.ch"
                                        if ( ((_inter = (PPTREE)son,1) && 
#line 748 "dchop1.ch"
                                                ((name=SonTree(_inter,1)),1) &&
#line 748 "dchop1.ch"
                                                1) ) {
#line 748 "dchop1.ch"
#line 749 "dchop1.ch"
                                                        GetCoord(name, &x, &y, &dx, &dy);
#line 749 "dchop1.ch"
#line 750 "dchop1.ch"
                                                        if ( x0 < 0 ) {
#line 750 "dchop1.ch"
#line 750 "dchop1.ch"
PTREE   _Baum0 ;
#line 750 "dchop1.ch"
#line 750 "dchop1.ch"
#line 751 "dchop1.ch"
_Baum0 = (PPTREE) 0 ;
#line 751 "dchop1.ch"
#line 751 "dchop1.ch"
#line 751 "dchop1.ch"
GetCoordAbs(son, _Baum0, &x0, &y0);
#line 751 "dchop1.ch"
#line 751 "dchop1.ch"
                                                                        }
#line 751 "dchop1.ch"
#line 753 "dchop1.ch"
                                                        if ( x + dx > maxPos && x + dx + x0 <= MAX_REALIGN ) 
#line 753 "dchop1.ch"
#line 754 "dchop1.ch"
                                                            maxPos = x + dx ;
#line 754 "dchop1.ch"
#line 754 "dchop1.ch"
                                                     }
#line 754 "dchop1.ch"
#line 754 "dchop1.ch"
                                       }
#line 754 "dchop1.ch"
#line 759 "dchop1.ch"
    return maxPos ;
#line 759 "dchop1.ch"
#line 760 "dchop1.ch"
}
#line 760 "dchop1.ch"

#line 764 "dchop1.ch"
#line 764 "dchop1.ch"
void DecompCplus::SetStartAff ( PTREE start, PTREE end, int pos )
#line 764 "dchop1.ch"
{
#line 764 "dchop1.ch"
    register PPTREE _inter ;
#line 764 "dchop1.ch"
#line 764 "dchop1.ch"
#line 767 "dchop1.ch"
    int x0, y0 ;
#line 767 "dchop1.ch"
#line 768 "dchop1.ch"
    int x, y, dx, dy ;
#line 768 "dchop1.ch"
#line 769 "dchop1.ch"
    PTREE   son, decl ;
#line 769 "dchop1.ch"
#line 769 "dchop1.ch"
#line 770 "dchop1.ch"
    PTREE   list ;
#line 770 "dchop1.ch"
#line 770 "dchop1.ch"
#line 771 "dchop1.ch"
    int delta ;
#line 771 "dchop1.ch"
#line 772 "dchop1.ch"
    PTREE   listAttr ;
#line 772 "dchop1.ch"
#line 772 "dchop1.ch"
#line 773 "dchop1.ch"
    char    string [10];
#line 773 "dchop1.ch"
#line 774 "dchop1.ch"
    int first = 1 ;
#line 774 "dchop1.ch"
#line 775 "dchop1.ch"
    PTREE   name ;
#line 775 "dchop1.ch"
#line 775 "dchop1.ch"
#line 776 "dchop1.ch"
    PTREE   assignment ;
#line 776 "dchop1.ch"
#line 776 "dchop1.ch"
#line 778 "dchop1.ch"
    if ( end == start ) 
#line 778 "dchop1.ch"
#line 779 "dchop1.ch"
        return ;
#line 779 "dchop1.ch"
#line 780 "dchop1.ch"
    (end?end.Nextl():(PPTREE)0);
#line 780 "dchop1.ch"
#line 781 "dchop1.ch"
    if ( !pos ) 
#line 781 "dchop1.ch"
#line 782 "dchop1.ch"
        return ;
#line 782 "dchop1.ch"
#line 783 "dchop1.ch"
    pos += 2 ;
#line 783 "dchop1.ch"
#line 786 "dchop1.ch"
    while ( start && start != end ) {
#line 786 "dchop1.ch"
#line 787 "dchop1.ch"
                                        (son=(start?start.Nextl():(PPTREE)0));
#line 787 "dchop1.ch"
#line 787 "dchop1.ch"
#line 788 "dchop1.ch"
                                        if ( ((_inter = (PPTREE)son,1) && 
#line 788 "dchop1.ch"
                                                ((name=SonTree(_inter,1)),1) &&
#line 788 "dchop1.ch"
                                                ((assignment=SonTree(_inter,2)),1) &&
#line 788 "dchop1.ch"
                                                1) ) {
#line 788 "dchop1.ch"
#line 789 "dchop1.ch"
                                                        GetCoord(name, &x, &y, &dx, &dy);
#line 789 "dchop1.ch"
#line 790 "dchop1.ch"
                                                        if ( (delta = pos - x - dx) >= 0 ) {
#line 790 "dchop1.ch"
#line 791 "dchop1.ch"
if ( first ) {
#line 791 "dchop1.ch"
#line 791 "dchop1.ch"
                PTREE   _Baum0 ;
#line 791 "dchop1.ch"
#line 791 "dchop1.ch"
#line 792 "dchop1.ch"
                first = 0 ;
#line 792 "dchop1.ch"
#line 793 "dchop1.ch"
                _Baum0 = (PPTREE) 0 ;
#line 793 "dchop1.ch"
#line 793 "dchop1.ch"
#line 793 "dchop1.ch"
                GetCoordAbs(son, _Baum0, &x0, &y0);
#line 793 "dchop1.ch"
#line 796 "dchop1.ch"
                sprintf(string, "%d", pos + x0);
#line 796 "dchop1.ch"
#line 796 "dchop1.ch"
              }
#line 796 "dchop1.ch"
#line 798 "dchop1.ch"
{
#line 798 "dchop1.ch"
    PPTREE _ptTree0=(PPTREE) 0;
#line 798 "dchop1.ch"
    _ptTree0 = (PPTREE) 0;
#line 798 "dchop1.ch"
    {
#line 798 "dchop1.ch"
        PPTREE _ptTree1= (PPTREE) 0 ;
#line 798 "dchop1.ch"
        {
#line 798 "dchop1.ch"
            PPTREE _ptTree2= (PPTREE) 0,_ptRes2= (PPTREE) 0;
#line 798 "dchop1.ch"
            _ptRes2 = MakeTree(cplus::GOTO, 1);
#line 798 "dchop1.ch"
            _ptTree2 = StoreRef(MakeString(string));
#line 798 "dchop1.ch"
            ReplaceTree(_ptRes2, 1, _ptTree2);
#line 798 "dchop1.ch"
            _ptTree1 = _ptRes2;
#line 798 "dchop1.ch"
        }
#line 798 "dchop1.ch"
        _ptTree0 = AddList( _ptTree0,_ptTree1);
#line 798 "dchop1.ch"
    }
#line 798 "dchop1.ch"
    listAttr = _ptTree0;
#line 798 "dchop1.ch"
    ;
#line 798 "dchop1.ch"
}
#line 798 "dchop1.ch"
#line 798 "dchop1.ch"
#line 799 "dchop1.ch"
PutAttr(name, listAttr, POST_ATTR, PUT_END);
#line 799 "dchop1.ch"
#line 800 "dchop1.ch"
GetCoord(son, &x, &y, &dx, &dy);
#line 800 "dchop1.ch"
#line 801 "dchop1.ch"
PutCoord(son, x, y, dx + delta, dy);
#line 801 "dchop1.ch"
#line 802 "dchop1.ch"
GetCoord(assignment, &x, &y, &dx, &dy);
#line 802 "dchop1.ch"
#line 803 "dchop1.ch"
PutCoord(assignment, x + delta, y, dx, dy);
#line 803 "dchop1.ch"
#line 803 "dchop1.ch"
                                                                                                 }
#line 803 "dchop1.ch"
#line 803 "dchop1.ch"
                                                     }
#line 803 "dchop1.ch"
#line 803 "dchop1.ch"
                                       }
#line 803 "dchop1.ch"
#line 807 "dchop1.ch"
}
#line 807 "dchop1.ch"

#line 811 "dchop1.ch"
#line 811 "dchop1.ch"
void DecompCplus::TraiterAlignAff ( PTREE tree )
#line 811 "dchop1.ch"
{
#line 811 "dchop1.ch"
    register PPTREE _inter ;
#line 811 "dchop1.ch"
#line 811 "dchop1.ch"
#line 814 "dchop1.ch"
    PTREE   father = (PTREE)0, fatherOld ;
#line 814 "dchop1.ch"
#line 814 "dchop1.ch"
#line 815 "dchop1.ch"
    PTREE   son ;
#line 815 "dchop1.ch"
#line 815 "dchop1.ch"
#line 816 "dchop1.ch"
    int x0, y0 ;
#line 816 "dchop1.ch"
#line 814 "dchop1.ch"
    (father=FatherTree(tree));
#line 814 "dchop1.ch"
#line 814 "dchop1.ch"
#line 818 "dchop1.ch"
    if ( !assignAlign ) 
#line 818 "dchop1.ch"
#line 819 "dchop1.ch"
        return ;
#line 819 "dchop1.ch"
#line 823 "dchop1.ch"
    if ( !(((_inter = (PPTREE)father,1) && 
#line 823 "dchop1.ch"
                (NumberTree(_inter) == LIST) &&
#line 823 "dchop1.ch"
                1)) ) 
#line 823 "dchop1.ch"
#line 824 "dchop1.ch"
        return ;
#line 824 "dchop1.ch"
#line 825 "dchop1.ch"
    (father?father.Nextl():(PPTREE)0);
#line 825 "dchop1.ch"
#line 826 "dchop1.ch"
    if ( father ) 
#line 826 "dchop1.ch"
#line 827 "dchop1.ch"
        (son=(father?father.Nextl():(PPTREE)0));
#line 827 "dchop1.ch"
#line 827 "dchop1.ch"
#line 828 "dchop1.ch"
    switch ( NumberTree(son) ) {
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
        case cplus::AFF : 
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
        _Case176 : 
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
            ;
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
            goto _Case177 ;
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
        case cplus::MUL_AFF : 
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
        _Case177 : 
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
            ;
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
            goto _Case178 ;
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
        case cplus::DIV_AFF : 
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
        _Case178 : 
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
            ;
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
            goto _Case179 ;
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
        case cplus::REM_AFF : 
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
        _Case179 : 
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
            ;
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
            goto _Case180 ;
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
        case cplus::MIN_AFF : 
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
        _Case180 : 
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
            ;
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
            goto _Case181 ;
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
        case cplus::PLU_AFF : 
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
        _Case181 : 
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
            ;
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
            goto _Case182 ;
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
        case cplus::LSH_AFF : 
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
        _Case182 : 
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
            ;
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
            goto _Case183 ;
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
        case cplus::RSH_AFF : 
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
        _Case183 : 
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
            ;
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
            goto _Case184 ;
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
        case cplus::AND_AFF : 
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
        _Case184 : 
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
            ;
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
            goto _Case185 ;
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
        case cplus::OR_AFF : 
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
        _Case185 : 
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
            ;
#line 828 "dchop1.ch"
#line 828 "dchop1.ch"
            goto _Case186 ;
#line 828 "dchop1.ch"
#line 839 "dchop1.ch"
        case cplus::XOR_AFF : 
#line 839 "dchop1.ch"
#line 839 "dchop1.ch"
        _Case186 : 
#line 839 "dchop1.ch"
#line 839 "dchop1.ch"
            ;
#line 839 "dchop1.ch"
#line 839 "dchop1.ch"
            break ;
#line 839 "dchop1.ch"
#line 844 "dchop1.ch"
        default : 
#line 844 "dchop1.ch"
#line 844 "dchop1.ch"
        _Case187 : 
#line 844 "dchop1.ch"
#line 844 "dchop1.ch"
            ;
#line 844 "dchop1.ch"
#line 841 "dchop1.ch"
            {
#line 841 "dchop1.ch"
#line 841 "dchop1.ch"
                PTREE   _Baum0 ;
#line 841 "dchop1.ch"
#line 841 "dchop1.ch"
#line 844 "dchop1.ch"
                (fatherOld=(father=FatherTree(tree)));
#line 844 "dchop1.ch"
#line 844 "dchop1.ch"
#line 845 "dchop1.ch"
                _Baum0 = (PPTREE) 0 ;
#line 845 "dchop1.ch"
#line 845 "dchop1.ch"
#line 845 "dchop1.ch"
                GetCoordAbs(father, _Baum0, &x0, &y0);
#line 845 "dchop1.ch"
#line 846 "dchop1.ch"
                MarkCoordTree(father, x0, 0);
#line 846 "dchop1.ch"
#line 849 "dchop1.ch"
                int stop = 0 ;
#line 849 "dchop1.ch"
#line 850 "dchop1.ch"
                while ( father && ((_inter = (PPTREE)father,1) && 
#line 850 "dchop1.ch"
                                        (NumberTree(_inter) == LIST) &&
#line 850 "dchop1.ch"
                                        1) && !stop ) {
#line 850 "dchop1.ch"
#line 851 "dchop1.ch"
                                                            (son=sontree(father, 1));
#line 851 "dchop1.ch"
#line 851 "dchop1.ch"
#line 852 "dchop1.ch"
                                                            switch ( NumberTree(son) ) {
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                case cplus::AFF : 
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                _Case188 : 
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                    ;
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                    goto _Case189 ;
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                case cplus::MUL_AFF : 
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                _Case189 : 
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                    ;
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                    goto _Case190 ;
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                case cplus::DIV_AFF : 
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                _Case190 : 
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                    ;
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                    goto _Case191 ;
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                case cplus::REM_AFF : 
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                _Case191 : 
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                    ;
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                    goto _Case192 ;
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                case cplus::MIN_AFF : 
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                _Case192 : 
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                    ;
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                    goto _Case193 ;
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                case cplus::PLU_AFF : 
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                _Case193 : 
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                    ;
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                    goto _Case194 ;
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                case cplus::LSH_AFF : 
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                _Case194 : 
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                    ;
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                    goto _Case195 ;
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                case cplus::RSH_AFF : 
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                _Case195 : 
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                    ;
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                    goto _Case196 ;
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                case cplus::AND_AFF : 
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                _Case196 : 
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                    ;
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                    goto _Case197 ;
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                case cplus::OR_AFF : 
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                _Case197 : 
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                    ;
#line 852 "dchop1.ch"
#line 852 "dchop1.ch"
                                                                    goto _Case198 ;
#line 852 "dchop1.ch"
#line 864 "dchop1.ch"
                                                                case cplus::XOR_AFF : 
#line 864 "dchop1.ch"
#line 864 "dchop1.ch"
                                                                _Case198 : 
#line 864 "dchop1.ch"
#line 864 "dchop1.ch"
                                                                    ;
#line 864 "dchop1.ch"
#line 864 "dchop1.ch"
                                                                    (fatherOld=father);
#line 864 "dchop1.ch"
#line 864 "dchop1.ch"
#line 865 "dchop1.ch"
                                                                    (father=FatherTree(father));
#line 865 "dchop1.ch"
#line 865 "dchop1.ch"
#line 866 "dchop1.ch"
                                                                    break ;
#line 866 "dchop1.ch"
#line 868 "dchop1.ch"
                                                                default : 
#line 868 "dchop1.ch"
#line 868 "dchop1.ch"
                                                                _Case199 : 
#line 868 "dchop1.ch"
#line 868 "dchop1.ch"
                                                                    ;
#line 868 "dchop1.ch"
#line 868 "dchop1.ch"
                                                                    stop = 1 ;
#line 868 "dchop1.ch"
#line 869 "dchop1.ch"
                                                                    break ;
#line 869 "dchop1.ch"
                                                            }
#line 869 "dchop1.ch"
#line 869 "dchop1.ch"
#line 869 "dchop1.ch"
                                                        }
#line 869 "dchop1.ch"
#line 874 "dchop1.ch"
                SetStartAff(fatherOld, FatherTree(tree), ComputeStartAff(fatherOld, FatherTree(tree)));
#line 874 "dchop1.ch"
#line 878 "dchop1.ch"
                UnMarkCoordTree(FatherTree(tree));
#line 878 "dchop1.ch"
#line 878 "dchop1.ch"
            }
#line 878 "dchop1.ch"
    }
#line 878 "dchop1.ch"
#line 878 "dchop1.ch"
#line 881 "dchop1.ch"
}
#line 881 "dchop1.ch"
/*Well done my boy */ 
#line 881 "dchop1.ch"

