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

#ifdef FOR_METACHOP
#line 5 "../chopb/decomp.ch"
#line 11 "../chopb/decomp.ch"
PTREE   postComment ;
#line 11 "../chopb/decomp.ch"
#line 11 "../chopb/decomp.ch"
#endif

#line 16 "../chopb/decomp.ch"
#line 16 "../chopb/decomp.ch"
void DecompChopb::FrameContent ( PTREE list )
#line 16 "../chopb/decomp.ch"
{
#line 16 "../chopb/decomp.ch"
#line 19 "../chopb/decomp.ch"
    int nb, min = 32000 ;
#line 19 "../chopb/decomp.ch"
#line 20 "../chopb/decomp.ch"
    PTREE   inter = (PTREE)0, line ;
#line 20 "../chopb/decomp.ch"
#line 20 "../chopb/decomp.ch"
#line 21 "../chopb/decomp.ch"
    char    *ptLine ;
#line 21 "../chopb/decomp.ch"
#line 20 "../chopb/decomp.ch"
    (inter=list);
#line 20 "../chopb/decomp.ch"
#line 20 "../chopb/decomp.ch"
#line 23 "../chopb/decomp.ch"
    while ( inter ) {
#line 23 "../chopb/decomp.ch"
#line 24 "../chopb/decomp.ch"
                        ptLine = BrainyValue(inter);
#line 24 "../chopb/decomp.ch"
#line 25 "../chopb/decomp.ch"
                        nb = 0 ;
#line 25 "../chopb/decomp.ch"
#line 26 "../chopb/decomp.ch"
                        while ( *ptLine && (*ptLine == ' ' || *ptLine == '\t') ) {
#line 26 "../chopb/decomp.ch"
#line 27 "../chopb/decomp.ch"
ptLine++ ;
#line 27 "../chopb/decomp.ch"
#line 28 "../chopb/decomp.ch"
nb++ ;
#line 28 "../chopb/decomp.ch"
#line 28 "../chopb/decomp.ch"
                                                                                          }
#line 28 "../chopb/decomp.ch"
#line 30 "../chopb/decomp.ch"
                        if ( *ptLine ) 
#line 30 "../chopb/decomp.ch"
#line 31 "../chopb/decomp.ch"
                            min = nb < min ? nb : min ;
#line 31 "../chopb/decomp.ch"
#line 32 "../chopb/decomp.ch"
                        (inter?inter.Nextl():(PPTREE)0);
#line 32 "../chopb/decomp.ch"
#line 32 "../chopb/decomp.ch"
                     }
#line 32 "../chopb/decomp.ch"
#line 34 "../chopb/decomp.ch"
    if ( min != 32000 && min ) {
#line 34 "../chopb/decomp.ch"
#line 35 "../chopb/decomp.ch"
                                    (inter=list);
#line 35 "../chopb/decomp.ch"
#line 35 "../chopb/decomp.ch"
#line 36 "../chopb/decomp.ch"
                                    while ( inter ) {
#line 36 "../chopb/decomp.ch"
#line 37 "../chopb/decomp.ch"
                                                        ptLine = BrainyValue(inter);
#line 37 "../chopb/decomp.ch"
#line 38 "../chopb/decomp.ch"
                                                        if ( (nb = strlen(ptLine)) >= min ) {
#line 38 "../chopb/decomp.ch"
#line 39 "../chopb/decomp.ch"
memcpy(ptLine, ptLine + min, nb - min + 1);
#line 39 "../chopb/decomp.ch"
#line 39 "../chopb/decomp.ch"
                                                                                                 }
#line 39 "../chopb/decomp.ch"
#line 41 "../chopb/decomp.ch"
                                                        (inter?inter.Nextl():(PPTREE)0);
#line 41 "../chopb/decomp.ch"
#line 41 "../chopb/decomp.ch"
                                                     }
#line 41 "../chopb/decomp.ch"
#line 41 "../chopb/decomp.ch"
                                  }
#line 41 "../chopb/decomp.ch"
#line 46 "../chopb/decomp.ch"
    (inter=list);
#line 46 "../chopb/decomp.ch"
#line 46 "../chopb/decomp.ch"
#line 47 "../chopb/decomp.ch"
    while ( inter ) {
#line 47 "../chopb/decomp.ch"
#line 48 "../chopb/decomp.ch"
                        char    *string = Value(inter);
#line 48 "../chopb/decomp.ch"
#line 49 "../chopb/decomp.ch"
                        ptLine = string + strlen(string) - 1 ;
#line 49 "../chopb/decomp.ch"
#line 50 "../chopb/decomp.ch"
                        while ( ptLine >= string && (*ptLine == ' ' || *ptLine == '\t') ) 
#line 50 "../chopb/decomp.ch"
#line 51 "../chopb/decomp.ch"
                            ptLine-- ;
#line 51 "../chopb/decomp.ch"
#line 52 "../chopb/decomp.ch"
                        *(ptLine + 1) = '\0';
#line 52 "../chopb/decomp.ch"
#line 53 "../chopb/decomp.ch"
                        (inter?inter.Nextl():(PPTREE)0);
#line 53 "../chopb/decomp.ch"
#line 53 "../chopb/decomp.ch"
                     }
#line 53 "../chopb/decomp.ch"
#line 57 "../chopb/decomp.ch"
    (inter=list);
#line 57 "../chopb/decomp.ch"
#line 57 "../chopb/decomp.ch"
#line 58 "../chopb/decomp.ch"
    while ( inter ) {
#line 58 "../chopb/decomp.ch"
#line 59 "../chopb/decomp.ch"
                        if ( !strlen(Value(inter)) ) {
#line 59 "../chopb/decomp.ch"
#line 60 "../chopb/decomp.ch"
                                                            PTREE   old = (PTREE)0 ;
#line 60 "../chopb/decomp.ch"
#line 60 "../chopb/decomp.ch"
#line 60 "../chopb/decomp.ch"
                                                            (old=inter);
#line 60 "../chopb/decomp.ch"
#line 60 "../chopb/decomp.ch"
#line 61 "../chopb/decomp.ch"
                                                            (inter?inter.Nextl():(PPTREE)0);
#line 61 "../chopb/decomp.ch"
#line 62 "../chopb/decomp.ch"
                                                            {
#line 62 "../chopb/decomp.ch"
                                                                PPTREE _ptTree0= (PPTREE) 0,_sonTree0= (PPTREE) 0 ;
#line 62 "../chopb/decomp.ch"
                                                                if (_ptTree0= fathertree(old)) {
#line 62 "../chopb/decomp.ch"
                                                                    int rank = ranktree(old);
#line 62 "../chopb/decomp.ch"
                                                                    ReplaceTree(_ptTree0,rank,inter);
#line 62 "../chopb/decomp.ch"
                                                                }
#line 62 "../chopb/decomp.ch"
                                                            }
#line 62 "../chopb/decomp.ch"
#line 62 "../chopb/decomp.ch"
#line 62 "../chopb/decomp.ch"
                                                         } else 
#line 62 "../chopb/decomp.ch"
#line 64 "../chopb/decomp.ch"
                            (inter?inter.Nextl():(PPTREE)0);
#line 64 "../chopb/decomp.ch"
#line 64 "../chopb/decomp.ch"
#line 64 "../chopb/decomp.ch"
                     }
#line 64 "../chopb/decomp.ch"
#line 66 "../chopb/decomp.ch"
}
#line 66 "../chopb/decomp.ch"

#line 70 "../chopb/decomp.ch"
#line 70 "../chopb/decomp.ch"
PTREE DecompChopb::IntDecomp ( PTREE paramTree, int funcAlone )
#line 70 "../chopb/decomp.ch"
{
#line 70 "../chopb/decomp.ch"
    register PPTREE _inter ;
#line 70 "../chopb/decomp.ch"
#line 70 "../chopb/decomp.ch"
#line 73 "../chopb/decomp.ch"
    PTREE   ident, tree, list, son, exp1, exp2, exp, stat, param ;
#line 73 "../chopb/decomp.ch"
#line 73 "../chopb/decomp.ch"
#line 74 "../chopb/decomp.ch"
    int oldStatement = statementf ;
#line 74 "../chopb/decomp.ch"
#line 75 "../chopb/decomp.ch"
    PTREE   oldPostComment = (PTREE)0 ;
#line 75 "../chopb/decomp.ch"
#line 75 "../chopb/decomp.ch"
#line 76 "../chopb/decomp.ch"
    int first = 1 ;
#line 76 "../chopb/decomp.ch"
#line 75 "../chopb/decomp.ch"
    (oldPostComment=postComment);
#line 75 "../chopb/decomp.ch"
#line 75 "../chopb/decomp.ch"
#line 78 "../chopb/decomp.ch"
    switch ( NumberTree(paramTree) ) {
#line 78 "../chopb/decomp.ch"
#line 79 "../chopb/decomp.ch"
        case chopb::CHOP_DEF : 
#line 79 "../chopb/decomp.ch"
#line 79 "../chopb/decomp.ch"
            (ident=SonTree(paramTree, 1));
#line 79 "../chopb/decomp.ch"
#line 79 "../chopb/decomp.ch"
#line 79 "../chopb/decomp.ch"
            (tree=SonTree(paramTree, 2));
#line 79 "../chopb/decomp.ch"
#line 79 "../chopb/decomp.ch"
#line 79 "../chopb/decomp.ch"
        _Case0 : 
#line 79 "../chopb/decomp.ch"
#line 79 "../chopb/decomp.ch"
            ;
#line 79 "../chopb/decomp.ch"
#line 80 "../chopb/decomp.ch"
            if ( !((!ident)) ) {
#line 80 "../chopb/decomp.ch"
#line 81 "../chopb/decomp.ch"
                                    PrintString("language ");
#line 81 "../chopb/decomp.ch"
#line 81 "../chopb/decomp.ch"
                                    decomp(ident);
#line 81 "../chopb/decomp.ch"
#line 81 "../chopb/decomp.ch"
#line 81 "../chopb/decomp.ch"
                                    PrintString(";");
#line 81 "../chopb/decomp.ch"
#line 81 "../chopb/decomp.ch"
                                    LNewLine(1);
#line 81 "../chopb/decomp.ch"
#line 81 "../chopb/decomp.ch"
#line 82 "../chopb/decomp.ch"
                                    LNewLine(2);
#line 82 "../chopb/decomp.ch"
#line 82 "../chopb/decomp.ch"
#line 82 "../chopb/decomp.ch"
                                 }
#line 82 "../chopb/decomp.ch"
#line 84 "../chopb/decomp.ch"
            decomp(tree);
#line 84 "../chopb/decomp.ch"
#line 84 "../chopb/decomp.ch"
#line 85 "../chopb/decomp.ch"
            break ;
#line 85 "../chopb/decomp.ch"
#line 86 "../chopb/decomp.ch"
        case chopb::PARSE_ELEM : 
#line 86 "../chopb/decomp.ch"
#line 86 "../chopb/decomp.ch"
            (tree=SonTree(paramTree, 1));
#line 86 "../chopb/decomp.ch"
#line 86 "../chopb/decomp.ch"
#line 86 "../chopb/decomp.ch"
        _Case1 : 
#line 86 "../chopb/decomp.ch"
#line 86 "../chopb/decomp.ch"
            ;
#line 86 "../chopb/decomp.ch"
#line 87 "../chopb/decomp.ch"
            DumpBrainyValue(tree);
#line 87 "../chopb/decomp.ch"
#line 87 "../chopb/decomp.ch"
#line 88 "../chopb/decomp.ch"
            break ;
#line 88 "../chopb/decomp.ch"
#line 89 "../chopb/decomp.ch"
        case chopb::PARSE : 
#line 89 "../chopb/decomp.ch"
#line 89 "../chopb/decomp.ch"
            (list=SonTree(paramTree, 1));
#line 89 "../chopb/decomp.ch"
#line 89 "../chopb/decomp.ch"
#line 89 "../chopb/decomp.ch"
        _Case2 : 
#line 89 "../chopb/decomp.ch"
#line 89 "../chopb/decomp.ch"
            ;
#line 89 "../chopb/decomp.ch"
#line 90 "../chopb/decomp.ch"
            FrameContent(list);
#line 90 "../chopb/decomp.ch"
#line 91 "../chopb/decomp.ch"
            ((_inter = (PPTREE)paramTree,1) && 
#line 91 "../chopb/decomp.ch"
                ((list=SonTree(_inter,1)),1) &&
#line 91 "../chopb/decomp.ch"
                1);
#line 91 "../chopb/decomp.ch"
            ;
#line 91 "../chopb/decomp.ch"
#line 92 "../chopb/decomp.ch"
            PrintString("parse (");
#line 92 "../chopb/decomp.ch"
#line 93 "../chopb/decomp.ch"
            if ( ListLength(list) > 1 ) {
#line 93 "../chopb/decomp.ch"
#line 94 "../chopb/decomp.ch"
                                            LNewLine(1);
#line 94 "../chopb/decomp.ch"
#line 94 "../chopb/decomp.ch"
#line 95 "../chopb/decomp.ch"
                                            Tab();
#line 95 "../chopb/decomp.ch"
#line 95 "../chopb/decomp.ch"
#line 95 "../chopb/decomp.ch"
                                           }
#line 95 "../chopb/decomp.ch"
#line 98 "../chopb/decomp.ch"
            Mark();
#line 98 "../chopb/decomp.ch"
            while ( (son=(list?list.Nextl():(PPTREE)0)) ) {
#line 98 "../chopb/decomp.ch"
#line 99 "../chopb/decomp.ch"
                                                                decomp(son);
#line 99 "../chopb/decomp.ch"
#line 99 "../chopb/decomp.ch"
#line 100 "../chopb/decomp.ch"
                                                                if ( list ) 
#line 100 "../chopb/decomp.ch"
#line 101 "../chopb/decomp.ch"
                                                                    LNewLine(1);
#line 101 "../chopb/decomp.ch"
#line 101 "../chopb/decomp.ch"
#line 101 "../chopb/decomp.ch"
                                                              }
#line 101 "../chopb/decomp.ch"
            UnMark();
#line 101 "../chopb/decomp.ch"
#line 101 "../chopb/decomp.ch"
#line 106 "../chopb/decomp.ch"
            if ( ListLength(sontree(paramTree, 1)) > 1 ) 
#line 106 "../chopb/decomp.ch"
#line 107 "../chopb/decomp.ch"
                LNewLine(1);
#line 107 "../chopb/decomp.ch"
#line 107 "../chopb/decomp.ch"
#line 108 "../chopb/decomp.ch"
            PrintString(")");
#line 108 "../chopb/decomp.ch"
#line 109 "../chopb/decomp.ch"
            break ;
#line 109 "../chopb/decomp.ch"
#line 110 "../chopb/decomp.ch"
        case chopb::NODE_TREE : 
#line 110 "../chopb/decomp.ch"
#line 110 "../chopb/decomp.ch"
            (list=SonTree(paramTree, 1));
#line 110 "../chopb/decomp.ch"
#line 110 "../chopb/decomp.ch"
#line 110 "../chopb/decomp.ch"
        _Case3 : 
#line 110 "../chopb/decomp.ch"
#line 110 "../chopb/decomp.ch"
            ;
#line 110 "../chopb/decomp.ch"
#line 111 "../chopb/decomp.ch"
            statementf = 0 ;
#line 111 "../chopb/decomp.ch"
#line 112 "../chopb/decomp.ch"
            PrintString("<");
#line 112 "../chopb/decomp.ch"
#line 113 "../chopb/decomp.ch"
            while ( list ) {
#line 113 "../chopb/decomp.ch"
#line 114 "../chopb/decomp.ch"
                                (son=(list?list.Nextl():(PPTREE)0));
#line 114 "../chopb/decomp.ch"
#line 114 "../chopb/decomp.ch"
#line 115 "../chopb/decomp.ch"
                                decomp(son);
#line 115 "../chopb/decomp.ch"
#line 115 "../chopb/decomp.ch"
#line 116 "../chopb/decomp.ch"
                                if ( list ) 
#line 116 "../chopb/decomp.ch"
#line 117 "../chopb/decomp.ch"
                                    PrintString(",");
#line 117 "../chopb/decomp.ch"
#line 117 "../chopb/decomp.ch"
                            }
#line 117 "../chopb/decomp.ch"
#line 119 "../chopb/decomp.ch"
            PrintString(">");
#line 119 "../chopb/decomp.ch"
#line 120 "../chopb/decomp.ch"
            break ;
#line 120 "../chopb/decomp.ch"
#line 122 "../chopb/decomp.ch"
        case chopb::NIL : 
#line 122 "../chopb/decomp.ch"
#line 122 "../chopb/decomp.ch"
        _Case4 : 
#line 122 "../chopb/decomp.ch"
#line 122 "../chopb/decomp.ch"
            ;
#line 122 "../chopb/decomp.ch"
#line 122 "../chopb/decomp.ch"
            PrintString("()");
#line 122 "../chopb/decomp.ch"
#line 123 "../chopb/decomp.ch"
            break ;
#line 123 "../chopb/decomp.ch"
#line 125 "../chopb/decomp.ch"
        case chopb::DEF_IDENT : 
#line 125 "../chopb/decomp.ch"
#line 125 "../chopb/decomp.ch"
        _Case5 : 
#line 125 "../chopb/decomp.ch"
#line 125 "../chopb/decomp.ch"
            ;
#line 125 "../chopb/decomp.ch"
#line 125 "../chopb/decomp.ch"
            PrintString("<>");
#line 125 "../chopb/decomp.ch"
#line 126 "../chopb/decomp.ch"
            break ;
#line 126 "../chopb/decomp.ch"
#line 127 "../chopb/decomp.ch"
        case chopb::VALUE : 
#line 127 "../chopb/decomp.ch"
#line 127 "../chopb/decomp.ch"
            (ident=SonTree(paramTree, 1));
#line 127 "../chopb/decomp.ch"
#line 127 "../chopb/decomp.ch"
#line 127 "../chopb/decomp.ch"
        _Case6 : 
#line 127 "../chopb/decomp.ch"
#line 127 "../chopb/decomp.ch"
            ;
#line 127 "../chopb/decomp.ch"
#line 128 "../chopb/decomp.ch"
            statementf = 0 ;
#line 128 "../chopb/decomp.ch"
#line 129 "../chopb/decomp.ch"
            PrintString("value(");
#line 129 "../chopb/decomp.ch"
#line 129 "../chopb/decomp.ch"
            decomp(ident);
#line 129 "../chopb/decomp.ch"
#line 129 "../chopb/decomp.ch"
#line 129 "../chopb/decomp.ch"
            PrintString(")");
#line 129 "../chopb/decomp.ch"
#line 130 "../chopb/decomp.ch"
            break ;
#line 130 "../chopb/decomp.ch"
#line 131 "../chopb/decomp.ch"
        case chopb::NEXT : 
#line 131 "../chopb/decomp.ch"
#line 131 "../chopb/decomp.ch"
            (ident=SonTree(paramTree, 1));
#line 131 "../chopb/decomp.ch"
#line 131 "../chopb/decomp.ch"
#line 131 "../chopb/decomp.ch"
        _Case7 : 
#line 131 "../chopb/decomp.ch"
#line 131 "../chopb/decomp.ch"
            ;
#line 131 "../chopb/decomp.ch"
#line 132 "../chopb/decomp.ch"
            statementf = 0 ;
#line 132 "../chopb/decomp.ch"
#line 133 "../chopb/decomp.ch"
            PrintString("nextl(");
#line 133 "../chopb/decomp.ch"
#line 133 "../chopb/decomp.ch"
            decomp(ident);
#line 133 "../chopb/decomp.ch"
#line 133 "../chopb/decomp.ch"
#line 133 "../chopb/decomp.ch"
            PrintString(")");
#line 133 "../chopb/decomp.ch"
#line 134 "../chopb/decomp.ch"
            if ( oldStatement ) {
#line 134 "../chopb/decomp.ch"
#line 135 "../chopb/decomp.ch"
                                    SepBefore();
#line 135 "../chopb/decomp.ch"
#line 135 "../chopb/decomp.ch"
#line 135 "../chopb/decomp.ch"
                                    PrintString(";");
#line 135 "../chopb/decomp.ch"
#line 135 "../chopb/decomp.ch"
                                 }
#line 135 "../chopb/decomp.ch"
#line 137 "../chopb/decomp.ch"
            break ;
#line 137 "../chopb/decomp.ch"
#line 138 "../chopb/decomp.ch"
        case chopb::IN_LANG : 
#line 138 "../chopb/decomp.ch"
#line 138 "../chopb/decomp.ch"
            (exp1=SonTree(paramTree, 1));
#line 138 "../chopb/decomp.ch"
#line 138 "../chopb/decomp.ch"
#line 138 "../chopb/decomp.ch"
            (exp2=SonTree(paramTree, 2));
#line 138 "../chopb/decomp.ch"
#line 138 "../chopb/decomp.ch"
#line 138 "../chopb/decomp.ch"
        _Case8 : 
#line 138 "../chopb/decomp.ch"
#line 138 "../chopb/decomp.ch"
            ;
#line 138 "../chopb/decomp.ch"
#line 139 "../chopb/decomp.ch"
            PrintString("in ");
#line 139 "../chopb/decomp.ch"
#line 139 "../chopb/decomp.ch"
            decomp(exp1);
#line 139 "../chopb/decomp.ch"
#line 139 "../chopb/decomp.ch"
#line 139 "../chopb/decomp.ch"
            SepAfter();
#line 139 "../chopb/decomp.ch"
#line 139 "../chopb/decomp.ch"
#line 140 "../chopb/decomp.ch"
            (postComment=exp2);
#line 140 "../chopb/decomp.ch"
#line 140 "../chopb/decomp.ch"
#line 141 "../chopb/decomp.ch"
            decomp(exp2);
#line 141 "../chopb/decomp.ch"
#line 141 "../chopb/decomp.ch"
#line 142 "../chopb/decomp.ch"
            control_stat1(exp2);
#line 142 "../chopb/decomp.ch"
#line 143 "../chopb/decomp.ch"
            break ;
#line 143 "../chopb/decomp.ch"
#line 144 "../chopb/decomp.ch"
        case chopb::EXPO : 
#line 144 "../chopb/decomp.ch"
#line 144 "../chopb/decomp.ch"
            (exp1=SonTree(paramTree, 1));
#line 144 "../chopb/decomp.ch"
#line 144 "../chopb/decomp.ch"
#line 144 "../chopb/decomp.ch"
            (exp2=SonTree(paramTree, 2));
#line 144 "../chopb/decomp.ch"
#line 144 "../chopb/decomp.ch"
#line 144 "../chopb/decomp.ch"
        _Case9 : 
#line 144 "../chopb/decomp.ch"
#line 144 "../chopb/decomp.ch"
            ;
#line 144 "../chopb/decomp.ch"
#line 145 "../chopb/decomp.ch"
            decomp(exp1);
#line 145 "../chopb/decomp.ch"
#line 145 "../chopb/decomp.ch"
#line 145 "../chopb/decomp.ch"
            Space(1);
#line 145 "../chopb/decomp.ch"
#line 145 "../chopb/decomp.ch"
#line 145 "../chopb/decomp.ch"
            PrintString("**");
#line 145 "../chopb/decomp.ch"
#line 145 "../chopb/decomp.ch"
            Space(1);
#line 145 "../chopb/decomp.ch"
#line 145 "../chopb/decomp.ch"
#line 145 "../chopb/decomp.ch"
            decomp(exp2);
#line 145 "../chopb/decomp.ch"
#line 145 "../chopb/decomp.ch"
#line 146 "../chopb/decomp.ch"
            break ;
#line 146 "../chopb/decomp.ch"
#line 147 "../chopb/decomp.ch"
        case chopb::EXPO_AFF : 
#line 147 "../chopb/decomp.ch"
#line 147 "../chopb/decomp.ch"
            (exp1=SonTree(paramTree, 1));
#line 147 "../chopb/decomp.ch"
#line 147 "../chopb/decomp.ch"
#line 147 "../chopb/decomp.ch"
            (exp2=SonTree(paramTree, 2));
#line 147 "../chopb/decomp.ch"
#line 147 "../chopb/decomp.ch"
#line 147 "../chopb/decomp.ch"
        _Case10 : 
#line 147 "../chopb/decomp.ch"
#line 147 "../chopb/decomp.ch"
            ;
#line 147 "../chopb/decomp.ch"
#line 148 "../chopb/decomp.ch"
            statementf = 0 ;
#line 148 "../chopb/decomp.ch"
#line 149 "../chopb/decomp.ch"
            decomp(exp1);
#line 149 "../chopb/decomp.ch"
#line 149 "../chopb/decomp.ch"
#line 149 "../chopb/decomp.ch"
            PrintString(" **= ");
#line 149 "../chopb/decomp.ch"
#line 149 "../chopb/decomp.ch"
            decomp(exp2);
#line 149 "../chopb/decomp.ch"
#line 149 "../chopb/decomp.ch"
#line 150 "../chopb/decomp.ch"
            if ( oldStatement ) {
#line 150 "../chopb/decomp.ch"
#line 151 "../chopb/decomp.ch"
                                    SepBefore();
#line 151 "../chopb/decomp.ch"
#line 151 "../chopb/decomp.ch"
#line 151 "../chopb/decomp.ch"
                                    PrintString(";");
#line 151 "../chopb/decomp.ch"
#line 151 "../chopb/decomp.ch"
                                 }
#line 151 "../chopb/decomp.ch"
#line 153 "../chopb/decomp.ch"
            break ;
#line 153 "../chopb/decomp.ch"
#line 154 "../chopb/decomp.ch"
        case chopb::NODE_LIST : 
#line 154 "../chopb/decomp.ch"
#line 154 "../chopb/decomp.ch"
            (exp1=SonTree(paramTree, 1));
#line 154 "../chopb/decomp.ch"
#line 154 "../chopb/decomp.ch"
#line 154 "../chopb/decomp.ch"
        _Case11 : 
#line 154 "../chopb/decomp.ch"
#line 154 "../chopb/decomp.ch"
            ;
#line 154 "../chopb/decomp.ch"
#line 155 "../chopb/decomp.ch"
            PrintString("... ");
#line 155 "../chopb/decomp.ch"
#line 156 "../chopb/decomp.ch"
            while ( !((!exp1)) ) {
#line 156 "../chopb/decomp.ch"
#line 157 "../chopb/decomp.ch"
                                    (son=(exp1?exp1.Nextl():(PPTREE)0));
#line 157 "../chopb/decomp.ch"
#line 157 "../chopb/decomp.ch"
#line 158 "../chopb/decomp.ch"
                                    decomp(son);
#line 158 "../chopb/decomp.ch"
#line 158 "../chopb/decomp.ch"
#line 159 "../chopb/decomp.ch"
                                    if ( !((!exp1)) ) 
#line 159 "../chopb/decomp.ch"
#line 160 "../chopb/decomp.ch"
                                        PrintString(" || ");
#line 160 "../chopb/decomp.ch"
#line 160 "../chopb/decomp.ch"
                                   }
#line 160 "../chopb/decomp.ch"
#line 162 "../chopb/decomp.ch"
            break ;
#line 162 "../chopb/decomp.ch"
#line 163 "../chopb/decomp.ch"
        case chopb::ARRO : 
#line 163 "../chopb/decomp.ch"
#line 163 "../chopb/decomp.ch"
            (exp1=SonTree(paramTree, 1));
#line 163 "../chopb/decomp.ch"
#line 163 "../chopb/decomp.ch"
#line 163 "../chopb/decomp.ch"
        _Case12 : 
#line 163 "../chopb/decomp.ch"
#line 163 "../chopb/decomp.ch"
            ;
#line 163 "../chopb/decomp.ch"
#line 164 "../chopb/decomp.ch"
            statementf = 0 ;
#line 164 "../chopb/decomp.ch"
#line 165 "../chopb/decomp.ch"
            PrintString("@");
#line 165 "../chopb/decomp.ch"
#line 165 "../chopb/decomp.ch"
            decomp(exp1);
#line 165 "../chopb/decomp.ch"
#line 165 "../chopb/decomp.ch"
#line 166 "../chopb/decomp.ch"
            break ;
#line 166 "../chopb/decomp.ch"
#line 167 "../chopb/decomp.ch"
        case chopb::ALINEA : 
#line 167 "../chopb/decomp.ch"
#line 167 "../chopb/decomp.ch"
            (list=SonTree(paramTree, 1));
#line 167 "../chopb/decomp.ch"
#line 167 "../chopb/decomp.ch"
#line 167 "../chopb/decomp.ch"
        _Case13 : 
#line 167 "../chopb/decomp.ch"
#line 167 "../chopb/decomp.ch"
            ;
#line 167 "../chopb/decomp.ch"
#line 168 "../chopb/decomp.ch"
            Mark();
#line 168 "../chopb/decomp.ch"
            PrintString("{{");
#line 168 "../chopb/decomp.ch"
            LNewLine(1);
#line 168 "../chopb/decomp.ch"
#line 168 "../chopb/decomp.ch"
            Tab();
#line 168 "../chopb/decomp.ch"
#line 168 "../chopb/decomp.ch"
            Mark();
#line 168 "../chopb/decomp.ch"
            statementf = 1 ;
#line 168 "../chopb/decomp.ch"
            while ( !((!list)) ) {
#line 168 "../chopb/decomp.ch"
#line 173 "../chopb/decomp.ch"
                                    (son=(list?list.Nextl():(PPTREE)0));
#line 173 "../chopb/decomp.ch"
#line 173 "../chopb/decomp.ch"
#line 174 "../chopb/decomp.ch"
                                    (postComment=son);
#line 174 "../chopb/decomp.ch"
#line 174 "../chopb/decomp.ch"
#line 175 "../chopb/decomp.ch"
                                    decomp(son);
#line 175 "../chopb/decomp.ch"
#line 175 "../chopb/decomp.ch"
#line 176 "../chopb/decomp.ch"
                                    if ( !Sequence(son, sontree(list, 1)) ) {
#line 176 "../chopb/decomp.ch"
#line 177 "../chopb/decomp.ch"
control_stat1(son);
#line 177 "../chopb/decomp.ch"
#line 178 "../chopb/decomp.ch"
LNewLine(1);
#line 178 "../chopb/decomp.ch"
#line 178 "../chopb/decomp.ch"
#line 178 "../chopb/decomp.ch"
                                                                                  } else 
#line 178 "../chopb/decomp.ch"
#line 180 "../chopb/decomp.ch"
                                        Space(1);
#line 180 "../chopb/decomp.ch"
#line 180 "../chopb/decomp.ch"
#line 180 "../chopb/decomp.ch"
#line 180 "../chopb/decomp.ch"
                                   }
#line 180 "../chopb/decomp.ch"
            UnMark();
#line 180 "../chopb/decomp.ch"
#line 180 "../chopb/decomp.ch"
            PrintString("}}");
#line 180 "../chopb/decomp.ch"
            UnMark();
#line 180 "../chopb/decomp.ch"
#line 180 "../chopb/decomp.ch"
#line 185 "../chopb/decomp.ch"
            break ;
#line 185 "../chopb/decomp.ch"
#line 186 "../chopb/decomp.ch"
        case chopb::FOREACH : 
#line 186 "../chopb/decomp.ch"
#line 186 "../chopb/decomp.ch"
            (exp1=SonTree(paramTree, 1));
#line 186 "../chopb/decomp.ch"
#line 186 "../chopb/decomp.ch"
#line 186 "../chopb/decomp.ch"
            (exp2=SonTree(paramTree, 2));
#line 186 "../chopb/decomp.ch"
#line 186 "../chopb/decomp.ch"
#line 186 "../chopb/decomp.ch"
            (stat=SonTree(paramTree, 3));
#line 186 "../chopb/decomp.ch"
#line 186 "../chopb/decomp.ch"
#line 186 "../chopb/decomp.ch"
        _Case14 : 
#line 186 "../chopb/decomp.ch"
#line 186 "../chopb/decomp.ch"
            ;
#line 186 "../chopb/decomp.ch"
#line 187 "../chopb/decomp.ch"
            PrintString("foreach (");
#line 187 "../chopb/decomp.ch"
#line 187 "../chopb/decomp.ch"
            decomp(exp1);
#line 187 "../chopb/decomp.ch"
#line 187 "../chopb/decomp.ch"
#line 187 "../chopb/decomp.ch"
            PrintString(",");
#line 187 "../chopb/decomp.ch"
#line 187 "../chopb/decomp.ch"
            decomp(exp2);
#line 187 "../chopb/decomp.ch"
#line 187 "../chopb/decomp.ch"
#line 187 "../chopb/decomp.ch"
            PrintString(",");
#line 187 "../chopb/decomp.ch"
#line 188 "../chopb/decomp.ch"
            if ( !(((_inter = (PPTREE)stat,1) && 
#line 188 "../chopb/decomp.ch"
                        (NumberTree(_inter) == chopb::COMPOUND) &&
#line 188 "../chopb/decomp.ch"
                        1)) ) {
#line 188 "../chopb/decomp.ch"
#line 189 "../chopb/decomp.ch"
                                LNewLine(1);
#line 189 "../chopb/decomp.ch"
#line 189 "../chopb/decomp.ch"
#line 190 "../chopb/decomp.ch"
                                Tab();
#line 190 "../chopb/decomp.ch"
#line 190 "../chopb/decomp.ch"
#line 191 "../chopb/decomp.ch"
                                Mark();
#line 191 "../chopb/decomp.ch"
#line 191 "../chopb/decomp.ch"
                              }
#line 191 "../chopb/decomp.ch"
#line 193 "../chopb/decomp.ch"
            decomp(stat);
#line 193 "../chopb/decomp.ch"
#line 193 "../chopb/decomp.ch"
#line 194 "../chopb/decomp.ch"
            if ( !(((_inter = (PPTREE)stat,1) && 
#line 194 "../chopb/decomp.ch"
                        (NumberTree(_inter) == chopb::COMPOUND) &&
#line 194 "../chopb/decomp.ch"
                        1)) ) {
#line 194 "../chopb/decomp.ch"
#line 195 "../chopb/decomp.ch"
                                UnMark();
#line 195 "../chopb/decomp.ch"
#line 196 "../chopb/decomp.ch"
                                LNewLine(1);
#line 196 "../chopb/decomp.ch"
#line 196 "../chopb/decomp.ch"
#line 196 "../chopb/decomp.ch"
                              }
#line 196 "../chopb/decomp.ch"
#line 198 "../chopb/decomp.ch"
            PrintString(")");
#line 198 "../chopb/decomp.ch"
#line 199 "../chopb/decomp.ch"
            break ;
#line 199 "../chopb/decomp.ch"
#line 200 "../chopb/decomp.ch"
        case chopb::FORALLSONS : 
#line 200 "../chopb/decomp.ch"
#line 200 "../chopb/decomp.ch"
            (exp1=SonTree(paramTree, 1));
#line 200 "../chopb/decomp.ch"
#line 200 "../chopb/decomp.ch"
#line 200 "../chopb/decomp.ch"
            (stat=SonTree(paramTree, 2));
#line 200 "../chopb/decomp.ch"
#line 200 "../chopb/decomp.ch"
#line 200 "../chopb/decomp.ch"
        _Case15 : 
#line 200 "../chopb/decomp.ch"
#line 200 "../chopb/decomp.ch"
            ;
#line 200 "../chopb/decomp.ch"
#line 201 "../chopb/decomp.ch"
            PrintString("forallsons (");
#line 201 "../chopb/decomp.ch"
#line 201 "../chopb/decomp.ch"
            decomp(exp1);
#line 201 "../chopb/decomp.ch"
#line 201 "../chopb/decomp.ch"
#line 201 "../chopb/decomp.ch"
            PrintString(",");
#line 201 "../chopb/decomp.ch"
#line 202 "../chopb/decomp.ch"
            if ( !(((_inter = (PPTREE)stat,1) && 
#line 202 "../chopb/decomp.ch"
                        (NumberTree(_inter) == chopb::COMPOUND) &&
#line 202 "../chopb/decomp.ch"
                        1)) ) {
#line 202 "../chopb/decomp.ch"
#line 203 "../chopb/decomp.ch"
                                LNewLine(1);
#line 203 "../chopb/decomp.ch"
#line 203 "../chopb/decomp.ch"
#line 204 "../chopb/decomp.ch"
                                Tab();
#line 204 "../chopb/decomp.ch"
#line 204 "../chopb/decomp.ch"
#line 205 "../chopb/decomp.ch"
                                Mark();
#line 205 "../chopb/decomp.ch"
#line 205 "../chopb/decomp.ch"
                              }
#line 205 "../chopb/decomp.ch"
#line 207 "../chopb/decomp.ch"
            decomp(stat);
#line 207 "../chopb/decomp.ch"
#line 207 "../chopb/decomp.ch"
#line 208 "../chopb/decomp.ch"
            if ( !(((_inter = (PPTREE)stat,1) && 
#line 208 "../chopb/decomp.ch"
                        (NumberTree(_inter) == chopb::COMPOUND) &&
#line 208 "../chopb/decomp.ch"
                        1)) ) {
#line 208 "../chopb/decomp.ch"
#line 209 "../chopb/decomp.ch"
                                UnMark();
#line 209 "../chopb/decomp.ch"
#line 210 "../chopb/decomp.ch"
                                LNewLine(1);
#line 210 "../chopb/decomp.ch"
#line 210 "../chopb/decomp.ch"
#line 210 "../chopb/decomp.ch"
                              }
#line 210 "../chopb/decomp.ch"
#line 212 "../chopb/decomp.ch"
            PrintString(")");
#line 212 "../chopb/decomp.ch"
#line 213 "../chopb/decomp.ch"
            break ;
#line 213 "../chopb/decomp.ch"
#line 215 "../chopb/decomp.ch"
        case chopb::SEP_BEFORE : 
#line 215 "../chopb/decomp.ch"
#line 215 "../chopb/decomp.ch"
        _Case16 : 
#line 215 "../chopb/decomp.ch"
#line 215 "../chopb/decomp.ch"
            ;
#line 215 "../chopb/decomp.ch"
#line 215 "../chopb/decomp.ch"
            PrintString("<SEPB>");
#line 215 "../chopb/decomp.ch"
#line 216 "../chopb/decomp.ch"
            break ;
#line 216 "../chopb/decomp.ch"
#line 218 "../chopb/decomp.ch"
        case chopb::SEP_AFTER : 
#line 218 "../chopb/decomp.ch"
#line 218 "../chopb/decomp.ch"
        _Case17 : 
#line 218 "../chopb/decomp.ch"
#line 218 "../chopb/decomp.ch"
            ;
#line 218 "../chopb/decomp.ch"
#line 218 "../chopb/decomp.ch"
            PrintString("<SEPA>");
#line 218 "../chopb/decomp.ch"
#line 219 "../chopb/decomp.ch"
            break ;
#line 219 "../chopb/decomp.ch"
#line 221 "../chopb/decomp.ch"
        case chopb::SEP_OMIT : 
#line 221 "../chopb/decomp.ch"
#line 221 "../chopb/decomp.ch"
        _Case18 : 
#line 221 "../chopb/decomp.ch"
#line 221 "../chopb/decomp.ch"
            ;
#line 221 "../chopb/decomp.ch"
#line 221 "../chopb/decomp.ch"
            PrintString("<SEPO>");
#line 221 "../chopb/decomp.ch"
#line 222 "../chopb/decomp.ch"
            break ;
#line 222 "../chopb/decomp.ch"
#line 223 "../chopb/decomp.ch"
        case chopb::NEWLINE : 
#line 223 "../chopb/decomp.ch"
#line 223 "../chopb/decomp.ch"
            (param=SonTree(paramTree, 1));
#line 223 "../chopb/decomp.ch"
#line 223 "../chopb/decomp.ch"
#line 223 "../chopb/decomp.ch"
        _Case19 : 
#line 223 "../chopb/decomp.ch"
#line 223 "../chopb/decomp.ch"
            ;
#line 223 "../chopb/decomp.ch"
#line 224 "../chopb/decomp.ch"
            if ( (!param) ) 
#line 224 "../chopb/decomp.ch"
#line 225 "../chopb/decomp.ch"
                PrintString("<NL>");
#line 225 "../chopb/decomp.ch"
            else 
#line 226 "../chopb/decomp.ch"
            {
#line 226 "../chopb/decomp.ch"
#line 227 "../chopb/decomp.ch"
                PrintString("<NL,");
#line 227 "../chopb/decomp.ch"
#line 227 "../chopb/decomp.ch"
                decomp(param);
#line 227 "../chopb/decomp.ch"
#line 227 "../chopb/decomp.ch"
#line 227 "../chopb/decomp.ch"
                PrintString(">");
#line 227 "../chopb/decomp.ch"
#line 227 "../chopb/decomp.ch"
            }
#line 227 "../chopb/decomp.ch"
#line 229 "../chopb/decomp.ch"
            (oldPostComment=paramTree);
#line 229 "../chopb/decomp.ch"
#line 229 "../chopb/decomp.ch"
#line 230 "../chopb/decomp.ch"
            comm(paramTree, POST);
#line 230 "../chopb/decomp.ch"
#line 231 "../chopb/decomp.ch"
            LNewLine(1);
#line 231 "../chopb/decomp.ch"
#line 231 "../chopb/decomp.ch"
#line 232 "../chopb/decomp.ch"
            break ;
#line 232 "../chopb/decomp.ch"
#line 233 "../chopb/decomp.ch"
        case chopb::SPACE : 
#line 233 "../chopb/decomp.ch"
#line 233 "../chopb/decomp.ch"
            (param=SonTree(paramTree, 1));
#line 233 "../chopb/decomp.ch"
#line 233 "../chopb/decomp.ch"
#line 233 "../chopb/decomp.ch"
        _Case20 : 
#line 233 "../chopb/decomp.ch"
#line 233 "../chopb/decomp.ch"
            ;
#line 233 "../chopb/decomp.ch"
#line 234 "../chopb/decomp.ch"
            if ( (!param) ) 
#line 234 "../chopb/decomp.ch"
#line 235 "../chopb/decomp.ch"
                PrintString("<S>");
#line 235 "../chopb/decomp.ch"
            else 
#line 236 "../chopb/decomp.ch"
            {
#line 236 "../chopb/decomp.ch"
#line 237 "../chopb/decomp.ch"
                PrintString("<S,");
#line 237 "../chopb/decomp.ch"
#line 237 "../chopb/decomp.ch"
                decomp(param);
#line 237 "../chopb/decomp.ch"
#line 237 "../chopb/decomp.ch"
#line 237 "../chopb/decomp.ch"
                PrintString(">");
#line 237 "../chopb/decomp.ch"
#line 237 "../chopb/decomp.ch"
            }
#line 237 "../chopb/decomp.ch"
#line 239 "../chopb/decomp.ch"
            break ;
#line 239 "../chopb/decomp.ch"
#line 241 "../chopb/decomp.ch"
        case chopb::TAB : 
#line 241 "../chopb/decomp.ch"
#line 241 "../chopb/decomp.ch"
        _Case21 : 
#line 241 "../chopb/decomp.ch"
#line 241 "../chopb/decomp.ch"
            ;
#line 241 "../chopb/decomp.ch"
#line 241 "../chopb/decomp.ch"
            Tab();
#line 241 "../chopb/decomp.ch"
#line 241 "../chopb/decomp.ch"
#line 241 "../chopb/decomp.ch"
            PrintString("<T>");
#line 241 "../chopb/decomp.ch"
#line 242 "../chopb/decomp.ch"
            break ;
#line 242 "../chopb/decomp.ch"
#line 243 "../chopb/decomp.ch"
        default : 
#line 243 "../chopb/decomp.ch"
#line 243 "../chopb/decomp.ch"
        _Case22 : 
#line 243 "../chopb/decomp.ch"
#line 243 "../chopb/decomp.ch"
            ;
#line 243 "../chopb/decomp.ch"
#line 243 "../chopb/decomp.ch"
            return DecompCplus::IntDecomp(paramTree, funcAlone);
#line 243 "../chopb/decomp.ch"
    }
#line 243 "../chopb/decomp.ch"
#line 243 "../chopb/decomp.ch"
#line 245 "../chopb/decomp.ch"
    statementf = oldStatement ;
#line 245 "../chopb/decomp.ch"
#line 246 "../chopb/decomp.ch"
    return oldPostComment ;
#line 246 "../chopb/decomp.ch"
#line 247 "../chopb/decomp.ch"
}
#line 247 "../chopb/decomp.ch"

#line 249 "../chopb/decomp.ch"
#line 249 "../chopb/decomp.ch"
int DecompChopb::Sequence ( PTREE tree1, PTREE tree2 )
#line 249 "../chopb/decomp.ch"
{
#line 249 "../chopb/decomp.ch"
    register PPTREE _inter ;
#line 249 "../chopb/decomp.ch"
#line 249 "../chopb/decomp.ch"
#line 251 "../chopb/decomp.ch"
    PTREE   son ;
#line 251 "../chopb/decomp.ch"
#line 251 "../chopb/decomp.ch"
#line 254 "../chopb/decomp.ch"
    if ( !tree1 | !tree2 ) 
#line 254 "../chopb/decomp.ch"
#line 255 "../chopb/decomp.ch"
        return 0 ;
#line 255 "../chopb/decomp.ch"
#line 258 "../chopb/decomp.ch"
    ((_inter = (PPTREE)tree1,1) && 
#line 258 "../chopb/decomp.ch"
        (NumberTree(_inter) == chopb::ATTRIBUTS) &&
#line 258 "../chopb/decomp.ch"
        ((tree1=SonTree(_inter,1)),1) &&
#line 258 "../chopb/decomp.ch"
        1);
#line 258 "../chopb/decomp.ch"
    ;
#line 258 "../chopb/decomp.ch"
#line 259 "../chopb/decomp.ch"
    ((_inter = (PPTREE)tree2,1) && 
#line 259 "../chopb/decomp.ch"
        (NumberTree(_inter) == chopb::ATTRIBUTS) &&
#line 259 "../chopb/decomp.ch"
        ((tree2=SonTree(_inter,1)),1) &&
#line 259 "../chopb/decomp.ch"
        1);
#line 259 "../chopb/decomp.ch"
    ;
#line 259 "../chopb/decomp.ch"
#line 262 "../chopb/decomp.ch"
    switch ( NumberTree(tree1) ) {
#line 262 "../chopb/decomp.ch"
#line 263 "../chopb/decomp.ch"
        case chopb::EXP_LIST : 
#line 263 "../chopb/decomp.ch"
#line 263 "../chopb/decomp.ch"
            (son=SonTree(tree1, 1));
#line 263 "../chopb/decomp.ch"
#line 263 "../chopb/decomp.ch"
#line 263 "../chopb/decomp.ch"
        _Case23 : 
#line 263 "../chopb/decomp.ch"
#line 263 "../chopb/decomp.ch"
            ;
#line 263 "../chopb/decomp.ch"
#line 264 "../chopb/decomp.ch"
            if ( strcmp(BrainyValue(son), "WriteString") && strcmp(BrainyValue(son), "PrintString") ) 
#line 264 "../chopb/decomp.ch"
#line 266 "../chopb/decomp.ch"
                return 0 ;
#line 266 "../chopb/decomp.ch"
#line 266 "../chopb/decomp.ch"
            goto _Case24 ;
#line 266 "../chopb/decomp.ch"
#line 267 "../chopb/decomp.ch"
        case chopb::STRING_LIST : 
#line 267 "../chopb/decomp.ch"
#line 267 "../chopb/decomp.ch"
        _Case24 : 
#line 267 "../chopb/decomp.ch"
#line 267 "../chopb/decomp.ch"
            ;
#line 267 "../chopb/decomp.ch"
#line 267 "../chopb/decomp.ch"
            ;
#line 267 "../chopb/decomp.ch"
#line 267 "../chopb/decomp.ch"
            goto _Case25 ;
#line 267 "../chopb/decomp.ch"
#line 268 "../chopb/decomp.ch"
        case chopb::STRING : 
#line 268 "../chopb/decomp.ch"
#line 268 "../chopb/decomp.ch"
        _Case25 : 
#line 268 "../chopb/decomp.ch"
#line 268 "../chopb/decomp.ch"
            ;
#line 268 "../chopb/decomp.ch"
#line 268 "../chopb/decomp.ch"
            ;
#line 268 "../chopb/decomp.ch"
#line 268 "../chopb/decomp.ch"
            goto _Case26 ;
#line 268 "../chopb/decomp.ch"
#line 269 "../chopb/decomp.ch"
        case chopb::ARRO : 
#line 269 "../chopb/decomp.ch"
#line 269 "../chopb/decomp.ch"
        _Case26 : 
#line 269 "../chopb/decomp.ch"
#line 269 "../chopb/decomp.ch"
            ;
#line 269 "../chopb/decomp.ch"
#line 269 "../chopb/decomp.ch"
            ;
#line 269 "../chopb/decomp.ch"
#line 269 "../chopb/decomp.ch"
            goto _Case27 ;
#line 269 "../chopb/decomp.ch"
#line 270 "../chopb/decomp.ch"
        case chopb::VALUE : 
#line 270 "../chopb/decomp.ch"
#line 270 "../chopb/decomp.ch"
        _Case27 : 
#line 270 "../chopb/decomp.ch"
#line 270 "../chopb/decomp.ch"
            ;
#line 270 "../chopb/decomp.ch"
#line 270 "../chopb/decomp.ch"
            ;
#line 270 "../chopb/decomp.ch"
#line 270 "../chopb/decomp.ch"
            goto _Case28 ;
#line 270 "../chopb/decomp.ch"
#line 271 "../chopb/decomp.ch"
        case chopb::SPACE : 
#line 271 "../chopb/decomp.ch"
#line 271 "../chopb/decomp.ch"
        _Case28 : 
#line 271 "../chopb/decomp.ch"
#line 271 "../chopb/decomp.ch"
            ;
#line 271 "../chopb/decomp.ch"
#line 271 "../chopb/decomp.ch"
            ;
#line 271 "../chopb/decomp.ch"
#line 271 "../chopb/decomp.ch"
            goto _Case29 ;
#line 271 "../chopb/decomp.ch"
#line 272 "../chopb/decomp.ch"
        case chopb::SEP_BEFORE : 
#line 272 "../chopb/decomp.ch"
#line 272 "../chopb/decomp.ch"
        _Case29 : 
#line 272 "../chopb/decomp.ch"
#line 272 "../chopb/decomp.ch"
            ;
#line 272 "../chopb/decomp.ch"
#line 272 "../chopb/decomp.ch"
            ;
#line 272 "../chopb/decomp.ch"
#line 272 "../chopb/decomp.ch"
            goto _Case30 ;
#line 272 "../chopb/decomp.ch"
#line 273 "../chopb/decomp.ch"
        case chopb::SEP_AFTER : 
#line 273 "../chopb/decomp.ch"
#line 273 "../chopb/decomp.ch"
        _Case30 : 
#line 273 "../chopb/decomp.ch"
#line 273 "../chopb/decomp.ch"
            ;
#line 273 "../chopb/decomp.ch"
#line 273 "../chopb/decomp.ch"
            ;
#line 273 "../chopb/decomp.ch"
#line 273 "../chopb/decomp.ch"
            goto _Case31 ;
#line 273 "../chopb/decomp.ch"
#line 274 "../chopb/decomp.ch"
        case chopb::SEP_OMIT : 
#line 274 "../chopb/decomp.ch"
#line 274 "../chopb/decomp.ch"
        _Case31 : 
#line 274 "../chopb/decomp.ch"
#line 274 "../chopb/decomp.ch"
            ;
#line 274 "../chopb/decomp.ch"
#line 274 "../chopb/decomp.ch"
            ;
#line 274 "../chopb/decomp.ch"
#line 274 "../chopb/decomp.ch"
            goto _Case32 ;
#line 274 "../chopb/decomp.ch"
#line 276 "../chopb/decomp.ch"
        case chopb::TAB : 
#line 276 "../chopb/decomp.ch"
#line 276 "../chopb/decomp.ch"
        _Case32 : 
#line 276 "../chopb/decomp.ch"
#line 276 "../chopb/decomp.ch"
            ;
#line 276 "../chopb/decomp.ch"
#line 276 "../chopb/decomp.ch"
            switch ( NumberTree(tree2) ) {
#line 276 "../chopb/decomp.ch"
#line 277 "../chopb/decomp.ch"
                case chopb::EXP_LIST : 
#line 277 "../chopb/decomp.ch"
#line 277 "../chopb/decomp.ch"
                    (son=SonTree(tree2, 1));
#line 277 "../chopb/decomp.ch"
#line 277 "../chopb/decomp.ch"
#line 277 "../chopb/decomp.ch"
                _Case35 : 
#line 277 "../chopb/decomp.ch"
#line 277 "../chopb/decomp.ch"
                    ;
#line 277 "../chopb/decomp.ch"
#line 278 "../chopb/decomp.ch"
                    if ( strcmp(BrainyValue(son), "WriteString") && strcmp(BrainyValue(son), "PrintString") ) 
#line 278 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                        return 0 ;
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                    goto _Case36 ;
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                case chopb::STRING_LIST : 
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                _Case36 : 
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                    ;
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                    goto _Case37 ;
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                case chopb::STRING : 
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                _Case37 : 
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                    ;
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                    goto _Case38 ;
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                case chopb::ARRO : 
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                _Case38 : 
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                    ;
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                    goto _Case39 ;
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                case chopb::VALUE : 
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                _Case39 : 
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                    ;
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                    goto _Case40 ;
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                case chopb::NEWLINE : 
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                _Case40 : 
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                    ;
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                    goto _Case41 ;
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                case chopb::SPACE : 
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                _Case41 : 
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                    ;
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                    goto _Case42 ;
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                case chopb::ALINEA : 
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                _Case42 : 
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                    ;
#line 280 "../chopb/decomp.ch"
#line 280 "../chopb/decomp.ch"
                    goto _Case43 ;
#line 280 "../chopb/decomp.ch"
#line 288 "../chopb/decomp.ch"
                case chopb::SEP_BEFORE : 
#line 288 "../chopb/decomp.ch"
#line 288 "../chopb/decomp.ch"
                _Case43 : 
#line 288 "../chopb/decomp.ch"
#line 288 "../chopb/decomp.ch"
                    ;
#line 288 "../chopb/decomp.ch"
#line 288 "../chopb/decomp.ch"
                    ;
#line 288 "../chopb/decomp.ch"
#line 288 "../chopb/decomp.ch"
                    goto _Case44 ;
#line 288 "../chopb/decomp.ch"
#line 289 "../chopb/decomp.ch"
                case chopb::SEP_AFTER : 
#line 289 "../chopb/decomp.ch"
#line 289 "../chopb/decomp.ch"
                _Case44 : 
#line 289 "../chopb/decomp.ch"
#line 289 "../chopb/decomp.ch"
                    ;
#line 289 "../chopb/decomp.ch"
#line 289 "../chopb/decomp.ch"
                    ;
#line 289 "../chopb/decomp.ch"
#line 289 "../chopb/decomp.ch"
                    goto _Case45 ;
#line 289 "../chopb/decomp.ch"
#line 290 "../chopb/decomp.ch"
                case chopb::SEP_OMIT : 
#line 290 "../chopb/decomp.ch"
#line 290 "../chopb/decomp.ch"
                _Case45 : 
#line 290 "../chopb/decomp.ch"
#line 290 "../chopb/decomp.ch"
                    ;
#line 290 "../chopb/decomp.ch"
#line 290 "../chopb/decomp.ch"
                    ;
#line 290 "../chopb/decomp.ch"
#line 290 "../chopb/decomp.ch"
                    goto _Case46 ;
#line 290 "../chopb/decomp.ch"
#line 292 "../chopb/decomp.ch"
                case chopb::TAB : 
#line 292 "../chopb/decomp.ch"
#line 292 "../chopb/decomp.ch"
                _Case46 : 
#line 292 "../chopb/decomp.ch"
#line 292 "../chopb/decomp.ch"
                    ;
#line 292 "../chopb/decomp.ch"
#line 292 "../chopb/decomp.ch"
                    return 1 ;
#line 292 "../chopb/decomp.ch"
#line 293 "../chopb/decomp.ch"
                    break ;
#line 293 "../chopb/decomp.ch"
#line 294 "../chopb/decomp.ch"
                default : 
#line 294 "../chopb/decomp.ch"
#line 294 "../chopb/decomp.ch"
                _Case47 : 
#line 294 "../chopb/decomp.ch"
#line 294 "../chopb/decomp.ch"
                    ;
#line 294 "../chopb/decomp.ch"
#line 294 "../chopb/decomp.ch"
                    return 0 ;
#line 294 "../chopb/decomp.ch"
            }
#line 294 "../chopb/decomp.ch"
#line 294 "../chopb/decomp.ch"
#line 296 "../chopb/decomp.ch"
            break ;
#line 296 "../chopb/decomp.ch"
#line 298 "../chopb/decomp.ch"
        case chopb::ALINEA : 
#line 298 "../chopb/decomp.ch"
#line 298 "../chopb/decomp.ch"
        _Case33 : 
#line 298 "../chopb/decomp.ch"
#line 298 "../chopb/decomp.ch"
            ;
#line 298 "../chopb/decomp.ch"
#line 298 "../chopb/decomp.ch"
            if ( ((_inter = (PPTREE)tree2,1) && 
#line 298 "../chopb/decomp.ch"
                    (NumberTree(_inter) == chopb::NEWLINE) &&
#line 298 "../chopb/decomp.ch"
                    1) ) 
#line 298 "../chopb/decomp.ch"
#line 299 "../chopb/decomp.ch"
                return 1 ;
#line 299 "../chopb/decomp.ch"
            else 
#line 299 "../chopb/decomp.ch"
#line 301 "../chopb/decomp.ch"
                return 0 ;
#line 301 "../chopb/decomp.ch"
#line 301 "../chopb/decomp.ch"
#line 301 "../chopb/decomp.ch"
            goto _Case34 ;
#line 301 "../chopb/decomp.ch"
#line 302 "../chopb/decomp.ch"
        default : 
#line 302 "../chopb/decomp.ch"
#line 302 "../chopb/decomp.ch"
        _Case34 : 
#line 302 "../chopb/decomp.ch"
#line 302 "../chopb/decomp.ch"
            ;
#line 302 "../chopb/decomp.ch"
#line 302 "../chopb/decomp.ch"
            return DecompCplus::Sequence(tree1, tree2);
#line 302 "../chopb/decomp.ch"
    }
#line 302 "../chopb/decomp.ch"
#line 302 "../chopb/decomp.ch"
#line 304 "../chopb/decomp.ch"
}
#line 304 "../chopb/decomp.ch"

#line 306 "../chopb/decomp.ch"
#line 306 "../chopb/decomp.ch"
void DecompChopb::control_stat1 ( PTREE paramTree )
#line 306 "../chopb/decomp.ch"
{
#line 306 "../chopb/decomp.ch"
    register PPTREE _inter ;
#line 306 "../chopb/decomp.ch"
#line 306 "../chopb/decomp.ch"
#line 308 "../chopb/decomp.ch"
    PTREE   exp1 ;
#line 308 "../chopb/decomp.ch"
#line 308 "../chopb/decomp.ch"
#line 310 "../chopb/decomp.ch"
    switch ( NumberTree(paramTree) ) {
#line 310 "../chopb/decomp.ch"
#line 312 "../chopb/decomp.ch"
        case chopb::TAB : 
#line 312 "../chopb/decomp.ch"
#line 312 "../chopb/decomp.ch"
        _Case48 : 
#line 312 "../chopb/decomp.ch"
#line 312 "../chopb/decomp.ch"
            ;
#line 312 "../chopb/decomp.ch"
#line 312 "../chopb/decomp.ch"
            comm(paramTree, POST);
#line 312 "../chopb/decomp.ch"
#line 313 "../chopb/decomp.ch"
            return ;
#line 313 "../chopb/decomp.ch"
#line 313 "../chopb/decomp.ch"
            goto _Case49 ;
#line 313 "../chopb/decomp.ch"
#line 315 "../chopb/decomp.ch"
        case chopb::NEWLINE : 
#line 315 "../chopb/decomp.ch"
#line 315 "../chopb/decomp.ch"
        _Case49 : 
#line 315 "../chopb/decomp.ch"
#line 315 "../chopb/decomp.ch"
            ;
#line 315 "../chopb/decomp.ch"
#line 315 "../chopb/decomp.ch"
            comm(paramTree, POST);
#line 315 "../chopb/decomp.ch"
#line 316 "../chopb/decomp.ch"
            return ;
#line 316 "../chopb/decomp.ch"
#line 316 "../chopb/decomp.ch"
            goto _Case50 ;
#line 316 "../chopb/decomp.ch"
#line 317 "../chopb/decomp.ch"
        case chopb::ARRO : 
#line 317 "../chopb/decomp.ch"
#line 317 "../chopb/decomp.ch"
        _Case50 : 
#line 317 "../chopb/decomp.ch"
#line 317 "../chopb/decomp.ch"
            ;
#line 317 "../chopb/decomp.ch"
#line 317 "../chopb/decomp.ch"
            goto terminal ;
#line 317 "../chopb/decomp.ch"
#line 317 "../chopb/decomp.ch"
            goto _Case51 ;
#line 317 "../chopb/decomp.ch"
#line 318 "../chopb/decomp.ch"
        case chopb::VALUE : 
#line 318 "../chopb/decomp.ch"
#line 318 "../chopb/decomp.ch"
        _Case51 : 
#line 318 "../chopb/decomp.ch"
#line 318 "../chopb/decomp.ch"
            ;
#line 318 "../chopb/decomp.ch"
#line 318 "../chopb/decomp.ch"
            goto terminal ;
#line 318 "../chopb/decomp.ch"
#line 318 "../chopb/decomp.ch"
            goto _Case52 ;
#line 318 "../chopb/decomp.ch"
#line 319 "../chopb/decomp.ch"
        case chopb::NEXT : 
#line 319 "../chopb/decomp.ch"
#line 319 "../chopb/decomp.ch"
        _Case52 : 
#line 319 "../chopb/decomp.ch"
#line 319 "../chopb/decomp.ch"
            ;
#line 319 "../chopb/decomp.ch"
#line 319 "../chopb/decomp.ch"
            goto terminal ;
#line 319 "../chopb/decomp.ch"
#line 319 "../chopb/decomp.ch"
            goto _Case53 ;
#line 319 "../chopb/decomp.ch"
#line 320 "../chopb/decomp.ch"
        case chopb::FOREACH : 
#line 320 "../chopb/decomp.ch"
#line 320 "../chopb/decomp.ch"
        _Case53 : 
#line 320 "../chopb/decomp.ch"
#line 320 "../chopb/decomp.ch"
            ;
#line 320 "../chopb/decomp.ch"
#line 320 "../chopb/decomp.ch"
            goto terminal ;
#line 320 "../chopb/decomp.ch"
#line 320 "../chopb/decomp.ch"
            goto _Case54 ;
#line 320 "../chopb/decomp.ch"
#line 321 "../chopb/decomp.ch"
        case chopb::FORALLSONS : 
#line 321 "../chopb/decomp.ch"
#line 321 "../chopb/decomp.ch"
        _Case54 : 
#line 321 "../chopb/decomp.ch"
#line 321 "../chopb/decomp.ch"
            ;
#line 321 "../chopb/decomp.ch"
#line 321 "../chopb/decomp.ch"
            goto terminal ;
#line 321 "../chopb/decomp.ch"
#line 321 "../chopb/decomp.ch"
            goto _Case55 ;
#line 321 "../chopb/decomp.ch"
#line 322 "../chopb/decomp.ch"
        case chopb::IN_LANG : 
#line 322 "../chopb/decomp.ch"
#line 322 "../chopb/decomp.ch"
        _Case55 : 
#line 322 "../chopb/decomp.ch"
#line 322 "../chopb/decomp.ch"
            ;
#line 322 "../chopb/decomp.ch"
#line 322 "../chopb/decomp.ch"
            return ;
#line 322 "../chopb/decomp.ch"
#line 322 "../chopb/decomp.ch"
            goto _Case56 ;
#line 322 "../chopb/decomp.ch"
#line 322 "../chopb/decomp.ch"
        case chopb::SPACE : 
#line 322 "../chopb/decomp.ch"
#line 322 "../chopb/decomp.ch"
        _Case56 : 
#line 322 "../chopb/decomp.ch"
#line 322 "../chopb/decomp.ch"
            ;
#line 322 "../chopb/decomp.ch"
#line 322 "../chopb/decomp.ch"
            goto _Case57 ;
#line 322 "../chopb/decomp.ch"
#line 322 "../chopb/decomp.ch"
        case chopb::ALINEA : 
#line 322 "../chopb/decomp.ch"
#line 322 "../chopb/decomp.ch"
        _Case57 : 
#line 322 "../chopb/decomp.ch"
#line 322 "../chopb/decomp.ch"
            ;
#line 322 "../chopb/decomp.ch"
#line 322 "../chopb/decomp.ch"
            goto _Case58 ;
#line 322 "../chopb/decomp.ch"
#line 325 "../chopb/decomp.ch"
        case chopb::SEP_BEFORE : 
#line 325 "../chopb/decomp.ch"
#line 325 "../chopb/decomp.ch"
        _Case58 : 
#line 325 "../chopb/decomp.ch"
#line 325 "../chopb/decomp.ch"
            ;
#line 325 "../chopb/decomp.ch"
#line 325 "../chopb/decomp.ch"
            ;
#line 325 "../chopb/decomp.ch"
#line 325 "../chopb/decomp.ch"
            goto _Case59 ;
#line 325 "../chopb/decomp.ch"
#line 326 "../chopb/decomp.ch"
        case chopb::SEP_AFTER : 
#line 326 "../chopb/decomp.ch"
#line 326 "../chopb/decomp.ch"
        _Case59 : 
#line 326 "../chopb/decomp.ch"
#line 326 "../chopb/decomp.ch"
            ;
#line 326 "../chopb/decomp.ch"
#line 326 "../chopb/decomp.ch"
            ;
#line 326 "../chopb/decomp.ch"
#line 326 "../chopb/decomp.ch"
            goto _Case60 ;
#line 326 "../chopb/decomp.ch"
#line 327 "../chopb/decomp.ch"
        case chopb::SEP_OMIT : 
#line 327 "../chopb/decomp.ch"
#line 327 "../chopb/decomp.ch"
        _Case60 : 
#line 327 "../chopb/decomp.ch"
#line 327 "../chopb/decomp.ch"
            ;
#line 327 "../chopb/decomp.ch"
#line 327 "../chopb/decomp.ch"
            return ;
#line 327 "../chopb/decomp.ch"
#line 327 "../chopb/decomp.ch"
            goto _Case61 ;
#line 327 "../chopb/decomp.ch"
#line 328 "../chopb/decomp.ch"
        default : 
#line 328 "../chopb/decomp.ch"
#line 328 "../chopb/decomp.ch"
        _Case61 : 
#line 328 "../chopb/decomp.ch"
#line 328 "../chopb/decomp.ch"
            ;
#line 328 "../chopb/decomp.ch"
#line 328 "../chopb/decomp.ch"
            DecompCplus::control_stat1(paramTree);
#line 328 "../chopb/decomp.ch"
#line 328 "../chopb/decomp.ch"
            return ;
#line 328 "../chopb/decomp.ch"
    }
#line 328 "../chopb/decomp.ch"
#line 328 "../chopb/decomp.ch"
#line 330 "../chopb/decomp.ch"
    SepBefore();
#line 330 "../chopb/decomp.ch"
#line 330 "../chopb/decomp.ch"
#line 330 "../chopb/decomp.ch"
    PrintString(";");
#line 330 "../chopb/decomp.ch"
#line 331 "../chopb/decomp.ch"
terminal : 
#line 331 "../chopb/decomp.ch"
#line 332 "../chopb/decomp.ch"
    comm(paramTree, POST);
#line 332 "../chopb/decomp.ch"
#line 333 "../chopb/decomp.ch"
}
#line 333 "../chopb/decomp.ch"

#line 335 "../chopb/decomp.ch"
#line 335 "../chopb/decomp.ch"
int DecompChopb::OpTypeAlign ( PTREE tree )
#line 335 "../chopb/decomp.ch"
{
#line 335 "../chopb/decomp.ch"
    register PPTREE _inter ;
#line 335 "../chopb/decomp.ch"
#line 335 "../chopb/decomp.ch"
#line 337 "../chopb/decomp.ch"
    PTREE   son ;
#line 337 "../chopb/decomp.ch"
#line 337 "../chopb/decomp.ch"
#line 339 "../chopb/decomp.ch"
    switch ( NumberTree(tree) ) {
#line 339 "../chopb/decomp.ch"
#line 339 "../chopb/decomp.ch"
        case chopb::NODE_TREE : 
#line 339 "../chopb/decomp.ch"
#line 339 "../chopb/decomp.ch"
        _Case62 : 
#line 339 "../chopb/decomp.ch"
#line 339 "../chopb/decomp.ch"
            ;
#line 339 "../chopb/decomp.ch"
#line 339 "../chopb/decomp.ch"
            goto _Case63 ;
#line 339 "../chopb/decomp.ch"
#line 342 "../chopb/decomp.ch"
        case chopb::NODE_LIST : 
#line 342 "../chopb/decomp.ch"
#line 342 "../chopb/decomp.ch"
        _Case63 : 
#line 342 "../chopb/decomp.ch"
#line 342 "../chopb/decomp.ch"
            ;
#line 342 "../chopb/decomp.ch"
#line 342 "../chopb/decomp.ch"
            return LIST_ALIGN ;
#line 342 "../chopb/decomp.ch"
#line 343 "../chopb/decomp.ch"
            break ;
#line 343 "../chopb/decomp.ch"
#line 344 "../chopb/decomp.ch"
        default : 
#line 344 "../chopb/decomp.ch"
#line 344 "../chopb/decomp.ch"
        _Case64 : 
#line 344 "../chopb/decomp.ch"
#line 344 "../chopb/decomp.ch"
            ;
#line 344 "../chopb/decomp.ch"
#line 344 "../chopb/decomp.ch"
            return DecompCplus::OpTypeAlign(tree);
#line 344 "../chopb/decomp.ch"
    }
#line 344 "../chopb/decomp.ch"
#line 344 "../chopb/decomp.ch"
#line 346 "../chopb/decomp.ch"
}
#line 346 "../chopb/decomp.ch"

#line 348 "../chopb/decomp.ch"
#line 348 "../chopb/decomp.ch"
int DecompChopb::OpType ( PTREE tree )
#line 348 "../chopb/decomp.ch"
{
#line 348 "../chopb/decomp.ch"
    register PPTREE _inter ;
#line 348 "../chopb/decomp.ch"
#line 348 "../chopb/decomp.ch"
#line 350 "../chopb/decomp.ch"
    PTREE   son ;
#line 350 "../chopb/decomp.ch"
#line 350 "../chopb/decomp.ch"
#line 352 "../chopb/decomp.ch"
    switch ( NumberTree(tree) ) {
#line 352 "../chopb/decomp.ch"
#line 352 "../chopb/decomp.ch"
        case chopb::NODE_TREE : 
#line 352 "../chopb/decomp.ch"
#line 352 "../chopb/decomp.ch"
        _Case65 : 
#line 352 "../chopb/decomp.ch"
#line 352 "../chopb/decomp.ch"
            ;
#line 352 "../chopb/decomp.ch"
#line 352 "../chopb/decomp.ch"
            goto _Case66 ;
#line 352 "../chopb/decomp.ch"
#line 354 "../chopb/decomp.ch"
        case chopb::NODE_LIST : 
#line 354 "../chopb/decomp.ch"
#line 354 "../chopb/decomp.ch"
        _Case66 : 
#line 354 "../chopb/decomp.ch"
#line 354 "../chopb/decomp.ch"
            ;
#line 354 "../chopb/decomp.ch"
#line 354 "../chopb/decomp.ch"
            return 0 ;
#line 354 "../chopb/decomp.ch"
#line 354 "../chopb/decomp.ch"
            goto _Case67 ;
#line 354 "../chopb/decomp.ch"
#line 355 "../chopb/decomp.ch"
        default : 
#line 355 "../chopb/decomp.ch"
#line 355 "../chopb/decomp.ch"
        _Case67 : 
#line 355 "../chopb/decomp.ch"
#line 355 "../chopb/decomp.ch"
            ;
#line 355 "../chopb/decomp.ch"
#line 355 "../chopb/decomp.ch"
            return DecompCplus::OpType(tree);
#line 355 "../chopb/decomp.ch"
    }
#line 355 "../chopb/decomp.ch"
#line 355 "../chopb/decomp.ch"
#line 357 "../chopb/decomp.ch"
}
#line 357 "../chopb/decomp.ch"

#line 359 "../chopb/decomp.ch"
#line 359 "../chopb/decomp.ch"
int DecompChopb::IsTop ( PTREE tree, int internal )
#line 359 "../chopb/decomp.ch"
{
#line 359 "../chopb/decomp.ch"
    register PPTREE _inter ;
#line 359 "../chopb/decomp.ch"
#line 359 "../chopb/decomp.ch"
#line 361 "../chopb/decomp.ch"
    PTREE   father, prec, son ;
#line 361 "../chopb/decomp.ch"
#line 361 "../chopb/decomp.ch"
#line 363 "../chopb/decomp.ch"
    switch ( NumberTree(tree) ) {
#line 363 "../chopb/decomp.ch"
#line 364 "../chopb/decomp.ch"
        case chopb::EXP_LIST : 
#line 364 "../chopb/decomp.ch"
#line 364 "../chopb/decomp.ch"
            (son=SonTree(tree, 1));
#line 364 "../chopb/decomp.ch"
#line 364 "../chopb/decomp.ch"
#line 364 "../chopb/decomp.ch"
        _Case68 : 
#line 364 "../chopb/decomp.ch"
#line 364 "../chopb/decomp.ch"
            ;
#line 364 "../chopb/decomp.ch"
#line 365 "../chopb/decomp.ch"
            if ( strcmp(BrainyValue(son), "WriteString") && strcmp(BrainyValue(son), "PrintString") ) 
#line 365 "../chopb/decomp.ch"
#line 367 "../chopb/decomp.ch"
                return DecompCplus::IsTop(tree, internal);
#line 367 "../chopb/decomp.ch"
#line 367 "../chopb/decomp.ch"
            goto _Case69 ;
#line 367 "../chopb/decomp.ch"
#line 368 "../chopb/decomp.ch"
        case chopb::STRING_LIST : 
#line 368 "../chopb/decomp.ch"
#line 368 "../chopb/decomp.ch"
        _Case69 : 
#line 368 "../chopb/decomp.ch"
#line 368 "../chopb/decomp.ch"
            ;
#line 368 "../chopb/decomp.ch"
#line 368 "../chopb/decomp.ch"
            ;
#line 368 "../chopb/decomp.ch"
#line 368 "../chopb/decomp.ch"
            goto _Case70 ;
#line 368 "../chopb/decomp.ch"
#line 370 "../chopb/decomp.ch"
        case chopb::STRING : 
#line 370 "../chopb/decomp.ch"
#line 370 "../chopb/decomp.ch"
        _Case70 : 
#line 370 "../chopb/decomp.ch"
#line 370 "../chopb/decomp.ch"
            ;
#line 370 "../chopb/decomp.ch"
#line 370 "../chopb/decomp.ch"
            if ( DecompCplus::IsTop(tree, internal) == - 1 ) 
#line 370 "../chopb/decomp.ch"
#line 371 "../chopb/decomp.ch"
                return - 1 ;
#line 371 "../chopb/decomp.ch"
#line 371 "../chopb/decomp.ch"
            goto _Case71 ;
#line 371 "../chopb/decomp.ch"
#line 372 "../chopb/decomp.ch"
        case chopb::ARRO : 
#line 372 "../chopb/decomp.ch"
#line 372 "../chopb/decomp.ch"
        _Case71 : 
#line 372 "../chopb/decomp.ch"
#line 372 "../chopb/decomp.ch"
            ;
#line 372 "../chopb/decomp.ch"
#line 372 "../chopb/decomp.ch"
            ;
#line 372 "../chopb/decomp.ch"
#line 372 "../chopb/decomp.ch"
            goto _Case72 ;
#line 372 "../chopb/decomp.ch"
#line 373 "../chopb/decomp.ch"
        case chopb::VALUE : 
#line 373 "../chopb/decomp.ch"
#line 373 "../chopb/decomp.ch"
        _Case72 : 
#line 373 "../chopb/decomp.ch"
#line 373 "../chopb/decomp.ch"
            ;
#line 373 "../chopb/decomp.ch"
#line 373 "../chopb/decomp.ch"
            ;
#line 373 "../chopb/decomp.ch"
#line 373 "../chopb/decomp.ch"
            goto _Case73 ;
#line 373 "../chopb/decomp.ch"
#line 374 "../chopb/decomp.ch"
        case chopb::SPACE : 
#line 374 "../chopb/decomp.ch"
#line 374 "../chopb/decomp.ch"
        _Case73 : 
#line 374 "../chopb/decomp.ch"
#line 374 "../chopb/decomp.ch"
            ;
#line 374 "../chopb/decomp.ch"
#line 374 "../chopb/decomp.ch"
            ;
#line 374 "../chopb/decomp.ch"
#line 374 "../chopb/decomp.ch"
            goto _Case74 ;
#line 374 "../chopb/decomp.ch"
#line 375 "../chopb/decomp.ch"
        case chopb::SEP_BEFORE : 
#line 375 "../chopb/decomp.ch"
#line 375 "../chopb/decomp.ch"
        _Case74 : 
#line 375 "../chopb/decomp.ch"
#line 375 "../chopb/decomp.ch"
            ;
#line 375 "../chopb/decomp.ch"
#line 375 "../chopb/decomp.ch"
            ;
#line 375 "../chopb/decomp.ch"
#line 375 "../chopb/decomp.ch"
            goto _Case75 ;
#line 375 "../chopb/decomp.ch"
#line 376 "../chopb/decomp.ch"
        case chopb::SEP_AFTER : 
#line 376 "../chopb/decomp.ch"
#line 376 "../chopb/decomp.ch"
        _Case75 : 
#line 376 "../chopb/decomp.ch"
#line 376 "../chopb/decomp.ch"
            ;
#line 376 "../chopb/decomp.ch"
#line 376 "../chopb/decomp.ch"
            ;
#line 376 "../chopb/decomp.ch"
#line 376 "../chopb/decomp.ch"
            goto _Case76 ;
#line 376 "../chopb/decomp.ch"
#line 377 "../chopb/decomp.ch"
        case chopb::SEP_OMIT : 
#line 377 "../chopb/decomp.ch"
#line 377 "../chopb/decomp.ch"
        _Case76 : 
#line 377 "../chopb/decomp.ch"
#line 377 "../chopb/decomp.ch"
            ;
#line 377 "../chopb/decomp.ch"
#line 377 "../chopb/decomp.ch"
            ;
#line 377 "../chopb/decomp.ch"
#line 377 "../chopb/decomp.ch"
            goto _Case77 ;
#line 377 "../chopb/decomp.ch"
#line 379 "../chopb/decomp.ch"
        case chopb::TAB : 
#line 379 "../chopb/decomp.ch"
#line 379 "../chopb/decomp.ch"
        _Case77 : 
#line 379 "../chopb/decomp.ch"
#line 379 "../chopb/decomp.ch"
            ;
#line 379 "../chopb/decomp.ch"
#line 379 "../chopb/decomp.ch"
            (father=FatherTree(tree));
#line 379 "../chopb/decomp.ch"
#line 379 "../chopb/decomp.ch"
#line 380 "../chopb/decomp.ch"
            if ( ((_inter = (PPTREE)father,1) && 
#line 380 "../chopb/decomp.ch"
                    (NumberTree(_inter) == LIST) &&
#line 380 "../chopb/decomp.ch"
                    ((prec=SonTree(_inter,1)),1) &&
#line 380 "../chopb/decomp.ch"
                    1) ) {
#line 380 "../chopb/decomp.ch"
#line 381 "../chopb/decomp.ch"
                            if ( Sequence(prec, tree) ) 
#line 381 "../chopb/decomp.ch"
#line 382 "../chopb/decomp.ch"
                                return - 1 ;
#line 382 "../chopb/decomp.ch"
                            else 
#line 382 "../chopb/decomp.ch"
#line 384 "../chopb/decomp.ch"
                                return 300 ;
#line 384 "../chopb/decomp.ch"
#line 384 "../chopb/decomp.ch"
#line 384 "../chopb/decomp.ch"
                         } else 
#line 384 "../chopb/decomp.ch"
#line 386 "../chopb/decomp.ch"
                return 300 ;
#line 386 "../chopb/decomp.ch"
#line 386 "../chopb/decomp.ch"
#line 387 "../chopb/decomp.ch"
            break ;
#line 387 "../chopb/decomp.ch"
#line 388 "../chopb/decomp.ch"
        default : 
#line 388 "../chopb/decomp.ch"
#line 388 "../chopb/decomp.ch"
        _Case78 : 
#line 388 "../chopb/decomp.ch"
#line 388 "../chopb/decomp.ch"
            ;
#line 388 "../chopb/decomp.ch"
#line 388 "../chopb/decomp.ch"
            return DecompCplus::IsTop(tree, internal);
#line 388 "../chopb/decomp.ch"
    }
#line 388 "../chopb/decomp.ch"
#line 388 "../chopb/decomp.ch"
#line 390 "../chopb/decomp.ch"
}
#line 390 "../chopb/decomp.ch"

#line 395 "../chopb/decomp.ch"
#line 395 "../chopb/decomp.ch"
void DecompChopb::TraiterSequence ( PTREE tree )
#line 395 "../chopb/decomp.ch"
{
#line 395 "../chopb/decomp.ch"
    register PPTREE _inter ;
#line 395 "../chopb/decomp.ch"
#line 395 "../chopb/decomp.ch"
#line 398 "../chopb/decomp.ch"
    PTREE   list, son, father, list1, list2 ;
#line 398 "../chopb/decomp.ch"
#line 398 "../chopb/decomp.ch"
#line 399 "../chopb/decomp.ch"
    int x0, y0, x, y, dx, dy ;
#line 399 "../chopb/decomp.ch"
#line 400 "../chopb/decomp.ch"
    int delta = 0 ;
#line 400 "../chopb/decomp.ch"
#line 401 "../chopb/decomp.ch"
    PTREE   sonOld ;
#line 401 "../chopb/decomp.ch"
#line 401 "../chopb/decomp.ch"
#line 402 "../chopb/decomp.ch"
    ItPtree it (tree) ;
#line 402 "../chopb/decomp.ch"
#line 403 "../chopb/decomp.ch"
    PPTREE  _for_elem ;
#line 403 "../chopb/decomp.ch"
#line 405 "../chopb/decomp.ch"
    while ( for_elem = it++ ) {
#line 405 "../chopb/decomp.ch"
#line 406 "../chopb/decomp.ch"
                                    switch ( NumberTree(for_elem) ) {
#line 406 "../chopb/decomp.ch"
#line 408 "../chopb/decomp.ch"
                                        case chopb::DECLARATION : 
#line 408 "../chopb/decomp.ch"
#line 408 "../chopb/decomp.ch"
                                        _Case79 : 
#line 408 "../chopb/decomp.ch"
#line 408 "../chopb/decomp.ch"
                                            ;
#line 408 "../chopb/decomp.ch"
#line 408 "../chopb/decomp.ch"
                                            it.SkipSon(1);
#line 408 "../chopb/decomp.ch"
#line 409 "../chopb/decomp.ch"
                                            continue ;
#line 409 "../chopb/decomp.ch"
#line 409 "../chopb/decomp.ch"
                                            goto _Case80 ;
#line 409 "../chopb/decomp.ch"
#line 409 "../chopb/decomp.ch"
                                        case chopb::COMPOUND : 
#line 409 "../chopb/decomp.ch"
#line 409 "../chopb/decomp.ch"
                                        _Case80 : 
#line 409 "../chopb/decomp.ch"
#line 409 "../chopb/decomp.ch"
                                            ;
#line 409 "../chopb/decomp.ch"
#line 409 "../chopb/decomp.ch"
                                            goto _Case81 ;
#line 409 "../chopb/decomp.ch"
#line 413 "../chopb/decomp.ch"
                                        case chopb::ALINEA : 
#line 413 "../chopb/decomp.ch"
#line 413 "../chopb/decomp.ch"
                                        _Case81 : 
#line 413 "../chopb/decomp.ch"
#line 413 "../chopb/decomp.ch"
                                            ;
#line 413 "../chopb/decomp.ch"
#line 412 "../chopb/decomp.ch"
                                            {
#line 412 "../chopb/decomp.ch"
#line 412 "../chopb/decomp.ch"
                                                PTREE   _Baum0 ;
#line 412 "../chopb/decomp.ch"
#line 412 "../chopb/decomp.ch"
#line 413 "../chopb/decomp.ch"
                                                int oldX = 0 ;
#line 413 "../chopb/decomp.ch"
#line 414 "../chopb/decomp.ch"
                                                delta = 0 ;
#line 414 "../chopb/decomp.ch"
#line 417 "../chopb/decomp.ch"
                                                _Baum0 = (PPTREE) 0 ;
#line 417 "../chopb/decomp.ch"
#line 417 "../chopb/decomp.ch"
#line 417 "../chopb/decomp.ch"
                                                GetCoordAbs(for_elem, _Baum0, &x0, &y0);
#line 417 "../chopb/decomp.ch"
#line 418 "../chopb/decomp.ch"
                                                MarkCoordTree(for_elem, x0, 0);
#line 418 "../chopb/decomp.ch"
#line 421 "../chopb/decomp.ch"
                                                ((_inter = (PPTREE)for_elem,1) && 
#line 421 "../chopb/decomp.ch"
                                                    ((list=SonTree(_inter,1)),1) &&
#line 421 "../chopb/decomp.ch"
                                                    1);
#line 421 "../chopb/decomp.ch"
                                                ;
#line 421 "../chopb/decomp.ch"
#line 422 "../chopb/decomp.ch"
                                                sonOld = (PPTREE) 0 ;
#line 422 "../chopb/decomp.ch"
#line 422 "../chopb/decomp.ch"
#line 423 "../chopb/decomp.ch"
                                                while ( list ) {
#line 423 "../chopb/decomp.ch"
#line 423 "../chopb/decomp.ch"
                                                                    PTREE   _Baum1 ;
#line 423 "../chopb/decomp.ch"
#line 423 "../chopb/decomp.ch"
#line 424 "../chopb/decomp.ch"
                                                                    (son=(list?list.Nextl():(PPTREE)0));
#line 424 "../chopb/decomp.ch"
#line 424 "../chopb/decomp.ch"
#line 425 "../chopb/decomp.ch"
                                                                    _Baum1 = (PPTREE) 0 ;
#line 425 "../chopb/decomp.ch"
#line 425 "../chopb/decomp.ch"
#line 425 "../chopb/decomp.ch"
                                                                    GetCoordAbs(son, _Baum1, &x0, &y0);
#line 425 "../chopb/decomp.ch"
#line 426 "../chopb/decomp.ch"
                                                                    GetCoord(son, &x, &y, &dx, &dy);
#line 426 "../chopb/decomp.ch"
#line 429 "../chopb/decomp.ch"
                                                                    if ( x0 <= oldX ) {
#line 429 "../chopb/decomp.ch"
#line 430 "../chopb/decomp.ch"
delta = 0 ;
#line 430 "../chopb/decomp.ch"
#line 430 "../chopb/decomp.ch"
                                                                                        }
#line 430 "../chopb/decomp.ch"
#line 432 "../chopb/decomp.ch"
                                                                    oldX = x0 ;
#line 432 "../chopb/decomp.ch"
#line 435 "../chopb/decomp.ch"
                                                                    if ( x0 + dx + delta > rightMargin ) {
#line 435 "../chopb/decomp.ch"
#line 436 "../chopb/decomp.ch"
if ( Sequence(sonOld, son) ) {
#line 436 "../chopb/decomp.ch"
#line 437 "../chopb/decomp.ch"
                                    {
#line 437 "../chopb/decomp.ch"
                                        PPTREE _ptTree0=(PPTREE) 0;
#line 437 "../chopb/decomp.ch"
                                        _ptTree0 = (PPTREE) 0;
#line 437 "../chopb/decomp.ch"
                                        {
#line 437 "../chopb/decomp.ch"
                                            PPTREE _ptTree1= (PPTREE) 0 ;
#line 437 "../chopb/decomp.ch"
                                            {
#line 437 "../chopb/decomp.ch"
                                                PPTREE _ptTree2= (PPTREE) 0,_ptRes2= (PPTREE) 0;
#line 437 "../chopb/decomp.ch"
                                                _ptRes2 = MakeTree(chopb::NEWLINE, 1);
#line 437 "../chopb/decomp.ch"
                                                _ptTree2 = MakeString("1") ;
#line 437 "../chopb/decomp.ch"
                                                ReplaceTree(_ptRes2, 1, _ptTree2);
#line 437 "../chopb/decomp.ch"
                                                _ptTree1 = _ptRes2;
#line 437 "../chopb/decomp.ch"
                                            }
#line 437 "../chopb/decomp.ch"
                                            _ptTree0 = AddList( _ptTree0,_ptTree1);
#line 437 "../chopb/decomp.ch"
                                        }
#line 437 "../chopb/decomp.ch"
                                        {
#line 437 "../chopb/decomp.ch"
                                            PPTREE _ptTree1= (PPTREE) 0 ;
#line 437 "../chopb/decomp.ch"
                                            {
#line 437 "../chopb/decomp.ch"
                                                PPTREE _ptTree2= (PPTREE) 0,_ptRes2= (PPTREE) 0;
#line 437 "../chopb/decomp.ch"
                                                _ptRes2 = MakeTree(chopb::TAB, 1);
#line 437 "../chopb/decomp.ch"
                                                _ptTree2 = MakeString("1") ;
#line 437 "../chopb/decomp.ch"
                                                ReplaceTree(_ptRes2, 1, _ptTree2);
#line 437 "../chopb/decomp.ch"
                                                _ptTree1 = _ptRes2;
#line 437 "../chopb/decomp.ch"
                                            }
#line 437 "../chopb/decomp.ch"
                                            _ptTree0 = AddList( _ptTree0,_ptTree1);
#line 437 "../chopb/decomp.ch"
                                        }
#line 437 "../chopb/decomp.ch"
                                        list2 = _ptTree0;
#line 437 "../chopb/decomp.ch"
                                        ;
#line 437 "../chopb/decomp.ch"
                                    }
#line 437 "../chopb/decomp.ch"
#line 437 "../chopb/decomp.ch"
#line 438 "../chopb/decomp.ch"
                                    PutAttr(son, list2, PRE_ATTR, PUT_BEG);
#line 438 "../chopb/decomp.ch"
#line 439 "../chopb/decomp.ch"
                                    delta = - x0 + TAB_VALUE(dy, 1);
#line 439 "../chopb/decomp.ch"
#line 439 "../chopb/decomp.ch"
                                }
#line 439 "../chopb/decomp.ch"
#line 439 "../chopb/decomp.ch"
                                                                                                             }
#line 439 "../chopb/decomp.ch"
#line 442 "../chopb/decomp.ch"
                                                                    PutCoord(son, x + delta, y, dx, dy);
#line 442 "../chopb/decomp.ch"
#line 443 "../chopb/decomp.ch"
                                                                    (sonOld=son);
#line 443 "../chopb/decomp.ch"
#line 443 "../chopb/decomp.ch"
#line 443 "../chopb/decomp.ch"
                                                                }
#line 443 "../chopb/decomp.ch"
#line 447 "../chopb/decomp.ch"
                                                UnMarkCoordTree(for_elem);
#line 447 "../chopb/decomp.ch"
#line 447 "../chopb/decomp.ch"
                                            }
#line 447 "../chopb/decomp.ch"
#line 449 "../chopb/decomp.ch"
                                            break ;
#line 449 "../chopb/decomp.ch"
#line 450 "../chopb/decomp.ch"
                                        case chopb::PARSE : 
#line 450 "../chopb/decomp.ch"
#line 450 "../chopb/decomp.ch"
                                            (list=SonTree(for_elem, 1));
#line 450 "../chopb/decomp.ch"
#line 450 "../chopb/decomp.ch"
#line 450 "../chopb/decomp.ch"
                                        _Case82 : 
#line 450 "../chopb/decomp.ch"
#line 450 "../chopb/decomp.ch"
                                            ;
#line 450 "../chopb/decomp.ch"
#line 451 "../chopb/decomp.ch"
                                            {
#line 451 "../chopb/decomp.ch"
#line 452 "../chopb/decomp.ch"
                                                int overlap = 0 ;
#line 452 "../chopb/decomp.ch"
#line 453 "../chopb/decomp.ch"
                                                while ( list ) {
#line 453 "../chopb/decomp.ch"
#line 453 "../chopb/decomp.ch"
                                                                    PTREE   _Baum2 ;
#line 453 "../chopb/decomp.ch"
#line 453 "../chopb/decomp.ch"
#line 454 "../chopb/decomp.ch"
                                                                    (son=(list?list.Nextl():(PPTREE)0));
#line 454 "../chopb/decomp.ch"
#line 454 "../chopb/decomp.ch"
#line 455 "../chopb/decomp.ch"
                                                                    _Baum2 = (PPTREE) 0 ;
#line 455 "../chopb/decomp.ch"
#line 455 "../chopb/decomp.ch"
#line 455 "../chopb/decomp.ch"
                                                                    GetCoordAbs(son, _Baum2, &x0, &y0);
#line 455 "../chopb/decomp.ch"
#line 456 "../chopb/decomp.ch"
                                                                    GetCoord(son, &x, &y, &dx, &dy);
#line 456 "../chopb/decomp.ch"
#line 457 "../chopb/decomp.ch"
                                                                    if ( x0 + dx > rightMargin ) {
#line 457 "../chopb/decomp.ch"
#line 458 "../chopb/decomp.ch"
overlap = 1 ;
#line 458 "../chopb/decomp.ch"
#line 459 "../chopb/decomp.ch"
break ;
#line 459 "../chopb/decomp.ch"
#line 459 "../chopb/decomp.ch"
                                                                                                    }
#line 459 "../chopb/decomp.ch"
#line 459 "../chopb/decomp.ch"
                                                                }
#line 459 "../chopb/decomp.ch"
#line 467 "../chopb/decomp.ch"
                                                if ( overlap ) {
#line 467 "../chopb/decomp.ch"
#line 468 "../chopb/decomp.ch"
                                                                    ((_inter = (PPTREE)for_elem,1) && 
#line 468 "../chopb/decomp.ch"
                                                                        ((list=SonTree(_inter,1)),1) &&
#line 468 "../chopb/decomp.ch"
                                                                        1);
#line 468 "../chopb/decomp.ch"
                                                                    ;
#line 468 "../chopb/decomp.ch"
#line 469 "../chopb/decomp.ch"
                                                                    {
#line 469 "../chopb/decomp.ch"
                                                                        PPTREE _ptTree0=(PPTREE) 0;
#line 469 "../chopb/decomp.ch"
                                                                        _ptTree0 = (PPTREE) 0;
#line 469 "../chopb/decomp.ch"
                                                                        {
#line 469 "../chopb/decomp.ch"
PPTREE _ptTree1= (PPTREE) 0 ;
#line 469 "../chopb/decomp.ch"
{
#line 469 "../chopb/decomp.ch"
    PPTREE _ptTree2= (PPTREE) 0,_ptRes2= (PPTREE) 0;
#line 469 "../chopb/decomp.ch"
    _ptRes2 = MakeTree(chopb::NEWLINE, 1);
#line 469 "../chopb/decomp.ch"
    _ptTree2 = MakeString("1") ;
#line 469 "../chopb/decomp.ch"
    ReplaceTree(_ptRes2, 1, _ptTree2);
#line 469 "../chopb/decomp.ch"
    _ptTree1 = _ptRes2;
#line 469 "../chopb/decomp.ch"
}
#line 469 "../chopb/decomp.ch"
_ptTree0 = AddList( _ptTree0,_ptTree1);
#line 469 "../chopb/decomp.ch"
                                                                        }
#line 469 "../chopb/decomp.ch"
                                                                        {
#line 469 "../chopb/decomp.ch"
PPTREE _ptTree1= (PPTREE) 0 ;
#line 469 "../chopb/decomp.ch"
{
#line 469 "../chopb/decomp.ch"
    PPTREE _ptTree2= (PPTREE) 0,_ptRes2= (PPTREE) 0;
#line 469 "../chopb/decomp.ch"
    _ptRes2 = MakeTree(chopb::GOTO, 1);
#line 469 "../chopb/decomp.ch"
    _ptTree2 = MakeString("0") ;
#line 469 "../chopb/decomp.ch"
    ReplaceTree(_ptRes2, 1, _ptTree2);
#line 469 "../chopb/decomp.ch"
    _ptTree1 = _ptRes2;
#line 469 "../chopb/decomp.ch"
}
#line 469 "../chopb/decomp.ch"
_ptTree0 = AddList( _ptTree0,_ptTree1);
#line 469 "../chopb/decomp.ch"
                                                                        }
#line 469 "../chopb/decomp.ch"
                                                                        {
#line 469 "../chopb/decomp.ch"
PPTREE _ptTree1= (PPTREE) 0 ;
#line 469 "../chopb/decomp.ch"
{
#line 469 "../chopb/decomp.ch"
    PPTREE _ptTree2= (PPTREE) 0,_ptRes2= (PPTREE) 0;
#line 469 "../chopb/decomp.ch"
    _ptRes2 = MakeTree(chopb::MARK, 0);
#line 469 "../chopb/decomp.ch"
    _ptTree1 = _ptRes2;
#line 469 "../chopb/decomp.ch"
}
#line 469 "../chopb/decomp.ch"
_ptTree0 = AddList( _ptTree0,_ptTree1);
#line 469 "../chopb/decomp.ch"
                                                                        }
#line 469 "../chopb/decomp.ch"
                                                                        list1 = _ptTree0;
#line 469 "../chopb/decomp.ch"
                                                                        ;
#line 469 "../chopb/decomp.ch"
                                                                    }
#line 469 "../chopb/decomp.ch"
#line 469 "../chopb/decomp.ch"
#line 470 "../chopb/decomp.ch"
                                                                    {
#line 470 "../chopb/decomp.ch"
                                                                        PPTREE _ptTree0=(PPTREE) 0;
#line 470 "../chopb/decomp.ch"
                                                                        _ptTree0 = (PPTREE) 0;
#line 470 "../chopb/decomp.ch"
                                                                        {
#line 470 "../chopb/decomp.ch"
PPTREE _ptTree1= (PPTREE) 0 ;
#line 470 "../chopb/decomp.ch"
{
#line 470 "../chopb/decomp.ch"
    PPTREE _ptTree2= (PPTREE) 0,_ptRes2= (PPTREE) 0;
#line 470 "../chopb/decomp.ch"
    _ptRes2 = MakeTree(chopb::UNMARK, 0);
#line 470 "../chopb/decomp.ch"
    _ptTree1 = _ptRes2;
#line 470 "../chopb/decomp.ch"
}
#line 470 "../chopb/decomp.ch"
_ptTree0 = AddList( _ptTree0,_ptTree1);
#line 470 "../chopb/decomp.ch"
                                                                        }
#line 470 "../chopb/decomp.ch"
                                                                        list2 = _ptTree0;
#line 470 "../chopb/decomp.ch"
                                                                        ;
#line 470 "../chopb/decomp.ch"
                                                                    }
#line 470 "../chopb/decomp.ch"
#line 470 "../chopb/decomp.ch"
#line 471 "../chopb/decomp.ch"
                                                                    if ( !sontree(list, 2) ) {
#line 471 "../chopb/decomp.ch"
#line 471 "../chopb/decomp.ch"
PTREE   _Baum3 ;
#line 471 "../chopb/decomp.ch"
#line 471 "../chopb/decomp.ch"
#line 473 "../chopb/decomp.ch"
{
#line 473 "../chopb/decomp.ch"
    PPTREE _ptTree0= (PPTREE) 0,_ptRes0= (PPTREE) 0;
#line 473 "../chopb/decomp.ch"
    _ptRes0 = MakeTree(chopb::ATTRIBUTS, 3);
#line 473 "../chopb/decomp.ch"
    _ptTree0 = StoreRef(sontree(list, 1));
#line 473 "../chopb/decomp.ch"
    ReplaceTree(_ptRes0, 1, _ptTree0);
#line 473 "../chopb/decomp.ch"
    ReplaceTree(_ptRes0, 2, list1);
#line 473 "../chopb/decomp.ch"
    ReplaceTree(_ptRes0, 3, list2);
#line 473 "../chopb/decomp.ch"
    _Baum3 = _ptRes0;
#line 473 "../chopb/decomp.ch"
}
#line 473 "../chopb/decomp.ch"
#line 473 "../chopb/decomp.ch"
#line 472 "../chopb/decomp.ch"
replacetree(list, 1, _Baum3);
#line 472 "../chopb/decomp.ch"
#line 472 "../chopb/decomp.ch"
                                                                                                 } else 
#line 474 "../chopb/decomp.ch"
                                                                    {
#line 474 "../chopb/decomp.ch"
#line 474 "../chopb/decomp.ch"
                                                                        PTREE   _Baum5 ;
#line 474 "../chopb/decomp.ch"
#line 474 "../chopb/decomp.ch"
#line 474 "../chopb/decomp.ch"
                                                                        PTREE   _Baum4 ;
#line 474 "../chopb/decomp.ch"
#line 474 "../chopb/decomp.ch"
#line 476 "../chopb/decomp.ch"
                                                                        {
#line 476 "../chopb/decomp.ch"
PPTREE _ptTree0= (PPTREE) 0,_ptRes0= (PPTREE) 0;
#line 476 "../chopb/decomp.ch"
_ptRes0 = MakeTree(chopb::ATTRIBUTS, 3);
#line 476 "../chopb/decomp.ch"
_ptTree0 = StoreRef(sontree(list, 1));
#line 476 "../chopb/decomp.ch"
ReplaceTree(_ptRes0, 1, _ptTree0);
#line 476 "../chopb/decomp.ch"
ReplaceTree(_ptRes0, 2, list1);
#line 476 "../chopb/decomp.ch"
_Baum4 = _ptRes0;
#line 476 "../chopb/decomp.ch"
                                                                        }
#line 476 "../chopb/decomp.ch"
#line 476 "../chopb/decomp.ch"
#line 475 "../chopb/decomp.ch"
                                                                        replacetree(list, 1, _Baum4);
#line 475 "../chopb/decomp.ch"
#line 477 "../chopb/decomp.ch"
                                                                        while ( sontree(list, 2) ) 
#line 477 "../chopb/decomp.ch"
#line 478 "../chopb/decomp.ch"
(list?list.Nextl():(PPTREE)0);                                        
#line 478 "../chopb/decomp.ch"
#line 480 "../chopb/decomp.ch"
                                                                        {
#line 480 "../chopb/decomp.ch"
PPTREE _ptTree0= (PPTREE) 0,_ptRes0= (PPTREE) 0;
#line 480 "../chopb/decomp.ch"
_ptRes0 = MakeTree(chopb::ATTRIBUTS, 3);
#line 480 "../chopb/decomp.ch"
_ptTree0 = StoreRef(sontree(list, 1));
#line 480 "../chopb/decomp.ch"
ReplaceTree(_ptRes0, 1, _ptTree0);
#line 480 "../chopb/decomp.ch"
ReplaceTree(_ptRes0, 3, list2);
#line 480 "../chopb/decomp.ch"
_Baum5 = _ptRes0;
#line 480 "../chopb/decomp.ch"
                                                                        }
#line 480 "../chopb/decomp.ch"
#line 480 "../chopb/decomp.ch"
#line 479 "../chopb/decomp.ch"
                                                                        replacetree(list, 1, _Baum5);
#line 479 "../chopb/decomp.ch"
#line 479 "../chopb/decomp.ch"
                                                                    }
#line 479 "../chopb/decomp.ch"
#line 479 "../chopb/decomp.ch"
                                                                }
#line 479 "../chopb/decomp.ch"
#line 479 "../chopb/decomp.ch"
                                            }
#line 479 "../chopb/decomp.ch"
                                    }
#line 479 "../chopb/decomp.ch"
#line 479 "../chopb/decomp.ch"
#line 479 "../chopb/decomp.ch"
                                }
#line 479 "../chopb/decomp.ch"
#line 486 "../chopb/decomp.ch"
}
#line 486 "../chopb/decomp.ch"

#line 490 "../chopb/decomp.ch"
#line 490 "../chopb/decomp.ch"
void DecompChopb::ChopTree ( PTREE tree, int funcAlone )
#line 490 "../chopb/decomp.ch"
{
#line 490 "../chopb/decomp.ch"
#line 493 "../chopb/decomp.ch"
    copy();
#line 493 "../chopb/decomp.ch"
#line 494 "../chopb/decomp.ch"
    SwitchLang("chopb");
#line 494 "../chopb/decomp.ch"
#line 495 "../chopb/decomp.ch"
    if ( simplifyExpression ) 
#line 495 "../chopb/decomp.ch"
#line 496 "../chopb/decomp.ch"
        clean_tree(tree);
#line 496 "../chopb/decomp.ch"
#line 497 "../chopb/decomp.ch"
    Treat(tree);
#line 497 "../chopb/decomp.ch"
#line 498 "../chopb/decomp.ch"
    Decomp(tree, funcAlone);
#line 498 "../chopb/decomp.ch"
#line 499 "../chopb/decomp.ch"
    AddRef(tree);
#line 499 "../chopb/decomp.ch"
#line 500 "../chopb/decomp.ch"
}
#line 500 "../chopb/decomp.ch"

#line 504 "../chopb/decomp.ch"
#line 504 "../chopb/decomp.ch"
void DecompChopb::copy ()
#line 504 "../chopb/decomp.ch"
{
#line 504 "../chopb/decomp.ch"
#line 507 "../chopb/decomp.ch"
    char    *str ;
#line 507 "../chopb/decomp.ch"
#line 509 "../chopb/decomp.ch"
    str = "\n\r Metachop prettyPrinter version 3.0, CopyRight(C) 1995 Eric Lavillonniere \n\r";
#line 509 "../chopb/decomp.ch"
#line 511 "../chopb/decomp.ch"
    write(2, str, strlen(str));
#line 511 "../chopb/decomp.ch"
#line 512 "../chopb/decomp.ch"
    str = " C++ prettyPrinter comes with ABSOLUTELY NO WARRANTY.\n\r";
#line 512 "../chopb/decomp.ch"
#line 513 "../chopb/decomp.ch"
    write(2, str, strlen(str));
#line 513 "../chopb/decomp.ch"
#line 514 "../chopb/decomp.ch"
    str = " This is free software, and you are welcome to redistribute it \n\r";
#line 514 "../chopb/decomp.ch"
#line 516 "../chopb/decomp.ch"
    write(2, str, strlen(str));
#line 516 "../chopb/decomp.ch"
#line 517 "../chopb/decomp.ch"
    str = " under certain conditions.\n\r";
#line 517 "../chopb/decomp.ch"
#line 518 "../chopb/decomp.ch"
    write(2, str, strlen(str));
#line 518 "../chopb/decomp.ch"
#line 519 "../chopb/decomp.ch"
    str = " For details see file COPYING in C++ prettyPrinter directory.\n\r\n\r";
#line 519 "../chopb/decomp.ch"
#line 521 "../chopb/decomp.ch"
    write(2, str, strlen(str));
#line 521 "../chopb/decomp.ch"
#line 522 "../chopb/decomp.ch"
}
#line 522 "../chopb/decomp.ch"
/*Well done my boy */ 
#line 522 "../chopb/decomp.ch"

