Changeset 937e51d for src


Ignore:
Timestamp:
Jun 26, 2015, 4:00:26 PM (10 years ago)
Author:
Aaron Moss <a3moss@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, string, with_gc
Children:
0df292b, e0ff3e6
Parents:
eb50842 (diff), 1869adf (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge pointer to pointer to qualified fix into master

Location:
src
Files:
380 added
131 deleted
114 edited
39 moved

Legend:

Unmodified
Added
Removed
  • src/ArgTweak/module.mk

    reb50842 r937e51d  
    1 SRC +=  ArgTweak/Rewriter.cc \
    2 #       ArgTweak/Mutate.cc \
    3         $(NULL)
     1######################### -*- Mode: Makefile-Gmake -*- ########################
     2##
     3## Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     4##
     5## The contents of this file are covered under the licence agreement in the
     6## file "LICENCE" distributed with Cforall.
     7##
     8## module.mk --
     9##
     10## Author           : Richard C. Bilson
     11## Created On       : Mon Jun  1 17:49:17 2015
     12## Last Modified By : Peter A. Buhr
     13## Last Modified On : Mon Jun  1 17:50:11 2015
     14## Update Count     : 1
     15###############################################################################
    416
     17#SRC +=  ArgTweak/Rewriter.cc \
     18#       ArgTweak/Mutate.cc
  • src/CodeGen/CodeGenerator.cc

    reb50842 r937e51d  
    55// file "LICENCE" distributed with Cforall.
    66//
    7 // CodeGenerator2.cc --
     7// CodeGenerator.cc --
    88//
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu May 21 17:13:35 2015
    13 // Update Count     : 7
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Wed Jun 24 16:11:41 2015
     13// Update Count     : 143
    1414//
    1515
     
    1919#include <list>
    2020
     21#include "Parser/ParseNode.h"
     22
    2123#include "SynTree/Type.h"
    22 #include "SynTree/Declaration.h"
    23 #include "SynTree/Statement.h"
    2424#include "SynTree/Expression.h"
    2525#include "SynTree/Initializer.h"
     26#include "SynTree/Statement.h"
    2627
    2728#include "utility.h"
    2829#include "UnimplementedError.h"
    2930
    30 #include "CodeGenerator2.h"
     31#include "CodeGenerator.h"
    3132#include "OperatorTable.h"
    3233#include "GenType.h"
     
    3536
    3637namespace CodeGen {
    37         int CodeGenerator2::tabsize = 4;
    38 
    39         CodeGenerator2::CodeGenerator2( std::ostream &os ) : cur_indent( 0 ), insideFunction( false ), before( os ), after() { }
    40 
    41         CodeGenerator2::CodeGenerator2( std::ostream &os, std::string init, int indent, bool infunp )
    42                 : cur_indent( indent ), insideFunction( infunp ), before( os ) {
    43                 //before << std::string( init );
    44         }
    45 
    46         CodeGenerator2::CodeGenerator2( std::ostream &os, char *init, int indent, bool infunp )
    47                 : cur_indent( indent ), insideFunction( infunp ), before( os ) {
    48                 //before << std::string( init );
     38        int CodeGenerator::tabsize = 4;
     39
     40        // the kinds of statements that would ideally be separated by more whitespace
     41        bool wantSpacing( Statement * stmt) {
     42                return dynamic_cast< IfStmt * >( stmt ) || dynamic_cast< CompoundStmt * >( stmt ) ||
     43                        dynamic_cast< WhileStmt * >( stmt ) || dynamic_cast< ForStmt * > ( stmt ) || dynamic_cast< SwitchStmt *>( stmt );
     44        }
     45
     46        ostream & CodeGenerator::Indenter::operator()( ostream & output ) {
     47          return output << string( cg.cur_indent, ' ' );
     48        }
     49
     50        ostream & operator<<( ostream & output, CodeGenerator::Indenter &indent ) {
     51                return indent( output );
     52        }
     53
     54        CodeGenerator::CodeGenerator( std::ostream &os ) : indent(*this), cur_indent( 0 ), insideFunction( false ), output( os ) { }
     55
     56        CodeGenerator::CodeGenerator( std::ostream &os, std::string init, int indentation, bool infunp )
     57                        : indent(*this), cur_indent( indentation ), insideFunction( infunp ), output( os ) {
     58                //output << std::string( init );
     59        }
     60
     61        CodeGenerator::CodeGenerator( std::ostream &os, char *init, int indentation, bool infunp )
     62                        : indent(*this), cur_indent( indentation ), insideFunction( infunp ), output( os ) {
     63                //output << std::string( init );
    4964        }
    5065
     
    5671                } // if
    5772        }
    58  
     73
    5974        //*** Declarations
    60         void CodeGenerator2::visit( FunctionDecl *functionDecl ) {
     75        void CodeGenerator::visit( FunctionDecl *functionDecl ) {
    6176                handleStorageClass( functionDecl );
    62                 before << genType( functionDecl->get_functionType(), mangleName( functionDecl ) );
     77                if ( functionDecl->get_isInline() ) {
     78                        output << "inline ";
     79                } // if
     80                if ( functionDecl->get_isNoreturn() ) {
     81                        output << "_Noreturn ";
     82                } // if
     83                output << genType( functionDecl->get_functionType(), mangleName( functionDecl ) );
    6384
    6485                // how to get this to the Functype?
    6586                std::list< Declaration * > olds = functionDecl->get_oldDecls();
    6687                if ( ! olds.empty() ) {
    67                         before << " /* function has old declaration */";
     88                        output << " /* function has old declaration */";
    6889                } // if
    6990
     
    7495        }
    7596
    76         void CodeGenerator2::visit( ObjectDecl *objectDecl ) {
     97        void CodeGenerator::visit( ObjectDecl *objectDecl ) {
    7798                handleStorageClass( objectDecl );
    78                 before << genType( objectDecl->get_type(), mangleName( objectDecl ) );
     99                output << genType( objectDecl->get_type(), mangleName( objectDecl ) );
    79100       
    80101                if ( objectDecl->get_init() ) {
    81                         before << " = ";
     102                        output << " = ";
    82103                        objectDecl->get_init()->accept( *this );
    83104                } // if
    84105                if ( objectDecl->get_bitfieldWidth() ) {
    85                         before << ":";
     106                        output << ":";
    86107                        objectDecl->get_bitfieldWidth()->accept( *this );
    87108                } // if
    88109        }
    89110
    90         void CodeGenerator2::handleAggregate( AggregateDecl *aggDecl ) {
     111        void CodeGenerator::handleAggregate( AggregateDecl *aggDecl ) {
    91112                if ( aggDecl->get_name() != "" )
    92                         before << aggDecl->get_name();
     113                        output << aggDecl->get_name();
    93114       
    94115                std::list< Declaration * > &memb = aggDecl->get_members();
    95116
    96117                if ( ! memb.empty() ) {
    97                         before << endl << string( cur_indent, ' ' ) << "{" << endl;
    98 
    99                         cur_indent += CodeGenerator2::tabsize;
     118                        output << " {" << endl;
     119
     120                        cur_indent += CodeGenerator::tabsize;
    100121                        for ( std::list< Declaration* >::iterator i = memb.begin(); i != memb.end();  i++) {
    101                                 before << string( cur_indent, ' ' );
     122                                output << indent;
    102123                                (*i)->accept(*this );
    103                                 before << ";" << endl;
     124                                output << ";" << endl;
    104125                        }
    105126
    106                         cur_indent -= CodeGenerator2::tabsize;
    107 
    108                         before << string( cur_indent, ' ' ) << "}";
    109                 } // if
    110         }
    111 
    112         void CodeGenerator2::visit( StructDecl *structDecl ) {
    113                 before << "struct ";
     127                        cur_indent -= CodeGenerator::tabsize;
     128
     129                        output << indent << "}";
     130                } // if
     131        }
     132
     133        void CodeGenerator::visit( StructDecl *structDecl ) {
     134                output << "struct ";
    114135                handleAggregate( structDecl );
    115136        }
    116137
    117         void CodeGenerator2::visit( UnionDecl *aggregateDecl ) {
    118                 before << "union ";
     138        void CodeGenerator::visit( UnionDecl *aggregateDecl ) {
     139                output << "union ";
    119140                handleAggregate( aggregateDecl );
    120141        }
    121142 
    122         void CodeGenerator2::visit( EnumDecl *aggDecl ) {
    123                 before << "enum ";
     143        void CodeGenerator::visit( EnumDecl *aggDecl ) {
     144                output << "enum ";
    124145
    125146                if ( aggDecl->get_name() != "" )
    126                         before << aggDecl->get_name();
     147                        output << aggDecl->get_name();
    127148       
    128149                std::list< Declaration* > &memb = aggDecl->get_members();
    129150
    130151                if ( ! memb.empty() ) {
    131                         before << endl << "{" << endl;
    132 
    133                         cur_indent += CodeGenerator2::tabsize;
     152                        output << " {" << endl;
     153
     154                        cur_indent += CodeGenerator::tabsize;
    134155                        for ( std::list< Declaration* >::iterator i = memb.begin(); i != memb.end();  i++) {
    135156                                ObjectDecl *obj = dynamic_cast< ObjectDecl* >( *i );
    136157                                assert( obj );
    137                                 before << string( cur_indent, ' ' ) << mangleName( obj );
     158                                output << indent << mangleName( obj );
    138159                                if ( obj->get_init() ) {
    139                                         before << " = ";
     160                                        output << " = ";
    140161                                        obj->get_init()->accept(*this );
    141162                                } // if
    142                                 before << "," << endl;
     163                                output << "," << endl;
    143164                        } // for
    144165
    145                         cur_indent -= CodeGenerator2::tabsize;
    146 
    147                         before << "}" << endl;
    148                 } // if
    149         }
    150  
    151         void CodeGenerator2::visit( ContextDecl *aggregateDecl ) {}
    152  
    153         void CodeGenerator2::visit( TypedefDecl *typeDecl ) {
    154                 before << "typedef ";
    155                 before << genType( typeDecl->get_base(), typeDecl->get_name() );
    156         }
    157  
    158         void CodeGenerator2::visit( TypeDecl *typeDecl ) {
     166                        cur_indent -= CodeGenerator::tabsize;
     167
     168                        output << indent << "}";
     169                } // if
     170        }
     171 
     172        void CodeGenerator::visit( ContextDecl *aggregateDecl ) {}
     173 
     174        void CodeGenerator::visit( TypedefDecl *typeDecl ) {
     175                output << "typedef ";
     176                output << genType( typeDecl->get_base(), typeDecl->get_name() );
     177        }
     178 
     179        void CodeGenerator::visit( TypeDecl *typeDecl ) {
    159180                // really, we should mutate this into something that isn't a TypeDecl but that requires large-scale changes,
    160181                // still to be done
    161                 before << "extern unsigned long " << typeDecl->get_name();
     182                output << "extern unsigned long " << typeDecl->get_name();
    162183                if ( typeDecl->get_base() ) {
    163                         before << " = sizeof( " << genType( typeDecl->get_base(), "" ) << " )";
    164                 } // if
    165         }
    166 
    167         void CodeGenerator2::visit( SingleInit *init ) {
     184                        output << " = sizeof( " << genType( typeDecl->get_base(), "" ) << " )";
     185                } // if
     186        }
     187
     188        void CodeGenerator::visit( SingleInit *init ) {
    168189                init->get_value()->accept( *this );
    169190        }
    170191
    171         void CodeGenerator2::visit( ListInit *init ) {
    172                 before << "{ ";
     192        void CodeGenerator::visit( ListInit *init ) {
     193                output << "{ ";
    173194                genCommaList( init->begin_initializers(), init->end_initializers() );
    174                 before << " }";
    175         }
    176 
    177         void CodeGenerator2::visit( Constant *constant ) {
    178                 before << constant->get_value() ;
     195                output << " }";
     196        }
     197
     198        void CodeGenerator::visit( Constant *constant ) {
     199                output << constant->get_value() ;
    179200        }
    180201
    181202        //*** Expressions
    182         void CodeGenerator2::visit( ApplicationExpr *applicationExpr ) {
     203        void CodeGenerator::visit( ApplicationExpr *applicationExpr ) {
    183204                if ( VariableExpr *varExpr = dynamic_cast< VariableExpr* >( applicationExpr->get_function() ) ) {
    184205                        OperatorInfo opInfo;
     
    211232                                        assert( applicationExpr->get_args().size() == 2 );
    212233                                        (*arg++)->accept( *this );
    213                                         before << "[";
    214                                         (*arg)->accept( *this );
    215                                         before << "]";
     234                                        output << "[";
     235                                        (*arg)->accept( *this );
     236                                        output << "]";
    216237                                        break;
    217238             
     
    224245                                  case OT_PREFIXASSIGN:
    225246                                        assert( applicationExpr->get_args().size() == 1 );
    226                                         before << "(";
    227                                         before << opInfo.symbol;
    228                                         (*arg)->accept( *this );
    229                                         before << ")";
     247                                        output << "(";
     248                                        output << opInfo.symbol;
     249                                        (*arg)->accept( *this );
     250                                        output << ")";
    230251                                        break;
    231252             
     
    234255                                        assert( applicationExpr->get_args().size() == 1 );
    235256                                        (*arg)->accept( *this );
    236                                         before << opInfo.symbol;
     257                                        output << opInfo.symbol;
    237258                                        break;
    238259
     
    240261                                  case OT_INFIXASSIGN:
    241262                                        assert( applicationExpr->get_args().size() == 2 );
    242                                         before << "(";
     263                                        output << "(";
    243264                                        (*arg++)->accept( *this );
    244                                         before << opInfo.symbol;
    245                                         (*arg)->accept( *this );
    246                                         before << ")";
     265                                        output << opInfo.symbol;
     266                                        (*arg)->accept( *this );
     267                                        output << ")";
    247268                                        break;
    248269             
     
    253274                        } else {
    254275                                varExpr->accept( *this );
    255                                 before << "(";
     276                                output << "(";
    256277                                genCommaList( applicationExpr->get_args().begin(), applicationExpr->get_args().end() );
    257                                 before << ")";
     278                                output << ")";
    258279                        } // if
    259280                } else {
    260281                        applicationExpr->get_function()->accept( *this );
    261                         before << "(";
     282                        output << "(";
    262283                        genCommaList( applicationExpr->get_args().begin(), applicationExpr->get_args().end() );
    263                         before << ")";
    264                 } // if
    265         }
    266  
    267         void CodeGenerator2::visit( UntypedExpr *untypedExpr ) {
     284                        output << ")";
     285                } // if
     286        }
     287 
     288        void CodeGenerator::visit( UntypedExpr *untypedExpr ) {
    268289                if ( NameExpr *nameExpr = dynamic_cast< NameExpr* >( untypedExpr->get_function() ) ) {
    269290                        OperatorInfo opInfo;
     
    274295                                        assert( untypedExpr->get_args().size() == 2 );
    275296                                        (*arg++)->accept( *this );
    276                                         before << "[";
    277                                         (*arg)->accept( *this );
    278                                         before << "]";
     297                                        output << "[";
     298                                        (*arg)->accept( *this );
     299                                        output << "]";
    279300                                        break;
    280301             
     
    285306                                  case OT_PREFIX:
    286307                                  case OT_PREFIXASSIGN:
     308                                  case OT_LABELADDRESS:
    287309                                        assert( untypedExpr->get_args().size() == 1 );
    288                                         before << "(";
    289                                         before << opInfo.symbol;
    290                                         (*arg)->accept( *this );
    291                                         before << ")";
     310                                        output << "(";
     311                                        output << opInfo.symbol;
     312                                        (*arg)->accept( *this );
     313                                        output << ")";
    292314                                        break;
    293315             
     
    296318                                        assert( untypedExpr->get_args().size() == 1 );
    297319                                        (*arg)->accept( *this );
    298                                         before << opInfo.symbol;
     320                                        output << opInfo.symbol;
    299321                                        break;
    300322 
     
    302324                                  case OT_INFIXASSIGN:
    303325                                        assert( untypedExpr->get_args().size() == 2 );
    304                                         before << "(";
     326                                        output << "(";
    305327                                        (*arg++)->accept( *this );
    306                                         before << opInfo.symbol;
    307                                         (*arg)->accept( *this );
    308                                         before << ")";
    309                                         break;
    310              
     328                                        output << opInfo.symbol;
     329                                        (*arg)->accept( *this );
     330                                        output << ")";
     331                                        break;
     332                                       
    311333                                  case OT_CONSTANT:
    312334                                        // there are no intrinsic definitions of 0 or 1 as functions
     
    315337                        } else {
    316338                                nameExpr->accept( *this );
    317                                 before << "(";
     339                                output << "(";
    318340                                genCommaList( untypedExpr->get_args().begin(), untypedExpr->get_args().end() );
    319                                 before << ")";
     341                                output << ")";
    320342                        } // if
    321343                } else {
    322344                        untypedExpr->get_function()->accept( *this );
    323                         before << "(";
     345                        output << "(";
    324346                        genCommaList( untypedExpr->get_args().begin(), untypedExpr->get_args().end() );
    325                         before << ")";
    326                 } // if
    327         }
    328  
    329         void CodeGenerator2::visit( NameExpr *nameExpr ) {
     347                        output << ")";
     348                } // if
     349        }
     350 
     351        void CodeGenerator::visit( NameExpr *nameExpr ) {
    330352                OperatorInfo opInfo;
    331353                if ( operatorLookup( nameExpr->get_name(), opInfo ) ) {
    332354                        assert( opInfo.type == OT_CONSTANT );
    333                         before << opInfo.symbol;
    334                 } else {
    335                         before << nameExpr->get_name();
    336                 } // if
    337         }
    338  
    339         void CodeGenerator2::visit( AddressExpr *addressExpr ) {
    340                 before << "(&";
     355                        output << opInfo.symbol;
     356                } else {
     357                        output << nameExpr->get_name();
     358                } // if
     359        }
     360 
     361        void CodeGenerator::visit( AddressExpr *addressExpr ) {
     362                output << "(&";
    341363                // this hack makes sure that we don't convert "constant_zero" to "0" if we're taking its address
    342364                if ( VariableExpr *variableExpr = dynamic_cast< VariableExpr* >( addressExpr->get_arg() ) ) {
    343                         before << mangleName( variableExpr->get_var() );
     365                        output << mangleName( variableExpr->get_var() );
    344366                } else {
    345367                        addressExpr->get_arg()->accept( *this );
    346368                } // if
    347                 before << ")";
    348         }
    349 
    350         void CodeGenerator2::visit( CastExpr *castExpr ) {
    351                 before << "((";
     369                output << ")";
     370        }
     371
     372        void CodeGenerator::visit( CastExpr *castExpr ) {
     373                output << "((";
    352374                if ( castExpr->get_results().empty() ) {
    353                         before << "void" ;
    354                 } else {
    355                         before << genType( castExpr->get_results().front(), "" );
    356                 } // if
    357                 before << ")";
     375                        output << "void" ;
     376                } else {
     377                        output << genType( castExpr->get_results().front(), "" );
     378                } // if
     379                output << ")";
    358380                castExpr->get_arg()->accept( *this );
    359                 before << ")";
    360         }
    361  
    362         void CodeGenerator2::visit( UntypedMemberExpr *memberExpr ) {
     381                output << ")";
     382        }
     383 
     384        void CodeGenerator::visit( UntypedMemberExpr *memberExpr ) {
    363385                assert( false );
    364386        }
    365387 
    366         void CodeGenerator2::visit( MemberExpr *memberExpr ) {
     388        void CodeGenerator::visit( MemberExpr *memberExpr ) {
    367389                memberExpr->get_aggregate()->accept( *this );
    368                 before << "." << mangleName( memberExpr->get_member() );
    369         }
    370  
    371         void CodeGenerator2::visit( VariableExpr *variableExpr ) {
     390                output << "." << mangleName( memberExpr->get_member() );
     391        }
     392 
     393        void CodeGenerator::visit( VariableExpr *variableExpr ) {
    372394                OperatorInfo opInfo;
    373395                if ( variableExpr->get_var()->get_linkage() == LinkageSpec::Intrinsic && operatorLookup( variableExpr->get_var()->get_name(), opInfo ) && opInfo.type == OT_CONSTANT ) {
    374                         before << opInfo.symbol;
    375                 } else {
    376                         before << mangleName( variableExpr->get_var() );
    377                 } // if
    378         }
    379  
    380         void CodeGenerator2::visit( ConstantExpr *constantExpr ) {
     396                        output << opInfo.symbol;
     397                } else {
     398                        output << mangleName( variableExpr->get_var() );
     399                } // if
     400        }
     401 
     402        void CodeGenerator::visit( ConstantExpr *constantExpr ) {
    381403                assert( constantExpr->get_constant() );
    382404                constantExpr->get_constant()->accept( *this );
    383405        }
    384406 
    385         void CodeGenerator2::visit( SizeofExpr *sizeofExpr ) {
    386                 before << "sizeof(";
     407        void CodeGenerator::visit( SizeofExpr *sizeofExpr ) {
     408                output << "sizeof(";
    387409                if ( sizeofExpr->get_isType() ) {
    388                         before << genType( sizeofExpr->get_type(), "" );
     410                        output << genType( sizeofExpr->get_type(), "" );
    389411                } else {
    390412                        sizeofExpr->get_expr()->accept( *this );
    391413                } // if
    392                 before << ")";
    393         }
    394  
    395         void CodeGenerator2::visit( LogicalExpr *logicalExpr ) {
    396                 before << "(";
     414                output << ")";
     415        }
     416 
     417        void CodeGenerator::visit( LogicalExpr *logicalExpr ) {
     418                output << "(";
    397419                logicalExpr->get_arg1()->accept( *this );
    398420                if ( logicalExpr->get_isAnd() ) {
    399                         before << " && ";
    400                 } else {
    401                         before << " || ";
     421                        output << " && ";
     422                } else {
     423                        output << " || ";
    402424                } // if
    403425                logicalExpr->get_arg2()->accept( *this );
    404                 before << ")";
    405         }
    406  
    407         void CodeGenerator2::visit( ConditionalExpr *conditionalExpr ) {
    408                 before << "(";
     426                output << ")";
     427        }
     428 
     429        void CodeGenerator::visit( ConditionalExpr *conditionalExpr ) {
     430                output << "(";
    409431                conditionalExpr->get_arg1()->accept( *this );
    410                 before << " ? ";
     432                output << " ? ";
    411433                conditionalExpr->get_arg2()->accept( *this );
    412                 before << " : ";
     434                output << " : ";
    413435                conditionalExpr->get_arg3()->accept( *this );
    414                 before << ")";
    415         }
    416  
    417         void CodeGenerator2::visit( CommaExpr *commaExpr ) {
    418                 before << "(";
     436                output << ")";
     437        }
     438 
     439        void CodeGenerator::visit( CommaExpr *commaExpr ) {
     440                output << "(";
    419441                commaExpr->get_arg1()->accept( *this );
    420                 before << " , ";
     442                output << " , ";
    421443                commaExpr->get_arg2()->accept( *this );
    422                 before << ")";
    423         }
    424  
    425         void CodeGenerator2::visit( TupleExpr *tupleExpr ) {}
    426  
    427         void CodeGenerator2::visit( TypeExpr *typeExpr ) {}
    428  
    429  
     444                output << ")";
     445        }
     446 
     447        void CodeGenerator::visit( TupleExpr *tupleExpr ) {}
     448 
     449        void CodeGenerator::visit( TypeExpr *typeExpr ) {}
     450
    430451        //*** Statements
    431         void CodeGenerator2::visit( CompoundStmt *compoundStmt ) {
     452        void CodeGenerator::visit( CompoundStmt *compoundStmt ) {
    432453                std::list<Statement*> ks = compoundStmt->get_kids();
    433 
    434                 before << endl << string( cur_indent, ' ' ) << "{" << endl;
    435 
    436                 cur_indent += CodeGenerator2::tabsize;
     454                output << "{" << endl;
     455
     456                cur_indent += CodeGenerator::tabsize;
    437457
    438458                for ( std::list<Statement *>::iterator i = ks.begin(); i != ks.end();  i++) {
    439                         before << string( cur_indent, ' ' ) << printLabels( (*i)->get_labels() )  ;
     459                        output << indent << printLabels( (*i)->get_labels() );
    440460                        (*i)->accept(*this );
    441                         shift_left();
    442                         before << endl;
     461
     462                        output << endl;
     463                        if ( wantSpacing( *i ) ) {
     464                                output << endl;
     465                        }
    443466                }
    444                 cur_indent -= CodeGenerator2::tabsize;
    445 
    446                 before << string( cur_indent, ' ' ) << "}" << endl;
    447         }
    448 
    449         void CodeGenerator2::visit( ExprStmt *exprStmt ) {
    450                 if ( exprStmt != 0 ) {
    451                         exprStmt->get_expr()->accept( *this );
    452                         shift_left();
    453                         before << ";" ;
    454                 } // if
    455         }
    456 
    457         void CodeGenerator2::visit( IfStmt *ifStmt ) {
    458                 before << "if (";
     467                cur_indent -= CodeGenerator::tabsize;
     468
     469                output << indent << "}";
     470        }
     471
     472        void CodeGenerator::visit( ExprStmt *exprStmt ) {
     473                // I don't see why this check is necessary.
     474                // If this starts to cause problems then put it back in,
     475                // with an explanation
     476                assert( exprStmt );
     477
     478                // if ( exprStmt != 0 ) {
     479                exprStmt->get_expr()->accept( *this );
     480                output << ";" ;
     481                // } // if
     482        }
     483
     484        void CodeGenerator::visit( IfStmt *ifStmt ) {
     485                output << "if (";
    459486                ifStmt->get_condition()->accept(*this );
    460                 after += ")\n";
    461                 shift_left();
    462 
    463                 cur_indent += CodeGenerator2::tabsize;
    464                 before << string( cur_indent, ' ' );
     487                output << ") ";
     488
    465489                ifStmt->get_thenPart()->accept(*this );
    466                 cur_indent -= CodeGenerator2::tabsize;
    467                 shift_left(); before << endl;
    468490
    469491                if ( ifStmt->get_elsePart() != 0) {
    470                         before << string( cur_indent, ' ' ) << " else " << endl ;
    471 
    472                         cur_indent += CodeGenerator2::tabsize;
     492                        output << " else ";
    473493                        ifStmt->get_elsePart()->accept(*this );
    474                         cur_indent -= CodeGenerator2::tabsize;
    475                 } // if
    476         }
    477 
    478         void CodeGenerator2::visit( SwitchStmt *switchStmt ) {
    479                 //before << /* "\r" << */ string( cur_indent, ' ' ) << CodeGenerator2::printLabels( switchStmt->get_labels() )
    480                 before << "switch (" ;
     494                } // if
     495        }
     496
     497        void CodeGenerator::visit( SwitchStmt *switchStmt ) {
     498                output << "switch (" ;
    481499                switchStmt->get_condition()->accept(*this );
    482                 after += ")\n";
    483                 shift_left();
    484 
    485                 before << string( cur_indent, ' ' ) << "{" << std::endl;
    486                 cur_indent += CodeGenerator2::tabsize;
    487 
    488                 std::list< Statement * > stmts = switchStmt->get_branches();
    489                 bool lastBreak = false;
    490 
    491                 // horrible, horrible hack
    492                 if ( dynamic_cast<BranchStmt *>( stmts.back() ) != 0 ) {
    493                         lastBreak = true;
    494                         stmts.pop_back();
    495                 } // if
    496                 acceptAll( stmts, *this );
    497                 if ( lastBreak ) {
    498                         Statement *st = switchStmt->get_branches().back();
    499                         before << CodeGenerator2::printLabels( st->get_labels());
    500                         st->accept( *this );
    501                 } // if
    502          
    503                 cur_indent -= CodeGenerator2::tabsize;
    504 
    505                 before << /* "\r" << */ string( cur_indent, ' ' ) << "}" << endl ;
    506         }
    507 
    508         void CodeGenerator2::visit( CaseStmt *caseStmt ) {
    509                 before << string( cur_indent, ' ' );
    510                 if ( caseStmt->isDefault())
    511                         before << "default "  ;
    512                 else {
    513                         before << "case "  ;
     500                output << ") ";
     501               
     502                output << "{" << std::endl;
     503                cur_indent += CodeGenerator::tabsize;
     504
     505                acceptAll( switchStmt->get_branches(), *this );
     506
     507                cur_indent -= CodeGenerator::tabsize;
     508
     509                output << indent << "}";
     510        }
     511
     512        void CodeGenerator::visit( CaseStmt *caseStmt ) {
     513                output << indent;
     514                if ( caseStmt->isDefault()) {
     515                        output << "default";
     516                } else {
     517                        output << "case ";
    514518                        caseStmt->get_condition()->accept(*this );
    515519                } // if
    516                 after += ":\n";
    517                 shift_left();
    518 
     520                output << ":\n";
     521               
    519522                std::list<Statement *> sts = caseStmt->get_statements();
    520523
    521                 cur_indent += CodeGenerator2::tabsize;
     524                cur_indent += CodeGenerator::tabsize;
    522525                for ( std::list<Statement *>::iterator i = sts.begin(); i != sts.end();  i++) {
    523                         before << /* "\r" << */ string( cur_indent, ' ' ) << printLabels( (*i)->get_labels() )  ;
     526                        output << indent << printLabels( (*i)->get_labels() )  ;
    524527                        (*i)->accept(*this );
    525                         shift_left();
    526                         before << ";" << endl;
     528                        output << endl;
    527529                }
    528                 cur_indent -= CodeGenerator2::tabsize;
    529         }
    530 
    531         void CodeGenerator2::visit( BranchStmt *branchStmt ) {
     530                cur_indent -= CodeGenerator::tabsize;
     531        }
     532
     533        void CodeGenerator::visit( BranchStmt *branchStmt ) {
    532534                switch ( branchStmt->get_type()) {
    533535                  case BranchStmt::Goto:
    534536                        if ( ! branchStmt->get_target().empty() )
    535                                 before << "goto " << branchStmt->get_target();
     537                                output << "goto " << branchStmt->get_target();
    536538                        else {
    537539                                if ( branchStmt->get_computedTarget() != 0 ) {
    538                                         before << "goto *";
     540                                        output << "goto *";
    539541                                        branchStmt->get_computedTarget()->accept( *this );
    540542                                } // if
     
    542544                        break;
    543545                  case BranchStmt::Break:
    544                         before << "break";
     546                        output << "break";
    545547                        break;
    546548                  case BranchStmt::Continue:
    547                         before << "continue";
     549                        output << "continue";
    548550                        break;
    549551                }
    550                 before << ";";
    551         }
    552 
    553 
    554         void CodeGenerator2::visit( ReturnStmt *returnStmt ) {
    555                 before << "return ";
     552                output << ";";
     553        }
     554
     555
     556        void CodeGenerator::visit( ReturnStmt *returnStmt ) {
     557                output << "return ";
    556558
    557559                // xxx -- check for null expression;
     
    559561                        returnStmt->get_expr()->accept( *this );
    560562                } // if
    561                 after += ";";
    562         }
    563 
    564         void CodeGenerator2::visit( WhileStmt *whileStmt ) {
     563                output << ";";
     564        }
     565
     566        void CodeGenerator::visit( WhileStmt *whileStmt ) {
    565567                if ( whileStmt->get_isDoWhile() )
    566                         before << "do" ;
     568                        output << "do" ;
    567569                else {
    568                         before << "while (" ;
     570                        output << "while (" ;
    569571                        whileStmt->get_condition()->accept(*this );
    570                         after += ")";
    571                 } // if
    572                 after += "{\n";
    573                 shift_left();
    574 
     572                        output << ")";
     573                } // if
     574                output << " ";
     575
     576                output << CodeGenerator::printLabels( whileStmt->get_body()->get_labels() );
    575577                whileStmt->get_body()->accept( *this );
    576578
    577                 before << /* "\r" << */ string( cur_indent, ' ' ) << "}" ;
     579                output << indent;
    578580
    579581                if ( whileStmt->get_isDoWhile() ) {
    580                         before << " while (" ;
     582                        output << " while (" ;
    581583                        whileStmt->get_condition()->accept(*this );
    582                         after += ");";
    583                 } // if
    584 
    585                 after += "\n";
    586         }
    587 
    588         void CodeGenerator2::visit( ForStmt *forStmt ) {
    589                 before << "for (";
     584                        output << ");";
     585                } // if
     586        }
     587
     588        void CodeGenerator::visit( ForStmt *forStmt ) {
     589                output << "for (";
    590590
    591591                if ( forStmt->get_initialization() != 0 )
    592592                        forStmt->get_initialization()->accept( *this );
    593593                else
    594                         before << ";";
    595                 shift_left();
    596 
     594                        output << ";";
     595               
    597596                if ( forStmt->get_condition() != 0 )
    598597                        forStmt->get_condition()->accept( *this );
    599                 shift_left(); before << ";";
     598                output << ";";
    600599
    601600                if ( forStmt->get_increment() != 0 )
    602601                        forStmt->get_increment()->accept( *this );
    603                 shift_left(); before << ")" << endl;
     602                output << ") ";
    604603
    605604                if ( forStmt->get_body() != 0 ) {
    606                         cur_indent += CodeGenerator2::tabsize;
    607                         before << string( cur_indent, ' ' ) << CodeGenerator2::printLabels( forStmt->get_body()->get_labels() );
     605                        output << CodeGenerator::printLabels( forStmt->get_body()->get_labels() );
    608606                        forStmt->get_body()->accept( *this );
    609                         cur_indent -= CodeGenerator2::tabsize;
    610                 } // if
    611         }
    612 
    613         void CodeGenerator2::visit( NullStmt *nullStmt ) {
    614                 //before << /* "\r" << */ string( cur_indent, ' ' ) << CodeGenerator2::printLabels( nullStmt->get_labels() );
    615                 before << "/* null statement */ ;";
    616         }
    617 
    618         void CodeGenerator2::visit( DeclStmt *declStmt ) {
     607                } // if
     608        }
     609
     610        void CodeGenerator::visit( NullStmt *nullStmt ) {
     611                //output << indent << CodeGenerator::printLabels( nullStmt->get_labels() );
     612                output << "/* null statement */ ;";
     613        }
     614
     615        void CodeGenerator::visit( DeclStmt *declStmt ) {
    619616                declStmt->get_decl()->accept( *this );
    620617       
    621618                if ( doSemicolon( declStmt->get_decl() ) ) {
    622                         after += ";";
    623                 } // if
    624                 shift_left();
    625         }
    626 
    627         std::string CodeGenerator2::printLabels( std::list< Label > &l ) {
     619                        output << ";";
     620                } // if
     621        }
     622
     623        std::string CodeGenerator::printLabels( std::list< Label > &l ) {
    628624                std::string str( "" );
    629                 l.unique();
     625                l.unique(); // assumes a sorted list. Why not use set?
    630626
    631627                for ( std::list< Label >::iterator i = l.begin(); i != l.end(); i++ )
     
    635631        }
    636632
    637         void CodeGenerator2::shift_left() {
    638                 before << after;
    639                 after = "";
    640         }
    641 
    642         void CodeGenerator2::handleStorageClass( Declaration *decl ) {
     633        void CodeGenerator::handleStorageClass( Declaration *decl ) {
    643634                switch ( decl->get_storageClass() ) {
    644                   case Declaration::NoStorageClass:
    645                         break;
    646                   case Declaration::Extern:
    647                         before << "extern ";
    648                         break;
    649                   case Declaration::Static:
    650                         before << "static ";
    651                         break;
    652                   case Declaration::Auto:
     635                  case DeclarationNode::Extern:
     636                        output << "extern ";
     637                        break;
     638                  case DeclarationNode::Static:
     639                        output << "static ";
     640                        break;
     641                  case DeclarationNode::Auto:
    653642                        // silently drop storage class
    654643                        break;
    655                   case Declaration::Register:
    656                         before << "register ";
     644                  case DeclarationNode::Register:
     645                        output << "register ";
     646                        break;
     647                  case DeclarationNode::Inline:
     648                        output << "inline ";
     649                        break;
     650                  case DeclarationNode::Fortran:
     651                        output << "fortran ";
     652                        break;
     653                  case DeclarationNode::Noreturn:
     654                        output << "_Noreturn ";
     655                        break;
     656                  case DeclarationNode::Threadlocal:
     657                        output << "_Thread_local ";
     658                        break;
     659                  case DeclarationNode::NoStorageClass:
    657660                        break;
    658661                } // switch
  • src/CodeGen/CodeGenerator.h

    reb50842 r937e51d  
    55// file "LICENCE" distributed with Cforall.
    66//
    7 // CodeGenerator2.h --
     7// CodeGenerator.h --
    88//
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 23:35:37 2015
    13 // Update Count     : 2
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Thu Jun 11 13:24:23 2015
     13// Update Count     : 23
    1414//
    1515
     
    1717#define CODEGENV_H
    1818
    19 #include <strstream>
    2019#include <list>
    2120
     
    2524
    2625namespace CodeGen {
    27         class CodeGenerator2 : public Visitor {
     26        class CodeGenerator : public Visitor {
    2827          public:
    2928                static int tabsize;
    3029
    31                 CodeGenerator2( std::ostream &os );
    32                 CodeGenerator2( std::ostream &os, std::string, int indent = 0, bool infun = false );
    33                 CodeGenerator2( std::ostream &os, char *, int indent = 0, bool infun = false );
    34 
    35                 CodeGenerator2( CodeGenerator2 & );
     30                CodeGenerator( std::ostream &os );
     31                CodeGenerator( std::ostream &os, std::string, int indent = 0, bool infun = false );
     32                CodeGenerator( std::ostream &os, char *, int indent = 0, bool infun = false );
    3633
    3734                //*** Declaration
     
    8279                virtual void visit( DeclStmt * );
    8380
    84                 std::string get_string( void );
    85                 void add_string_left( std::string s ) { before << s; }
    86                 void shift_left();
    8781                template< class Iterator > void genCommaList( Iterator begin, Iterator end );
     82
     83                struct Indenter {
     84                        Indenter(CodeGenerator &cg) : cg(cg) {}
     85                        CodeGenerator & cg;
     86                        std::ostream& operator()(std::ostream & os);
     87                };
    8888          private:
     89
     90                Indenter indent;
    8991                int cur_indent;
    9092                bool insideFunction;
    91                 std::ostream &before;
    92                 std::string after;
     93                std::ostream &output;
    9394
    9495                static std::string printLabels ( std::list < Label > & );
     
    100101       
    101102        template< class Iterator >
    102         void CodeGenerator2::genCommaList( Iterator begin, Iterator end ) {
     103        void CodeGenerator::genCommaList( Iterator begin, Iterator end ) {
    103104                if ( begin == end ) return;
    104105
     
    106107                        (*begin++)->accept( *this );
    107108                        if ( begin == end ) return;
    108                         before << ", ";
     109                        output << ", ";
    109110                } // for
    110111        }
  • src/CodeGen/GenType.cc

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 23:38:22 2015
    13 // Update Count     : 2
    14 //
    15 
    16 #include <strstream>
     12// Last Modified On : Mon Jun  8 14:36:02 2015
     13// Update Count     : 9
     14//
     15
     16#include <sstream>
    1717#include <cassert>
    1818
    1919#include "GenType.h"
    20 #include "CodeGenerator2.h"
     20#include "CodeGenerator.h"
    2121#include "SynTree/Visitor.h"
    2222#include "SynTree/Type.h"
     
    6868
    6969        void GenType::genArray( const Type::Qualifiers &qualifiers, Type *base, Expression *dimension, bool isVarLen, bool isStatic ) {
    70                 std::ostrstream os;
     70                std::ostringstream os;
    7171                if ( typeString != "" ) {
    7272                        if ( typeString[ 0 ] == '*' ) {
     
    9797                } // if
    9898                if ( dimension != 0 ) {
    99                         CodeGenerator2 cg( os );
     99                        CodeGenerator cg( os );
    100100                        dimension->accept( cg );
    101101                } // if
    102102                os << "]";
    103103
    104                 typeString = std::string( os.str(), os.pcount() );
     104                typeString = os.str();
    105105 
    106106                base->accept( *this );
     
    127127
    128128        void GenType::visit( FunctionType *funcType ) {
    129                 std::ostrstream os;
     129                std::ostringstream os;
    130130
    131131                if ( typeString != "" ) {
     
    148148                        } // if
    149149                } else {
    150                         CodeGenerator2 cg( os );
     150                        CodeGenerator cg( os );
    151151                        os << "(" ;
    152152
     
    159159                } // if
    160160 
    161                 typeString = std::string( os.str(), os.pcount() );
     161                typeString = os.str();
    162162
    163163                if ( funcType->get_returnVals().size() == 0 ) {
  • src/CodeGen/Generate.cc

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 23:39:24 2015
    13 // Update Count     : 1
     12// Last Modified On : Thu Jun  4 14:04:25 2015
     13// Update Count     : 5
    1414//
    1515
     
    2121#include "Generate.h"
    2222#include "SynTree/Declaration.h"
    23 
    24 #include "CodeGenerator2.h"
     23#include "CodeGenerator.h"
    2524
    2625using namespace std;
     
    2827namespace CodeGen {
    2928        void generate( std::list< Declaration* > translationUnit, std::ostream &os, bool doIntrinsics ) {
    30                 CodeGen::CodeGenerator2 cgv( os );
     29                CodeGen::CodeGenerator cgv( os );
    3130
    3231                for ( std::list<Declaration *>::iterator i = translationUnit.begin(); i != translationUnit.end();  i++ ) {
    3332                        if ( LinkageSpec::isGeneratable( (*i)->get_linkage() ) && (doIntrinsics || ! LinkageSpec::isBuiltin( (*i)->get_linkage() ) ) ) {
    3433                                (*i)->accept(cgv);
    35                                 cgv.shift_left();
    3634                                if ( doSemicolon( *i ) ) {
    3735                                        os << ";";
  • src/CodeGen/OperatorTable.cc

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 23:42:07 2015
    13 // Update Count     : 2
     12// Last Modified On : Tue Jun 23 17:41:14 2015
     13// Update Count     : 5
    1414//
    1515
     
    2020        namespace {
    2121                const OperatorInfo tableValues[] = {
    22                         {       "?[?]",         "",             "_operator_index",                      OT_INDEX                },
    23                         {       "?()",          "",             "_operator_call",                       OT_CALL                 },
    24                         {       "?++",          "++",   "_operator_postincr",           OT_POSTFIXASSIGN        },
    25                         {       "?--",          "--",   "_operator_postdecr",           OT_POSTFIXASSIGN        },
    26                         {       "*?",           "*",    "_operator_deref",                      OT_PREFIX               },
    27                         {       "+?",           "+",    "_operator_unaryplus",          OT_PREFIX               },
    28                         {       "-?",           "-",    "_operator_unaryminus",         OT_PREFIX               },
    29                         {       "~?",           "~",    "_operator_bitnot",                     OT_PREFIX               },
    30                         {       "!?",           "!",    "_operator_lognot",                     OT_PREFIX               },
    31                         {       "++?",          "++",   "_operator_preincr",            OT_PREFIXASSIGN         },
    32                         {       "--?",          "--",   "_operator_predecr",            OT_PREFIXASSIGN         },
    33                         {       "?*?",          "*",    "_operator_multiply",           OT_INFIX                },
    34                         {       "?/?",          "/",    "_operator_divide",                     OT_INFIX                },
    35                         {       "?%?",          "%",    "_operator_modulus",            OT_INFIX                },
    36                         {       "?+?",          "+",    "_operator_add",                        OT_INFIX                },
    37                         {       "?-?",          "-",    "_operator_subtract",           OT_INFIX                },
    38                         {       "?<<?",         "<<",   "_operator_shiftleft",          OT_INFIX                },
    39                         {       "?>>?",         ">>",   "_operator_shiftright",         OT_INFIX                },
    40                         {       "?<?",          "<",    "_operator_less",                       OT_INFIX                },
    41                         {       "?>?",          ">",    "_operator_greater",            OT_INFIX                },
    42                         {       "?<=?",         "<=",   "_operator_lessequal",          OT_INFIX                },
    43                         {       "?>=?",         ">=",   "_operator_greaterequal",       OT_INFIX                },
    44                         {       "?==?",         "==",   "_operator_equal",                      OT_INFIX                },
    45                         {       "?!=?",         "!=",   "_operator_notequal",           OT_INFIX                },
    46                         {       "?&?",          "&",    "_operator_bitand",                     OT_INFIX                },
    47                         {       "?^?",          "^",    "_operator_bitxor",                     OT_INFIX                },
    48                         {       "?|?",          "|",    "_operator_bitor",                      OT_INFIX                },
    49                         {       "?=?",          "=",    "_operator_assign",                     OT_INFIXASSIGN          },
    50                         {       "?*=?",         "*=",   "_operator_multassign",         OT_INFIXASSIGN          },
    51                         {       "?/=?",         "/=",   "_operator_divassign",          OT_INFIXASSIGN          },
    52                         {       "?%=?",         "%=",   "_operator_modassign",          OT_INFIXASSIGN          },
    53                         {       "?+=?",         "+=",   "_operator_addassign",          OT_INFIXASSIGN          },
    54                         {       "?-=?",         "-=",   "_operator_subassign",          OT_INFIXASSIGN          },
     22                        {       "?[?]",         "",             "_operator_index",                              OT_INDEX                        },
     23                        {       "?()",          "",             "_operator_call",                               OT_CALL                         },
     24                        {       "?++",          "++",   "_operator_postincr",                   OT_POSTFIXASSIGN        },
     25                        {       "?--",          "--",   "_operator_postdecr",                   OT_POSTFIXASSIGN        },
     26                        {       "*?",           "*",    "_operator_deref",                              OT_PREFIX                       },
     27                        {       "+?",           "+",    "_operator_unaryplus",                  OT_PREFIX                       },
     28                        {       "-?",           "-",    "_operator_unaryminus",                 OT_PREFIX                       },
     29                        {       "~?",           "~",    "_operator_bitnot",                             OT_PREFIX                       },
     30                        {       "!?",           "!",    "_operator_lognot",                             OT_PREFIX                       },
     31                        {       "++?",          "++",   "_operator_preincr",                    OT_PREFIXASSIGN         },
     32                        {       "--?",          "--",   "_operator_predecr",                    OT_PREFIXASSIGN         },
     33                        {       "?*?",          "*",    "_operator_multiply",                   OT_INFIX                        },
     34                        {       "?/?",          "/",    "_operator_divide",                             OT_INFIX                        },
     35                        {       "?%?",          "%",    "_operator_modulus",                    OT_INFIX                        },
     36                        {       "?+?",          "+",    "_operator_add",                                OT_INFIX                        },
     37                        {       "?-?",          "-",    "_operator_subtract",                   OT_INFIX                        },
     38                        {       "?<<?",         "<<",   "_operator_shiftleft",                  OT_INFIX                        },
     39                        {       "?>>?",         ">>",   "_operator_shiftright",                 OT_INFIX                        },
     40                        {       "?<?",          "<",    "_operator_less",                               OT_INFIX                        },
     41                        {       "?>?",          ">",    "_operator_greater",                    OT_INFIX                        },
     42                        {       "?<=?",         "<=",   "_operator_lessequal",                  OT_INFIX                        },
     43                        {       "?>=?",         ">=",   "_operator_greaterequal",               OT_INFIX                        },
     44                        {       "?==?",         "==",   "_operator_equal",                              OT_INFIX                        },
     45                        {       "?!=?",         "!=",   "_operator_notequal",                   OT_INFIX                        },
     46                        {       "?&?",          "&",    "_operator_bitand",                             OT_INFIX                        },
     47                        {       "?^?",          "^",    "_operator_bitxor",                             OT_INFIX                        },
     48                        {       "?|?",          "|",    "_operator_bitor",                              OT_INFIX                        },
     49                        {       "?=?",          "=",    "_operator_assign",                             OT_INFIXASSIGN          },
     50                        {       "?*=?",         "*=",   "_operator_multassign",                 OT_INFIXASSIGN          },
     51                        {       "?/=?",         "/=",   "_operator_divassign",                  OT_INFIXASSIGN          },
     52                        {       "?%=?",         "%=",   "_operator_modassign",                  OT_INFIXASSIGN          },
     53                        {       "?+=?",         "+=",   "_operator_addassign",                  OT_INFIXASSIGN          },
     54                        {       "?-=?",         "-=",   "_operator_subassign",                  OT_INFIXASSIGN          },
    5555                        {       "?<<=?",        "<<=",  "_operator_shiftleftassign",    OT_INFIXASSIGN          },
    5656                        {       "?>>=?",        ">>=",  "_operator_shiftrightassign",   OT_INFIXASSIGN          },
    57                         {       "?&=?",         "&=",   "_operator_bitandassign",       OT_INFIXASSIGN          },
    58                         {       "?^=?",         "^=",   "_operator_bitxorassign",       OT_INFIXASSIGN          },
    59                         {       "?|=?",         "|=",   "_operator_bitorassign",        OT_INFIXASSIGN          },
    60                         {       "0",            "0",    "_constant_zero",                       OT_CONSTANT             },
    61                         {       "1",            "1",    "_constant_one",                        OT_CONSTANT             }
     57                        {       "?&=?",         "&=",   "_operator_bitandassign",               OT_INFIXASSIGN          },
     58                        {       "?^=?",         "^=",   "_operator_bitxorassign",               OT_INFIXASSIGN          },
     59                        {       "?|=?",         "|=",   "_operator_bitorassign",                OT_INFIXASSIGN          },
     60                        {       "&&",           "&&",   "&&",                                                   OT_LABELADDRESS         },
     61                        {       "0",            "0",    "_constant_zero",                               OT_CONSTANT                     },
     62                        {       "1",            "1",    "_constant_one",                                OT_CONSTANT                     }
    6263                };
    6364
  • src/CodeGen/OperatorTable.h

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 23:43:07 2015
    13 // Update Count     : 2
     12// Last Modified On : Tue Jun 23 16:09:27 2015
     13// Update Count     : 3
    1414//
    1515
     
    2929                OT_POSTFIXASSIGN,
    3030                OT_INFIXASSIGN,
     31                OT_LABELADDRESS,
    3132                OT_CONSTANT
    3233        };
  • src/CodeGen/module.mk

    reb50842 r937e51d  
     1######################### -*- Mode: Makefile-Gmake -*- ########################
     2##
     3## Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     4##
     5## The contents of this file are covered under the licence agreement in the
     6## file "LICENCE" distributed with Cforall.
     7##
     8## module.mk --
     9##
     10## Author           : Richard C. Bilson
     11## Created On       : Mon Jun  1 17:49:17 2015
     12## Last Modified By : Peter A. Buhr
     13## Last Modified On : Tue Jun  2 11:17:02 2015
     14## Update Count     : 3
     15###############################################################################
     16
     17#SRC +=  ArgTweak/Rewriter.cc \
     18#       ArgTweak/Mutate.cc
     19
    120SRC +=  CodeGen/Generate.cc \
    2         CodeGen/CodeGenerator2.cc \
     21        CodeGen/CodeGenerator.cc \
    322        CodeGen/GenType.cc \
    423        CodeGen/FixNames.cc \
    5         CodeGen/OperatorTable.cc \
    6         $(NULL)
     24        CodeGen/OperatorTable.cc
  • src/Common/SemanticError.h

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 19 07:22:23 2015
    13 // Update Count     : 1
     12// Last Modified On : Mon Jun  8 14:38:53 2015
     13// Update Count     : 4
    1414//
    1515
     
    1919#include <exception>
    2020#include <string>
    21 #include <strstream>
     21#include <sstream>
    2222#include <list>
    2323#include <iostream>
     
    4242template< typename T >
    4343SemanticError::SemanticError( const std::string &error, const T *obj ) {
    44         std::ostrstream os;
     44        std::ostringstream os;
    4545        os << "Error: " << error;
    4646        obj->print( os );
    47         errors.push_back( std::string( os.str(), os.pcount() ) );
     47        errors.push_back( os.str() );
    4848}
    4949
  • src/Common/UniqueName.cc

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 19 07:23:41 2015
    13 // Update Count     : 1
     12// Last Modified On : Mon Jun  8 14:47:49 2015
     13// Update Count     : 3
    1414//
    1515
    1616#include <string>
    17 #include <strstream>
     17#include <sstream>
    1818
    1919#include "UniqueName.h"
     
    2323
    2424std::string UniqueName::newName( const std::string &additional ) {
    25         std::ostrstream os;
     25        std::ostringstream os;
    2626        os << base << additional << count++;
    27         return std::string( os.str(), os.pcount() );
     27        return os.str();
    2828}
    2929
  • src/Common/module.mk

    reb50842 r937e51d  
     1######################### -*- Mode: Makefile-Gmake -*- ########################
     2##
     3## Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     4##
     5## The contents of this file are covered under the licence agreement in the
     6## file "LICENCE" distributed with Cforall.
     7##
     8## module.mk --
     9##
     10## Author           : Richard C. Bilson
     11## Created On       : Mon Jun  1 17:49:17 2015
     12## Last Modified By : Peter A. Buhr
     13## Last Modified On : Mon Jun  1 17:51:23 2015
     14## Update Count     : 1
     15###############################################################################
     16
    117SRC += Common/SemanticError.cc \
    218       Common/UniqueName.cc
  • src/Common/utility.h

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 19 15:34:57 2015
    13 // Update Count     : 3
     12// Last Modified On : Mon Jun  8 14:43:54 2015
     13// Update Count     : 13
    1414//
    1515
     
    1818
    1919#include <iostream>
    20 #include <strstream>
     20#include <sstream>
    2121#include <iterator>
    2222#include <string>
     
    6060        for ( typename Container::const_iterator i = container.begin(); i != container.end(); ++i ) {
    6161                if ( *i ) {
    62                         os << std::string(indent,  ' ');
     62                        os << std::string( indent,  ' ' );
    6363                        (*i)->print( os, indent + 2 );
    6464                        os << std::endl;
     
    130130template < typename T >
    131131std::string toString ( T value ) {
    132         std::ostrstream os;
    133  
     132        std::ostringstream os;
    134133        os << value; // << std::ends;
    135         os.freeze( false );
    136 
    137         return std::string(os.str(), os.pcount());
     134        return os.str();
    138135}
    139136
     
    151148template< typename T >
    152149void replace( std::list< T > &org, typename std::list< T >::iterator pos, std::list< T > &with ) {
    153         // TIter should secretly be a typename std::list< T >::iterator
    154         //   ( g++ 3.2 issues a 'is implicitly a typename' warning if I make this explicit )
    155150        typename std::list< T >::iterator next = pos; advance( next, 1 );
    156151
     
    196191        while ( b1 != e1 && b2 != e2 )
    197192                *out++ = func(*b1++, *b2++);
     193}
     194
     195// it's nice to actually be able to increment iterators by an arbitrary amount
     196template< typename Iterator >
     197Iterator operator+(Iterator i, int inc) {
     198        while ( inc > 0 ) {
     199                ++i;
     200                --inc;
     201        }
     202        return i;
    198203}
    199204
  • src/ControlStruct/ChooseMutator.cc

    reb50842 r937e51d  
    99// Author           : Rodolfo G. Esteves
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 19 15:31:39 2015
    13 // Update Count     : 2
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Wed Jun 03 15:30:20 2015
     13// Update Count     : 5
    1414//
    1515
     
    4444                std::list< Statement * > &stmts = caseStmt->get_statements();
    4545
     46                // the difference between switch and choose is that switch has an implicit fallthrough
     47                // to the next case, whereas choose has an implicit break at the end of the current case.
     48                // thus to transform a choose statement into a switch, we only need to insert breaks at the
     49                // end of any case that doesn't already end in a break and that doesn't end in a fallthru
     50
    4651                if ( insideChoose ) {
    4752                        BranchStmt *posBrk;
  • src/ControlStruct/LabelFixer.cc

    reb50842 r937e51d  
    99// Author           : Rodolfo G. Esteves
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 19 15:25:59 2015
    13 // Update Count     : 1
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Wed Jun 24 16:24:34 2015
     13// Update Count     : 141
    1414//
    1515
     
    1919#include "LabelFixer.h"
    2020#include "MLEMutator.h"
     21#include "SynTree/Expression.h"
    2122#include "SynTree/Statement.h"
    2223#include "SynTree/Declaration.h"
    2324#include "utility.h"
    2425
     26#include <iostream>
     27
    2528namespace ControlStruct {
    2629        LabelFixer::Entry::Entry( Statement *to, Statement *from ) : definition ( to ) {
    27                 if ( from != 0 )
    28                         usage.push_back( from );
    29         }
     30                if ( from != 0 ) {
     31                        UsageLoc loc; loc.stmt = from;
     32                        usage.push_back( loc );
     33                }
     34        }
     35
     36        LabelFixer::Entry::Entry( Statement *to, Expression *from ) : definition ( to ) {
     37                if ( from != 0 ) {
     38                        UsageLoc loc; loc.expr = from;
     39                        usage.push_back( loc );
     40                }
     41        }
     42
    3043
    3144        bool LabelFixer::Entry::insideLoop() {
    3245                return ( dynamic_cast< ForStmt * > ( definition ) ||
    33                                  dynamic_cast< WhileStmt * > ( definition )  );
     46                        dynamic_cast< WhileStmt * > ( definition )  );
     47        }
     48
     49        void LabelFixer::Entry::UsageLoc::accept( Visitor & visitor ) {
     50                if ( dynamic_cast< Statement * >( stmt ) ) {
     51                        stmt->accept( visitor );
     52                } else {
     53                        expr->accept( visitor );
     54                }
    3455        }
    3556
     
    4061
    4162        void LabelFixer::visit( FunctionDecl *functionDecl ) {
    42                 if ( functionDecl->get_statements() != 0 )
    43                         functionDecl->get_statements()->accept( *this );
     63                maybeAccept( functionDecl->get_statements(), *this );
    4464
    4565                MLEMutator mlemut( resolveJumps(), generator );
     
    4767        }
    4868
     69        // prune to at most one label definition for each statement
    4970        void LabelFixer::visit( Statement *stmt ) {
     71                currentStatement = stmt;
    5072                std::list< Label > &labels = stmt->get_labels();
    5173
    5274                if ( ! labels.empty() ) {
     75                        // only remember one label for each statement
    5376                        Label current = setLabelsDef( labels, stmt );
    5477                        labels.clear();
     
    5881
    5982        void LabelFixer::visit( BranchStmt *branchStmt ) {
    60                 visit ( ( Statement * )branchStmt );  // the labels this statement might have
    61 
    62                 Label target;
    63                 if ( (target = branchStmt->get_target()) != "" ) {
     83                visit ( ( Statement * )branchStmt );
     84
     85                // for labeled branches, add an entry to the label table
     86                Label target = branchStmt->get_target();
     87                if ( target != "" ) {
    6488                        setLabelsUsg( target, branchStmt );
    65                 } //else       /* computed goto or normal exit-loop statements */
    66         }
    67 
     89                }
     90        }
     91
     92        void LabelFixer::visit( UntypedExpr *untyped ) {
     93                if ( NameExpr * func = dynamic_cast< NameExpr * >( untyped->get_function() ) ) {
     94                        if ( func->get_name() == "&&" ) {
     95                                NameExpr * arg = dynamic_cast< NameExpr * >( untyped->get_args().front() );
     96                                Label target = arg->get_name();
     97                                assert( target != "" );
     98                                setLabelsUsg( target, untyped );
     99                        } else {
     100                                Visitor::visit( untyped );
     101                        }
     102                }
     103        }
     104
     105
     106        // sets the definition of the labelTable entry to be the provided
     107        // statement for every label in the list parameter. Happens for every kind of statement
    68108        Label LabelFixer::setLabelsDef( std::list< Label > &llabel, Statement *definition ) {
    69109                assert( definition != 0 );
    70                 Entry *entry = new Entry( definition );
    71                 bool used = false;
    72 
    73                 for ( std::list< Label >::iterator i = llabel.begin(); i != llabel.end(); i++ )
    74                         if ( labelTable.find( *i ) == labelTable.end() )
    75                                 { used = true; labelTable[ *i ] = entry; } // undefined and unused
    76                         else
    77                                 if ( labelTable[ *i ]->defined() )
    78                                         throw SemanticError( "Duplicate definition of label: " + *i );
    79                                 else
    80                                         labelTable[ *i ]->set_definition( definition );
    81 
    82                 if ( ! used ) delete entry;
    83 
    84                 return labelTable[ llabel.front() ]->get_label();  // this *must* exist
    85         }
    86 
    87         Label LabelFixer::setLabelsUsg( Label orgValue, Statement *use ) {
     110                assert( llabel.size() > 0 );
     111
     112                Entry * e = new Entry( definition );
     113
     114                for ( std::list< Label >::iterator i = llabel.begin(); i != llabel.end(); i++ ) {
     115                        if ( labelTable.find( *i ) == labelTable.end() ) {
     116                                // all labels on this statement need to use the same entry, so this should only be created once
     117                                // undefined and unused until now, add an entry
     118                                labelTable[ *i ] =  e;
     119                        } else if ( labelTable[ *i ]->defined() ) {
     120                                // defined twice, error
     121                                throw SemanticError( "Duplicate definition of label: " + *i );
     122                        }       else {
     123                                // used previously, but undefined until now -> link with this entry
     124                                Entry * oldEntry = labelTable[ *i ];
     125                                e->add_uses( *oldEntry );
     126                                labelTable[ *i ] = e;
     127                        } // if
     128                } // for
     129
     130                // produce one of the labels attached to this statement to be
     131                // temporarily used as the canonical label
     132                return labelTable[ llabel.front() ]->get_label();
     133        }
     134
     135        // Remember all uses of a label.
     136        template< typename UsageNode >
     137        void LabelFixer::setLabelsUsg( Label orgValue, UsageNode *use ) {
    88138                assert( use != 0 );
    89139
    90                 if ( labelTable.find( orgValue ) != labelTable.end() )
    91                         labelTable[ orgValue ]->add_use( use );         // the label has been defined or used before
    92                 else
     140                if ( labelTable.find( orgValue ) != labelTable.end() ) {
     141                        // the label has been defined or used before
     142                        labelTable[ orgValue ]->add_use( use );
     143                } else {
    93144                        labelTable[ orgValue ] = new Entry( 0, use );
    94 
    95                 return labelTable[ orgValue ]->get_label();
    96         }
    97 
     145                }
     146        }
     147
     148        class LabelGetter : public Visitor {
     149                public:
     150                LabelGetter( Label &label ) : label( label ) {}
     151
     152                virtual void visit( BranchStmt * branchStmt ) {
     153                        label = branchStmt->get_target();
     154                }
     155
     156                virtual void visit( UntypedExpr * untyped ) {
     157                        NameExpr * name = dynamic_cast< NameExpr * >( untyped->get_function() );
     158                        assert( name );
     159                        assert( name->get_name() == "&&" );
     160                        NameExpr * arg = dynamic_cast< NameExpr * >( untyped->get_args().front() );
     161                        assert( arg );
     162                        label = arg->get_name();
     163                }               
     164
     165                private:
     166                        Label &label;
     167        };
     168
     169        class LabelSetter : public Visitor {
     170                public:
     171                LabelSetter( Label label ) : label( label ) {}
     172
     173                virtual void visit( BranchStmt * branchStmt ) {
     174                        branchStmt->set_target( label );
     175                }
     176
     177                virtual void visit( UntypedExpr * untyped ) {
     178                        NameExpr * name = dynamic_cast< NameExpr * >( untyped->get_function() );
     179                        assert( name );
     180                        assert( name->get_name() == "&&" );
     181                        NameExpr * arg = dynamic_cast< NameExpr * >( untyped->get_args().front() );
     182                        assert( arg );
     183                        arg->set_name( label );
     184                }
     185
     186        private:
     187                Label label;
     188        };
     189
     190        // Ultimately builds a table that maps a label to its defining statement.
     191        // In the process,
    98192        std::map<Label, Statement * > *LabelFixer::resolveJumps() throw ( SemanticError ) {
    99193                std::map< Statement *, Entry * > def_us;
    100194
    101                 for ( std::map< Label, Entry *>::iterator i = labelTable.begin(); i != labelTable.end(); i++ ) {
     195                // combine the entries for all labels that target the same location
     196                for ( std::map< Label, Entry *>::iterator i = labelTable.begin(); i != labelTable.end(); ++i ) {
    102197                        Entry *e = i->second;
    103198
    104                         if ( def_us.find ( e->get_definition() ) == def_us.end() )
     199                        if ( def_us.find ( e->get_definition() ) == def_us.end() ) {
    105200                                def_us[ e->get_definition() ] = e;
    106                         else
    107                                 if ( e->used() )
    108                                         def_us[ e->get_definition() ]->add_uses( e->get_uses() );
    109                 }
    110 
    111                 // get rid of labelTable
    112                 for ( std::map< Statement *, Entry * >::iterator i = def_us.begin(); i != def_us.end(); i++ ) {
     201                        } else if ( e->used() ) {
     202                                def_us[ e->get_definition() ]->add_uses( *e );
     203                        }
     204                }
     205
     206                // create a unique label for each target location.
     207                for ( std::map< Statement *, Entry * >::iterator i = def_us.begin(); i != def_us.end(); ++i ) {
    113208                        Statement *to = (*i).first;
    114                         std::list< Statement *> &from = (*i).second->get_uses();
    115                         Label finalLabel = generator->newLabel();
    116                         (*i).second->set_label( finalLabel );
    117 
     209                        Entry * entry = (*i).second;
     210                        std::list< Entry::UsageLoc > &from = entry->get_uses();
     211
     212                        // no label definition found
    118213                        if ( to == 0 ) {
    119                                 BranchStmt *first_use = dynamic_cast<BranchStmt *>(from.back());
    120                                 Label undef("");
    121                                 if ( first_use != 0 )
    122                                         undef = first_use->get_target();
     214                                Label undef;
     215                                LabelGetter getLabel( undef );
     216                                from.back().accept( getLabel );
     217                                // Label undef = getLabel( from.back()->get_target() );
    123218                                throw SemanticError ( "'" + undef + "' label not defined");
    124                         }
     219                        } // if
     220
     221                        // generate a new label, and attach it to its defining statement as the only label on that statement
     222                        Label finalLabel = generator->newLabel( to->get_labels().back() );
     223                        entry->set_label( finalLabel );
    125224
    126225                        to->get_labels().clear();
    127226                        to->get_labels().push_back( finalLabel );
    128227
    129                         for ( std::list< Statement *>::iterator j = from.begin(); j != from.end(); j++ ) {
    130                                 BranchStmt *jumpTo = dynamic_cast< BranchStmt * > ( *j );
    131                                 assert( jumpTo != 0 );
    132                                 jumpTo->set_target( finalLabel );
     228                        // redirect each of the source branch statements to the new target label
     229                        for ( std::list< Entry::UsageLoc >::iterator j = from.begin(); j != from.end(); ++j ) {
     230                                LabelSetter setLabel( finalLabel );
     231                                (*j).accept( setLabel );
     232                                // setLabel( *j, finalLabel );
     233
     234                                // BranchStmt *jump = *j;
     235                                // assert( jump != 0 );
     236                                // jump->set_target( finalLabel );
    133237                        } // for
    134238                } // for
    135239
    136                 // reverse table
     240                // create a table where each label maps to its defining statement
    137241                std::map< Label, Statement * > *ret = new std::map< Label, Statement * >();
    138                 for ( std::map< Statement *, Entry * >::iterator i = def_us.begin(); i != def_us.end(); i++ )
     242                for ( std::map< Statement *, Entry * >::iterator i = def_us.begin(); i != def_us.end(); ++i ) {
    139243                        (*ret)[ (*i).second->get_label() ] = (*i).first;
     244                }
    140245
    141246                return ret;
  • src/ControlStruct/LabelFixer.h

    reb50842 r937e51d  
    99// Author           : Rodolfo G. Esteves
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 19 15:31:55 2015
    13 // Update Count     : 3
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Tue Jun 23 15:47:25 2015
     13// Update Count     : 28
    1414//
    1515
     
    5353                virtual void visit( DeclStmt *stmt ) { visit( (Statement *)stmt ); return Parent::visit( stmt ); }
    5454                virtual void visit( BranchStmt *branchStmt );
     55                virtual void visit( UntypedExpr *untyped );
    5556
    5657                Label setLabelsDef( std::list< Label > &, Statement *definition );
    57                 Label setLabelsUsg( Label, Statement *usage = 0 );
     58                template< typename UsageNode >
     59                void setLabelsUsg( Label, UsageNode *usage = 0 );
    5860
    5961          private:
    6062                class Entry {
    61                   public:
    62                         Entry( Statement *to = 0, Statement *from = 0 );
     63                        public:
     64                        union UsageLoc {
     65                                Statement * stmt;
     66                                Expression * expr;
     67
     68                                void accept( Visitor &visitor );
     69                        };
     70
     71                        Entry( Statement *to ) : definition( to ) {}
     72                        Entry( Statement *to, Statement *from );
     73                        Entry( Statement *to, Expression *from );
    6374                        bool used() { return ( usage.empty() ); }
    6475                        bool defined() { return ( definition != 0 ); }
     
    6677
    6778                        Label get_label() const { return label; }
     79                        void set_label( Label lab ) { label = lab; }
     80
    6881                        Statement *get_definition() const { return definition; }
    69                         std::list< Statement *> &get_uses() { return usage; }
    70 
    71                         void add_use ( Statement *use ) { usage.push_back( use ); }
    72                         void add_uses ( std::list<Statement *> uses ) { usage.insert( usage.end(), uses.begin(), uses.end() ); }
    7382                        void set_definition( Statement *def ) { definition = def; }
    7483
    75                         void set_label( Label lab ) { label = lab; }
    76                         Label gset_label() const { return label; }
     84                        std::list< UsageLoc > &get_uses() { return usage; }
     85                        void add_use( Statement *use ) {
     86                                UsageLoc loc;
     87                                loc.stmt = use;
     88                                usage.push_back( loc );
     89                        }
     90                        void add_use( Expression *use ) {
     91                                UsageLoc loc;
     92                                loc.expr = use;
     93                                usage.push_back( loc );                                 
     94                        }
     95
     96                        void add_uses ( Entry &other ) { usage.insert( usage.end(), other.usage.begin(), usage.end() ); }
    7797                  private:
    7898                        Label label; 
    7999                        Statement *definition;
    80                         std::list<Statement *> usage;
     100                        std::list<UsageLoc> usage;
    81101                };
    82102                 
    83103                std::map < Label, Entry *> labelTable;
    84104                LabelGenerator *generator;
     105                Statement * currentStatement;
    85106        };
    86107} // namespace ControlStruct
  • src/ControlStruct/LabelGenerator.cc

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 19 15:32:04 2015
    13 // Update Count     : 2
     12// Last Modified On : Tue Jun 23 12:18:34 2015
     13// Update Count     : 13
    1414//
    1515
    1616#include <iostream>
    17 #include <strstream>
     17#include <sstream>
    1818
    1919#include "LabelGenerator.h"
     
    2929        }
    3030
    31         Label LabelGenerator::newLabel() {
    32                 std::ostrstream os;
    33                 os << "__L" << current++ << "__";// << std::ends;
    34                 os.freeze( false );
    35                 std::string ret = std::string (os.str(), os.pcount());
     31        Label LabelGenerator::newLabel( std::string suffix ) {
     32                std::ostringstream os;
     33                os << "__L" << current++ << "__" << suffix;
     34                std::string ret = os.str();
    3635                return Label( ret );
    3736        }
  • src/ControlStruct/LabelGenerator.h

    reb50842 r937e51d  
    99// Author           : Rodolfo G. Esteves
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 19 15:33:20 2015
    13 // Update Count     : 3
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Wed Jun 03 14:16:26 2015
     13// Update Count     : 5
    1414//
    1515
     
    1818
    1919#include "SynTree/SynTree.h"
     20#include <string>
    2021
    2122namespace ControlStruct {
     
    2324          public:
    2425                static LabelGenerator *getGenerator();
    25                 Label newLabel();
     26                Label newLabel(std::string suffix = "");
    2627                void reset() { current = 0; }
    2728                void rewind() { current--; }
  • src/ControlStruct/LabelTypeChecker.cc

    reb50842 r937e51d  
    99// Author           : Rodolfo G. Esteves
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 19 15:32:15 2015
    13 // Update Count     : 2
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Wed Jun 24 16:24:48 2015
     13// Update Count     : 3
    1414//
    1515
     
    2929                NameExpr *fname;
    3030                if ( ((fname = dynamic_cast<NameExpr *>(untypedExpr->get_function())) != 0)
    31                          && fname->get_name() == std::string("LabAddress") )
     31                         && fname->get_name() == std::string("&&") )
    3232                        std::cerr << "Taking the label of an address." << std::endl;
    3333                else {
  • src/ControlStruct/MLEMutator.cc

    reb50842 r937e51d  
    99// Author           : Rodolfo G. Esteves
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 19 15:32:26 2015
    13 // Update Count     : 2
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Thu Jun 04 15:12:33 2015
     13// Update Count     : 173
    1414//
    1515
     
    1919#include "MLEMutator.h"
    2020#include "SynTree/Statement.h"
     21#include "SynTree/Expression.h"
    2122
    2223namespace ControlStruct {
     
    2627        }
    2728
    28         CompoundStmt* MLEMutator::mutate( CompoundStmt *cmpndStmt ) {
    29                 bool labeledBlock = false;
    30                 if ( !((cmpndStmt->get_labels()).empty()) ) {
    31                         labeledBlock = true;
    32                         enclosingBlocks.push_back( Entry( cmpndStmt ) );
    33                 } // if
    34 
    35                 std::list< Statement * > &kids = cmpndStmt->get_kids();
     29        // break labels have to come after the statement they break out of,
     30        // so mutate a statement, then if they inform us through the breakLabel field
     31        // tha they need a place to jump to on a break statement, add the break label
     32        // to the body of statements
     33        void MLEMutator::fixBlock( std::list< Statement * > &kids ) {
    3634                for ( std::list< Statement * >::iterator k = kids.begin(); k != kids.end(); k++ ) {
    3735                        *k = (*k)->acceptMutator(*this);
    3836
    3937                        if ( ! get_breakLabel().empty() ) {
    40                                 std::list< Statement * >::iterator next = k; next++;
     38                                std::list< Statement * >::iterator next = k+1;
    4139                                if ( next == kids.end() ) {
    4240                                        std::list<Label> ls; ls.push_back( get_breakLabel() );
    4341                                        kids.push_back( new NullStmt( ls ) );
    44                                 } else
     42                                } else {
    4543                                        (*next)->get_labels().push_back( get_breakLabel() );
     44                                }
    4645
    4746                                set_breakLabel("");
    4847                        } // if
    4948                } // for
     49        }
     50
     51        CompoundStmt* MLEMutator::mutate( CompoundStmt *cmpndStmt ) {
     52                bool labeledBlock = !(cmpndStmt->get_labels().empty());
     53                if ( labeledBlock ) {
     54                        Label brkLabel = generator->newLabel("blockBreak");
     55                        enclosingBlocks.push_back( Entry( cmpndStmt, brkLabel ) );
     56                } // if
     57
     58                // a child statement may set the break label
     59                // - if they do, attach it to the next statement
     60                std::list< Statement * > &kids = cmpndStmt->get_kids();
     61                fixBlock( kids );
    5062
    5163                if ( labeledBlock ) {
    5264                        assert( ! enclosingBlocks.empty() );
    53                         if ( ! enclosingBlocks.back().get_breakExit().empty() )
    54                                 set_breakLabel( enclosingBlocks.back().get_breakExit() );
     65                        if ( ! enclosingBlocks.back().useBreakExit().empty() ) {
     66                                set_breakLabel( enclosingBlocks.back().useBreakExit() );
     67                        }
    5568                        enclosingBlocks.pop_back();
    5669                } // if
    5770
    58                 //mutateAll( cmpndStmt->get_kids(), *this );
    5971                return cmpndStmt;
    6072        }
    6173
    62         Statement *MLEMutator::mutate( WhileStmt *whileStmt ) {
    63                 enclosingLoops.push_back( Entry( whileStmt ) );
    64                 whileStmt->set_body ( whileStmt->get_body()->acceptMutator( *this ) );
    65 
     74        template< typename LoopClass >
     75        Statement *MLEMutator::handleLoopStmt( LoopClass *loopStmt ) {
     76                // remember this as the most recent enclosing loop, then mutate
     77                // the body of the loop -- this will determine whether brkLabel
     78                // and contLabel are used with branch statements
     79                // and will recursively do the same to nested loops
     80                Label brkLabel = generator->newLabel("loopBreak");
     81                Label contLabel = generator->newLabel("loopContinue");
     82                enclosingLoops.push_back( Entry( loopStmt, brkLabel, contLabel ) );
     83                loopStmt->set_body ( loopStmt->get_body()->acceptMutator( *this ) );
     84
     85                // sanity check that the enclosing loops have been popped correctly
    6686                Entry &e = enclosingLoops.back();
    67                 assert ( e == whileStmt );
    68                 whileStmt->set_body( mutateLoop( whileStmt->get_body(), e ) );
     87                assert ( e == loopStmt );
     88
     89                // this will take the necessary steps to add definitions of the previous
     90                // two labels, if they are used.
     91                loopStmt->set_body( mutateLoop( loopStmt->get_body(), e ) );
    6992                enclosingLoops.pop_back();
    7093
    71                 return whileStmt;
    72         }
    73 
    74         Statement *MLEMutator::mutate( ForStmt *forStmt ) {
    75                 enclosingLoops.push_back( Entry( forStmt ) );
    76                 maybeMutate( forStmt->get_body(), *this );
    77 
    78                 Entry &e = enclosingLoops.back();
    79                 assert ( e == forStmt );
    80                 forStmt->set_body( mutateLoop( forStmt->get_body(), e ) );
    81                 enclosingLoops.pop_back();
    82 
    83                 return forStmt;
     94                return loopStmt;
     95        }
     96
     97        Statement *MLEMutator::mutate( CaseStmt *caseStmt ) {
     98                caseStmt->set_condition( maybeMutate( caseStmt->get_condition(), *this ) );
     99                fixBlock( caseStmt->get_statements() );
     100
     101                return caseStmt;
     102        }
     103
     104        template< typename SwitchClass >
     105        Statement *MLEMutator::handleSwitchStmt( SwitchClass *switchStmt ) {
     106                // generate a label for breaking out of a labeled switch
     107                Label brkLabel = generator->newLabel("switchBreak");
     108                enclosingSwitches.push_back( Entry(switchStmt, brkLabel) );
     109                mutateAll( switchStmt->get_branches(), *this );
     110
     111                Entry &e = enclosingSwitches.back();
     112                assert ( e == switchStmt );
     113
     114                // only generate break label if labeled break is used
     115                if (e.isBreakUsed()) {
     116                        // for the purposes of keeping switch statements uniform (i.e. all statements that are
     117                        // direct children of a switch should be CastStmts), append the exit label + break to the
     118                        // last case statement; create a default case if there are no cases
     119                        std::list< Statement * > &branches = switchStmt->get_branches();
     120                        if ( branches.empty() ) {
     121                                branches.push_back( CaseStmt::makeDefault() );
     122                        }
     123
     124                        if ( CaseStmt * c = dynamic_cast< CaseStmt * >( branches.back() ) ) {
     125                                std::list<Label> temp; temp.push_back( brkLabel );
     126                                c->get_statements().push_back( new BranchStmt( temp, Label(""), BranchStmt::Break ) );
     127                        } else assert(0); // as of this point, all branches of a switch are still CaseStmts
     128                }
     129
     130                assert ( enclosingSwitches.back() == switchStmt );
     131                enclosingSwitches.pop_back();
     132                return switchStmt;
    84133        }
    85134
    86135        Statement *MLEMutator::mutate( BranchStmt *branchStmt ) throw ( SemanticError ) {
     136                std::string originalTarget = branchStmt->get_originalTarget();
     137
    87138                if ( branchStmt->get_type() == BranchStmt::Goto )
    88139                        return branchStmt;
    89140
    90141                // test if continue target is a loop
    91                 if ( branchStmt->get_type() == BranchStmt::Continue && enclosingLoops.empty() )
    92                         throw SemanticError( "'continue' outside a loop" );
     142                if ( branchStmt->get_type() == BranchStmt::Continue) {
     143                        if ( enclosingLoops.empty() ) {
     144                                throw SemanticError( "'continue' outside a loop" );
     145                        } else if ( std::find( enclosingLoops.begin(), enclosingLoops.end(), (*targetTable)[branchStmt->get_target()] ) == enclosingLoops.end() ) {
     146                                throw SemanticError( "'continue' target label must be an enclosing loop: " + originalTarget );
     147                        }
     148                }
    93149
    94150                if ( branchStmt->get_type() == BranchStmt::Break && (enclosingLoops.empty() && enclosingSwitches.empty() && enclosingBlocks.empty() ) )
     
    98154
    99155                if ( targetTable->find( branchStmt->get_target() ) == targetTable->end() )
    100                         throw SemanticError("The label defined in the exit loop statement does not exist." );  // shouldn't happen (since that's already checked)
     156                        throw SemanticError("The label defined in the exit loop statement does not exist: " + originalTarget );  // shouldn't happen (since that's already checked)
    101157
    102158                std::list< Entry >::iterator check;
     
    106162                                // neither in loop nor in block, checking if in switch/choose
    107163                                if ( (check = std::find( enclosingSwitches.begin(), enclosingSwitches.end(), (*targetTable)[branchStmt->get_target()] )) == enclosingSwitches.end() )
    108                                         throw SemanticError("The target specified in the exit loop statement does not correspond to an enclosing loop.");
    109 
     164                                        throw SemanticError("The target specified in the exit loop statement does not correspond to an enclosing control structure: " + originalTarget );
     165
     166                // what about exiting innermost block or switch???
    110167                if ( enclosingLoops.back() == (*check) )
    111168                        return branchStmt;                              // exit the innermost loop (labels unnecessary)
    112169
    113                 Label newLabel;
     170                // branch error checks, get the appropriate label name and create a goto
     171                Label exitLabel;
    114172                switch ( branchStmt->get_type() ) {
    115173                  case BranchStmt::Break:
    116                         if ( check->get_breakExit() != "" )
    117                                 newLabel = check->get_breakExit();
    118                         else {
    119                                 newLabel = generator->newLabel();
    120                                 check->set_breakExit( newLabel );
    121                         } // if
    122                         break;
     174                                assert( check->useBreakExit() != "");
     175                                exitLabel = check->useBreakExit();
     176                                break;
    123177                  case BranchStmt::Continue:
    124                         if ( check->get_contExit() != "" )
    125                                 newLabel = check->get_contExit();
    126                         else {
    127                                 newLabel = generator->newLabel();
    128                                 check->set_contExit( newLabel );
    129                         } // if
    130                         break;
     178                                assert( check->useContExit() != "");
     179                                exitLabel = check->useContExit();
     180                                break;
    131181                  default:
    132                         return 0;                                       // shouldn't be here
     182                                assert(0);                                      // shouldn't be here
    133183                } // switch
    134184
    135                 return new BranchStmt( std::list<Label>(), newLabel, BranchStmt::Goto );
    136         }
    137 
    138 
    139         Statement *MLEMutator::mutate( SwitchStmt *switchStmt ) {
    140                 Label brkLabel = generator->newLabel();
    141                 enclosingSwitches.push_back( Entry(switchStmt, "", brkLabel) );
    142                 mutateAll( switchStmt->get_branches(), *this ); {
    143                         // check if this is necessary (if there is a break to this point, otherwise do not generate
    144                         std::list<Label> temp; temp.push_back( brkLabel );
    145                         switchStmt->get_branches().push_back( new BranchStmt( temp, Label(""), BranchStmt::Break ) );
    146                 }
    147                 assert ( enclosingSwitches.back() == switchStmt );
    148                 enclosingSwitches.pop_back();
    149                 return switchStmt;
    150         }
    151 
    152         Statement *MLEMutator::mutate( ChooseStmt *switchStmt ) {
    153                 Label brkLabel = generator->newLabel();
    154                 enclosingSwitches.push_back( Entry(switchStmt,"", brkLabel) );
    155                 mutateAll( switchStmt->get_branches(), *this ); {
    156                         // check if this is necessary (if there is a break to this point, otherwise do not generate
    157                         std::list<Label> temp; temp.push_back( brkLabel );
    158                         switchStmt->get_branches().push_back( new BranchStmt( temp, Label(""), BranchStmt::Break ) );
    159                 }
    160                 assert ( enclosingSwitches.back() == switchStmt );
    161                 enclosingSwitches.pop_back();
    162                 return switchStmt;
     185                return new BranchStmt( std::list<Label>(), exitLabel, BranchStmt::Goto );
    163186        }
    164187
    165188        Statement *MLEMutator::mutateLoop( Statement *bodyLoop, Entry &e ) {
     189                // ensure loop body is a block
    166190                CompoundStmt *newBody;
    167191                if ( ! (newBody = dynamic_cast<CompoundStmt *>( bodyLoop )) ) {
     
    170194                } // if
    171195
    172                 Label endLabel = e.get_contExit();
    173 
    174                 if ( e.get_breakExit() != "" ) {
    175                         if ( endLabel == "" ) endLabel = generator->newLabel();
    176                         // check for whether this label is used or not, so as to not generate extraneous gotos
    177                         if (e.breakExitUsed)
    178                                 newBody->get_kids().push_back( new BranchStmt( std::list< Label >(), endLabel, BranchStmt::Goto ) );
    179                         // xxx
    180                         //std::list< Label > ls; ls.push_back( e.get_breakExit() );
    181                         set_breakLabel( e.get_breakExit() );
    182                         //newBody->get_kids().push_back( new BranchStmt( ls, "", BranchStmt::Break ) );
    183                 } // if
    184 
    185                 if ( e.get_breakExit() != "" || e.get_contExit() != "" ) {
    186                         if (dynamic_cast< NullStmt *>( newBody->get_kids().back() ))
    187                                 newBody->get_kids().back()->get_labels().push_back( endLabel );
    188                         else {
    189                                 std::list < Label > ls; ls.push_back( endLabel );
    190                                 newBody->get_kids().push_back( new NullStmt( ls ) );
    191                         } // if
    192                 } // if
     196                // only generate these when needed
     197
     198                if ( e.isContUsed() ) {
     199                        // continue label goes in the body as the last statement
     200                        std::list< Label > labels; labels.push_back( e.useContExit() );
     201                        newBody->get_kids().push_back( new NullStmt( labels ) );                       
     202                }
     203
     204                if ( e.isBreakUsed() ) {
     205                        // break label goes after the loop -- it'll get set by the
     206                        // outer mutator if we do this
     207                        set_breakLabel( e.useBreakExit() );                     
     208                }
    193209
    194210                return newBody;
    195211        }
    196212
    197         //*** Entry's methods
    198         void MLEMutator::Entry::set_contExit( Label l ) {
    199                 assert ( contExit == "" || contExit == l );
    200                 contExit = l;
    201         }
    202 
    203         void MLEMutator::Entry::set_breakExit( Label l ) {
    204                 assert ( breakExit == "" || breakExit == l );
    205                 breakExit = l;
    206         }
     213        Statement *MLEMutator::mutate( WhileStmt *whileStmt ) {
     214                return handleLoopStmt( whileStmt );
     215        }
     216
     217        Statement *MLEMutator::mutate( ForStmt *forStmt ) {
     218                return handleLoopStmt( forStmt );
     219        }
     220
     221        Statement *MLEMutator::mutate( SwitchStmt *switchStmt ) {
     222                return handleSwitchStmt( switchStmt );
     223        }
     224
     225        Statement *MLEMutator::mutate( ChooseStmt *switchStmt ) {
     226                return handleSwitchStmt( switchStmt );         
     227        }
     228
    207229} // namespace ControlStruct
    208230
  • src/ControlStruct/MLEMutator.h

    reb50842 r937e51d  
    99// Author           : Rodolfo G. Esteves
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 19 15:32:39 2015
    13 // Update Count     : 3
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Wed Jun 03 15:06:36 2015
     13// Update Count     : 25
    1414//
    1515
     
    3838                Statement *mutate( BranchStmt *branchStmt ) throw ( SemanticError );
    3939
     40                Statement *mutate( CaseStmt *caseStmt );
    4041                Statement *mutate( SwitchStmt *switchStmt );
    4142                Statement *mutate( ChooseStmt *switchStmt );
     
    4849                class Entry {
    4950                  public:
    50                         explicit Entry( Statement *_loop = 0, Label _contExit = Label(""), Label _breakExit = Label("") ) :
    51                                 loop( _loop ), contExit( _contExit ), breakExit( _breakExit ), contExitUsed( false ), breakExitUsed( false ) {}
     51                        explicit Entry( Statement *_loop, Label _breakExit, Label _contExit = Label("") ) :
     52                                loop( _loop ), breakExit( _breakExit ), contExit( _contExit ), breakUsed(false), contUsed(false) {}
    5253
    5354                        bool operator==( const Statement *stmt ) { return ( loop == stmt ); }
     
    5859                        Statement *get_loop() const { return loop; }
    5960
    60                         Label get_contExit() const { return contExit; }
    61                         void set_contExit( Label );
     61                        Label useContExit() { contUsed = true; return contExit; }
     62                        Label useBreakExit() { breakUsed = true; return breakExit; }
    6263
    63                         Label get_breakExit() const { return breakExit; }
    64                         void set_breakExit( Label );
     64                        bool isContUsed() const { return contUsed; }
     65                        bool isBreakUsed() const { return breakUsed; }
    6566
    6667                  private:
    6768                        Statement *loop;
    68                         Label contExit, breakExit;
    69                   public: // hack, provide proper [sg]etters
    70                         bool contExitUsed, breakExitUsed;
     69                        Label breakExit, contExit;
     70                        bool breakUsed, contUsed;
    7171                };
    7272
     
    7575                Label breakLabel;
    7676                LabelGenerator *generator;
     77
     78                template< typename LoopClass >
     79                Statement *handleLoopStmt( LoopClass *loopStmt );
     80
     81                template< typename SwitchClass >
     82                Statement *handleSwitchStmt( SwitchClass *switchStmt );
     83
     84                void fixBlock( std::list< Statement * > &kids );
    7785        };
    7886} // namespace ControlStruct
  • src/ControlStruct/Mutate.cc

    reb50842 r937e51d  
    99// Author           : Rodolfo G. Esteves
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 19 15:32:52 2015
    13 // Update Count     : 2
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Wed Jun 03 23:08:43 2015
     13// Update Count     : 5
    1414//
    1515
     
    3737        void mutate( std::list< Declaration * > translationUnit ) {
    3838                // ForExprMutator formut;
     39
     40                // normalizes label definitions and generates multi-level
     41                // exit labels
    3942                LabelFixer lfix;
     43
     44                // transform choose statements into switch statements
    4045                ChooseMutator chmut;
     46
     47                // expand case ranges and turn fallthru into a null statement
    4148                CaseRangeMutator ranges;  // has to run after ChooseMutator
     49
    4250                //ExceptMutator exc;
    4351                // LabelTypeChecker lbl;
  • src/ControlStruct/module.mk

    reb50842 r937e51d  
     1######################### -*- Mode: Makefile-Gmake -*- ########################
     2##
     3## Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     4##
     5## The contents of this file are covered under the licence agreement in the
     6## file "LICENCE" distributed with Cforall.
     7##
     8## module.mk --
     9##
     10## Author           : Richard C. Bilson
     11## Created On       : Mon Jun  1 17:49:17 2015
     12## Last Modified By : Peter A. Buhr
     13## Last Modified On : Mon Jun  1 17:51:45 2015
     14## Update Count     : 1
     15###############################################################################
     16
    117SRC +=  ControlStruct/LabelGenerator.cc \
    2         ControlStruct/LabelFixer.cc \
     18        ControlStruct/LabelFixer.cc \
    319        ControlStruct/MLEMutator.cc \
    420        ControlStruct/CaseRangeMutator.cc \
     
    622        ControlStruct/ChooseMutator.cc \
    723        ControlStruct/ForExprMutator.cc \
    8         ControlStruct/LabelTypeChecker.cc \
    9         $(NULL)
     24        ControlStruct/LabelTypeChecker.cc
    1025
  • src/Designators/module.mk

    reb50842 r937e51d  
    1 SRC +=  Designators/Processor.cc \
    2         $(NULL)
     1######################### -*- Mode: Makefile-Gmake -*- ########################
     2##
     3## Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     4##
     5## The contents of this file are covered under the licence agreement in the
     6## file "LICENCE" distributed with Cforall.
     7##
     8## module.mk --
     9##
     10## Author           : Richard C. Bilson
     11## Created On       : Mon Jun  1 17:49:17 2015
     12## Last Modified By : Peter A. Buhr
     13## Last Modified On : Mon Jun  1 17:52:06 2015
     14## Update Count     : 1
     15###############################################################################
     16
     17SRC += Designators/Processor.cc
  • src/GenPoly/Box.cc

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 19 07:31:41 2015
    13 // Update Count     : 1
     12// Last Modified On : Sat Jun 13 09:12:19 2015
     13// Update Count     : 4
    1414//
    1515
     
    2626#include "ScrubTyVars.h"
    2727
    28 #include "SynTree/Declaration.h"
     28#include "Parser/ParseNode.h"
     29
    2930#include "SynTree/Type.h"
    3031#include "SynTree/Expression.h"
     
    3233#include "SynTree/Statement.h"
    3334#include "SynTree/Mutator.h"
     35
    3436#include "ResolvExpr/TypeEnvironment.h"
     37
    3538#include "SymTab/Mangler.h"
    3639
     
    282285
    283286                ObjectDecl *Pass1::makeTemporary( Type *type ) {
    284                         ObjectDecl *newObj = new ObjectDecl( tempNamer.newName(), Declaration::NoStorageClass, LinkageSpec::C, 0, type, 0 );
     287                        ObjectDecl *newObj = new ObjectDecl( tempNamer.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, 0, type, 0 );
    285288                        stmtsToAdd.push_back( new DeclStmt( noLabels, newObj ) );
    286289                        return newObj;
     
    362365                                        arg = new AddressExpr( arg );
    363366                                } else {
    364                                         ObjectDecl *newObj = new ObjectDecl( tempNamer.newName(), Declaration::NoStorageClass, LinkageSpec::C, 0, arg->get_results().front()->clone(), 0 );
     367                                        ObjectDecl *newObj = new ObjectDecl( tempNamer.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, 0, arg->get_results().front()->clone(), 0 );
    365368                                        newObj->get_type()->get_qualifiers() = Type::Qualifiers();
    366369                                        stmtsToAdd.push_back( new DeclStmt( noLabels, newObj ) );
     
    433436                                makeRetParm( adapter );
    434437                        } // if
    435                         adapter->get_parameters().push_front( new ObjectDecl( "", Declaration::NoStorageClass, LinkageSpec::C, 0, new PointerType( Type::Qualifiers(), new FunctionType( Type::Qualifiers(), true ) ), 0 ) );
     438                        adapter->get_parameters().push_front( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::C, 0, new PointerType( Type::Qualifiers(), new FunctionType( Type::Qualifiers(), true ) ), 0 ) );
    436439                        return adapter;
    437440                }
     
    521524                        adapterBody->get_kids().push_back( bodyStmt );
    522525                        std::string adapterName = makeAdapterName( mangleName );
    523                         return new FunctionDecl( adapterName, Declaration::NoStorageClass, LinkageSpec::C, adapterType, adapterBody, false );
     526                        return new FunctionDecl( adapterName, DeclarationNode::NoStorageClass, LinkageSpec::C, adapterType, adapterBody, false, false );
    524527                }
    525528
     
    902905                                if ( adaptersDone.find( mangleName ) == adaptersDone.end() ) {
    903906                                        std::string adapterName = makeAdapterName( mangleName );
    904                                         paramList.push_front( new ObjectDecl( adapterName, Declaration::NoStorageClass, LinkageSpec::C, 0, new PointerType( Type::Qualifiers(), makeAdapterType( *funType, scopeTyVars ) ), 0 ) );
     907                                        paramList.push_front( new ObjectDecl( adapterName, DeclarationNode::NoStorageClass, LinkageSpec::C, 0, new PointerType( Type::Qualifiers(), makeAdapterType( *funType, scopeTyVars ) ), 0 ) );
    905908                                        adaptersDone.insert( adaptersDone.begin(), mangleName );
    906909                                }
     
    961964                        std::list< DeclarationWithType *>::iterator last = funcType->get_parameters().begin();
    962965                        std::list< DeclarationWithType *> inferredParams;
    963                         ObjectDecl *newObj = new ObjectDecl( "", Declaration::NoStorageClass, LinkageSpec::C, 0, new BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt ), 0 );
    964 ///   ObjectDecl *newFunPtr = new ObjectDecl( "", Declaration::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new FunctionType( Type::Qualifiers(), true ) ), 0 );
     966                        ObjectDecl *newObj = new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::C, 0, new BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt ), 0 );
     967///   ObjectDecl *newFunPtr = new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new FunctionType( Type::Qualifiers(), true ) ), 0 );
    965968                        for ( std::list< TypeDecl *>::const_iterator tyParm = funcType->get_forall().begin(); tyParm != funcType->get_forall().end(); ++tyParm ) {
    966969                                ObjectDecl *thisParm;
  • src/GenPoly/Specialize.cc

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 19 07:55:09 2015
    13 // Update Count     : 4
     12// Last Modified On : Sat Jun 13 15:54:07 2015
     13// Update Count     : 6
    1414//
    1515
     
    1919#include "PolyMutator.h"
    2020
    21 #include "SynTree/Declaration.h"
     21#include "Parser/ParseNode.h"
     22
     23#include "SynTree/Expression.h"
    2224#include "SynTree/Statement.h"
    23 #include "SynTree/Expression.h"
    2425#include "SynTree/Type.h"
    2526#include "SynTree/TypeSubstitution.h"
     
    9697                                        newEnv.applyFree( newType );
    9798                                } // if
    98                                 FunctionDecl *thunkFunc = new FunctionDecl( thunkNamer.newName(), Declaration::NoStorageClass, LinkageSpec::C, newType, new CompoundStmt( std::list< std::string >() ), false );
     99                                FunctionDecl *thunkFunc = new FunctionDecl( thunkNamer.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, newType, new CompoundStmt( std::list< std::string >() ), false, false );
    99100                                thunkFunc->fixUniqueId();
    100101
  • src/GenPoly/module.mk

    reb50842 r937e51d  
     1######################### -*- Mode: Makefile-Gmake -*- ########################
     2##
     3## Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     4##
     5## The contents of this file are covered under the licence agreement in the
     6## file "LICENCE" distributed with Cforall.
     7##
     8## module.mk --
     9##
     10## Author           : Richard C. Bilson
     11## Created On       : Mon Jun  1 17:49:17 2015
     12## Last Modified By : Peter A. Buhr
     13## Last Modified On : Mon Jun  1 17:52:30 2015
     14## Update Count     : 1
     15###############################################################################
     16
    117SRC += GenPoly/Box.cc \
    218       GenPoly/GenPoly.cc \
     
    723       GenPoly/CopyParams.cc \
    824       GenPoly/FindFunction.cc
    9        
  • src/InitTweak/module.mk

    reb50842 r937e51d  
     1######################### -*- Mode: Makefile-Gmake -*- ########################
     2##
     3## Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     4##
     5## The contents of this file are covered under the licence agreement in the
     6## file "LICENCE" distributed with Cforall.
     7##
     8## module.mk --
     9##
     10## Author           : Richard C. Bilson
     11## Created On       : Mon Jun  1 17:49:17 2015
     12## Last Modified By : Peter A. Buhr
     13## Last Modified On : Mon Jun  1 17:52:49 2015
     14## Update Count     : 1
     15###############################################################################
     16
    117SRC += InitTweak/InitModel.cc \
    218       InitTweak/InitExpander.cc \
    3        InitTweak/Mutate.cc     \
    4        InitTweak/Association.cc     \
    5        InitTweak/RemoveInit.cc     \
    6         $(NULL)
     19       InitTweak/Mutate.cc \
     20       InitTweak/Association.cc \
     21       InitTweak/RemoveInit.cc
    722
  • src/Makefile.in

    reb50842 r937e51d  
     1# Makefile.in generated by automake 1.11.3 from Makefile.am.
     2# @configure_input@
     3
     4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
     5# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
     6# Foundation, Inc.
     7# This Makefile.in is free software; the Free Software Foundation
     8# gives unlimited permission to copy and/or distribute it,
     9# with or without modifications, as long as this notice is preserved.
     10
     11# This program is distributed in the hope that it will be useful,
     12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
     13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
     14# PARTICULAR PURPOSE.
     15
     16@SET_MAKE@
     17
     18######################## -*- Mode: Makefile-Automake -*- ######################
     19###############################################################################
     20
    121######################### -*- Mode: Makefile-Gmake -*- ########################
    2 ##
    3 ## Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
    4 ##
    5 ## The contents of this file are covered under the licence agreement in the
    6 ## file "LICENCE" distributed with Cforall.
    7 ##
    8 ## Makefile.in --
    9 ##
    10 ## Author           : Richard C. Bilson
    11 ## Created On       : Sat May 16 08:37:37 2015
    12 ## Last Modified By : Peter A. Buhr
    13 ## Last Modified On : Thu May 21 21:17:32 2015
    14 ## Update Count     : 3
    1522###############################################################################
    1623
    17 # This makefile is adapted from Peter Miller's article "Recursive Make Considered Harmful"
    18 
    19 MODULES := Common Parser SynTree SymTab ResolvExpr CodeGen ControlStruct GenPoly Tuples InitTweak Designators # Try ArgTweak Explain
    20 TARGET := cfa-cpp
    21 
    22 all: ${TARGET}
    23 
    24 # look for include files in each of the modules
    25 CXX := @CXX@
    26 CXXFLAGS += -Wno-deprecated -Wall -g -DDEBUG_ALL -I. -I Common -MMD
    27 INSTALL=@INSTALL@
    28 
    29 # this is the back-end compiler, used to compile libcfa & builtins to link with user code
    30 BACKEND_CC := @BACKEND_CC@
    31 
    32 # extra libraries if required
    33 LIBS :=
    34 
    35 # each module will add to this
    36 SRC := main.cc MakeLibCfa.cc
    37 
    38 # other things that ought to be cleaned up
    39 EXTRA_OUTPUT := core
    40 
    41 # include the description for each module
    42 include ${patsubst %,%/module.mk,${MODULES}}
    43 
    44 # determine the object files
    45 OBJ := ${patsubst %.cc,%.o,${filter %.cc,${SRC}}} \
    46        ${patsubst %.y,%.tab.o,${filter %.y,${SRC}}} \
    47        ${patsubst %.l,%.yy.o,${filter %.l,${SRC}}}
    48 
    49 # include the C include dependencies
    50 DEPS := ${OBJ:.o=.d}
    51 -include ${DEPS}
    52 
    53 # link the program
    54 ${TARGET}: ${OBJ}
    55         ${PURIFY} ${CXX} -o $@ ${OBJ} ${LIBS}
    56 
    57 #installing
    58 install: ${TARGET}
    59         ${INSTALL} -d @CFA_LIBDIR@
    60         ${INSTALL} ${TARGET} @CFA_LIBDIR@
    61 
    62 # clean-up rule
    63 clean:
    64         rm -f ${OBJ} ${DEPS} ${TARGET} tags ${EXTRA_OUTPUT}
    65         find . -name "Expected*" -prune -o \( -name "*.tst" -o -name "report" \) -print | xargs rm -f
    66         find . -name "core*" -print | xargs rm -f
    67 
    68 distclean: clean
     24######################### -*- Mode: Makefile-Gmake -*- ########################
     25###############################################################################
     26
     27#SRC +=  ArgTweak/Rewriter.cc \
     28#       ArgTweak/Mutate.cc
     29
     30######################### -*- Mode: Makefile-Gmake -*- ########################
     31###############################################################################
     32
     33######################### -*- Mode: Makefile-Gmake -*- ########################
     34###############################################################################
     35
     36######################### -*- Mode: Makefile-Gmake -*- ########################
     37###############################################################################
     38
     39######################### -*- Mode: Makefile-Gmake -*- ########################
     40###############################################################################
     41
     42######################### -*- Mode: Makefile-Gmake -*- ########################
     43###############################################################################
     44
     45######################### -*- Mode: Makefile-Gmake -*- ########################
     46###############################################################################
     47
     48######################### -*- Mode: Makefile-Gmake -*- ########################
     49###############################################################################
     50
     51######################### -*- Mode: Makefile-Gmake -*- ########################
     52###############################################################################
     53
     54######################### -*- Mode: Makefile-Gmake -*- ########################
     55###############################################################################
     56
     57######################### -*- Mode: Makefile-Gmake -*- ########################
     58###############################################################################
     59
     60VPATH = @srcdir@
     61pkgdatadir = $(datadir)/@PACKAGE@
     62pkgincludedir = $(includedir)/@PACKAGE@
     63pkglibdir = $(libdir)/@PACKAGE@
     64pkglibexecdir = $(libexecdir)/@PACKAGE@
     65am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
     66install_sh_DATA = $(install_sh) -c -m 644
     67install_sh_PROGRAM = $(install_sh) -c
     68install_sh_SCRIPT = $(install_sh) -c
     69INSTALL_HEADER = $(INSTALL_DATA)
     70transform = $(program_transform_name)
     71NORMAL_INSTALL = :
     72PRE_INSTALL = :
     73POST_INSTALL = :
     74NORMAL_UNINSTALL = :
     75PRE_UNINSTALL = :
     76POST_UNINSTALL = :
     77DIST_COMMON = $(srcdir)/ArgTweak/module.mk $(srcdir)/CodeGen/module.mk \
     78        $(srcdir)/Common/module.mk $(srcdir)/ControlStruct/module.mk \
     79        $(srcdir)/Designators/module.mk $(srcdir)/GenPoly/module.mk \
     80        $(srcdir)/InitTweak/module.mk $(srcdir)/Makefile.am \
     81        $(srcdir)/Makefile.in $(srcdir)/Parser/module.mk \
     82        $(srcdir)/ResolvExpr/module.mk $(srcdir)/SymTab/module.mk \
     83        $(srcdir)/SynTree/module.mk $(srcdir)/Tuples/module.mk \
     84        Parser/lex.cc Parser/parser.cc Parser/parser.h
     85cfa_cpplib_PROGRAMS = cfa-cpp$(EXEEXT)
     86subdir = src
     87ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
     88am__aclocal_m4_deps = $(top_srcdir)/configure.ac
     89am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
     90        $(ACLOCAL_M4)
     91mkinstalldirs = $(install_sh) -d
     92CONFIG_HEADER = $(top_builddir)/config.h
     93CONFIG_CLEAN_FILES =
     94CONFIG_CLEAN_VPATH_FILES =
     95am__installdirs = "$(DESTDIR)$(cfa_cpplibdir)"
     96PROGRAMS = $(cfa_cpplib_PROGRAMS)
     97am__dirstamp = $(am__leading_dot)dirstamp
     98am__objects_1 = cfa_cpp-main.$(OBJEXT) cfa_cpp-MakeLibCfa.$(OBJEXT) \
     99        CodeGen/cfa_cpp-Generate.$(OBJEXT) \
     100        CodeGen/cfa_cpp-CodeGenerator.$(OBJEXT) \
     101        CodeGen/cfa_cpp-GenType.$(OBJEXT) \
     102        CodeGen/cfa_cpp-FixNames.$(OBJEXT) \
     103        CodeGen/cfa_cpp-OperatorTable.$(OBJEXT) \
     104        Common/cfa_cpp-SemanticError.$(OBJEXT) \
     105        Common/cfa_cpp-UniqueName.$(OBJEXT) \
     106        ControlStruct/cfa_cpp-LabelGenerator.$(OBJEXT) \
     107        ControlStruct/cfa_cpp-LabelFixer.$(OBJEXT) \
     108        ControlStruct/cfa_cpp-MLEMutator.$(OBJEXT) \
     109        ControlStruct/cfa_cpp-CaseRangeMutator.$(OBJEXT) \
     110        ControlStruct/cfa_cpp-Mutate.$(OBJEXT) \
     111        ControlStruct/cfa_cpp-ChooseMutator.$(OBJEXT) \
     112        ControlStruct/cfa_cpp-ForExprMutator.$(OBJEXT) \
     113        ControlStruct/cfa_cpp-LabelTypeChecker.$(OBJEXT) \
     114        Designators/cfa_cpp-Processor.$(OBJEXT) \
     115        GenPoly/cfa_cpp-Box.$(OBJEXT) \
     116        GenPoly/cfa_cpp-GenPoly.$(OBJEXT) \
     117        GenPoly/cfa_cpp-PolyMutator.$(OBJEXT) \
     118        GenPoly/cfa_cpp-ScrubTyVars.$(OBJEXT) \
     119        GenPoly/cfa_cpp-Lvalue.$(OBJEXT) \
     120        GenPoly/cfa_cpp-Specialize.$(OBJEXT) \
     121        GenPoly/cfa_cpp-CopyParams.$(OBJEXT) \
     122        GenPoly/cfa_cpp-FindFunction.$(OBJEXT) \
     123        InitTweak/cfa_cpp-InitModel.$(OBJEXT) \
     124        InitTweak/cfa_cpp-InitExpander.$(OBJEXT) \
     125        InitTweak/cfa_cpp-Mutate.$(OBJEXT) \
     126        InitTweak/cfa_cpp-Association.$(OBJEXT) \
     127        InitTweak/cfa_cpp-RemoveInit.$(OBJEXT) \
     128        Parser/cfa_cpp-parser.$(OBJEXT) Parser/cfa_cpp-lex.$(OBJEXT) \
     129        Parser/cfa_cpp-TypedefTable.$(OBJEXT) \
     130        Parser/cfa_cpp-ParseNode.$(OBJEXT) \
     131        Parser/cfa_cpp-DeclarationNode.$(OBJEXT) \
     132        Parser/cfa_cpp-ExpressionNode.$(OBJEXT) \
     133        Parser/cfa_cpp-StatementNode.$(OBJEXT) \
     134        Parser/cfa_cpp-InitializerNode.$(OBJEXT) \
     135        Parser/cfa_cpp-TypeData.$(OBJEXT) \
     136        Parser/cfa_cpp-LinkageSpec.$(OBJEXT) \
     137        Parser/cfa_cpp-parseutility.$(OBJEXT) \
     138        Parser/cfa_cpp-Parser.$(OBJEXT) \
     139        ResolvExpr/cfa_cpp-AlternativeFinder.$(OBJEXT) \
     140        ResolvExpr/cfa_cpp-Alternative.$(OBJEXT) \
     141        ResolvExpr/cfa_cpp-Unify.$(OBJEXT) \
     142        ResolvExpr/cfa_cpp-PtrsAssignable.$(OBJEXT) \
     143        ResolvExpr/cfa_cpp-CommonType.$(OBJEXT) \
     144        ResolvExpr/cfa_cpp-ConversionCost.$(OBJEXT) \
     145        ResolvExpr/cfa_cpp-CastCost.$(OBJEXT) \
     146        ResolvExpr/cfa_cpp-PtrsCastable.$(OBJEXT) \
     147        ResolvExpr/cfa_cpp-AdjustExprType.$(OBJEXT) \
     148        ResolvExpr/cfa_cpp-AlternativePrinter.$(OBJEXT) \
     149        ResolvExpr/cfa_cpp-Resolver.$(OBJEXT) \
     150        ResolvExpr/cfa_cpp-ResolveTypeof.$(OBJEXT) \
     151        ResolvExpr/cfa_cpp-RenameVars.$(OBJEXT) \
     152        ResolvExpr/cfa_cpp-FindOpenVars.$(OBJEXT) \
     153        ResolvExpr/cfa_cpp-PolyCost.$(OBJEXT) \
     154        ResolvExpr/cfa_cpp-Occurs.$(OBJEXT) \
     155        ResolvExpr/cfa_cpp-TypeEnvironment.$(OBJEXT) \
     156        SymTab/cfa_cpp-IdTable.$(OBJEXT) \
     157        SymTab/cfa_cpp-Indexer.$(OBJEXT) \
     158        SymTab/cfa_cpp-Mangler.$(OBJEXT) \
     159        SymTab/cfa_cpp-Validate.$(OBJEXT) \
     160        SymTab/cfa_cpp-FixFunction.$(OBJEXT) \
     161        SymTab/cfa_cpp-ImplementationType.$(OBJEXT) \
     162        SynTree/cfa_cpp-Type.$(OBJEXT) \
     163        SynTree/cfa_cpp-VoidType.$(OBJEXT) \
     164        SynTree/cfa_cpp-BasicType.$(OBJEXT) \
     165        SynTree/cfa_cpp-PointerType.$(OBJEXT) \
     166        SynTree/cfa_cpp-ArrayType.$(OBJEXT) \
     167        SynTree/cfa_cpp-FunctionType.$(OBJEXT) \
     168        SynTree/cfa_cpp-ReferenceToType.$(OBJEXT) \
     169        SynTree/cfa_cpp-TupleType.$(OBJEXT) \
     170        SynTree/cfa_cpp-TypeofType.$(OBJEXT) \
     171        SynTree/cfa_cpp-AttrType.$(OBJEXT) \
     172        SynTree/cfa_cpp-Constant.$(OBJEXT) \
     173        SynTree/cfa_cpp-Expression.$(OBJEXT) \
     174        SynTree/cfa_cpp-TupleExpr.$(OBJEXT) \
     175        SynTree/cfa_cpp-CommaExpr.$(OBJEXT) \
     176        SynTree/cfa_cpp-TypeExpr.$(OBJEXT) \
     177        SynTree/cfa_cpp-ApplicationExpr.$(OBJEXT) \
     178        SynTree/cfa_cpp-AddressExpr.$(OBJEXT) \
     179        SynTree/cfa_cpp-Statement.$(OBJEXT) \
     180        SynTree/cfa_cpp-CompoundStmt.$(OBJEXT) \
     181        SynTree/cfa_cpp-DeclStmt.$(OBJEXT) \
     182        SynTree/cfa_cpp-Declaration.$(OBJEXT) \
     183        SynTree/cfa_cpp-DeclarationWithType.$(OBJEXT) \
     184        SynTree/cfa_cpp-ObjectDecl.$(OBJEXT) \
     185        SynTree/cfa_cpp-FunctionDecl.$(OBJEXT) \
     186        SynTree/cfa_cpp-AggregateDecl.$(OBJEXT) \
     187        SynTree/cfa_cpp-NamedTypeDecl.$(OBJEXT) \
     188        SynTree/cfa_cpp-TypeDecl.$(OBJEXT) \
     189        SynTree/cfa_cpp-Initializer.$(OBJEXT) \
     190        SynTree/cfa_cpp-Visitor.$(OBJEXT) \
     191        SynTree/cfa_cpp-Mutator.$(OBJEXT) \
     192        SynTree/cfa_cpp-CodeGenVisitor.$(OBJEXT) \
     193        SynTree/cfa_cpp-TypeSubstitution.$(OBJEXT) \
     194        Tuples/cfa_cpp-Mutate.$(OBJEXT) \
     195        Tuples/cfa_cpp-AssignExpand.$(OBJEXT) \
     196        Tuples/cfa_cpp-FunctionFixer.$(OBJEXT) \
     197        Tuples/cfa_cpp-TupleAssignment.$(OBJEXT) \
     198        Tuples/cfa_cpp-FunctionChecker.$(OBJEXT) \
     199        Tuples/cfa_cpp-NameMatcher.$(OBJEXT)
     200am_cfa_cpp_OBJECTS = $(am__objects_1)
     201cfa_cpp_OBJECTS = $(am_cfa_cpp_OBJECTS)
     202am__DEPENDENCIES_1 =
     203cfa_cpp_DEPENDENCIES = $(am__DEPENDENCIES_1)
     204cfa_cpp_LINK = $(CXXLD) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
     205        $(LDFLAGS) -o $@
     206DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
     207depcomp = $(SHELL) $(top_srcdir)/automake/depcomp
     208am__depfiles_maybe = depfiles
     209am__mv = mv -f
     210CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
     211        $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
     212CXXLD = $(CXX)
     213CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
     214        -o $@
     215@MAINTAINER_MODE_FALSE@am__skiplex = test -f $@ ||
     216LEXCOMPILE = $(LEX) $(AM_LFLAGS) $(LFLAGS)
     217YLWRAP = $(top_srcdir)/automake/ylwrap
     218@MAINTAINER_MODE_FALSE@am__skipyacc = test -f $@ ||
     219YACCCOMPILE = $(YACC) $(AM_YFLAGS) $(YFLAGS)
     220COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
     221        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
     222CCLD = $(CC)
     223LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
     224SOURCES = $(cfa_cpp_SOURCES)
     225DIST_SOURCES = $(cfa_cpp_SOURCES)
     226ETAGS = etags
     227CTAGS = ctags
     228DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
     229ACLOCAL = @ACLOCAL@
     230ALLOCA = @ALLOCA@
     231AMTAR = @AMTAR@
     232AUTOCONF = @AUTOCONF@
     233AUTOHEADER = @AUTOHEADER@
     234AUTOMAKE = @AUTOMAKE@
     235AWK = @AWK@
     236BACKEND_CC = @BACKEND_CC@
     237CC = @CC@
     238CCDEPMODE = @CCDEPMODE@
     239CFA_BINDIR = @CFA_BINDIR@
     240CFA_INCDIR = @CFA_INCDIR@
     241CFA_LIBDIR = @CFA_LIBDIR@
     242CFA_PREFIX = @CFA_PREFIX@
     243CFLAGS = @CFLAGS@
     244CPP = @CPP@
     245CPPFLAGS = @CPPFLAGS@
     246CXX = @CXX@
     247CXXDEPMODE = @CXXDEPMODE@
     248CXXFLAGS = -g   # remove default -O2 to allow better debugging
     249CYGPATH_W = @CYGPATH_W@
     250DEFS = @DEFS@
     251DEPDIR = @DEPDIR@
     252ECHO_C = @ECHO_C@
     253ECHO_N = @ECHO_N@
     254ECHO_T = @ECHO_T@
     255EGREP = @EGREP@
     256EXEEXT = @EXEEXT@
     257GCC_PATH = @GCC_PATH@
     258GREP = @GREP@
     259INSTALL = @INSTALL@
     260INSTALL_DATA = @INSTALL_DATA@
     261INSTALL_PROGRAM = @INSTALL_PROGRAM@
     262INSTALL_SCRIPT = @INSTALL_SCRIPT@
     263INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
     264LDFLAGS = @LDFLAGS@
     265LEX = @LEX@
     266LEXLIB = @LEXLIB@
     267LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
     268LIBOBJS = @LIBOBJS@
     269LIBS = @LIBS@
     270LTLIBOBJS = @LTLIBOBJS@
     271MAINT = @MAINT@
     272MAKEINFO = @MAKEINFO@
     273MKDIR_P = @MKDIR_P@
     274OBJEXT = @OBJEXT@
     275PACKAGE = @PACKAGE@
     276PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
     277PACKAGE_NAME = @PACKAGE_NAME@
     278PACKAGE_STRING = @PACKAGE_STRING@
     279PACKAGE_TARNAME = @PACKAGE_TARNAME@
     280PACKAGE_URL = @PACKAGE_URL@
     281PACKAGE_VERSION = @PACKAGE_VERSION@
     282PATH_SEPARATOR = @PATH_SEPARATOR@
     283RANLIB = @RANLIB@
     284SET_MAKE = @SET_MAKE@
     285SHELL = @SHELL@
     286STRIP = @STRIP@
     287VERSION = @VERSION@
     288YACC = @YACC@
     289YFLAGS = @YFLAGS@
     290abs_builddir = @abs_builddir@
     291abs_srcdir = @abs_srcdir@
     292abs_top_builddir = @abs_top_builddir@
     293abs_top_srcdir = @abs_top_srcdir@
     294ac_ct_CC = @ac_ct_CC@
     295ac_ct_CXX = @ac_ct_CXX@
     296am__include = @am__include@
     297am__leading_dot = @am__leading_dot@
     298am__quote = @am__quote@
     299am__tar = @am__tar@
     300am__untar = @am__untar@
     301bindir = @bindir@
     302build_alias = @build_alias@
     303builddir = @builddir@
     304datadir = @datadir@
     305datarootdir = @datarootdir@
     306docdir = @docdir@
     307dvidir = @dvidir@
     308exec_prefix = @exec_prefix@
     309host_alias = @host_alias@
     310htmldir = @htmldir@
     311includedir = @includedir@
     312infodir = @infodir@
     313install_sh = @install_sh@
     314libdir = @libdir@
     315libexecdir = @libexecdir@
     316localedir = @localedir@
     317localstatedir = @localstatedir@
     318mandir = @mandir@
     319mkdir_p = @mkdir_p@
     320oldincludedir = @oldincludedir@
     321pdfdir = @pdfdir@
     322prefix = @prefix@
     323program_transform_name = @program_transform_name@
     324psdir = @psdir@
     325sbindir = @sbindir@
     326sharedstatedir = @sharedstatedir@
     327srcdir = @srcdir@
     328sysconfdir = @sysconfdir@
     329target_alias = @target_alias@
     330top_build_prefix = @top_build_prefix@
     331top_builddir = @top_builddir@
     332top_srcdir = @top_srcdir@
     333
     334# create object files in directory with source files
     335AUTOMAKE_OPTIONS = subdir-objects
     336SRC = main.cc MakeLibCfa.cc CodeGen/Generate.cc \
     337        CodeGen/CodeGenerator.cc CodeGen/GenType.cc \
     338        CodeGen/FixNames.cc CodeGen/OperatorTable.cc \
     339        Common/SemanticError.cc Common/UniqueName.cc \
     340        ControlStruct/LabelGenerator.cc ControlStruct/LabelFixer.cc \
     341        ControlStruct/MLEMutator.cc ControlStruct/CaseRangeMutator.cc \
     342        ControlStruct/Mutate.cc ControlStruct/ChooseMutator.cc \
     343        ControlStruct/ForExprMutator.cc \
     344        ControlStruct/LabelTypeChecker.cc Designators/Processor.cc \
     345        GenPoly/Box.cc GenPoly/GenPoly.cc GenPoly/PolyMutator.cc \
     346        GenPoly/ScrubTyVars.cc GenPoly/Lvalue.cc GenPoly/Specialize.cc \
     347        GenPoly/CopyParams.cc GenPoly/FindFunction.cc \
     348        InitTweak/InitModel.cc InitTweak/InitExpander.cc \
     349        InitTweak/Mutate.cc InitTweak/Association.cc \
     350        InitTweak/RemoveInit.cc Parser/parser.yy Parser/lex.ll \
     351        Parser/TypedefTable.cc Parser/ParseNode.cc \
     352        Parser/DeclarationNode.cc Parser/ExpressionNode.cc \
     353        Parser/StatementNode.cc Parser/InitializerNode.cc \
     354        Parser/TypeData.cc Parser/LinkageSpec.cc \
     355        Parser/parseutility.cc Parser/Parser.cc \
     356        ResolvExpr/AlternativeFinder.cc ResolvExpr/Alternative.cc \
     357        ResolvExpr/Unify.cc ResolvExpr/PtrsAssignable.cc \
     358        ResolvExpr/CommonType.cc ResolvExpr/ConversionCost.cc \
     359        ResolvExpr/CastCost.cc ResolvExpr/PtrsCastable.cc \
     360        ResolvExpr/AdjustExprType.cc ResolvExpr/AlternativePrinter.cc \
     361        ResolvExpr/Resolver.cc ResolvExpr/ResolveTypeof.cc \
     362        ResolvExpr/RenameVars.cc ResolvExpr/FindOpenVars.cc \
     363        ResolvExpr/PolyCost.cc ResolvExpr/Occurs.cc \
     364        ResolvExpr/TypeEnvironment.cc SymTab/IdTable.cc \
     365        SymTab/Indexer.cc SymTab/Mangler.cc SymTab/Validate.cc \
     366        SymTab/FixFunction.cc SymTab/ImplementationType.cc \
     367        SynTree/Type.cc SynTree/VoidType.cc SynTree/BasicType.cc \
     368        SynTree/PointerType.cc SynTree/ArrayType.cc \
     369        SynTree/FunctionType.cc SynTree/ReferenceToType.cc \
     370        SynTree/TupleType.cc SynTree/TypeofType.cc SynTree/AttrType.cc \
     371        SynTree/Constant.cc SynTree/Expression.cc SynTree/TupleExpr.cc \
     372        SynTree/CommaExpr.cc SynTree/TypeExpr.cc \
     373        SynTree/ApplicationExpr.cc SynTree/AddressExpr.cc \
     374        SynTree/Statement.cc SynTree/CompoundStmt.cc \
     375        SynTree/DeclStmt.cc SynTree/Declaration.cc \
     376        SynTree/DeclarationWithType.cc SynTree/ObjectDecl.cc \
     377        SynTree/FunctionDecl.cc SynTree/AggregateDecl.cc \
     378        SynTree/NamedTypeDecl.cc SynTree/TypeDecl.cc \
     379        SynTree/Initializer.cc SynTree/Visitor.cc SynTree/Mutator.cc \
     380        SynTree/CodeGenVisitor.cc SynTree/TypeSubstitution.cc \
     381        Tuples/Mutate.cc Tuples/AssignExpand.cc \
     382        Tuples/FunctionFixer.cc Tuples/TupleAssignment.cc \
     383        Tuples/FunctionChecker.cc Tuples/NameMatcher.cc
     384BUILT_SOURCES = Parser/parser.h
     385AM_YFLAGS = -d -t -v
     386cfa_cpp_LDADD = ${LEXLIB}       # yywrap
     387MAINTAINERCLEANFILES = Parser/parser.output
     388
     389# Is there a way to use a variable for the directory names?
     390
     391# put into lib for now
     392cfa_cpplibdir = ${libdir}
     393cfa_cpp_SOURCES = ${SRC}
     394# need files Common/utility.h
     395cfa_cpp_CXXFLAGS = -Wno-deprecated -Wall -DDEBUG_ALL -I${srcdir}/Common
     396all: $(BUILT_SOURCES)
     397        $(MAKE) $(AM_MAKEFLAGS) all-am
     398
     399.SUFFIXES:
     400.SUFFIXES: .cc .ll .o .obj .yy
     401$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/ArgTweak/module.mk $(srcdir)/CodeGen/module.mk $(srcdir)/Common/module.mk $(srcdir)/ControlStruct/module.mk $(srcdir)/Designators/module.mk $(srcdir)/GenPoly/module.mk $(srcdir)/InitTweak/module.mk $(srcdir)/Parser/module.mk $(srcdir)/ResolvExpr/module.mk $(srcdir)/SymTab/module.mk $(srcdir)/SynTree/module.mk $(srcdir)/Tuples/module.mk $(am__configure_deps)
     402        @for dep in $?; do \
     403          case '$(am__configure_deps)' in \
     404            *$$dep*) \
     405              ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
     406                && { if test -f $@; then exit 0; else break; fi; }; \
     407              exit 1;; \
     408          esac; \
     409        done; \
     410        echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
     411        $(am__cd) $(top_srcdir) && \
     412          $(AUTOMAKE) --gnu src/Makefile
     413.PRECIOUS: Makefile
     414Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
     415        @case '$?' in \
     416          *config.status*) \
     417            cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
     418          *) \
     419            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
     420            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
     421        esac;
     422$(srcdir)/ArgTweak/module.mk $(srcdir)/CodeGen/module.mk $(srcdir)/Common/module.mk $(srcdir)/ControlStruct/module.mk $(srcdir)/Designators/module.mk $(srcdir)/GenPoly/module.mk $(srcdir)/InitTweak/module.mk $(srcdir)/Parser/module.mk $(srcdir)/ResolvExpr/module.mk $(srcdir)/SymTab/module.mk $(srcdir)/SynTree/module.mk $(srcdir)/Tuples/module.mk:
     423
     424$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
     425        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
     426
     427$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
     428        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
     429$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
     430        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
     431$(am__aclocal_m4_deps):
     432install-cfa_cpplibPROGRAMS: $(cfa_cpplib_PROGRAMS)
     433        @$(NORMAL_INSTALL)
     434        test -z "$(cfa_cpplibdir)" || $(MKDIR_P) "$(DESTDIR)$(cfa_cpplibdir)"
     435        @list='$(cfa_cpplib_PROGRAMS)'; test -n "$(cfa_cpplibdir)" || list=; \
     436        for p in $$list; do echo "$$p $$p"; done | \
     437        sed 's/$(EXEEXT)$$//' | \
     438        while read p p1; do if test -f $$p; \
     439          then echo "$$p"; echo "$$p"; else :; fi; \
     440        done | \
     441        sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
     442            -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
     443        sed 'N;N;N;s,\n, ,g' | \
     444        $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
     445          { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
     446            if ($$2 == $$4) files[d] = files[d] " " $$1; \
     447            else { print "f", $$3 "/" $$4, $$1; } } \
     448          END { for (d in files) print "f", d, files[d] }' | \
     449        while read type dir files; do \
     450            if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
     451            test -z "$$files" || { \
     452              echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(cfa_cpplibdir)$$dir'"; \
     453              $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(cfa_cpplibdir)$$dir" || exit $$?; \
     454            } \
     455        ; done
     456
     457uninstall-cfa_cpplibPROGRAMS:
     458        @$(NORMAL_UNINSTALL)
     459        @list='$(cfa_cpplib_PROGRAMS)'; test -n "$(cfa_cpplibdir)" || list=; \
     460        files=`for p in $$list; do echo "$$p"; done | \
     461          sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
     462              -e 's/$$/$(EXEEXT)/' `; \
     463        test -n "$$list" || exit 0; \
     464        echo " ( cd '$(DESTDIR)$(cfa_cpplibdir)' && rm -f" $$files ")"; \
     465        cd "$(DESTDIR)$(cfa_cpplibdir)" && rm -f $$files
     466
     467clean-cfa_cpplibPROGRAMS:
     468        -test -z "$(cfa_cpplib_PROGRAMS)" || rm -f $(cfa_cpplib_PROGRAMS)
     469CodeGen/$(am__dirstamp):
     470        @$(MKDIR_P) CodeGen
     471        @: > CodeGen/$(am__dirstamp)
     472CodeGen/$(DEPDIR)/$(am__dirstamp):
     473        @$(MKDIR_P) CodeGen/$(DEPDIR)
     474        @: > CodeGen/$(DEPDIR)/$(am__dirstamp)
     475CodeGen/cfa_cpp-Generate.$(OBJEXT): CodeGen/$(am__dirstamp) \
     476        CodeGen/$(DEPDIR)/$(am__dirstamp)
     477CodeGen/cfa_cpp-CodeGenerator.$(OBJEXT): CodeGen/$(am__dirstamp) \
     478        CodeGen/$(DEPDIR)/$(am__dirstamp)
     479CodeGen/cfa_cpp-GenType.$(OBJEXT): CodeGen/$(am__dirstamp) \
     480        CodeGen/$(DEPDIR)/$(am__dirstamp)
     481CodeGen/cfa_cpp-FixNames.$(OBJEXT): CodeGen/$(am__dirstamp) \
     482        CodeGen/$(DEPDIR)/$(am__dirstamp)
     483CodeGen/cfa_cpp-OperatorTable.$(OBJEXT): CodeGen/$(am__dirstamp) \
     484        CodeGen/$(DEPDIR)/$(am__dirstamp)
     485Common/$(am__dirstamp):
     486        @$(MKDIR_P) Common
     487        @: > Common/$(am__dirstamp)
     488Common/$(DEPDIR)/$(am__dirstamp):
     489        @$(MKDIR_P) Common/$(DEPDIR)
     490        @: > Common/$(DEPDIR)/$(am__dirstamp)
     491Common/cfa_cpp-SemanticError.$(OBJEXT): Common/$(am__dirstamp) \
     492        Common/$(DEPDIR)/$(am__dirstamp)
     493Common/cfa_cpp-UniqueName.$(OBJEXT): Common/$(am__dirstamp) \
     494        Common/$(DEPDIR)/$(am__dirstamp)
     495ControlStruct/$(am__dirstamp):
     496        @$(MKDIR_P) ControlStruct
     497        @: > ControlStruct/$(am__dirstamp)
     498ControlStruct/$(DEPDIR)/$(am__dirstamp):
     499        @$(MKDIR_P) ControlStruct/$(DEPDIR)
     500        @: > ControlStruct/$(DEPDIR)/$(am__dirstamp)
     501ControlStruct/cfa_cpp-LabelGenerator.$(OBJEXT):  \
     502        ControlStruct/$(am__dirstamp) \
     503        ControlStruct/$(DEPDIR)/$(am__dirstamp)
     504ControlStruct/cfa_cpp-LabelFixer.$(OBJEXT):  \
     505        ControlStruct/$(am__dirstamp) \
     506        ControlStruct/$(DEPDIR)/$(am__dirstamp)
     507ControlStruct/cfa_cpp-MLEMutator.$(OBJEXT):  \
     508        ControlStruct/$(am__dirstamp) \
     509        ControlStruct/$(DEPDIR)/$(am__dirstamp)
     510ControlStruct/cfa_cpp-CaseRangeMutator.$(OBJEXT):  \
     511        ControlStruct/$(am__dirstamp) \
     512        ControlStruct/$(DEPDIR)/$(am__dirstamp)
     513ControlStruct/cfa_cpp-Mutate.$(OBJEXT): ControlStruct/$(am__dirstamp) \
     514        ControlStruct/$(DEPDIR)/$(am__dirstamp)
     515ControlStruct/cfa_cpp-ChooseMutator.$(OBJEXT):  \
     516        ControlStruct/$(am__dirstamp) \
     517        ControlStruct/$(DEPDIR)/$(am__dirstamp)
     518ControlStruct/cfa_cpp-ForExprMutator.$(OBJEXT):  \
     519        ControlStruct/$(am__dirstamp) \
     520        ControlStruct/$(DEPDIR)/$(am__dirstamp)
     521ControlStruct/cfa_cpp-LabelTypeChecker.$(OBJEXT):  \
     522        ControlStruct/$(am__dirstamp) \
     523        ControlStruct/$(DEPDIR)/$(am__dirstamp)
     524Designators/$(am__dirstamp):
     525        @$(MKDIR_P) Designators
     526        @: > Designators/$(am__dirstamp)
     527Designators/$(DEPDIR)/$(am__dirstamp):
     528        @$(MKDIR_P) Designators/$(DEPDIR)
     529        @: > Designators/$(DEPDIR)/$(am__dirstamp)
     530Designators/cfa_cpp-Processor.$(OBJEXT): Designators/$(am__dirstamp) \
     531        Designators/$(DEPDIR)/$(am__dirstamp)
     532GenPoly/$(am__dirstamp):
     533        @$(MKDIR_P) GenPoly
     534        @: > GenPoly/$(am__dirstamp)
     535GenPoly/$(DEPDIR)/$(am__dirstamp):
     536        @$(MKDIR_P) GenPoly/$(DEPDIR)
     537        @: > GenPoly/$(DEPDIR)/$(am__dirstamp)
     538GenPoly/cfa_cpp-Box.$(OBJEXT): GenPoly/$(am__dirstamp) \
     539        GenPoly/$(DEPDIR)/$(am__dirstamp)
     540GenPoly/cfa_cpp-GenPoly.$(OBJEXT): GenPoly/$(am__dirstamp) \
     541        GenPoly/$(DEPDIR)/$(am__dirstamp)
     542GenPoly/cfa_cpp-PolyMutator.$(OBJEXT): GenPoly/$(am__dirstamp) \
     543        GenPoly/$(DEPDIR)/$(am__dirstamp)
     544GenPoly/cfa_cpp-ScrubTyVars.$(OBJEXT): GenPoly/$(am__dirstamp) \
     545        GenPoly/$(DEPDIR)/$(am__dirstamp)
     546GenPoly/cfa_cpp-Lvalue.$(OBJEXT): GenPoly/$(am__dirstamp) \
     547        GenPoly/$(DEPDIR)/$(am__dirstamp)
     548GenPoly/cfa_cpp-Specialize.$(OBJEXT): GenPoly/$(am__dirstamp) \
     549        GenPoly/$(DEPDIR)/$(am__dirstamp)
     550GenPoly/cfa_cpp-CopyParams.$(OBJEXT): GenPoly/$(am__dirstamp) \
     551        GenPoly/$(DEPDIR)/$(am__dirstamp)
     552GenPoly/cfa_cpp-FindFunction.$(OBJEXT): GenPoly/$(am__dirstamp) \
     553        GenPoly/$(DEPDIR)/$(am__dirstamp)
     554InitTweak/$(am__dirstamp):
     555        @$(MKDIR_P) InitTweak
     556        @: > InitTweak/$(am__dirstamp)
     557InitTweak/$(DEPDIR)/$(am__dirstamp):
     558        @$(MKDIR_P) InitTweak/$(DEPDIR)
     559        @: > InitTweak/$(DEPDIR)/$(am__dirstamp)
     560InitTweak/cfa_cpp-InitModel.$(OBJEXT): InitTweak/$(am__dirstamp) \
     561        InitTweak/$(DEPDIR)/$(am__dirstamp)
     562InitTweak/cfa_cpp-InitExpander.$(OBJEXT): InitTweak/$(am__dirstamp) \
     563        InitTweak/$(DEPDIR)/$(am__dirstamp)
     564InitTweak/cfa_cpp-Mutate.$(OBJEXT): InitTweak/$(am__dirstamp) \
     565        InitTweak/$(DEPDIR)/$(am__dirstamp)
     566InitTweak/cfa_cpp-Association.$(OBJEXT): InitTweak/$(am__dirstamp) \
     567        InitTweak/$(DEPDIR)/$(am__dirstamp)
     568InitTweak/cfa_cpp-RemoveInit.$(OBJEXT): InitTweak/$(am__dirstamp) \
     569        InitTweak/$(DEPDIR)/$(am__dirstamp)
     570Parser/parser.h: Parser/parser.cc
     571        @if test ! -f $@; then rm -f Parser/parser.cc; else :; fi
     572        @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) Parser/parser.cc; else :; fi
     573Parser/$(am__dirstamp):
     574        @$(MKDIR_P) Parser
     575        @: > Parser/$(am__dirstamp)
     576Parser/$(DEPDIR)/$(am__dirstamp):
     577        @$(MKDIR_P) Parser/$(DEPDIR)
     578        @: > Parser/$(DEPDIR)/$(am__dirstamp)
     579Parser/cfa_cpp-parser.$(OBJEXT): Parser/$(am__dirstamp) \
     580        Parser/$(DEPDIR)/$(am__dirstamp)
     581Parser/cfa_cpp-lex.$(OBJEXT): Parser/$(am__dirstamp) \
     582        Parser/$(DEPDIR)/$(am__dirstamp)
     583Parser/cfa_cpp-TypedefTable.$(OBJEXT): Parser/$(am__dirstamp) \
     584        Parser/$(DEPDIR)/$(am__dirstamp)
     585Parser/cfa_cpp-ParseNode.$(OBJEXT): Parser/$(am__dirstamp) \
     586        Parser/$(DEPDIR)/$(am__dirstamp)
     587Parser/cfa_cpp-DeclarationNode.$(OBJEXT): Parser/$(am__dirstamp) \
     588        Parser/$(DEPDIR)/$(am__dirstamp)
     589Parser/cfa_cpp-ExpressionNode.$(OBJEXT): Parser/$(am__dirstamp) \
     590        Parser/$(DEPDIR)/$(am__dirstamp)
     591Parser/cfa_cpp-StatementNode.$(OBJEXT): Parser/$(am__dirstamp) \
     592        Parser/$(DEPDIR)/$(am__dirstamp)
     593Parser/cfa_cpp-InitializerNode.$(OBJEXT): Parser/$(am__dirstamp) \
     594        Parser/$(DEPDIR)/$(am__dirstamp)
     595Parser/cfa_cpp-TypeData.$(OBJEXT): Parser/$(am__dirstamp) \
     596        Parser/$(DEPDIR)/$(am__dirstamp)
     597Parser/cfa_cpp-LinkageSpec.$(OBJEXT): Parser/$(am__dirstamp) \
     598        Parser/$(DEPDIR)/$(am__dirstamp)
     599Parser/cfa_cpp-parseutility.$(OBJEXT): Parser/$(am__dirstamp) \
     600        Parser/$(DEPDIR)/$(am__dirstamp)
     601Parser/cfa_cpp-Parser.$(OBJEXT): Parser/$(am__dirstamp) \
     602        Parser/$(DEPDIR)/$(am__dirstamp)
     603ResolvExpr/$(am__dirstamp):
     604        @$(MKDIR_P) ResolvExpr
     605        @: > ResolvExpr/$(am__dirstamp)
     606ResolvExpr/$(DEPDIR)/$(am__dirstamp):
     607        @$(MKDIR_P) ResolvExpr/$(DEPDIR)
     608        @: > ResolvExpr/$(DEPDIR)/$(am__dirstamp)
     609ResolvExpr/cfa_cpp-AlternativeFinder.$(OBJEXT):  \
     610        ResolvExpr/$(am__dirstamp) \
     611        ResolvExpr/$(DEPDIR)/$(am__dirstamp)
     612ResolvExpr/cfa_cpp-Alternative.$(OBJEXT): ResolvExpr/$(am__dirstamp) \
     613        ResolvExpr/$(DEPDIR)/$(am__dirstamp)
     614ResolvExpr/cfa_cpp-Unify.$(OBJEXT): ResolvExpr/$(am__dirstamp) \
     615        ResolvExpr/$(DEPDIR)/$(am__dirstamp)
     616ResolvExpr/cfa_cpp-PtrsAssignable.$(OBJEXT):  \
     617        ResolvExpr/$(am__dirstamp) \
     618        ResolvExpr/$(DEPDIR)/$(am__dirstamp)
     619ResolvExpr/cfa_cpp-CommonType.$(OBJEXT): ResolvExpr/$(am__dirstamp) \
     620        ResolvExpr/$(DEPDIR)/$(am__dirstamp)
     621ResolvExpr/cfa_cpp-ConversionCost.$(OBJEXT):  \
     622        ResolvExpr/$(am__dirstamp) \
     623        ResolvExpr/$(DEPDIR)/$(am__dirstamp)
     624ResolvExpr/cfa_cpp-CastCost.$(OBJEXT): ResolvExpr/$(am__dirstamp) \
     625        ResolvExpr/$(DEPDIR)/$(am__dirstamp)
     626ResolvExpr/cfa_cpp-PtrsCastable.$(OBJEXT): ResolvExpr/$(am__dirstamp) \
     627        ResolvExpr/$(DEPDIR)/$(am__dirstamp)
     628ResolvExpr/cfa_cpp-AdjustExprType.$(OBJEXT):  \
     629        ResolvExpr/$(am__dirstamp) \
     630        ResolvExpr/$(DEPDIR)/$(am__dirstamp)
     631ResolvExpr/cfa_cpp-AlternativePrinter.$(OBJEXT):  \
     632        ResolvExpr/$(am__dirstamp) \
     633        ResolvExpr/$(DEPDIR)/$(am__dirstamp)
     634ResolvExpr/cfa_cpp-Resolver.$(OBJEXT): ResolvExpr/$(am__dirstamp) \
     635        ResolvExpr/$(DEPDIR)/$(am__dirstamp)
     636ResolvExpr/cfa_cpp-ResolveTypeof.$(OBJEXT):  \
     637        ResolvExpr/$(am__dirstamp) \
     638        ResolvExpr/$(DEPDIR)/$(am__dirstamp)
     639ResolvExpr/cfa_cpp-RenameVars.$(OBJEXT): ResolvExpr/$(am__dirstamp) \
     640        ResolvExpr/$(DEPDIR)/$(am__dirstamp)
     641ResolvExpr/cfa_cpp-FindOpenVars.$(OBJEXT): ResolvExpr/$(am__dirstamp) \
     642        ResolvExpr/$(DEPDIR)/$(am__dirstamp)
     643ResolvExpr/cfa_cpp-PolyCost.$(OBJEXT): ResolvExpr/$(am__dirstamp) \
     644        ResolvExpr/$(DEPDIR)/$(am__dirstamp)
     645ResolvExpr/cfa_cpp-Occurs.$(OBJEXT): ResolvExpr/$(am__dirstamp) \
     646        ResolvExpr/$(DEPDIR)/$(am__dirstamp)
     647ResolvExpr/cfa_cpp-TypeEnvironment.$(OBJEXT):  \
     648        ResolvExpr/$(am__dirstamp) \
     649        ResolvExpr/$(DEPDIR)/$(am__dirstamp)
     650SymTab/$(am__dirstamp):
     651        @$(MKDIR_P) SymTab
     652        @: > SymTab/$(am__dirstamp)
     653SymTab/$(DEPDIR)/$(am__dirstamp):
     654        @$(MKDIR_P) SymTab/$(DEPDIR)
     655        @: > SymTab/$(DEPDIR)/$(am__dirstamp)
     656SymTab/cfa_cpp-IdTable.$(OBJEXT): SymTab/$(am__dirstamp) \
     657        SymTab/$(DEPDIR)/$(am__dirstamp)
     658SymTab/cfa_cpp-Indexer.$(OBJEXT): SymTab/$(am__dirstamp) \
     659        SymTab/$(DEPDIR)/$(am__dirstamp)
     660SymTab/cfa_cpp-Mangler.$(OBJEXT): SymTab/$(am__dirstamp) \
     661        SymTab/$(DEPDIR)/$(am__dirstamp)
     662SymTab/cfa_cpp-Validate.$(OBJEXT): SymTab/$(am__dirstamp) \
     663        SymTab/$(DEPDIR)/$(am__dirstamp)
     664SymTab/cfa_cpp-FixFunction.$(OBJEXT): SymTab/$(am__dirstamp) \
     665        SymTab/$(DEPDIR)/$(am__dirstamp)
     666SymTab/cfa_cpp-ImplementationType.$(OBJEXT): SymTab/$(am__dirstamp) \
     667        SymTab/$(DEPDIR)/$(am__dirstamp)
     668SynTree/$(am__dirstamp):
     669        @$(MKDIR_P) SynTree
     670        @: > SynTree/$(am__dirstamp)
     671SynTree/$(DEPDIR)/$(am__dirstamp):
     672        @$(MKDIR_P) SynTree/$(DEPDIR)
     673        @: > SynTree/$(DEPDIR)/$(am__dirstamp)
     674SynTree/cfa_cpp-Type.$(OBJEXT): SynTree/$(am__dirstamp) \
     675        SynTree/$(DEPDIR)/$(am__dirstamp)
     676SynTree/cfa_cpp-VoidType.$(OBJEXT): SynTree/$(am__dirstamp) \
     677        SynTree/$(DEPDIR)/$(am__dirstamp)
     678SynTree/cfa_cpp-BasicType.$(OBJEXT): SynTree/$(am__dirstamp) \
     679        SynTree/$(DEPDIR)/$(am__dirstamp)
     680SynTree/cfa_cpp-PointerType.$(OBJEXT): SynTree/$(am__dirstamp) \
     681        SynTree/$(DEPDIR)/$(am__dirstamp)
     682SynTree/cfa_cpp-ArrayType.$(OBJEXT): SynTree/$(am__dirstamp) \
     683        SynTree/$(DEPDIR)/$(am__dirstamp)
     684SynTree/cfa_cpp-FunctionType.$(OBJEXT): SynTree/$(am__dirstamp) \
     685        SynTree/$(DEPDIR)/$(am__dirstamp)
     686SynTree/cfa_cpp-ReferenceToType.$(OBJEXT): SynTree/$(am__dirstamp) \
     687        SynTree/$(DEPDIR)/$(am__dirstamp)
     688SynTree/cfa_cpp-TupleType.$(OBJEXT): SynTree/$(am__dirstamp) \
     689        SynTree/$(DEPDIR)/$(am__dirstamp)
     690SynTree/cfa_cpp-TypeofType.$(OBJEXT): SynTree/$(am__dirstamp) \
     691        SynTree/$(DEPDIR)/$(am__dirstamp)
     692SynTree/cfa_cpp-AttrType.$(OBJEXT): SynTree/$(am__dirstamp) \
     693        SynTree/$(DEPDIR)/$(am__dirstamp)
     694SynTree/cfa_cpp-Constant.$(OBJEXT): SynTree/$(am__dirstamp) \
     695        SynTree/$(DEPDIR)/$(am__dirstamp)
     696SynTree/cfa_cpp-Expression.$(OBJEXT): SynTree/$(am__dirstamp) \
     697        SynTree/$(DEPDIR)/$(am__dirstamp)
     698SynTree/cfa_cpp-TupleExpr.$(OBJEXT): SynTree/$(am__dirstamp) \
     699        SynTree/$(DEPDIR)/$(am__dirstamp)
     700SynTree/cfa_cpp-CommaExpr.$(OBJEXT): SynTree/$(am__dirstamp) \
     701        SynTree/$(DEPDIR)/$(am__dirstamp)
     702SynTree/cfa_cpp-TypeExpr.$(OBJEXT): SynTree/$(am__dirstamp) \
     703        SynTree/$(DEPDIR)/$(am__dirstamp)
     704SynTree/cfa_cpp-ApplicationExpr.$(OBJEXT): SynTree/$(am__dirstamp) \
     705        SynTree/$(DEPDIR)/$(am__dirstamp)
     706SynTree/cfa_cpp-AddressExpr.$(OBJEXT): SynTree/$(am__dirstamp) \
     707        SynTree/$(DEPDIR)/$(am__dirstamp)
     708SynTree/cfa_cpp-Statement.$(OBJEXT): SynTree/$(am__dirstamp) \
     709        SynTree/$(DEPDIR)/$(am__dirstamp)
     710SynTree/cfa_cpp-CompoundStmt.$(OBJEXT): SynTree/$(am__dirstamp) \
     711        SynTree/$(DEPDIR)/$(am__dirstamp)
     712SynTree/cfa_cpp-DeclStmt.$(OBJEXT): SynTree/$(am__dirstamp) \
     713        SynTree/$(DEPDIR)/$(am__dirstamp)
     714SynTree/cfa_cpp-Declaration.$(OBJEXT): SynTree/$(am__dirstamp) \
     715        SynTree/$(DEPDIR)/$(am__dirstamp)
     716SynTree/cfa_cpp-DeclarationWithType.$(OBJEXT):  \
     717        SynTree/$(am__dirstamp) SynTree/$(DEPDIR)/$(am__dirstamp)
     718SynTree/cfa_cpp-ObjectDecl.$(OBJEXT): SynTree/$(am__dirstamp) \
     719        SynTree/$(DEPDIR)/$(am__dirstamp)
     720SynTree/cfa_cpp-FunctionDecl.$(OBJEXT): SynTree/$(am__dirstamp) \
     721        SynTree/$(DEPDIR)/$(am__dirstamp)
     722SynTree/cfa_cpp-AggregateDecl.$(OBJEXT): SynTree/$(am__dirstamp) \
     723        SynTree/$(DEPDIR)/$(am__dirstamp)
     724SynTree/cfa_cpp-NamedTypeDecl.$(OBJEXT): SynTree/$(am__dirstamp) \
     725        SynTree/$(DEPDIR)/$(am__dirstamp)
     726SynTree/cfa_cpp-TypeDecl.$(OBJEXT): SynTree/$(am__dirstamp) \
     727        SynTree/$(DEPDIR)/$(am__dirstamp)
     728SynTree/cfa_cpp-Initializer.$(OBJEXT): SynTree/$(am__dirstamp) \
     729        SynTree/$(DEPDIR)/$(am__dirstamp)
     730SynTree/cfa_cpp-Visitor.$(OBJEXT): SynTree/$(am__dirstamp) \
     731        SynTree/$(DEPDIR)/$(am__dirstamp)
     732SynTree/cfa_cpp-Mutator.$(OBJEXT): SynTree/$(am__dirstamp) \
     733        SynTree/$(DEPDIR)/$(am__dirstamp)
     734SynTree/cfa_cpp-CodeGenVisitor.$(OBJEXT): SynTree/$(am__dirstamp) \
     735        SynTree/$(DEPDIR)/$(am__dirstamp)
     736SynTree/cfa_cpp-TypeSubstitution.$(OBJEXT): SynTree/$(am__dirstamp) \
     737        SynTree/$(DEPDIR)/$(am__dirstamp)
     738Tuples/$(am__dirstamp):
     739        @$(MKDIR_P) Tuples
     740        @: > Tuples/$(am__dirstamp)
     741Tuples/$(DEPDIR)/$(am__dirstamp):
     742        @$(MKDIR_P) Tuples/$(DEPDIR)
     743        @: > Tuples/$(DEPDIR)/$(am__dirstamp)
     744Tuples/cfa_cpp-Mutate.$(OBJEXT): Tuples/$(am__dirstamp) \
     745        Tuples/$(DEPDIR)/$(am__dirstamp)
     746Tuples/cfa_cpp-AssignExpand.$(OBJEXT): Tuples/$(am__dirstamp) \
     747        Tuples/$(DEPDIR)/$(am__dirstamp)
     748Tuples/cfa_cpp-FunctionFixer.$(OBJEXT): Tuples/$(am__dirstamp) \
     749        Tuples/$(DEPDIR)/$(am__dirstamp)
     750Tuples/cfa_cpp-TupleAssignment.$(OBJEXT): Tuples/$(am__dirstamp) \
     751        Tuples/$(DEPDIR)/$(am__dirstamp)
     752Tuples/cfa_cpp-FunctionChecker.$(OBJEXT): Tuples/$(am__dirstamp) \
     753        Tuples/$(DEPDIR)/$(am__dirstamp)
     754Tuples/cfa_cpp-NameMatcher.$(OBJEXT): Tuples/$(am__dirstamp) \
     755        Tuples/$(DEPDIR)/$(am__dirstamp)
     756cfa-cpp$(EXEEXT): $(cfa_cpp_OBJECTS) $(cfa_cpp_DEPENDENCIES) $(EXTRA_cfa_cpp_DEPENDENCIES)
     757        @rm -f cfa-cpp$(EXEEXT)
     758        $(cfa_cpp_LINK) $(cfa_cpp_OBJECTS) $(cfa_cpp_LDADD) $(LIBS)
     759
     760mostlyclean-compile:
     761        -rm -f *.$(OBJEXT)
     762        -rm -f CodeGen/cfa_cpp-CodeGenerator.$(OBJEXT)
     763        -rm -f CodeGen/cfa_cpp-FixNames.$(OBJEXT)
     764        -rm -f CodeGen/cfa_cpp-GenType.$(OBJEXT)
     765        -rm -f CodeGen/cfa_cpp-Generate.$(OBJEXT)
     766        -rm -f CodeGen/cfa_cpp-OperatorTable.$(OBJEXT)
     767        -rm -f Common/cfa_cpp-SemanticError.$(OBJEXT)
     768        -rm -f Common/cfa_cpp-UniqueName.$(OBJEXT)
     769        -rm -f ControlStruct/cfa_cpp-CaseRangeMutator.$(OBJEXT)
     770        -rm -f ControlStruct/cfa_cpp-ChooseMutator.$(OBJEXT)
     771        -rm -f ControlStruct/cfa_cpp-ForExprMutator.$(OBJEXT)
     772        -rm -f ControlStruct/cfa_cpp-LabelFixer.$(OBJEXT)
     773        -rm -f ControlStruct/cfa_cpp-LabelGenerator.$(OBJEXT)
     774        -rm -f ControlStruct/cfa_cpp-LabelTypeChecker.$(OBJEXT)
     775        -rm -f ControlStruct/cfa_cpp-MLEMutator.$(OBJEXT)
     776        -rm -f ControlStruct/cfa_cpp-Mutate.$(OBJEXT)
     777        -rm -f Designators/cfa_cpp-Processor.$(OBJEXT)
     778        -rm -f GenPoly/cfa_cpp-Box.$(OBJEXT)
     779        -rm -f GenPoly/cfa_cpp-CopyParams.$(OBJEXT)
     780        -rm -f GenPoly/cfa_cpp-FindFunction.$(OBJEXT)
     781        -rm -f GenPoly/cfa_cpp-GenPoly.$(OBJEXT)
     782        -rm -f GenPoly/cfa_cpp-Lvalue.$(OBJEXT)
     783        -rm -f GenPoly/cfa_cpp-PolyMutator.$(OBJEXT)
     784        -rm -f GenPoly/cfa_cpp-ScrubTyVars.$(OBJEXT)
     785        -rm -f GenPoly/cfa_cpp-Specialize.$(OBJEXT)
     786        -rm -f InitTweak/cfa_cpp-Association.$(OBJEXT)
     787        -rm -f InitTweak/cfa_cpp-InitExpander.$(OBJEXT)
     788        -rm -f InitTweak/cfa_cpp-InitModel.$(OBJEXT)
     789        -rm -f InitTweak/cfa_cpp-Mutate.$(OBJEXT)
     790        -rm -f InitTweak/cfa_cpp-RemoveInit.$(OBJEXT)
     791        -rm -f Parser/cfa_cpp-DeclarationNode.$(OBJEXT)
     792        -rm -f Parser/cfa_cpp-ExpressionNode.$(OBJEXT)
     793        -rm -f Parser/cfa_cpp-InitializerNode.$(OBJEXT)
     794        -rm -f Parser/cfa_cpp-LinkageSpec.$(OBJEXT)
     795        -rm -f Parser/cfa_cpp-ParseNode.$(OBJEXT)
     796        -rm -f Parser/cfa_cpp-Parser.$(OBJEXT)
     797        -rm -f Parser/cfa_cpp-StatementNode.$(OBJEXT)
     798        -rm -f Parser/cfa_cpp-TypeData.$(OBJEXT)
     799        -rm -f Parser/cfa_cpp-TypedefTable.$(OBJEXT)
     800        -rm -f Parser/cfa_cpp-lex.$(OBJEXT)
     801        -rm -f Parser/cfa_cpp-parser.$(OBJEXT)
     802        -rm -f Parser/cfa_cpp-parseutility.$(OBJEXT)
     803        -rm -f ResolvExpr/cfa_cpp-AdjustExprType.$(OBJEXT)
     804        -rm -f ResolvExpr/cfa_cpp-Alternative.$(OBJEXT)
     805        -rm -f ResolvExpr/cfa_cpp-AlternativeFinder.$(OBJEXT)
     806        -rm -f ResolvExpr/cfa_cpp-AlternativePrinter.$(OBJEXT)
     807        -rm -f ResolvExpr/cfa_cpp-CastCost.$(OBJEXT)
     808        -rm -f ResolvExpr/cfa_cpp-CommonType.$(OBJEXT)
     809        -rm -f ResolvExpr/cfa_cpp-ConversionCost.$(OBJEXT)
     810        -rm -f ResolvExpr/cfa_cpp-FindOpenVars.$(OBJEXT)
     811        -rm -f ResolvExpr/cfa_cpp-Occurs.$(OBJEXT)
     812        -rm -f ResolvExpr/cfa_cpp-PolyCost.$(OBJEXT)
     813        -rm -f ResolvExpr/cfa_cpp-PtrsAssignable.$(OBJEXT)
     814        -rm -f ResolvExpr/cfa_cpp-PtrsCastable.$(OBJEXT)
     815        -rm -f ResolvExpr/cfa_cpp-RenameVars.$(OBJEXT)
     816        -rm -f ResolvExpr/cfa_cpp-ResolveTypeof.$(OBJEXT)
     817        -rm -f ResolvExpr/cfa_cpp-Resolver.$(OBJEXT)
     818        -rm -f ResolvExpr/cfa_cpp-TypeEnvironment.$(OBJEXT)
     819        -rm -f ResolvExpr/cfa_cpp-Unify.$(OBJEXT)
     820        -rm -f SymTab/cfa_cpp-FixFunction.$(OBJEXT)
     821        -rm -f SymTab/cfa_cpp-IdTable.$(OBJEXT)
     822        -rm -f SymTab/cfa_cpp-ImplementationType.$(OBJEXT)
     823        -rm -f SymTab/cfa_cpp-Indexer.$(OBJEXT)
     824        -rm -f SymTab/cfa_cpp-Mangler.$(OBJEXT)
     825        -rm -f SymTab/cfa_cpp-Validate.$(OBJEXT)
     826        -rm -f SynTree/cfa_cpp-AddressExpr.$(OBJEXT)
     827        -rm -f SynTree/cfa_cpp-AggregateDecl.$(OBJEXT)
     828        -rm -f SynTree/cfa_cpp-ApplicationExpr.$(OBJEXT)
     829        -rm -f SynTree/cfa_cpp-ArrayType.$(OBJEXT)
     830        -rm -f SynTree/cfa_cpp-AttrType.$(OBJEXT)
     831        -rm -f SynTree/cfa_cpp-BasicType.$(OBJEXT)
     832        -rm -f SynTree/cfa_cpp-CodeGenVisitor.$(OBJEXT)
     833        -rm -f SynTree/cfa_cpp-CommaExpr.$(OBJEXT)
     834        -rm -f SynTree/cfa_cpp-CompoundStmt.$(OBJEXT)
     835        -rm -f SynTree/cfa_cpp-Constant.$(OBJEXT)
     836        -rm -f SynTree/cfa_cpp-DeclStmt.$(OBJEXT)
     837        -rm -f SynTree/cfa_cpp-Declaration.$(OBJEXT)
     838        -rm -f SynTree/cfa_cpp-DeclarationWithType.$(OBJEXT)
     839        -rm -f SynTree/cfa_cpp-Expression.$(OBJEXT)
     840        -rm -f SynTree/cfa_cpp-FunctionDecl.$(OBJEXT)
     841        -rm -f SynTree/cfa_cpp-FunctionType.$(OBJEXT)
     842        -rm -f SynTree/cfa_cpp-Initializer.$(OBJEXT)
     843        -rm -f SynTree/cfa_cpp-Mutator.$(OBJEXT)
     844        -rm -f SynTree/cfa_cpp-NamedTypeDecl.$(OBJEXT)
     845        -rm -f SynTree/cfa_cpp-ObjectDecl.$(OBJEXT)
     846        -rm -f SynTree/cfa_cpp-PointerType.$(OBJEXT)
     847        -rm -f SynTree/cfa_cpp-ReferenceToType.$(OBJEXT)
     848        -rm -f SynTree/cfa_cpp-Statement.$(OBJEXT)
     849        -rm -f SynTree/cfa_cpp-TupleExpr.$(OBJEXT)
     850        -rm -f SynTree/cfa_cpp-TupleType.$(OBJEXT)
     851        -rm -f SynTree/cfa_cpp-Type.$(OBJEXT)
     852        -rm -f SynTree/cfa_cpp-TypeDecl.$(OBJEXT)
     853        -rm -f SynTree/cfa_cpp-TypeExpr.$(OBJEXT)
     854        -rm -f SynTree/cfa_cpp-TypeSubstitution.$(OBJEXT)
     855        -rm -f SynTree/cfa_cpp-TypeofType.$(OBJEXT)
     856        -rm -f SynTree/cfa_cpp-Visitor.$(OBJEXT)
     857        -rm -f SynTree/cfa_cpp-VoidType.$(OBJEXT)
     858        -rm -f Tuples/cfa_cpp-AssignExpand.$(OBJEXT)
     859        -rm -f Tuples/cfa_cpp-FunctionChecker.$(OBJEXT)
     860        -rm -f Tuples/cfa_cpp-FunctionFixer.$(OBJEXT)
     861        -rm -f Tuples/cfa_cpp-Mutate.$(OBJEXT)
     862        -rm -f Tuples/cfa_cpp-NameMatcher.$(OBJEXT)
     863        -rm -f Tuples/cfa_cpp-TupleAssignment.$(OBJEXT)
     864
     865distclean-compile:
     866        -rm -f *.tab.c
     867
     868@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cfa_cpp-MakeLibCfa.Po@am__quote@
     869@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cfa_cpp-main.Po@am__quote@
     870@AMDEP_TRUE@@am__include@ @am__quote@CodeGen/$(DEPDIR)/cfa_cpp-CodeGenerator.Po@am__quote@
     871@AMDEP_TRUE@@am__include@ @am__quote@CodeGen/$(DEPDIR)/cfa_cpp-FixNames.Po@am__quote@
     872@AMDEP_TRUE@@am__include@ @am__quote@CodeGen/$(DEPDIR)/cfa_cpp-GenType.Po@am__quote@
     873@AMDEP_TRUE@@am__include@ @am__quote@CodeGen/$(DEPDIR)/cfa_cpp-Generate.Po@am__quote@
     874@AMDEP_TRUE@@am__include@ @am__quote@CodeGen/$(DEPDIR)/cfa_cpp-OperatorTable.Po@am__quote@
     875@AMDEP_TRUE@@am__include@ @am__quote@Common/$(DEPDIR)/cfa_cpp-SemanticError.Po@am__quote@
     876@AMDEP_TRUE@@am__include@ @am__quote@Common/$(DEPDIR)/cfa_cpp-UniqueName.Po@am__quote@
     877@AMDEP_TRUE@@am__include@ @am__quote@ControlStruct/$(DEPDIR)/cfa_cpp-CaseRangeMutator.Po@am__quote@
     878@AMDEP_TRUE@@am__include@ @am__quote@ControlStruct/$(DEPDIR)/cfa_cpp-ChooseMutator.Po@am__quote@
     879@AMDEP_TRUE@@am__include@ @am__quote@ControlStruct/$(DEPDIR)/cfa_cpp-ForExprMutator.Po@am__quote@
     880@AMDEP_TRUE@@am__include@ @am__quote@ControlStruct/$(DEPDIR)/cfa_cpp-LabelFixer.Po@am__quote@
     881@AMDEP_TRUE@@am__include@ @am__quote@ControlStruct/$(DEPDIR)/cfa_cpp-LabelGenerator.Po@am__quote@
     882@AMDEP_TRUE@@am__include@ @am__quote@ControlStruct/$(DEPDIR)/cfa_cpp-LabelTypeChecker.Po@am__quote@
     883@AMDEP_TRUE@@am__include@ @am__quote@ControlStruct/$(DEPDIR)/cfa_cpp-MLEMutator.Po@am__quote@
     884@AMDEP_TRUE@@am__include@ @am__quote@ControlStruct/$(DEPDIR)/cfa_cpp-Mutate.Po@am__quote@
     885@AMDEP_TRUE@@am__include@ @am__quote@Designators/$(DEPDIR)/cfa_cpp-Processor.Po@am__quote@
     886@AMDEP_TRUE@@am__include@ @am__quote@GenPoly/$(DEPDIR)/cfa_cpp-Box.Po@am__quote@
     887@AMDEP_TRUE@@am__include@ @am__quote@GenPoly/$(DEPDIR)/cfa_cpp-CopyParams.Po@am__quote@
     888@AMDEP_TRUE@@am__include@ @am__quote@GenPoly/$(DEPDIR)/cfa_cpp-FindFunction.Po@am__quote@
     889@AMDEP_TRUE@@am__include@ @am__quote@GenPoly/$(DEPDIR)/cfa_cpp-GenPoly.Po@am__quote@
     890@AMDEP_TRUE@@am__include@ @am__quote@GenPoly/$(DEPDIR)/cfa_cpp-Lvalue.Po@am__quote@
     891@AMDEP_TRUE@@am__include@ @am__quote@GenPoly/$(DEPDIR)/cfa_cpp-PolyMutator.Po@am__quote@
     892@AMDEP_TRUE@@am__include@ @am__quote@GenPoly/$(DEPDIR)/cfa_cpp-ScrubTyVars.Po@am__quote@
     893@AMDEP_TRUE@@am__include@ @am__quote@GenPoly/$(DEPDIR)/cfa_cpp-Specialize.Po@am__quote@
     894@AMDEP_TRUE@@am__include@ @am__quote@InitTweak/$(DEPDIR)/cfa_cpp-Association.Po@am__quote@
     895@AMDEP_TRUE@@am__include@ @am__quote@InitTweak/$(DEPDIR)/cfa_cpp-InitExpander.Po@am__quote@
     896@AMDEP_TRUE@@am__include@ @am__quote@InitTweak/$(DEPDIR)/cfa_cpp-InitModel.Po@am__quote@
     897@AMDEP_TRUE@@am__include@ @am__quote@InitTweak/$(DEPDIR)/cfa_cpp-Mutate.Po@am__quote@
     898@AMDEP_TRUE@@am__include@ @am__quote@InitTweak/$(DEPDIR)/cfa_cpp-RemoveInit.Po@am__quote@
     899@AMDEP_TRUE@@am__include@ @am__quote@Parser/$(DEPDIR)/cfa_cpp-DeclarationNode.Po@am__quote@
     900@AMDEP_TRUE@@am__include@ @am__quote@Parser/$(DEPDIR)/cfa_cpp-ExpressionNode.Po@am__quote@
     901@AMDEP_TRUE@@am__include@ @am__quote@Parser/$(DEPDIR)/cfa_cpp-InitializerNode.Po@am__quote@
     902@AMDEP_TRUE@@am__include@ @am__quote@Parser/$(DEPDIR)/cfa_cpp-LinkageSpec.Po@am__quote@
     903@AMDEP_TRUE@@am__include@ @am__quote@Parser/$(DEPDIR)/cfa_cpp-ParseNode.Po@am__quote@
     904@AMDEP_TRUE@@am__include@ @am__quote@Parser/$(DEPDIR)/cfa_cpp-Parser.Po@am__quote@
     905@AMDEP_TRUE@@am__include@ @am__quote@Parser/$(DEPDIR)/cfa_cpp-StatementNode.Po@am__quote@
     906@AMDEP_TRUE@@am__include@ @am__quote@Parser/$(DEPDIR)/cfa_cpp-TypeData.Po@am__quote@
     907@AMDEP_TRUE@@am__include@ @am__quote@Parser/$(DEPDIR)/cfa_cpp-TypedefTable.Po@am__quote@
     908@AMDEP_TRUE@@am__include@ @am__quote@Parser/$(DEPDIR)/cfa_cpp-lex.Po@am__quote@
     909@AMDEP_TRUE@@am__include@ @am__quote@Parser/$(DEPDIR)/cfa_cpp-parser.Po@am__quote@
     910@AMDEP_TRUE@@am__include@ @am__quote@Parser/$(DEPDIR)/cfa_cpp-parseutility.Po@am__quote@
     911@AMDEP_TRUE@@am__include@ @am__quote@ResolvExpr/$(DEPDIR)/cfa_cpp-AdjustExprType.Po@am__quote@
     912@AMDEP_TRUE@@am__include@ @am__quote@ResolvExpr/$(DEPDIR)/cfa_cpp-Alternative.Po@am__quote@
     913@AMDEP_TRUE@@am__include@ @am__quote@ResolvExpr/$(DEPDIR)/cfa_cpp-AlternativeFinder.Po@am__quote@
     914@AMDEP_TRUE@@am__include@ @am__quote@ResolvExpr/$(DEPDIR)/cfa_cpp-AlternativePrinter.Po@am__quote@
     915@AMDEP_TRUE@@am__include@ @am__quote@ResolvExpr/$(DEPDIR)/cfa_cpp-CastCost.Po@am__quote@
     916@AMDEP_TRUE@@am__include@ @am__quote@ResolvExpr/$(DEPDIR)/cfa_cpp-CommonType.Po@am__quote@
     917@AMDEP_TRUE@@am__include@ @am__quote@ResolvExpr/$(DEPDIR)/cfa_cpp-ConversionCost.Po@am__quote@
     918@AMDEP_TRUE@@am__include@ @am__quote@ResolvExpr/$(DEPDIR)/cfa_cpp-FindOpenVars.Po@am__quote@
     919@AMDEP_TRUE@@am__include@ @am__quote@ResolvExpr/$(DEPDIR)/cfa_cpp-Occurs.Po@am__quote@
     920@AMDEP_TRUE@@am__include@ @am__quote@ResolvExpr/$(DEPDIR)/cfa_cpp-PolyCost.Po@am__quote@
     921@AMDEP_TRUE@@am__include@ @am__quote@ResolvExpr/$(DEPDIR)/cfa_cpp-PtrsAssignable.Po@am__quote@
     922@AMDEP_TRUE@@am__include@ @am__quote@ResolvExpr/$(DEPDIR)/cfa_cpp-PtrsCastable.Po@am__quote@
     923@AMDEP_TRUE@@am__include@ @am__quote@ResolvExpr/$(DEPDIR)/cfa_cpp-RenameVars.Po@am__quote@
     924@AMDEP_TRUE@@am__include@ @am__quote@ResolvExpr/$(DEPDIR)/cfa_cpp-ResolveTypeof.Po@am__quote@
     925@AMDEP_TRUE@@am__include@ @am__quote@ResolvExpr/$(DEPDIR)/cfa_cpp-Resolver.Po@am__quote@
     926@AMDEP_TRUE@@am__include@ @am__quote@ResolvExpr/$(DEPDIR)/cfa_cpp-TypeEnvironment.Po@am__quote@
     927@AMDEP_TRUE@@am__include@ @am__quote@ResolvExpr/$(DEPDIR)/cfa_cpp-Unify.Po@am__quote@
     928@AMDEP_TRUE@@am__include@ @am__quote@SymTab/$(DEPDIR)/cfa_cpp-FixFunction.Po@am__quote@
     929@AMDEP_TRUE@@am__include@ @am__quote@SymTab/$(DEPDIR)/cfa_cpp-IdTable.Po@am__quote@
     930@AMDEP_TRUE@@am__include@ @am__quote@SymTab/$(DEPDIR)/cfa_cpp-ImplementationType.Po@am__quote@
     931@AMDEP_TRUE@@am__include@ @am__quote@SymTab/$(DEPDIR)/cfa_cpp-Indexer.Po@am__quote@
     932@AMDEP_TRUE@@am__include@ @am__quote@SymTab/$(DEPDIR)/cfa_cpp-Mangler.Po@am__quote@
     933@AMDEP_TRUE@@am__include@ @am__quote@SymTab/$(DEPDIR)/cfa_cpp-Validate.Po@am__quote@
     934@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-AddressExpr.Po@am__quote@
     935@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-AggregateDecl.Po@am__quote@
     936@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-ApplicationExpr.Po@am__quote@
     937@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-ArrayType.Po@am__quote@
     938@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-AttrType.Po@am__quote@
     939@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-BasicType.Po@am__quote@
     940@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-CodeGenVisitor.Po@am__quote@
     941@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-CommaExpr.Po@am__quote@
     942@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-CompoundStmt.Po@am__quote@
     943@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-Constant.Po@am__quote@
     944@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-DeclStmt.Po@am__quote@
     945@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-Declaration.Po@am__quote@
     946@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-DeclarationWithType.Po@am__quote@
     947@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-Expression.Po@am__quote@
     948@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-FunctionDecl.Po@am__quote@
     949@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-FunctionType.Po@am__quote@
     950@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-Initializer.Po@am__quote@
     951@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-Mutator.Po@am__quote@
     952@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-NamedTypeDecl.Po@am__quote@
     953@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-ObjectDecl.Po@am__quote@
     954@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-PointerType.Po@am__quote@
     955@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-ReferenceToType.Po@am__quote@
     956@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-Statement.Po@am__quote@
     957@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-TupleExpr.Po@am__quote@
     958@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-TupleType.Po@am__quote@
     959@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-Type.Po@am__quote@
     960@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-TypeDecl.Po@am__quote@
     961@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-TypeExpr.Po@am__quote@
     962@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-TypeSubstitution.Po@am__quote@
     963@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-TypeofType.Po@am__quote@
     964@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-Visitor.Po@am__quote@
     965@AMDEP_TRUE@@am__include@ @am__quote@SynTree/$(DEPDIR)/cfa_cpp-VoidType.Po@am__quote@
     966@AMDEP_TRUE@@am__include@ @am__quote@Tuples/$(DEPDIR)/cfa_cpp-AssignExpand.Po@am__quote@
     967@AMDEP_TRUE@@am__include@ @am__quote@Tuples/$(DEPDIR)/cfa_cpp-FunctionChecker.Po@am__quote@
     968@AMDEP_TRUE@@am__include@ @am__quote@Tuples/$(DEPDIR)/cfa_cpp-FunctionFixer.Po@am__quote@
     969@AMDEP_TRUE@@am__include@ @am__quote@Tuples/$(DEPDIR)/cfa_cpp-Mutate.Po@am__quote@
     970@AMDEP_TRUE@@am__include@ @am__quote@Tuples/$(DEPDIR)/cfa_cpp-NameMatcher.Po@am__quote@
     971@AMDEP_TRUE@@am__include@ @am__quote@Tuples/$(DEPDIR)/cfa_cpp-TupleAssignment.Po@am__quote@
     972
     973.cc.o:
     974@am__fastdepCXX_TRUE@   depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
     975@am__fastdepCXX_TRUE@   $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
     976@am__fastdepCXX_TRUE@   $(am__mv) $$depbase.Tpo $$depbase.Po
     977@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
     978@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     979@am__fastdepCXX_FALSE@  $(CXXCOMPILE) -c -o $@ $<
     980
     981.cc.obj:
     982@am__fastdepCXX_TRUE@   depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
     983@am__fastdepCXX_TRUE@   $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
     984@am__fastdepCXX_TRUE@   $(am__mv) $$depbase.Tpo $$depbase.Po
     985@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
     986@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     987@am__fastdepCXX_FALSE@  $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
     988
     989cfa_cpp-main.o: main.cc
     990@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT cfa_cpp-main.o -MD -MP -MF $(DEPDIR)/cfa_cpp-main.Tpo -c -o cfa_cpp-main.o `test -f 'main.cc' || echo '$(srcdir)/'`main.cc
     991@am__fastdepCXX_TRUE@   $(am__mv) $(DEPDIR)/cfa_cpp-main.Tpo $(DEPDIR)/cfa_cpp-main.Po
     992@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='main.cc' object='cfa_cpp-main.o' libtool=no @AMDEPBACKSLASH@
     993@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     994@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o cfa_cpp-main.o `test -f 'main.cc' || echo '$(srcdir)/'`main.cc
     995
     996cfa_cpp-main.obj: main.cc
     997@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT cfa_cpp-main.obj -MD -MP -MF $(DEPDIR)/cfa_cpp-main.Tpo -c -o cfa_cpp-main.obj `if test -f 'main.cc'; then $(CYGPATH_W) 'main.cc'; else $(CYGPATH_W) '$(srcdir)/main.cc'; fi`
     998@am__fastdepCXX_TRUE@   $(am__mv) $(DEPDIR)/cfa_cpp-main.Tpo $(DEPDIR)/cfa_cpp-main.Po
     999@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='main.cc' object='cfa_cpp-main.obj' libtool=no @AMDEPBACKSLASH@
     1000@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1001@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o cfa_cpp-main.obj `if test -f 'main.cc'; then $(CYGPATH_W) 'main.cc'; else $(CYGPATH_W) '$(srcdir)/main.cc'; fi`
     1002
     1003cfa_cpp-MakeLibCfa.o: MakeLibCfa.cc
     1004@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT cfa_cpp-MakeLibCfa.o -MD -MP -MF $(DEPDIR)/cfa_cpp-MakeLibCfa.Tpo -c -o cfa_cpp-MakeLibCfa.o `test -f 'MakeLibCfa.cc' || echo '$(srcdir)/'`MakeLibCfa.cc
     1005@am__fastdepCXX_TRUE@   $(am__mv) $(DEPDIR)/cfa_cpp-MakeLibCfa.Tpo $(DEPDIR)/cfa_cpp-MakeLibCfa.Po
     1006@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='MakeLibCfa.cc' object='cfa_cpp-MakeLibCfa.o' libtool=no @AMDEPBACKSLASH@
     1007@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1008@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o cfa_cpp-MakeLibCfa.o `test -f 'MakeLibCfa.cc' || echo '$(srcdir)/'`MakeLibCfa.cc
     1009
     1010cfa_cpp-MakeLibCfa.obj: MakeLibCfa.cc
     1011@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT cfa_cpp-MakeLibCfa.obj -MD -MP -MF $(DEPDIR)/cfa_cpp-MakeLibCfa.Tpo -c -o cfa_cpp-MakeLibCfa.obj `if test -f 'MakeLibCfa.cc'; then $(CYGPATH_W) 'MakeLibCfa.cc'; else $(CYGPATH_W) '$(srcdir)/MakeLibCfa.cc'; fi`
     1012@am__fastdepCXX_TRUE@   $(am__mv) $(DEPDIR)/cfa_cpp-MakeLibCfa.Tpo $(DEPDIR)/cfa_cpp-MakeLibCfa.Po
     1013@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='MakeLibCfa.cc' object='cfa_cpp-MakeLibCfa.obj' libtool=no @AMDEPBACKSLASH@
     1014@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1015@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o cfa_cpp-MakeLibCfa.obj `if test -f 'MakeLibCfa.cc'; then $(CYGPATH_W) 'MakeLibCfa.cc'; else $(CYGPATH_W) '$(srcdir)/MakeLibCfa.cc'; fi`
     1016
     1017CodeGen/cfa_cpp-Generate.o: CodeGen/Generate.cc
     1018@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/cfa_cpp-Generate.o -MD -MP -MF CodeGen/$(DEPDIR)/cfa_cpp-Generate.Tpo -c -o CodeGen/cfa_cpp-Generate.o `test -f 'CodeGen/Generate.cc' || echo '$(srcdir)/'`CodeGen/Generate.cc
     1019@am__fastdepCXX_TRUE@   $(am__mv) CodeGen/$(DEPDIR)/cfa_cpp-Generate.Tpo CodeGen/$(DEPDIR)/cfa_cpp-Generate.Po
     1020@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='CodeGen/Generate.cc' object='CodeGen/cfa_cpp-Generate.o' libtool=no @AMDEPBACKSLASH@
     1021@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1022@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/cfa_cpp-Generate.o `test -f 'CodeGen/Generate.cc' || echo '$(srcdir)/'`CodeGen/Generate.cc
     1023
     1024CodeGen/cfa_cpp-Generate.obj: CodeGen/Generate.cc
     1025@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/cfa_cpp-Generate.obj -MD -MP -MF CodeGen/$(DEPDIR)/cfa_cpp-Generate.Tpo -c -o CodeGen/cfa_cpp-Generate.obj `if test -f 'CodeGen/Generate.cc'; then $(CYGPATH_W) 'CodeGen/Generate.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/Generate.cc'; fi`
     1026@am__fastdepCXX_TRUE@   $(am__mv) CodeGen/$(DEPDIR)/cfa_cpp-Generate.Tpo CodeGen/$(DEPDIR)/cfa_cpp-Generate.Po
     1027@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='CodeGen/Generate.cc' object='CodeGen/cfa_cpp-Generate.obj' libtool=no @AMDEPBACKSLASH@
     1028@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1029@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/cfa_cpp-Generate.obj `if test -f 'CodeGen/Generate.cc'; then $(CYGPATH_W) 'CodeGen/Generate.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/Generate.cc'; fi`
     1030
     1031CodeGen/cfa_cpp-CodeGenerator.o: CodeGen/CodeGenerator.cc
     1032@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/cfa_cpp-CodeGenerator.o -MD -MP -MF CodeGen/$(DEPDIR)/cfa_cpp-CodeGenerator.Tpo -c -o CodeGen/cfa_cpp-CodeGenerator.o `test -f 'CodeGen/CodeGenerator.cc' || echo '$(srcdir)/'`CodeGen/CodeGenerator.cc
     1033@am__fastdepCXX_TRUE@   $(am__mv) CodeGen/$(DEPDIR)/cfa_cpp-CodeGenerator.Tpo CodeGen/$(DEPDIR)/cfa_cpp-CodeGenerator.Po
     1034@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='CodeGen/CodeGenerator.cc' object='CodeGen/cfa_cpp-CodeGenerator.o' libtool=no @AMDEPBACKSLASH@
     1035@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1036@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/cfa_cpp-CodeGenerator.o `test -f 'CodeGen/CodeGenerator.cc' || echo '$(srcdir)/'`CodeGen/CodeGenerator.cc
     1037
     1038CodeGen/cfa_cpp-CodeGenerator.obj: CodeGen/CodeGenerator.cc
     1039@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/cfa_cpp-CodeGenerator.obj -MD -MP -MF CodeGen/$(DEPDIR)/cfa_cpp-CodeGenerator.Tpo -c -o CodeGen/cfa_cpp-CodeGenerator.obj `if test -f 'CodeGen/CodeGenerator.cc'; then $(CYGPATH_W) 'CodeGen/CodeGenerator.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/CodeGenerator.cc'; fi`
     1040@am__fastdepCXX_TRUE@   $(am__mv) CodeGen/$(DEPDIR)/cfa_cpp-CodeGenerator.Tpo CodeGen/$(DEPDIR)/cfa_cpp-CodeGenerator.Po
     1041@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='CodeGen/CodeGenerator.cc' object='CodeGen/cfa_cpp-CodeGenerator.obj' libtool=no @AMDEPBACKSLASH@
     1042@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1043@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/cfa_cpp-CodeGenerator.obj `if test -f 'CodeGen/CodeGenerator.cc'; then $(CYGPATH_W) 'CodeGen/CodeGenerator.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/CodeGenerator.cc'; fi`
     1044
     1045CodeGen/cfa_cpp-GenType.o: CodeGen/GenType.cc
     1046@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/cfa_cpp-GenType.o -MD -MP -MF CodeGen/$(DEPDIR)/cfa_cpp-GenType.Tpo -c -o CodeGen/cfa_cpp-GenType.o `test -f 'CodeGen/GenType.cc' || echo '$(srcdir)/'`CodeGen/GenType.cc
     1047@am__fastdepCXX_TRUE@   $(am__mv) CodeGen/$(DEPDIR)/cfa_cpp-GenType.Tpo CodeGen/$(DEPDIR)/cfa_cpp-GenType.Po
     1048@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='CodeGen/GenType.cc' object='CodeGen/cfa_cpp-GenType.o' libtool=no @AMDEPBACKSLASH@
     1049@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1050@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/cfa_cpp-GenType.o `test -f 'CodeGen/GenType.cc' || echo '$(srcdir)/'`CodeGen/GenType.cc
     1051
     1052CodeGen/cfa_cpp-GenType.obj: CodeGen/GenType.cc
     1053@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/cfa_cpp-GenType.obj -MD -MP -MF CodeGen/$(DEPDIR)/cfa_cpp-GenType.Tpo -c -o CodeGen/cfa_cpp-GenType.obj `if test -f 'CodeGen/GenType.cc'; then $(CYGPATH_W) 'CodeGen/GenType.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/GenType.cc'; fi`
     1054@am__fastdepCXX_TRUE@   $(am__mv) CodeGen/$(DEPDIR)/cfa_cpp-GenType.Tpo CodeGen/$(DEPDIR)/cfa_cpp-GenType.Po
     1055@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='CodeGen/GenType.cc' object='CodeGen/cfa_cpp-GenType.obj' libtool=no @AMDEPBACKSLASH@
     1056@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1057@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/cfa_cpp-GenType.obj `if test -f 'CodeGen/GenType.cc'; then $(CYGPATH_W) 'CodeGen/GenType.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/GenType.cc'; fi`
     1058
     1059CodeGen/cfa_cpp-FixNames.o: CodeGen/FixNames.cc
     1060@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/cfa_cpp-FixNames.o -MD -MP -MF CodeGen/$(DEPDIR)/cfa_cpp-FixNames.Tpo -c -o CodeGen/cfa_cpp-FixNames.o `test -f 'CodeGen/FixNames.cc' || echo '$(srcdir)/'`CodeGen/FixNames.cc
     1061@am__fastdepCXX_TRUE@   $(am__mv) CodeGen/$(DEPDIR)/cfa_cpp-FixNames.Tpo CodeGen/$(DEPDIR)/cfa_cpp-FixNames.Po
     1062@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='CodeGen/FixNames.cc' object='CodeGen/cfa_cpp-FixNames.o' libtool=no @AMDEPBACKSLASH@
     1063@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1064@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/cfa_cpp-FixNames.o `test -f 'CodeGen/FixNames.cc' || echo '$(srcdir)/'`CodeGen/FixNames.cc
     1065
     1066CodeGen/cfa_cpp-FixNames.obj: CodeGen/FixNames.cc
     1067@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/cfa_cpp-FixNames.obj -MD -MP -MF CodeGen/$(DEPDIR)/cfa_cpp-FixNames.Tpo -c -o CodeGen/cfa_cpp-FixNames.obj `if test -f 'CodeGen/FixNames.cc'; then $(CYGPATH_W) 'CodeGen/FixNames.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/FixNames.cc'; fi`
     1068@am__fastdepCXX_TRUE@   $(am__mv) CodeGen/$(DEPDIR)/cfa_cpp-FixNames.Tpo CodeGen/$(DEPDIR)/cfa_cpp-FixNames.Po
     1069@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='CodeGen/FixNames.cc' object='CodeGen/cfa_cpp-FixNames.obj' libtool=no @AMDEPBACKSLASH@
     1070@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1071@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/cfa_cpp-FixNames.obj `if test -f 'CodeGen/FixNames.cc'; then $(CYGPATH_W) 'CodeGen/FixNames.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/FixNames.cc'; fi`
     1072
     1073CodeGen/cfa_cpp-OperatorTable.o: CodeGen/OperatorTable.cc
     1074@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/cfa_cpp-OperatorTable.o -MD -MP -MF CodeGen/$(DEPDIR)/cfa_cpp-OperatorTable.Tpo -c -o CodeGen/cfa_cpp-OperatorTable.o `test -f 'CodeGen/OperatorTable.cc' || echo '$(srcdir)/'`CodeGen/OperatorTable.cc
     1075@am__fastdepCXX_TRUE@   $(am__mv) CodeGen/$(DEPDIR)/cfa_cpp-OperatorTable.Tpo CodeGen/$(DEPDIR)/cfa_cpp-OperatorTable.Po
     1076@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='CodeGen/OperatorTable.cc' object='CodeGen/cfa_cpp-OperatorTable.o' libtool=no @AMDEPBACKSLASH@
     1077@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1078@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/cfa_cpp-OperatorTable.o `test -f 'CodeGen/OperatorTable.cc' || echo '$(srcdir)/'`CodeGen/OperatorTable.cc
     1079
     1080CodeGen/cfa_cpp-OperatorTable.obj: CodeGen/OperatorTable.cc
     1081@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT CodeGen/cfa_cpp-OperatorTable.obj -MD -MP -MF CodeGen/$(DEPDIR)/cfa_cpp-OperatorTable.Tpo -c -o CodeGen/cfa_cpp-OperatorTable.obj `if test -f 'CodeGen/OperatorTable.cc'; then $(CYGPATH_W) 'CodeGen/OperatorTable.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/OperatorTable.cc'; fi`
     1082@am__fastdepCXX_TRUE@   $(am__mv) CodeGen/$(DEPDIR)/cfa_cpp-OperatorTable.Tpo CodeGen/$(DEPDIR)/cfa_cpp-OperatorTable.Po
     1083@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='CodeGen/OperatorTable.cc' object='CodeGen/cfa_cpp-OperatorTable.obj' libtool=no @AMDEPBACKSLASH@
     1084@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1085@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o CodeGen/cfa_cpp-OperatorTable.obj `if test -f 'CodeGen/OperatorTable.cc'; then $(CYGPATH_W) 'CodeGen/OperatorTable.cc'; else $(CYGPATH_W) '$(srcdir)/CodeGen/OperatorTable.cc'; fi`
     1086
     1087Common/cfa_cpp-SemanticError.o: Common/SemanticError.cc
     1088@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/cfa_cpp-SemanticError.o -MD -MP -MF Common/$(DEPDIR)/cfa_cpp-SemanticError.Tpo -c -o Common/cfa_cpp-SemanticError.o `test -f 'Common/SemanticError.cc' || echo '$(srcdir)/'`Common/SemanticError.cc
     1089@am__fastdepCXX_TRUE@   $(am__mv) Common/$(DEPDIR)/cfa_cpp-SemanticError.Tpo Common/$(DEPDIR)/cfa_cpp-SemanticError.Po
     1090@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Common/SemanticError.cc' object='Common/cfa_cpp-SemanticError.o' libtool=no @AMDEPBACKSLASH@
     1091@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1092@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/cfa_cpp-SemanticError.o `test -f 'Common/SemanticError.cc' || echo '$(srcdir)/'`Common/SemanticError.cc
     1093
     1094Common/cfa_cpp-SemanticError.obj: Common/SemanticError.cc
     1095@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/cfa_cpp-SemanticError.obj -MD -MP -MF Common/$(DEPDIR)/cfa_cpp-SemanticError.Tpo -c -o Common/cfa_cpp-SemanticError.obj `if test -f 'Common/SemanticError.cc'; then $(CYGPATH_W) 'Common/SemanticError.cc'; else $(CYGPATH_W) '$(srcdir)/Common/SemanticError.cc'; fi`
     1096@am__fastdepCXX_TRUE@   $(am__mv) Common/$(DEPDIR)/cfa_cpp-SemanticError.Tpo Common/$(DEPDIR)/cfa_cpp-SemanticError.Po
     1097@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Common/SemanticError.cc' object='Common/cfa_cpp-SemanticError.obj' libtool=no @AMDEPBACKSLASH@
     1098@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1099@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/cfa_cpp-SemanticError.obj `if test -f 'Common/SemanticError.cc'; then $(CYGPATH_W) 'Common/SemanticError.cc'; else $(CYGPATH_W) '$(srcdir)/Common/SemanticError.cc'; fi`
     1100
     1101Common/cfa_cpp-UniqueName.o: Common/UniqueName.cc
     1102@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/cfa_cpp-UniqueName.o -MD -MP -MF Common/$(DEPDIR)/cfa_cpp-UniqueName.Tpo -c -o Common/cfa_cpp-UniqueName.o `test -f 'Common/UniqueName.cc' || echo '$(srcdir)/'`Common/UniqueName.cc
     1103@am__fastdepCXX_TRUE@   $(am__mv) Common/$(DEPDIR)/cfa_cpp-UniqueName.Tpo Common/$(DEPDIR)/cfa_cpp-UniqueName.Po
     1104@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Common/UniqueName.cc' object='Common/cfa_cpp-UniqueName.o' libtool=no @AMDEPBACKSLASH@
     1105@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1106@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/cfa_cpp-UniqueName.o `test -f 'Common/UniqueName.cc' || echo '$(srcdir)/'`Common/UniqueName.cc
     1107
     1108Common/cfa_cpp-UniqueName.obj: Common/UniqueName.cc
     1109@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Common/cfa_cpp-UniqueName.obj -MD -MP -MF Common/$(DEPDIR)/cfa_cpp-UniqueName.Tpo -c -o Common/cfa_cpp-UniqueName.obj `if test -f 'Common/UniqueName.cc'; then $(CYGPATH_W) 'Common/UniqueName.cc'; else $(CYGPATH_W) '$(srcdir)/Common/UniqueName.cc'; fi`
     1110@am__fastdepCXX_TRUE@   $(am__mv) Common/$(DEPDIR)/cfa_cpp-UniqueName.Tpo Common/$(DEPDIR)/cfa_cpp-UniqueName.Po
     1111@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Common/UniqueName.cc' object='Common/cfa_cpp-UniqueName.obj' libtool=no @AMDEPBACKSLASH@
     1112@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1113@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Common/cfa_cpp-UniqueName.obj `if test -f 'Common/UniqueName.cc'; then $(CYGPATH_W) 'Common/UniqueName.cc'; else $(CYGPATH_W) '$(srcdir)/Common/UniqueName.cc'; fi`
     1114
     1115ControlStruct/cfa_cpp-LabelGenerator.o: ControlStruct/LabelGenerator.cc
     1116@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/cfa_cpp-LabelGenerator.o -MD -MP -MF ControlStruct/$(DEPDIR)/cfa_cpp-LabelGenerator.Tpo -c -o ControlStruct/cfa_cpp-LabelGenerator.o `test -f 'ControlStruct/LabelGenerator.cc' || echo '$(srcdir)/'`ControlStruct/LabelGenerator.cc
     1117@am__fastdepCXX_TRUE@   $(am__mv) ControlStruct/$(DEPDIR)/cfa_cpp-LabelGenerator.Tpo ControlStruct/$(DEPDIR)/cfa_cpp-LabelGenerator.Po
     1118@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ControlStruct/LabelGenerator.cc' object='ControlStruct/cfa_cpp-LabelGenerator.o' libtool=no @AMDEPBACKSLASH@
     1119@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1120@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/cfa_cpp-LabelGenerator.o `test -f 'ControlStruct/LabelGenerator.cc' || echo '$(srcdir)/'`ControlStruct/LabelGenerator.cc
     1121
     1122ControlStruct/cfa_cpp-LabelGenerator.obj: ControlStruct/LabelGenerator.cc
     1123@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/cfa_cpp-LabelGenerator.obj -MD -MP -MF ControlStruct/$(DEPDIR)/cfa_cpp-LabelGenerator.Tpo -c -o ControlStruct/cfa_cpp-LabelGenerator.obj `if test -f 'ControlStruct/LabelGenerator.cc'; then $(CYGPATH_W) 'ControlStruct/LabelGenerator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelGenerator.cc'; fi`
     1124@am__fastdepCXX_TRUE@   $(am__mv) ControlStruct/$(DEPDIR)/cfa_cpp-LabelGenerator.Tpo ControlStruct/$(DEPDIR)/cfa_cpp-LabelGenerator.Po
     1125@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ControlStruct/LabelGenerator.cc' object='ControlStruct/cfa_cpp-LabelGenerator.obj' libtool=no @AMDEPBACKSLASH@
     1126@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1127@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/cfa_cpp-LabelGenerator.obj `if test -f 'ControlStruct/LabelGenerator.cc'; then $(CYGPATH_W) 'ControlStruct/LabelGenerator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelGenerator.cc'; fi`
     1128
     1129ControlStruct/cfa_cpp-LabelFixer.o: ControlStruct/LabelFixer.cc
     1130@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/cfa_cpp-LabelFixer.o -MD -MP -MF ControlStruct/$(DEPDIR)/cfa_cpp-LabelFixer.Tpo -c -o ControlStruct/cfa_cpp-LabelFixer.o `test -f 'ControlStruct/LabelFixer.cc' || echo '$(srcdir)/'`ControlStruct/LabelFixer.cc
     1131@am__fastdepCXX_TRUE@   $(am__mv) ControlStruct/$(DEPDIR)/cfa_cpp-LabelFixer.Tpo ControlStruct/$(DEPDIR)/cfa_cpp-LabelFixer.Po
     1132@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ControlStruct/LabelFixer.cc' object='ControlStruct/cfa_cpp-LabelFixer.o' libtool=no @AMDEPBACKSLASH@
     1133@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1134@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/cfa_cpp-LabelFixer.o `test -f 'ControlStruct/LabelFixer.cc' || echo '$(srcdir)/'`ControlStruct/LabelFixer.cc
     1135
     1136ControlStruct/cfa_cpp-LabelFixer.obj: ControlStruct/LabelFixer.cc
     1137@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/cfa_cpp-LabelFixer.obj -MD -MP -MF ControlStruct/$(DEPDIR)/cfa_cpp-LabelFixer.Tpo -c -o ControlStruct/cfa_cpp-LabelFixer.obj `if test -f 'ControlStruct/LabelFixer.cc'; then $(CYGPATH_W) 'ControlStruct/LabelFixer.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelFixer.cc'; fi`
     1138@am__fastdepCXX_TRUE@   $(am__mv) ControlStruct/$(DEPDIR)/cfa_cpp-LabelFixer.Tpo ControlStruct/$(DEPDIR)/cfa_cpp-LabelFixer.Po
     1139@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ControlStruct/LabelFixer.cc' object='ControlStruct/cfa_cpp-LabelFixer.obj' libtool=no @AMDEPBACKSLASH@
     1140@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1141@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/cfa_cpp-LabelFixer.obj `if test -f 'ControlStruct/LabelFixer.cc'; then $(CYGPATH_W) 'ControlStruct/LabelFixer.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelFixer.cc'; fi`
     1142
     1143ControlStruct/cfa_cpp-MLEMutator.o: ControlStruct/MLEMutator.cc
     1144@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/cfa_cpp-MLEMutator.o -MD -MP -MF ControlStruct/$(DEPDIR)/cfa_cpp-MLEMutator.Tpo -c -o ControlStruct/cfa_cpp-MLEMutator.o `test -f 'ControlStruct/MLEMutator.cc' || echo '$(srcdir)/'`ControlStruct/MLEMutator.cc
     1145@am__fastdepCXX_TRUE@   $(am__mv) ControlStruct/$(DEPDIR)/cfa_cpp-MLEMutator.Tpo ControlStruct/$(DEPDIR)/cfa_cpp-MLEMutator.Po
     1146@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ControlStruct/MLEMutator.cc' object='ControlStruct/cfa_cpp-MLEMutator.o' libtool=no @AMDEPBACKSLASH@
     1147@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1148@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/cfa_cpp-MLEMutator.o `test -f 'ControlStruct/MLEMutator.cc' || echo '$(srcdir)/'`ControlStruct/MLEMutator.cc
     1149
     1150ControlStruct/cfa_cpp-MLEMutator.obj: ControlStruct/MLEMutator.cc
     1151@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/cfa_cpp-MLEMutator.obj -MD -MP -MF ControlStruct/$(DEPDIR)/cfa_cpp-MLEMutator.Tpo -c -o ControlStruct/cfa_cpp-MLEMutator.obj `if test -f 'ControlStruct/MLEMutator.cc'; then $(CYGPATH_W) 'ControlStruct/MLEMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/MLEMutator.cc'; fi`
     1152@am__fastdepCXX_TRUE@   $(am__mv) ControlStruct/$(DEPDIR)/cfa_cpp-MLEMutator.Tpo ControlStruct/$(DEPDIR)/cfa_cpp-MLEMutator.Po
     1153@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ControlStruct/MLEMutator.cc' object='ControlStruct/cfa_cpp-MLEMutator.obj' libtool=no @AMDEPBACKSLASH@
     1154@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1155@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/cfa_cpp-MLEMutator.obj `if test -f 'ControlStruct/MLEMutator.cc'; then $(CYGPATH_W) 'ControlStruct/MLEMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/MLEMutator.cc'; fi`
     1156
     1157ControlStruct/cfa_cpp-CaseRangeMutator.o: ControlStruct/CaseRangeMutator.cc
     1158@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/cfa_cpp-CaseRangeMutator.o -MD -MP -MF ControlStruct/$(DEPDIR)/cfa_cpp-CaseRangeMutator.Tpo -c -o ControlStruct/cfa_cpp-CaseRangeMutator.o `test -f 'ControlStruct/CaseRangeMutator.cc' || echo '$(srcdir)/'`ControlStruct/CaseRangeMutator.cc
     1159@am__fastdepCXX_TRUE@   $(am__mv) ControlStruct/$(DEPDIR)/cfa_cpp-CaseRangeMutator.Tpo ControlStruct/$(DEPDIR)/cfa_cpp-CaseRangeMutator.Po
     1160@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ControlStruct/CaseRangeMutator.cc' object='ControlStruct/cfa_cpp-CaseRangeMutator.o' libtool=no @AMDEPBACKSLASH@
     1161@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1162@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/cfa_cpp-CaseRangeMutator.o `test -f 'ControlStruct/CaseRangeMutator.cc' || echo '$(srcdir)/'`ControlStruct/CaseRangeMutator.cc
     1163
     1164ControlStruct/cfa_cpp-CaseRangeMutator.obj: ControlStruct/CaseRangeMutator.cc
     1165@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/cfa_cpp-CaseRangeMutator.obj -MD -MP -MF ControlStruct/$(DEPDIR)/cfa_cpp-CaseRangeMutator.Tpo -c -o ControlStruct/cfa_cpp-CaseRangeMutator.obj `if test -f 'ControlStruct/CaseRangeMutator.cc'; then $(CYGPATH_W) 'ControlStruct/CaseRangeMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/CaseRangeMutator.cc'; fi`
     1166@am__fastdepCXX_TRUE@   $(am__mv) ControlStruct/$(DEPDIR)/cfa_cpp-CaseRangeMutator.Tpo ControlStruct/$(DEPDIR)/cfa_cpp-CaseRangeMutator.Po
     1167@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ControlStruct/CaseRangeMutator.cc' object='ControlStruct/cfa_cpp-CaseRangeMutator.obj' libtool=no @AMDEPBACKSLASH@
     1168@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1169@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/cfa_cpp-CaseRangeMutator.obj `if test -f 'ControlStruct/CaseRangeMutator.cc'; then $(CYGPATH_W) 'ControlStruct/CaseRangeMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/CaseRangeMutator.cc'; fi`
     1170
     1171ControlStruct/cfa_cpp-Mutate.o: ControlStruct/Mutate.cc
     1172@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/cfa_cpp-Mutate.o -MD -MP -MF ControlStruct/$(DEPDIR)/cfa_cpp-Mutate.Tpo -c -o ControlStruct/cfa_cpp-Mutate.o `test -f 'ControlStruct/Mutate.cc' || echo '$(srcdir)/'`ControlStruct/Mutate.cc
     1173@am__fastdepCXX_TRUE@   $(am__mv) ControlStruct/$(DEPDIR)/cfa_cpp-Mutate.Tpo ControlStruct/$(DEPDIR)/cfa_cpp-Mutate.Po
     1174@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ControlStruct/Mutate.cc' object='ControlStruct/cfa_cpp-Mutate.o' libtool=no @AMDEPBACKSLASH@
     1175@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1176@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/cfa_cpp-Mutate.o `test -f 'ControlStruct/Mutate.cc' || echo '$(srcdir)/'`ControlStruct/Mutate.cc
     1177
     1178ControlStruct/cfa_cpp-Mutate.obj: ControlStruct/Mutate.cc
     1179@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/cfa_cpp-Mutate.obj -MD -MP -MF ControlStruct/$(DEPDIR)/cfa_cpp-Mutate.Tpo -c -o ControlStruct/cfa_cpp-Mutate.obj `if test -f 'ControlStruct/Mutate.cc'; then $(CYGPATH_W) 'ControlStruct/Mutate.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/Mutate.cc'; fi`
     1180@am__fastdepCXX_TRUE@   $(am__mv) ControlStruct/$(DEPDIR)/cfa_cpp-Mutate.Tpo ControlStruct/$(DEPDIR)/cfa_cpp-Mutate.Po
     1181@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ControlStruct/Mutate.cc' object='ControlStruct/cfa_cpp-Mutate.obj' libtool=no @AMDEPBACKSLASH@
     1182@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1183@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/cfa_cpp-Mutate.obj `if test -f 'ControlStruct/Mutate.cc'; then $(CYGPATH_W) 'ControlStruct/Mutate.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/Mutate.cc'; fi`
     1184
     1185ControlStruct/cfa_cpp-ChooseMutator.o: ControlStruct/ChooseMutator.cc
     1186@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/cfa_cpp-ChooseMutator.o -MD -MP -MF ControlStruct/$(DEPDIR)/cfa_cpp-ChooseMutator.Tpo -c -o ControlStruct/cfa_cpp-ChooseMutator.o `test -f 'ControlStruct/ChooseMutator.cc' || echo '$(srcdir)/'`ControlStruct/ChooseMutator.cc
     1187@am__fastdepCXX_TRUE@   $(am__mv) ControlStruct/$(DEPDIR)/cfa_cpp-ChooseMutator.Tpo ControlStruct/$(DEPDIR)/cfa_cpp-ChooseMutator.Po
     1188@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ControlStruct/ChooseMutator.cc' object='ControlStruct/cfa_cpp-ChooseMutator.o' libtool=no @AMDEPBACKSLASH@
     1189@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1190@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/cfa_cpp-ChooseMutator.o `test -f 'ControlStruct/ChooseMutator.cc' || echo '$(srcdir)/'`ControlStruct/ChooseMutator.cc
     1191
     1192ControlStruct/cfa_cpp-ChooseMutator.obj: ControlStruct/ChooseMutator.cc
     1193@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/cfa_cpp-ChooseMutator.obj -MD -MP -MF ControlStruct/$(DEPDIR)/cfa_cpp-ChooseMutator.Tpo -c -o ControlStruct/cfa_cpp-ChooseMutator.obj `if test -f 'ControlStruct/ChooseMutator.cc'; then $(CYGPATH_W) 'ControlStruct/ChooseMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/ChooseMutator.cc'; fi`
     1194@am__fastdepCXX_TRUE@   $(am__mv) ControlStruct/$(DEPDIR)/cfa_cpp-ChooseMutator.Tpo ControlStruct/$(DEPDIR)/cfa_cpp-ChooseMutator.Po
     1195@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ControlStruct/ChooseMutator.cc' object='ControlStruct/cfa_cpp-ChooseMutator.obj' libtool=no @AMDEPBACKSLASH@
     1196@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1197@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/cfa_cpp-ChooseMutator.obj `if test -f 'ControlStruct/ChooseMutator.cc'; then $(CYGPATH_W) 'ControlStruct/ChooseMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/ChooseMutator.cc'; fi`
     1198
     1199ControlStruct/cfa_cpp-ForExprMutator.o: ControlStruct/ForExprMutator.cc
     1200@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/cfa_cpp-ForExprMutator.o -MD -MP -MF ControlStruct/$(DEPDIR)/cfa_cpp-ForExprMutator.Tpo -c -o ControlStruct/cfa_cpp-ForExprMutator.o `test -f 'ControlStruct/ForExprMutator.cc' || echo '$(srcdir)/'`ControlStruct/ForExprMutator.cc
     1201@am__fastdepCXX_TRUE@   $(am__mv) ControlStruct/$(DEPDIR)/cfa_cpp-ForExprMutator.Tpo ControlStruct/$(DEPDIR)/cfa_cpp-ForExprMutator.Po
     1202@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ControlStruct/ForExprMutator.cc' object='ControlStruct/cfa_cpp-ForExprMutator.o' libtool=no @AMDEPBACKSLASH@
     1203@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1204@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/cfa_cpp-ForExprMutator.o `test -f 'ControlStruct/ForExprMutator.cc' || echo '$(srcdir)/'`ControlStruct/ForExprMutator.cc
     1205
     1206ControlStruct/cfa_cpp-ForExprMutator.obj: ControlStruct/ForExprMutator.cc
     1207@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/cfa_cpp-ForExprMutator.obj -MD -MP -MF ControlStruct/$(DEPDIR)/cfa_cpp-ForExprMutator.Tpo -c -o ControlStruct/cfa_cpp-ForExprMutator.obj `if test -f 'ControlStruct/ForExprMutator.cc'; then $(CYGPATH_W) 'ControlStruct/ForExprMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/ForExprMutator.cc'; fi`
     1208@am__fastdepCXX_TRUE@   $(am__mv) ControlStruct/$(DEPDIR)/cfa_cpp-ForExprMutator.Tpo ControlStruct/$(DEPDIR)/cfa_cpp-ForExprMutator.Po
     1209@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ControlStruct/ForExprMutator.cc' object='ControlStruct/cfa_cpp-ForExprMutator.obj' libtool=no @AMDEPBACKSLASH@
     1210@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1211@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/cfa_cpp-ForExprMutator.obj `if test -f 'ControlStruct/ForExprMutator.cc'; then $(CYGPATH_W) 'ControlStruct/ForExprMutator.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/ForExprMutator.cc'; fi`
     1212
     1213ControlStruct/cfa_cpp-LabelTypeChecker.o: ControlStruct/LabelTypeChecker.cc
     1214@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/cfa_cpp-LabelTypeChecker.o -MD -MP -MF ControlStruct/$(DEPDIR)/cfa_cpp-LabelTypeChecker.Tpo -c -o ControlStruct/cfa_cpp-LabelTypeChecker.o `test -f 'ControlStruct/LabelTypeChecker.cc' || echo '$(srcdir)/'`ControlStruct/LabelTypeChecker.cc
     1215@am__fastdepCXX_TRUE@   $(am__mv) ControlStruct/$(DEPDIR)/cfa_cpp-LabelTypeChecker.Tpo ControlStruct/$(DEPDIR)/cfa_cpp-LabelTypeChecker.Po
     1216@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ControlStruct/LabelTypeChecker.cc' object='ControlStruct/cfa_cpp-LabelTypeChecker.o' libtool=no @AMDEPBACKSLASH@
     1217@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1218@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/cfa_cpp-LabelTypeChecker.o `test -f 'ControlStruct/LabelTypeChecker.cc' || echo '$(srcdir)/'`ControlStruct/LabelTypeChecker.cc
     1219
     1220ControlStruct/cfa_cpp-LabelTypeChecker.obj: ControlStruct/LabelTypeChecker.cc
     1221@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ControlStruct/cfa_cpp-LabelTypeChecker.obj -MD -MP -MF ControlStruct/$(DEPDIR)/cfa_cpp-LabelTypeChecker.Tpo -c -o ControlStruct/cfa_cpp-LabelTypeChecker.obj `if test -f 'ControlStruct/LabelTypeChecker.cc'; then $(CYGPATH_W) 'ControlStruct/LabelTypeChecker.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelTypeChecker.cc'; fi`
     1222@am__fastdepCXX_TRUE@   $(am__mv) ControlStruct/$(DEPDIR)/cfa_cpp-LabelTypeChecker.Tpo ControlStruct/$(DEPDIR)/cfa_cpp-LabelTypeChecker.Po
     1223@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ControlStruct/LabelTypeChecker.cc' object='ControlStruct/cfa_cpp-LabelTypeChecker.obj' libtool=no @AMDEPBACKSLASH@
     1224@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1225@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ControlStruct/cfa_cpp-LabelTypeChecker.obj `if test -f 'ControlStruct/LabelTypeChecker.cc'; then $(CYGPATH_W) 'ControlStruct/LabelTypeChecker.cc'; else $(CYGPATH_W) '$(srcdir)/ControlStruct/LabelTypeChecker.cc'; fi`
     1226
     1227Designators/cfa_cpp-Processor.o: Designators/Processor.cc
     1228@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Designators/cfa_cpp-Processor.o -MD -MP -MF Designators/$(DEPDIR)/cfa_cpp-Processor.Tpo -c -o Designators/cfa_cpp-Processor.o `test -f 'Designators/Processor.cc' || echo '$(srcdir)/'`Designators/Processor.cc
     1229@am__fastdepCXX_TRUE@   $(am__mv) Designators/$(DEPDIR)/cfa_cpp-Processor.Tpo Designators/$(DEPDIR)/cfa_cpp-Processor.Po
     1230@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Designators/Processor.cc' object='Designators/cfa_cpp-Processor.o' libtool=no @AMDEPBACKSLASH@
     1231@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1232@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Designators/cfa_cpp-Processor.o `test -f 'Designators/Processor.cc' || echo '$(srcdir)/'`Designators/Processor.cc
     1233
     1234Designators/cfa_cpp-Processor.obj: Designators/Processor.cc
     1235@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Designators/cfa_cpp-Processor.obj -MD -MP -MF Designators/$(DEPDIR)/cfa_cpp-Processor.Tpo -c -o Designators/cfa_cpp-Processor.obj `if test -f 'Designators/Processor.cc'; then $(CYGPATH_W) 'Designators/Processor.cc'; else $(CYGPATH_W) '$(srcdir)/Designators/Processor.cc'; fi`
     1236@am__fastdepCXX_TRUE@   $(am__mv) Designators/$(DEPDIR)/cfa_cpp-Processor.Tpo Designators/$(DEPDIR)/cfa_cpp-Processor.Po
     1237@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Designators/Processor.cc' object='Designators/cfa_cpp-Processor.obj' libtool=no @AMDEPBACKSLASH@
     1238@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1239@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Designators/cfa_cpp-Processor.obj `if test -f 'Designators/Processor.cc'; then $(CYGPATH_W) 'Designators/Processor.cc'; else $(CYGPATH_W) '$(srcdir)/Designators/Processor.cc'; fi`
     1240
     1241GenPoly/cfa_cpp-Box.o: GenPoly/Box.cc
     1242@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/cfa_cpp-Box.o -MD -MP -MF GenPoly/$(DEPDIR)/cfa_cpp-Box.Tpo -c -o GenPoly/cfa_cpp-Box.o `test -f 'GenPoly/Box.cc' || echo '$(srcdir)/'`GenPoly/Box.cc
     1243@am__fastdepCXX_TRUE@   $(am__mv) GenPoly/$(DEPDIR)/cfa_cpp-Box.Tpo GenPoly/$(DEPDIR)/cfa_cpp-Box.Po
     1244@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='GenPoly/Box.cc' object='GenPoly/cfa_cpp-Box.o' libtool=no @AMDEPBACKSLASH@
     1245@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1246@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/cfa_cpp-Box.o `test -f 'GenPoly/Box.cc' || echo '$(srcdir)/'`GenPoly/Box.cc
     1247
     1248GenPoly/cfa_cpp-Box.obj: GenPoly/Box.cc
     1249@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/cfa_cpp-Box.obj -MD -MP -MF GenPoly/$(DEPDIR)/cfa_cpp-Box.Tpo -c -o GenPoly/cfa_cpp-Box.obj `if test -f 'GenPoly/Box.cc'; then $(CYGPATH_W) 'GenPoly/Box.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Box.cc'; fi`
     1250@am__fastdepCXX_TRUE@   $(am__mv) GenPoly/$(DEPDIR)/cfa_cpp-Box.Tpo GenPoly/$(DEPDIR)/cfa_cpp-Box.Po
     1251@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='GenPoly/Box.cc' object='GenPoly/cfa_cpp-Box.obj' libtool=no @AMDEPBACKSLASH@
     1252@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1253@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/cfa_cpp-Box.obj `if test -f 'GenPoly/Box.cc'; then $(CYGPATH_W) 'GenPoly/Box.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Box.cc'; fi`
     1254
     1255GenPoly/cfa_cpp-GenPoly.o: GenPoly/GenPoly.cc
     1256@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/cfa_cpp-GenPoly.o -MD -MP -MF GenPoly/$(DEPDIR)/cfa_cpp-GenPoly.Tpo -c -o GenPoly/cfa_cpp-GenPoly.o `test -f 'GenPoly/GenPoly.cc' || echo '$(srcdir)/'`GenPoly/GenPoly.cc
     1257@am__fastdepCXX_TRUE@   $(am__mv) GenPoly/$(DEPDIR)/cfa_cpp-GenPoly.Tpo GenPoly/$(DEPDIR)/cfa_cpp-GenPoly.Po
     1258@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='GenPoly/GenPoly.cc' object='GenPoly/cfa_cpp-GenPoly.o' libtool=no @AMDEPBACKSLASH@
     1259@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1260@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/cfa_cpp-GenPoly.o `test -f 'GenPoly/GenPoly.cc' || echo '$(srcdir)/'`GenPoly/GenPoly.cc
     1261
     1262GenPoly/cfa_cpp-GenPoly.obj: GenPoly/GenPoly.cc
     1263@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/cfa_cpp-GenPoly.obj -MD -MP -MF GenPoly/$(DEPDIR)/cfa_cpp-GenPoly.Tpo -c -o GenPoly/cfa_cpp-GenPoly.obj `if test -f 'GenPoly/GenPoly.cc'; then $(CYGPATH_W) 'GenPoly/GenPoly.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/GenPoly.cc'; fi`
     1264@am__fastdepCXX_TRUE@   $(am__mv) GenPoly/$(DEPDIR)/cfa_cpp-GenPoly.Tpo GenPoly/$(DEPDIR)/cfa_cpp-GenPoly.Po
     1265@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='GenPoly/GenPoly.cc' object='GenPoly/cfa_cpp-GenPoly.obj' libtool=no @AMDEPBACKSLASH@
     1266@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1267@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/cfa_cpp-GenPoly.obj `if test -f 'GenPoly/GenPoly.cc'; then $(CYGPATH_W) 'GenPoly/GenPoly.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/GenPoly.cc'; fi`
     1268
     1269GenPoly/cfa_cpp-PolyMutator.o: GenPoly/PolyMutator.cc
     1270@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/cfa_cpp-PolyMutator.o -MD -MP -MF GenPoly/$(DEPDIR)/cfa_cpp-PolyMutator.Tpo -c -o GenPoly/cfa_cpp-PolyMutator.o `test -f 'GenPoly/PolyMutator.cc' || echo '$(srcdir)/'`GenPoly/PolyMutator.cc
     1271@am__fastdepCXX_TRUE@   $(am__mv) GenPoly/$(DEPDIR)/cfa_cpp-PolyMutator.Tpo GenPoly/$(DEPDIR)/cfa_cpp-PolyMutator.Po
     1272@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='GenPoly/PolyMutator.cc' object='GenPoly/cfa_cpp-PolyMutator.o' libtool=no @AMDEPBACKSLASH@
     1273@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1274@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/cfa_cpp-PolyMutator.o `test -f 'GenPoly/PolyMutator.cc' || echo '$(srcdir)/'`GenPoly/PolyMutator.cc
     1275
     1276GenPoly/cfa_cpp-PolyMutator.obj: GenPoly/PolyMutator.cc
     1277@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/cfa_cpp-PolyMutator.obj -MD -MP -MF GenPoly/$(DEPDIR)/cfa_cpp-PolyMutator.Tpo -c -o GenPoly/cfa_cpp-PolyMutator.obj `if test -f 'GenPoly/PolyMutator.cc'; then $(CYGPATH_W) 'GenPoly/PolyMutator.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/PolyMutator.cc'; fi`
     1278@am__fastdepCXX_TRUE@   $(am__mv) GenPoly/$(DEPDIR)/cfa_cpp-PolyMutator.Tpo GenPoly/$(DEPDIR)/cfa_cpp-PolyMutator.Po
     1279@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='GenPoly/PolyMutator.cc' object='GenPoly/cfa_cpp-PolyMutator.obj' libtool=no @AMDEPBACKSLASH@
     1280@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1281@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/cfa_cpp-PolyMutator.obj `if test -f 'GenPoly/PolyMutator.cc'; then $(CYGPATH_W) 'GenPoly/PolyMutator.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/PolyMutator.cc'; fi`
     1282
     1283GenPoly/cfa_cpp-ScrubTyVars.o: GenPoly/ScrubTyVars.cc
     1284@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/cfa_cpp-ScrubTyVars.o -MD -MP -MF GenPoly/$(DEPDIR)/cfa_cpp-ScrubTyVars.Tpo -c -o GenPoly/cfa_cpp-ScrubTyVars.o `test -f 'GenPoly/ScrubTyVars.cc' || echo '$(srcdir)/'`GenPoly/ScrubTyVars.cc
     1285@am__fastdepCXX_TRUE@   $(am__mv) GenPoly/$(DEPDIR)/cfa_cpp-ScrubTyVars.Tpo GenPoly/$(DEPDIR)/cfa_cpp-ScrubTyVars.Po
     1286@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='GenPoly/ScrubTyVars.cc' object='GenPoly/cfa_cpp-ScrubTyVars.o' libtool=no @AMDEPBACKSLASH@
     1287@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1288@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/cfa_cpp-ScrubTyVars.o `test -f 'GenPoly/ScrubTyVars.cc' || echo '$(srcdir)/'`GenPoly/ScrubTyVars.cc
     1289
     1290GenPoly/cfa_cpp-ScrubTyVars.obj: GenPoly/ScrubTyVars.cc
     1291@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/cfa_cpp-ScrubTyVars.obj -MD -MP -MF GenPoly/$(DEPDIR)/cfa_cpp-ScrubTyVars.Tpo -c -o GenPoly/cfa_cpp-ScrubTyVars.obj `if test -f 'GenPoly/ScrubTyVars.cc'; then $(CYGPATH_W) 'GenPoly/ScrubTyVars.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/ScrubTyVars.cc'; fi`
     1292@am__fastdepCXX_TRUE@   $(am__mv) GenPoly/$(DEPDIR)/cfa_cpp-ScrubTyVars.Tpo GenPoly/$(DEPDIR)/cfa_cpp-ScrubTyVars.Po
     1293@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='GenPoly/ScrubTyVars.cc' object='GenPoly/cfa_cpp-ScrubTyVars.obj' libtool=no @AMDEPBACKSLASH@
     1294@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1295@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/cfa_cpp-ScrubTyVars.obj `if test -f 'GenPoly/ScrubTyVars.cc'; then $(CYGPATH_W) 'GenPoly/ScrubTyVars.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/ScrubTyVars.cc'; fi`
     1296
     1297GenPoly/cfa_cpp-Lvalue.o: GenPoly/Lvalue.cc
     1298@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/cfa_cpp-Lvalue.o -MD -MP -MF GenPoly/$(DEPDIR)/cfa_cpp-Lvalue.Tpo -c -o GenPoly/cfa_cpp-Lvalue.o `test -f 'GenPoly/Lvalue.cc' || echo '$(srcdir)/'`GenPoly/Lvalue.cc
     1299@am__fastdepCXX_TRUE@   $(am__mv) GenPoly/$(DEPDIR)/cfa_cpp-Lvalue.Tpo GenPoly/$(DEPDIR)/cfa_cpp-Lvalue.Po
     1300@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='GenPoly/Lvalue.cc' object='GenPoly/cfa_cpp-Lvalue.o' libtool=no @AMDEPBACKSLASH@
     1301@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1302@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/cfa_cpp-Lvalue.o `test -f 'GenPoly/Lvalue.cc' || echo '$(srcdir)/'`GenPoly/Lvalue.cc
     1303
     1304GenPoly/cfa_cpp-Lvalue.obj: GenPoly/Lvalue.cc
     1305@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/cfa_cpp-Lvalue.obj -MD -MP -MF GenPoly/$(DEPDIR)/cfa_cpp-Lvalue.Tpo -c -o GenPoly/cfa_cpp-Lvalue.obj `if test -f 'GenPoly/Lvalue.cc'; then $(CYGPATH_W) 'GenPoly/Lvalue.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Lvalue.cc'; fi`
     1306@am__fastdepCXX_TRUE@   $(am__mv) GenPoly/$(DEPDIR)/cfa_cpp-Lvalue.Tpo GenPoly/$(DEPDIR)/cfa_cpp-Lvalue.Po
     1307@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='GenPoly/Lvalue.cc' object='GenPoly/cfa_cpp-Lvalue.obj' libtool=no @AMDEPBACKSLASH@
     1308@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1309@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/cfa_cpp-Lvalue.obj `if test -f 'GenPoly/Lvalue.cc'; then $(CYGPATH_W) 'GenPoly/Lvalue.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Lvalue.cc'; fi`
     1310
     1311GenPoly/cfa_cpp-Specialize.o: GenPoly/Specialize.cc
     1312@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/cfa_cpp-Specialize.o -MD -MP -MF GenPoly/$(DEPDIR)/cfa_cpp-Specialize.Tpo -c -o GenPoly/cfa_cpp-Specialize.o `test -f 'GenPoly/Specialize.cc' || echo '$(srcdir)/'`GenPoly/Specialize.cc
     1313@am__fastdepCXX_TRUE@   $(am__mv) GenPoly/$(DEPDIR)/cfa_cpp-Specialize.Tpo GenPoly/$(DEPDIR)/cfa_cpp-Specialize.Po
     1314@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='GenPoly/Specialize.cc' object='GenPoly/cfa_cpp-Specialize.o' libtool=no @AMDEPBACKSLASH@
     1315@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1316@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/cfa_cpp-Specialize.o `test -f 'GenPoly/Specialize.cc' || echo '$(srcdir)/'`GenPoly/Specialize.cc
     1317
     1318GenPoly/cfa_cpp-Specialize.obj: GenPoly/Specialize.cc
     1319@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/cfa_cpp-Specialize.obj -MD -MP -MF GenPoly/$(DEPDIR)/cfa_cpp-Specialize.Tpo -c -o GenPoly/cfa_cpp-Specialize.obj `if test -f 'GenPoly/Specialize.cc'; then $(CYGPATH_W) 'GenPoly/Specialize.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Specialize.cc'; fi`
     1320@am__fastdepCXX_TRUE@   $(am__mv) GenPoly/$(DEPDIR)/cfa_cpp-Specialize.Tpo GenPoly/$(DEPDIR)/cfa_cpp-Specialize.Po
     1321@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='GenPoly/Specialize.cc' object='GenPoly/cfa_cpp-Specialize.obj' libtool=no @AMDEPBACKSLASH@
     1322@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1323@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/cfa_cpp-Specialize.obj `if test -f 'GenPoly/Specialize.cc'; then $(CYGPATH_W) 'GenPoly/Specialize.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/Specialize.cc'; fi`
     1324
     1325GenPoly/cfa_cpp-CopyParams.o: GenPoly/CopyParams.cc
     1326@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/cfa_cpp-CopyParams.o -MD -MP -MF GenPoly/$(DEPDIR)/cfa_cpp-CopyParams.Tpo -c -o GenPoly/cfa_cpp-CopyParams.o `test -f 'GenPoly/CopyParams.cc' || echo '$(srcdir)/'`GenPoly/CopyParams.cc
     1327@am__fastdepCXX_TRUE@   $(am__mv) GenPoly/$(DEPDIR)/cfa_cpp-CopyParams.Tpo GenPoly/$(DEPDIR)/cfa_cpp-CopyParams.Po
     1328@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='GenPoly/CopyParams.cc' object='GenPoly/cfa_cpp-CopyParams.o' libtool=no @AMDEPBACKSLASH@
     1329@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1330@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/cfa_cpp-CopyParams.o `test -f 'GenPoly/CopyParams.cc' || echo '$(srcdir)/'`GenPoly/CopyParams.cc
     1331
     1332GenPoly/cfa_cpp-CopyParams.obj: GenPoly/CopyParams.cc
     1333@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/cfa_cpp-CopyParams.obj -MD -MP -MF GenPoly/$(DEPDIR)/cfa_cpp-CopyParams.Tpo -c -o GenPoly/cfa_cpp-CopyParams.obj `if test -f 'GenPoly/CopyParams.cc'; then $(CYGPATH_W) 'GenPoly/CopyParams.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/CopyParams.cc'; fi`
     1334@am__fastdepCXX_TRUE@   $(am__mv) GenPoly/$(DEPDIR)/cfa_cpp-CopyParams.Tpo GenPoly/$(DEPDIR)/cfa_cpp-CopyParams.Po
     1335@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='GenPoly/CopyParams.cc' object='GenPoly/cfa_cpp-CopyParams.obj' libtool=no @AMDEPBACKSLASH@
     1336@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1337@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/cfa_cpp-CopyParams.obj `if test -f 'GenPoly/CopyParams.cc'; then $(CYGPATH_W) 'GenPoly/CopyParams.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/CopyParams.cc'; fi`
     1338
     1339GenPoly/cfa_cpp-FindFunction.o: GenPoly/FindFunction.cc
     1340@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/cfa_cpp-FindFunction.o -MD -MP -MF GenPoly/$(DEPDIR)/cfa_cpp-FindFunction.Tpo -c -o GenPoly/cfa_cpp-FindFunction.o `test -f 'GenPoly/FindFunction.cc' || echo '$(srcdir)/'`GenPoly/FindFunction.cc
     1341@am__fastdepCXX_TRUE@   $(am__mv) GenPoly/$(DEPDIR)/cfa_cpp-FindFunction.Tpo GenPoly/$(DEPDIR)/cfa_cpp-FindFunction.Po
     1342@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='GenPoly/FindFunction.cc' object='GenPoly/cfa_cpp-FindFunction.o' libtool=no @AMDEPBACKSLASH@
     1343@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1344@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/cfa_cpp-FindFunction.o `test -f 'GenPoly/FindFunction.cc' || echo '$(srcdir)/'`GenPoly/FindFunction.cc
     1345
     1346GenPoly/cfa_cpp-FindFunction.obj: GenPoly/FindFunction.cc
     1347@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/cfa_cpp-FindFunction.obj -MD -MP -MF GenPoly/$(DEPDIR)/cfa_cpp-FindFunction.Tpo -c -o GenPoly/cfa_cpp-FindFunction.obj `if test -f 'GenPoly/FindFunction.cc'; then $(CYGPATH_W) 'GenPoly/FindFunction.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/FindFunction.cc'; fi`
     1348@am__fastdepCXX_TRUE@   $(am__mv) GenPoly/$(DEPDIR)/cfa_cpp-FindFunction.Tpo GenPoly/$(DEPDIR)/cfa_cpp-FindFunction.Po
     1349@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='GenPoly/FindFunction.cc' object='GenPoly/cfa_cpp-FindFunction.obj' libtool=no @AMDEPBACKSLASH@
     1350@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1351@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/cfa_cpp-FindFunction.obj `if test -f 'GenPoly/FindFunction.cc'; then $(CYGPATH_W) 'GenPoly/FindFunction.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/FindFunction.cc'; fi`
     1352
     1353InitTweak/cfa_cpp-InitModel.o: InitTweak/InitModel.cc
     1354@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/cfa_cpp-InitModel.o -MD -MP -MF InitTweak/$(DEPDIR)/cfa_cpp-InitModel.Tpo -c -o InitTweak/cfa_cpp-InitModel.o `test -f 'InitTweak/InitModel.cc' || echo '$(srcdir)/'`InitTweak/InitModel.cc
     1355@am__fastdepCXX_TRUE@   $(am__mv) InitTweak/$(DEPDIR)/cfa_cpp-InitModel.Tpo InitTweak/$(DEPDIR)/cfa_cpp-InitModel.Po
     1356@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='InitTweak/InitModel.cc' object='InitTweak/cfa_cpp-InitModel.o' libtool=no @AMDEPBACKSLASH@
     1357@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1358@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/cfa_cpp-InitModel.o `test -f 'InitTweak/InitModel.cc' || echo '$(srcdir)/'`InitTweak/InitModel.cc
     1359
     1360InitTweak/cfa_cpp-InitModel.obj: InitTweak/InitModel.cc
     1361@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/cfa_cpp-InitModel.obj -MD -MP -MF InitTweak/$(DEPDIR)/cfa_cpp-InitModel.Tpo -c -o InitTweak/cfa_cpp-InitModel.obj `if test -f 'InitTweak/InitModel.cc'; then $(CYGPATH_W) 'InitTweak/InitModel.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/InitModel.cc'; fi`
     1362@am__fastdepCXX_TRUE@   $(am__mv) InitTweak/$(DEPDIR)/cfa_cpp-InitModel.Tpo InitTweak/$(DEPDIR)/cfa_cpp-InitModel.Po
     1363@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='InitTweak/InitModel.cc' object='InitTweak/cfa_cpp-InitModel.obj' libtool=no @AMDEPBACKSLASH@
     1364@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1365@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/cfa_cpp-InitModel.obj `if test -f 'InitTweak/InitModel.cc'; then $(CYGPATH_W) 'InitTweak/InitModel.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/InitModel.cc'; fi`
     1366
     1367InitTweak/cfa_cpp-InitExpander.o: InitTweak/InitExpander.cc
     1368@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/cfa_cpp-InitExpander.o -MD -MP -MF InitTweak/$(DEPDIR)/cfa_cpp-InitExpander.Tpo -c -o InitTweak/cfa_cpp-InitExpander.o `test -f 'InitTweak/InitExpander.cc' || echo '$(srcdir)/'`InitTweak/InitExpander.cc
     1369@am__fastdepCXX_TRUE@   $(am__mv) InitTweak/$(DEPDIR)/cfa_cpp-InitExpander.Tpo InitTweak/$(DEPDIR)/cfa_cpp-InitExpander.Po
     1370@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='InitTweak/InitExpander.cc' object='InitTweak/cfa_cpp-InitExpander.o' libtool=no @AMDEPBACKSLASH@
     1371@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1372@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/cfa_cpp-InitExpander.o `test -f 'InitTweak/InitExpander.cc' || echo '$(srcdir)/'`InitTweak/InitExpander.cc
     1373
     1374InitTweak/cfa_cpp-InitExpander.obj: InitTweak/InitExpander.cc
     1375@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/cfa_cpp-InitExpander.obj -MD -MP -MF InitTweak/$(DEPDIR)/cfa_cpp-InitExpander.Tpo -c -o InitTweak/cfa_cpp-InitExpander.obj `if test -f 'InitTweak/InitExpander.cc'; then $(CYGPATH_W) 'InitTweak/InitExpander.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/InitExpander.cc'; fi`
     1376@am__fastdepCXX_TRUE@   $(am__mv) InitTweak/$(DEPDIR)/cfa_cpp-InitExpander.Tpo InitTweak/$(DEPDIR)/cfa_cpp-InitExpander.Po
     1377@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='InitTweak/InitExpander.cc' object='InitTweak/cfa_cpp-InitExpander.obj' libtool=no @AMDEPBACKSLASH@
     1378@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1379@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/cfa_cpp-InitExpander.obj `if test -f 'InitTweak/InitExpander.cc'; then $(CYGPATH_W) 'InitTweak/InitExpander.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/InitExpander.cc'; fi`
     1380
     1381InitTweak/cfa_cpp-Mutate.o: InitTweak/Mutate.cc
     1382@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/cfa_cpp-Mutate.o -MD -MP -MF InitTweak/$(DEPDIR)/cfa_cpp-Mutate.Tpo -c -o InitTweak/cfa_cpp-Mutate.o `test -f 'InitTweak/Mutate.cc' || echo '$(srcdir)/'`InitTweak/Mutate.cc
     1383@am__fastdepCXX_TRUE@   $(am__mv) InitTweak/$(DEPDIR)/cfa_cpp-Mutate.Tpo InitTweak/$(DEPDIR)/cfa_cpp-Mutate.Po
     1384@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='InitTweak/Mutate.cc' object='InitTweak/cfa_cpp-Mutate.o' libtool=no @AMDEPBACKSLASH@
     1385@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1386@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/cfa_cpp-Mutate.o `test -f 'InitTweak/Mutate.cc' || echo '$(srcdir)/'`InitTweak/Mutate.cc
     1387
     1388InitTweak/cfa_cpp-Mutate.obj: InitTweak/Mutate.cc
     1389@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/cfa_cpp-Mutate.obj -MD -MP -MF InitTweak/$(DEPDIR)/cfa_cpp-Mutate.Tpo -c -o InitTweak/cfa_cpp-Mutate.obj `if test -f 'InitTweak/Mutate.cc'; then $(CYGPATH_W) 'InitTweak/Mutate.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/Mutate.cc'; fi`
     1390@am__fastdepCXX_TRUE@   $(am__mv) InitTweak/$(DEPDIR)/cfa_cpp-Mutate.Tpo InitTweak/$(DEPDIR)/cfa_cpp-Mutate.Po
     1391@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='InitTweak/Mutate.cc' object='InitTweak/cfa_cpp-Mutate.obj' libtool=no @AMDEPBACKSLASH@
     1392@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1393@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/cfa_cpp-Mutate.obj `if test -f 'InitTweak/Mutate.cc'; then $(CYGPATH_W) 'InitTweak/Mutate.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/Mutate.cc'; fi`
     1394
     1395InitTweak/cfa_cpp-Association.o: InitTweak/Association.cc
     1396@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/cfa_cpp-Association.o -MD -MP -MF InitTweak/$(DEPDIR)/cfa_cpp-Association.Tpo -c -o InitTweak/cfa_cpp-Association.o `test -f 'InitTweak/Association.cc' || echo '$(srcdir)/'`InitTweak/Association.cc
     1397@am__fastdepCXX_TRUE@   $(am__mv) InitTweak/$(DEPDIR)/cfa_cpp-Association.Tpo InitTweak/$(DEPDIR)/cfa_cpp-Association.Po
     1398@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='InitTweak/Association.cc' object='InitTweak/cfa_cpp-Association.o' libtool=no @AMDEPBACKSLASH@
     1399@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1400@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/cfa_cpp-Association.o `test -f 'InitTweak/Association.cc' || echo '$(srcdir)/'`InitTweak/Association.cc
     1401
     1402InitTweak/cfa_cpp-Association.obj: InitTweak/Association.cc
     1403@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/cfa_cpp-Association.obj -MD -MP -MF InitTweak/$(DEPDIR)/cfa_cpp-Association.Tpo -c -o InitTweak/cfa_cpp-Association.obj `if test -f 'InitTweak/Association.cc'; then $(CYGPATH_W) 'InitTweak/Association.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/Association.cc'; fi`
     1404@am__fastdepCXX_TRUE@   $(am__mv) InitTweak/$(DEPDIR)/cfa_cpp-Association.Tpo InitTweak/$(DEPDIR)/cfa_cpp-Association.Po
     1405@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='InitTweak/Association.cc' object='InitTweak/cfa_cpp-Association.obj' libtool=no @AMDEPBACKSLASH@
     1406@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1407@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/cfa_cpp-Association.obj `if test -f 'InitTweak/Association.cc'; then $(CYGPATH_W) 'InitTweak/Association.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/Association.cc'; fi`
     1408
     1409InitTweak/cfa_cpp-RemoveInit.o: InitTweak/RemoveInit.cc
     1410@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/cfa_cpp-RemoveInit.o -MD -MP -MF InitTweak/$(DEPDIR)/cfa_cpp-RemoveInit.Tpo -c -o InitTweak/cfa_cpp-RemoveInit.o `test -f 'InitTweak/RemoveInit.cc' || echo '$(srcdir)/'`InitTweak/RemoveInit.cc
     1411@am__fastdepCXX_TRUE@   $(am__mv) InitTweak/$(DEPDIR)/cfa_cpp-RemoveInit.Tpo InitTweak/$(DEPDIR)/cfa_cpp-RemoveInit.Po
     1412@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='InitTweak/RemoveInit.cc' object='InitTweak/cfa_cpp-RemoveInit.o' libtool=no @AMDEPBACKSLASH@
     1413@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1414@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/cfa_cpp-RemoveInit.o `test -f 'InitTweak/RemoveInit.cc' || echo '$(srcdir)/'`InitTweak/RemoveInit.cc
     1415
     1416InitTweak/cfa_cpp-RemoveInit.obj: InitTweak/RemoveInit.cc
     1417@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/cfa_cpp-RemoveInit.obj -MD -MP -MF InitTweak/$(DEPDIR)/cfa_cpp-RemoveInit.Tpo -c -o InitTweak/cfa_cpp-RemoveInit.obj `if test -f 'InitTweak/RemoveInit.cc'; then $(CYGPATH_W) 'InitTweak/RemoveInit.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/RemoveInit.cc'; fi`
     1418@am__fastdepCXX_TRUE@   $(am__mv) InitTweak/$(DEPDIR)/cfa_cpp-RemoveInit.Tpo InitTweak/$(DEPDIR)/cfa_cpp-RemoveInit.Po
     1419@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='InitTweak/RemoveInit.cc' object='InitTweak/cfa_cpp-RemoveInit.obj' libtool=no @AMDEPBACKSLASH@
     1420@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1421@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o InitTweak/cfa_cpp-RemoveInit.obj `if test -f 'InitTweak/RemoveInit.cc'; then $(CYGPATH_W) 'InitTweak/RemoveInit.cc'; else $(CYGPATH_W) '$(srcdir)/InitTweak/RemoveInit.cc'; fi`
     1422
     1423Parser/cfa_cpp-parser.o: Parser/parser.cc
     1424@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/cfa_cpp-parser.o -MD -MP -MF Parser/$(DEPDIR)/cfa_cpp-parser.Tpo -c -o Parser/cfa_cpp-parser.o `test -f 'Parser/parser.cc' || echo '$(srcdir)/'`Parser/parser.cc
     1425@am__fastdepCXX_TRUE@   $(am__mv) Parser/$(DEPDIR)/cfa_cpp-parser.Tpo Parser/$(DEPDIR)/cfa_cpp-parser.Po
     1426@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Parser/parser.cc' object='Parser/cfa_cpp-parser.o' libtool=no @AMDEPBACKSLASH@
     1427@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1428@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/cfa_cpp-parser.o `test -f 'Parser/parser.cc' || echo '$(srcdir)/'`Parser/parser.cc
     1429
     1430Parser/cfa_cpp-parser.obj: Parser/parser.cc
     1431@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/cfa_cpp-parser.obj -MD -MP -MF Parser/$(DEPDIR)/cfa_cpp-parser.Tpo -c -o Parser/cfa_cpp-parser.obj `if test -f 'Parser/parser.cc'; then $(CYGPATH_W) 'Parser/parser.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/parser.cc'; fi`
     1432@am__fastdepCXX_TRUE@   $(am__mv) Parser/$(DEPDIR)/cfa_cpp-parser.Tpo Parser/$(DEPDIR)/cfa_cpp-parser.Po
     1433@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Parser/parser.cc' object='Parser/cfa_cpp-parser.obj' libtool=no @AMDEPBACKSLASH@
     1434@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1435@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/cfa_cpp-parser.obj `if test -f 'Parser/parser.cc'; then $(CYGPATH_W) 'Parser/parser.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/parser.cc'; fi`
     1436
     1437Parser/cfa_cpp-lex.o: Parser/lex.cc
     1438@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/cfa_cpp-lex.o -MD -MP -MF Parser/$(DEPDIR)/cfa_cpp-lex.Tpo -c -o Parser/cfa_cpp-lex.o `test -f 'Parser/lex.cc' || echo '$(srcdir)/'`Parser/lex.cc
     1439@am__fastdepCXX_TRUE@   $(am__mv) Parser/$(DEPDIR)/cfa_cpp-lex.Tpo Parser/$(DEPDIR)/cfa_cpp-lex.Po
     1440@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Parser/lex.cc' object='Parser/cfa_cpp-lex.o' libtool=no @AMDEPBACKSLASH@
     1441@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1442@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/cfa_cpp-lex.o `test -f 'Parser/lex.cc' || echo '$(srcdir)/'`Parser/lex.cc
     1443
     1444Parser/cfa_cpp-lex.obj: Parser/lex.cc
     1445@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/cfa_cpp-lex.obj -MD -MP -MF Parser/$(DEPDIR)/cfa_cpp-lex.Tpo -c -o Parser/cfa_cpp-lex.obj `if test -f 'Parser/lex.cc'; then $(CYGPATH_W) 'Parser/lex.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/lex.cc'; fi`
     1446@am__fastdepCXX_TRUE@   $(am__mv) Parser/$(DEPDIR)/cfa_cpp-lex.Tpo Parser/$(DEPDIR)/cfa_cpp-lex.Po
     1447@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Parser/lex.cc' object='Parser/cfa_cpp-lex.obj' libtool=no @AMDEPBACKSLASH@
     1448@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1449@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/cfa_cpp-lex.obj `if test -f 'Parser/lex.cc'; then $(CYGPATH_W) 'Parser/lex.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/lex.cc'; fi`
     1450
     1451Parser/cfa_cpp-TypedefTable.o: Parser/TypedefTable.cc
     1452@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/cfa_cpp-TypedefTable.o -MD -MP -MF Parser/$(DEPDIR)/cfa_cpp-TypedefTable.Tpo -c -o Parser/cfa_cpp-TypedefTable.o `test -f 'Parser/TypedefTable.cc' || echo '$(srcdir)/'`Parser/TypedefTable.cc
     1453@am__fastdepCXX_TRUE@   $(am__mv) Parser/$(DEPDIR)/cfa_cpp-TypedefTable.Tpo Parser/$(DEPDIR)/cfa_cpp-TypedefTable.Po
     1454@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Parser/TypedefTable.cc' object='Parser/cfa_cpp-TypedefTable.o' libtool=no @AMDEPBACKSLASH@
     1455@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1456@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/cfa_cpp-TypedefTable.o `test -f 'Parser/TypedefTable.cc' || echo '$(srcdir)/'`Parser/TypedefTable.cc
     1457
     1458Parser/cfa_cpp-TypedefTable.obj: Parser/TypedefTable.cc
     1459@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/cfa_cpp-TypedefTable.obj -MD -MP -MF Parser/$(DEPDIR)/cfa_cpp-TypedefTable.Tpo -c -o Parser/cfa_cpp-TypedefTable.obj `if test -f 'Parser/TypedefTable.cc'; then $(CYGPATH_W) 'Parser/TypedefTable.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/TypedefTable.cc'; fi`
     1460@am__fastdepCXX_TRUE@   $(am__mv) Parser/$(DEPDIR)/cfa_cpp-TypedefTable.Tpo Parser/$(DEPDIR)/cfa_cpp-TypedefTable.Po
     1461@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Parser/TypedefTable.cc' object='Parser/cfa_cpp-TypedefTable.obj' libtool=no @AMDEPBACKSLASH@
     1462@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1463@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/cfa_cpp-TypedefTable.obj `if test -f 'Parser/TypedefTable.cc'; then $(CYGPATH_W) 'Parser/TypedefTable.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/TypedefTable.cc'; fi`
     1464
     1465Parser/cfa_cpp-ParseNode.o: Parser/ParseNode.cc
     1466@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/cfa_cpp-ParseNode.o -MD -MP -MF Parser/$(DEPDIR)/cfa_cpp-ParseNode.Tpo -c -o Parser/cfa_cpp-ParseNode.o `test -f 'Parser/ParseNode.cc' || echo '$(srcdir)/'`Parser/ParseNode.cc
     1467@am__fastdepCXX_TRUE@   $(am__mv) Parser/$(DEPDIR)/cfa_cpp-ParseNode.Tpo Parser/$(DEPDIR)/cfa_cpp-ParseNode.Po
     1468@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Parser/ParseNode.cc' object='Parser/cfa_cpp-ParseNode.o' libtool=no @AMDEPBACKSLASH@
     1469@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1470@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/cfa_cpp-ParseNode.o `test -f 'Parser/ParseNode.cc' || echo '$(srcdir)/'`Parser/ParseNode.cc
     1471
     1472Parser/cfa_cpp-ParseNode.obj: Parser/ParseNode.cc
     1473@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/cfa_cpp-ParseNode.obj -MD -MP -MF Parser/$(DEPDIR)/cfa_cpp-ParseNode.Tpo -c -o Parser/cfa_cpp-ParseNode.obj `if test -f 'Parser/ParseNode.cc'; then $(CYGPATH_W) 'Parser/ParseNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/ParseNode.cc'; fi`
     1474@am__fastdepCXX_TRUE@   $(am__mv) Parser/$(DEPDIR)/cfa_cpp-ParseNode.Tpo Parser/$(DEPDIR)/cfa_cpp-ParseNode.Po
     1475@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Parser/ParseNode.cc' object='Parser/cfa_cpp-ParseNode.obj' libtool=no @AMDEPBACKSLASH@
     1476@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1477@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/cfa_cpp-ParseNode.obj `if test -f 'Parser/ParseNode.cc'; then $(CYGPATH_W) 'Parser/ParseNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/ParseNode.cc'; fi`
     1478
     1479Parser/cfa_cpp-DeclarationNode.o: Parser/DeclarationNode.cc
     1480@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/cfa_cpp-DeclarationNode.o -MD -MP -MF Parser/$(DEPDIR)/cfa_cpp-DeclarationNode.Tpo -c -o Parser/cfa_cpp-DeclarationNode.o `test -f 'Parser/DeclarationNode.cc' || echo '$(srcdir)/'`Parser/DeclarationNode.cc
     1481@am__fastdepCXX_TRUE@   $(am__mv) Parser/$(DEPDIR)/cfa_cpp-DeclarationNode.Tpo Parser/$(DEPDIR)/cfa_cpp-DeclarationNode.Po
     1482@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Parser/DeclarationNode.cc' object='Parser/cfa_cpp-DeclarationNode.o' libtool=no @AMDEPBACKSLASH@
     1483@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1484@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/cfa_cpp-DeclarationNode.o `test -f 'Parser/DeclarationNode.cc' || echo '$(srcdir)/'`Parser/DeclarationNode.cc
     1485
     1486Parser/cfa_cpp-DeclarationNode.obj: Parser/DeclarationNode.cc
     1487@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/cfa_cpp-DeclarationNode.obj -MD -MP -MF Parser/$(DEPDIR)/cfa_cpp-DeclarationNode.Tpo -c -o Parser/cfa_cpp-DeclarationNode.obj `if test -f 'Parser/DeclarationNode.cc'; then $(CYGPATH_W) 'Parser/DeclarationNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/DeclarationNode.cc'; fi`
     1488@am__fastdepCXX_TRUE@   $(am__mv) Parser/$(DEPDIR)/cfa_cpp-DeclarationNode.Tpo Parser/$(DEPDIR)/cfa_cpp-DeclarationNode.Po
     1489@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Parser/DeclarationNode.cc' object='Parser/cfa_cpp-DeclarationNode.obj' libtool=no @AMDEPBACKSLASH@
     1490@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1491@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/cfa_cpp-DeclarationNode.obj `if test -f 'Parser/DeclarationNode.cc'; then $(CYGPATH_W) 'Parser/DeclarationNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/DeclarationNode.cc'; fi`
     1492
     1493Parser/cfa_cpp-ExpressionNode.o: Parser/ExpressionNode.cc
     1494@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/cfa_cpp-ExpressionNode.o -MD -MP -MF Parser/$(DEPDIR)/cfa_cpp-ExpressionNode.Tpo -c -o Parser/cfa_cpp-ExpressionNode.o `test -f 'Parser/ExpressionNode.cc' || echo '$(srcdir)/'`Parser/ExpressionNode.cc
     1495@am__fastdepCXX_TRUE@   $(am__mv) Parser/$(DEPDIR)/cfa_cpp-ExpressionNode.Tpo Parser/$(DEPDIR)/cfa_cpp-ExpressionNode.Po
     1496@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Parser/ExpressionNode.cc' object='Parser/cfa_cpp-ExpressionNode.o' libtool=no @AMDEPBACKSLASH@
     1497@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1498@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/cfa_cpp-ExpressionNode.o `test -f 'Parser/ExpressionNode.cc' || echo '$(srcdir)/'`Parser/ExpressionNode.cc
     1499
     1500Parser/cfa_cpp-ExpressionNode.obj: Parser/ExpressionNode.cc
     1501@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/cfa_cpp-ExpressionNode.obj -MD -MP -MF Parser/$(DEPDIR)/cfa_cpp-ExpressionNode.Tpo -c -o Parser/cfa_cpp-ExpressionNode.obj `if test -f 'Parser/ExpressionNode.cc'; then $(CYGPATH_W) 'Parser/ExpressionNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/ExpressionNode.cc'; fi`
     1502@am__fastdepCXX_TRUE@   $(am__mv) Parser/$(DEPDIR)/cfa_cpp-ExpressionNode.Tpo Parser/$(DEPDIR)/cfa_cpp-ExpressionNode.Po
     1503@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Parser/ExpressionNode.cc' object='Parser/cfa_cpp-ExpressionNode.obj' libtool=no @AMDEPBACKSLASH@
     1504@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1505@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/cfa_cpp-ExpressionNode.obj `if test -f 'Parser/ExpressionNode.cc'; then $(CYGPATH_W) 'Parser/ExpressionNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/ExpressionNode.cc'; fi`
     1506
     1507Parser/cfa_cpp-StatementNode.o: Parser/StatementNode.cc
     1508@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/cfa_cpp-StatementNode.o -MD -MP -MF Parser/$(DEPDIR)/cfa_cpp-StatementNode.Tpo -c -o Parser/cfa_cpp-StatementNode.o `test -f 'Parser/StatementNode.cc' || echo '$(srcdir)/'`Parser/StatementNode.cc
     1509@am__fastdepCXX_TRUE@   $(am__mv) Parser/$(DEPDIR)/cfa_cpp-StatementNode.Tpo Parser/$(DEPDIR)/cfa_cpp-StatementNode.Po
     1510@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Parser/StatementNode.cc' object='Parser/cfa_cpp-StatementNode.o' libtool=no @AMDEPBACKSLASH@
     1511@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1512@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/cfa_cpp-StatementNode.o `test -f 'Parser/StatementNode.cc' || echo '$(srcdir)/'`Parser/StatementNode.cc
     1513
     1514Parser/cfa_cpp-StatementNode.obj: Parser/StatementNode.cc
     1515@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/cfa_cpp-StatementNode.obj -MD -MP -MF Parser/$(DEPDIR)/cfa_cpp-StatementNode.Tpo -c -o Parser/cfa_cpp-StatementNode.obj `if test -f 'Parser/StatementNode.cc'; then $(CYGPATH_W) 'Parser/StatementNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/StatementNode.cc'; fi`
     1516@am__fastdepCXX_TRUE@   $(am__mv) Parser/$(DEPDIR)/cfa_cpp-StatementNode.Tpo Parser/$(DEPDIR)/cfa_cpp-StatementNode.Po
     1517@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Parser/StatementNode.cc' object='Parser/cfa_cpp-StatementNode.obj' libtool=no @AMDEPBACKSLASH@
     1518@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1519@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/cfa_cpp-StatementNode.obj `if test -f 'Parser/StatementNode.cc'; then $(CYGPATH_W) 'Parser/StatementNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/StatementNode.cc'; fi`
     1520
     1521Parser/cfa_cpp-InitializerNode.o: Parser/InitializerNode.cc
     1522@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/cfa_cpp-InitializerNode.o -MD -MP -MF Parser/$(DEPDIR)/cfa_cpp-InitializerNode.Tpo -c -o Parser/cfa_cpp-InitializerNode.o `test -f 'Parser/InitializerNode.cc' || echo '$(srcdir)/'`Parser/InitializerNode.cc
     1523@am__fastdepCXX_TRUE@   $(am__mv) Parser/$(DEPDIR)/cfa_cpp-InitializerNode.Tpo Parser/$(DEPDIR)/cfa_cpp-InitializerNode.Po
     1524@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Parser/InitializerNode.cc' object='Parser/cfa_cpp-InitializerNode.o' libtool=no @AMDEPBACKSLASH@
     1525@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1526@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/cfa_cpp-InitializerNode.o `test -f 'Parser/InitializerNode.cc' || echo '$(srcdir)/'`Parser/InitializerNode.cc
     1527
     1528Parser/cfa_cpp-InitializerNode.obj: Parser/InitializerNode.cc
     1529@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/cfa_cpp-InitializerNode.obj -MD -MP -MF Parser/$(DEPDIR)/cfa_cpp-InitializerNode.Tpo -c -o Parser/cfa_cpp-InitializerNode.obj `if test -f 'Parser/InitializerNode.cc'; then $(CYGPATH_W) 'Parser/InitializerNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/InitializerNode.cc'; fi`
     1530@am__fastdepCXX_TRUE@   $(am__mv) Parser/$(DEPDIR)/cfa_cpp-InitializerNode.Tpo Parser/$(DEPDIR)/cfa_cpp-InitializerNode.Po
     1531@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Parser/InitializerNode.cc' object='Parser/cfa_cpp-InitializerNode.obj' libtool=no @AMDEPBACKSLASH@
     1532@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1533@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/cfa_cpp-InitializerNode.obj `if test -f 'Parser/InitializerNode.cc'; then $(CYGPATH_W) 'Parser/InitializerNode.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/InitializerNode.cc'; fi`
     1534
     1535Parser/cfa_cpp-TypeData.o: Parser/TypeData.cc
     1536@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/cfa_cpp-TypeData.o -MD -MP -MF Parser/$(DEPDIR)/cfa_cpp-TypeData.Tpo -c -o Parser/cfa_cpp-TypeData.o `test -f 'Parser/TypeData.cc' || echo '$(srcdir)/'`Parser/TypeData.cc
     1537@am__fastdepCXX_TRUE@   $(am__mv) Parser/$(DEPDIR)/cfa_cpp-TypeData.Tpo Parser/$(DEPDIR)/cfa_cpp-TypeData.Po
     1538@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Parser/TypeData.cc' object='Parser/cfa_cpp-TypeData.o' libtool=no @AMDEPBACKSLASH@
     1539@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1540@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/cfa_cpp-TypeData.o `test -f 'Parser/TypeData.cc' || echo '$(srcdir)/'`Parser/TypeData.cc
     1541
     1542Parser/cfa_cpp-TypeData.obj: Parser/TypeData.cc
     1543@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/cfa_cpp-TypeData.obj -MD -MP -MF Parser/$(DEPDIR)/cfa_cpp-TypeData.Tpo -c -o Parser/cfa_cpp-TypeData.obj `if test -f 'Parser/TypeData.cc'; then $(CYGPATH_W) 'Parser/TypeData.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/TypeData.cc'; fi`
     1544@am__fastdepCXX_TRUE@   $(am__mv) Parser/$(DEPDIR)/cfa_cpp-TypeData.Tpo Parser/$(DEPDIR)/cfa_cpp-TypeData.Po
     1545@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Parser/TypeData.cc' object='Parser/cfa_cpp-TypeData.obj' libtool=no @AMDEPBACKSLASH@
     1546@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1547@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/cfa_cpp-TypeData.obj `if test -f 'Parser/TypeData.cc'; then $(CYGPATH_W) 'Parser/TypeData.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/TypeData.cc'; fi`
     1548
     1549Parser/cfa_cpp-LinkageSpec.o: Parser/LinkageSpec.cc
     1550@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/cfa_cpp-LinkageSpec.o -MD -MP -MF Parser/$(DEPDIR)/cfa_cpp-LinkageSpec.Tpo -c -o Parser/cfa_cpp-LinkageSpec.o `test -f 'Parser/LinkageSpec.cc' || echo '$(srcdir)/'`Parser/LinkageSpec.cc
     1551@am__fastdepCXX_TRUE@   $(am__mv) Parser/$(DEPDIR)/cfa_cpp-LinkageSpec.Tpo Parser/$(DEPDIR)/cfa_cpp-LinkageSpec.Po
     1552@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Parser/LinkageSpec.cc' object='Parser/cfa_cpp-LinkageSpec.o' libtool=no @AMDEPBACKSLASH@
     1553@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1554@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/cfa_cpp-LinkageSpec.o `test -f 'Parser/LinkageSpec.cc' || echo '$(srcdir)/'`Parser/LinkageSpec.cc
     1555
     1556Parser/cfa_cpp-LinkageSpec.obj: Parser/LinkageSpec.cc
     1557@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/cfa_cpp-LinkageSpec.obj -MD -MP -MF Parser/$(DEPDIR)/cfa_cpp-LinkageSpec.Tpo -c -o Parser/cfa_cpp-LinkageSpec.obj `if test -f 'Parser/LinkageSpec.cc'; then $(CYGPATH_W) 'Parser/LinkageSpec.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/LinkageSpec.cc'; fi`
     1558@am__fastdepCXX_TRUE@   $(am__mv) Parser/$(DEPDIR)/cfa_cpp-LinkageSpec.Tpo Parser/$(DEPDIR)/cfa_cpp-LinkageSpec.Po
     1559@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Parser/LinkageSpec.cc' object='Parser/cfa_cpp-LinkageSpec.obj' libtool=no @AMDEPBACKSLASH@
     1560@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1561@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/cfa_cpp-LinkageSpec.obj `if test -f 'Parser/LinkageSpec.cc'; then $(CYGPATH_W) 'Parser/LinkageSpec.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/LinkageSpec.cc'; fi`
     1562
     1563Parser/cfa_cpp-parseutility.o: Parser/parseutility.cc
     1564@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/cfa_cpp-parseutility.o -MD -MP -MF Parser/$(DEPDIR)/cfa_cpp-parseutility.Tpo -c -o Parser/cfa_cpp-parseutility.o `test -f 'Parser/parseutility.cc' || echo '$(srcdir)/'`Parser/parseutility.cc
     1565@am__fastdepCXX_TRUE@   $(am__mv) Parser/$(DEPDIR)/cfa_cpp-parseutility.Tpo Parser/$(DEPDIR)/cfa_cpp-parseutility.Po
     1566@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Parser/parseutility.cc' object='Parser/cfa_cpp-parseutility.o' libtool=no @AMDEPBACKSLASH@
     1567@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1568@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/cfa_cpp-parseutility.o `test -f 'Parser/parseutility.cc' || echo '$(srcdir)/'`Parser/parseutility.cc
     1569
     1570Parser/cfa_cpp-parseutility.obj: Parser/parseutility.cc
     1571@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/cfa_cpp-parseutility.obj -MD -MP -MF Parser/$(DEPDIR)/cfa_cpp-parseutility.Tpo -c -o Parser/cfa_cpp-parseutility.obj `if test -f 'Parser/parseutility.cc'; then $(CYGPATH_W) 'Parser/parseutility.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/parseutility.cc'; fi`
     1572@am__fastdepCXX_TRUE@   $(am__mv) Parser/$(DEPDIR)/cfa_cpp-parseutility.Tpo Parser/$(DEPDIR)/cfa_cpp-parseutility.Po
     1573@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Parser/parseutility.cc' object='Parser/cfa_cpp-parseutility.obj' libtool=no @AMDEPBACKSLASH@
     1574@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1575@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/cfa_cpp-parseutility.obj `if test -f 'Parser/parseutility.cc'; then $(CYGPATH_W) 'Parser/parseutility.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/parseutility.cc'; fi`
     1576
     1577Parser/cfa_cpp-Parser.o: Parser/Parser.cc
     1578@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/cfa_cpp-Parser.o -MD -MP -MF Parser/$(DEPDIR)/cfa_cpp-Parser.Tpo -c -o Parser/cfa_cpp-Parser.o `test -f 'Parser/Parser.cc' || echo '$(srcdir)/'`Parser/Parser.cc
     1579@am__fastdepCXX_TRUE@   $(am__mv) Parser/$(DEPDIR)/cfa_cpp-Parser.Tpo Parser/$(DEPDIR)/cfa_cpp-Parser.Po
     1580@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Parser/Parser.cc' object='Parser/cfa_cpp-Parser.o' libtool=no @AMDEPBACKSLASH@
     1581@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1582@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/cfa_cpp-Parser.o `test -f 'Parser/Parser.cc' || echo '$(srcdir)/'`Parser/Parser.cc
     1583
     1584Parser/cfa_cpp-Parser.obj: Parser/Parser.cc
     1585@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Parser/cfa_cpp-Parser.obj -MD -MP -MF Parser/$(DEPDIR)/cfa_cpp-Parser.Tpo -c -o Parser/cfa_cpp-Parser.obj `if test -f 'Parser/Parser.cc'; then $(CYGPATH_W) 'Parser/Parser.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/Parser.cc'; fi`
     1586@am__fastdepCXX_TRUE@   $(am__mv) Parser/$(DEPDIR)/cfa_cpp-Parser.Tpo Parser/$(DEPDIR)/cfa_cpp-Parser.Po
     1587@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Parser/Parser.cc' object='Parser/cfa_cpp-Parser.obj' libtool=no @AMDEPBACKSLASH@
     1588@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1589@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Parser/cfa_cpp-Parser.obj `if test -f 'Parser/Parser.cc'; then $(CYGPATH_W) 'Parser/Parser.cc'; else $(CYGPATH_W) '$(srcdir)/Parser/Parser.cc'; fi`
     1590
     1591ResolvExpr/cfa_cpp-AlternativeFinder.o: ResolvExpr/AlternativeFinder.cc
     1592@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-AlternativeFinder.o -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-AlternativeFinder.Tpo -c -o ResolvExpr/cfa_cpp-AlternativeFinder.o `test -f 'ResolvExpr/AlternativeFinder.cc' || echo '$(srcdir)/'`ResolvExpr/AlternativeFinder.cc
     1593@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-AlternativeFinder.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-AlternativeFinder.Po
     1594@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/AlternativeFinder.cc' object='ResolvExpr/cfa_cpp-AlternativeFinder.o' libtool=no @AMDEPBACKSLASH@
     1595@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1596@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-AlternativeFinder.o `test -f 'ResolvExpr/AlternativeFinder.cc' || echo '$(srcdir)/'`ResolvExpr/AlternativeFinder.cc
     1597
     1598ResolvExpr/cfa_cpp-AlternativeFinder.obj: ResolvExpr/AlternativeFinder.cc
     1599@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-AlternativeFinder.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-AlternativeFinder.Tpo -c -o ResolvExpr/cfa_cpp-AlternativeFinder.obj `if test -f 'ResolvExpr/AlternativeFinder.cc'; then $(CYGPATH_W) 'ResolvExpr/AlternativeFinder.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AlternativeFinder.cc'; fi`
     1600@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-AlternativeFinder.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-AlternativeFinder.Po
     1601@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/AlternativeFinder.cc' object='ResolvExpr/cfa_cpp-AlternativeFinder.obj' libtool=no @AMDEPBACKSLASH@
     1602@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1603@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-AlternativeFinder.obj `if test -f 'ResolvExpr/AlternativeFinder.cc'; then $(CYGPATH_W) 'ResolvExpr/AlternativeFinder.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AlternativeFinder.cc'; fi`
     1604
     1605ResolvExpr/cfa_cpp-Alternative.o: ResolvExpr/Alternative.cc
     1606@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-Alternative.o -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-Alternative.Tpo -c -o ResolvExpr/cfa_cpp-Alternative.o `test -f 'ResolvExpr/Alternative.cc' || echo '$(srcdir)/'`ResolvExpr/Alternative.cc
     1607@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-Alternative.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-Alternative.Po
     1608@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/Alternative.cc' object='ResolvExpr/cfa_cpp-Alternative.o' libtool=no @AMDEPBACKSLASH@
     1609@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1610@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-Alternative.o `test -f 'ResolvExpr/Alternative.cc' || echo '$(srcdir)/'`ResolvExpr/Alternative.cc
     1611
     1612ResolvExpr/cfa_cpp-Alternative.obj: ResolvExpr/Alternative.cc
     1613@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-Alternative.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-Alternative.Tpo -c -o ResolvExpr/cfa_cpp-Alternative.obj `if test -f 'ResolvExpr/Alternative.cc'; then $(CYGPATH_W) 'ResolvExpr/Alternative.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Alternative.cc'; fi`
     1614@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-Alternative.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-Alternative.Po
     1615@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/Alternative.cc' object='ResolvExpr/cfa_cpp-Alternative.obj' libtool=no @AMDEPBACKSLASH@
     1616@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1617@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-Alternative.obj `if test -f 'ResolvExpr/Alternative.cc'; then $(CYGPATH_W) 'ResolvExpr/Alternative.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Alternative.cc'; fi`
     1618
     1619ResolvExpr/cfa_cpp-Unify.o: ResolvExpr/Unify.cc
     1620@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-Unify.o -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-Unify.Tpo -c -o ResolvExpr/cfa_cpp-Unify.o `test -f 'ResolvExpr/Unify.cc' || echo '$(srcdir)/'`ResolvExpr/Unify.cc
     1621@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-Unify.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-Unify.Po
     1622@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/Unify.cc' object='ResolvExpr/cfa_cpp-Unify.o' libtool=no @AMDEPBACKSLASH@
     1623@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1624@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-Unify.o `test -f 'ResolvExpr/Unify.cc' || echo '$(srcdir)/'`ResolvExpr/Unify.cc
     1625
     1626ResolvExpr/cfa_cpp-Unify.obj: ResolvExpr/Unify.cc
     1627@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-Unify.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-Unify.Tpo -c -o ResolvExpr/cfa_cpp-Unify.obj `if test -f 'ResolvExpr/Unify.cc'; then $(CYGPATH_W) 'ResolvExpr/Unify.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Unify.cc'; fi`
     1628@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-Unify.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-Unify.Po
     1629@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/Unify.cc' object='ResolvExpr/cfa_cpp-Unify.obj' libtool=no @AMDEPBACKSLASH@
     1630@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1631@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-Unify.obj `if test -f 'ResolvExpr/Unify.cc'; then $(CYGPATH_W) 'ResolvExpr/Unify.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Unify.cc'; fi`
     1632
     1633ResolvExpr/cfa_cpp-PtrsAssignable.o: ResolvExpr/PtrsAssignable.cc
     1634@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-PtrsAssignable.o -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-PtrsAssignable.Tpo -c -o ResolvExpr/cfa_cpp-PtrsAssignable.o `test -f 'ResolvExpr/PtrsAssignable.cc' || echo '$(srcdir)/'`ResolvExpr/PtrsAssignable.cc
     1635@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-PtrsAssignable.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-PtrsAssignable.Po
     1636@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/PtrsAssignable.cc' object='ResolvExpr/cfa_cpp-PtrsAssignable.o' libtool=no @AMDEPBACKSLASH@
     1637@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1638@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-PtrsAssignable.o `test -f 'ResolvExpr/PtrsAssignable.cc' || echo '$(srcdir)/'`ResolvExpr/PtrsAssignable.cc
     1639
     1640ResolvExpr/cfa_cpp-PtrsAssignable.obj: ResolvExpr/PtrsAssignable.cc
     1641@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-PtrsAssignable.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-PtrsAssignable.Tpo -c -o ResolvExpr/cfa_cpp-PtrsAssignable.obj `if test -f 'ResolvExpr/PtrsAssignable.cc'; then $(CYGPATH_W) 'ResolvExpr/PtrsAssignable.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PtrsAssignable.cc'; fi`
     1642@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-PtrsAssignable.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-PtrsAssignable.Po
     1643@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/PtrsAssignable.cc' object='ResolvExpr/cfa_cpp-PtrsAssignable.obj' libtool=no @AMDEPBACKSLASH@
     1644@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1645@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-PtrsAssignable.obj `if test -f 'ResolvExpr/PtrsAssignable.cc'; then $(CYGPATH_W) 'ResolvExpr/PtrsAssignable.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PtrsAssignable.cc'; fi`
     1646
     1647ResolvExpr/cfa_cpp-CommonType.o: ResolvExpr/CommonType.cc
     1648@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-CommonType.o -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-CommonType.Tpo -c -o ResolvExpr/cfa_cpp-CommonType.o `test -f 'ResolvExpr/CommonType.cc' || echo '$(srcdir)/'`ResolvExpr/CommonType.cc
     1649@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-CommonType.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-CommonType.Po
     1650@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/CommonType.cc' object='ResolvExpr/cfa_cpp-CommonType.o' libtool=no @AMDEPBACKSLASH@
     1651@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1652@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-CommonType.o `test -f 'ResolvExpr/CommonType.cc' || echo '$(srcdir)/'`ResolvExpr/CommonType.cc
     1653
     1654ResolvExpr/cfa_cpp-CommonType.obj: ResolvExpr/CommonType.cc
     1655@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-CommonType.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-CommonType.Tpo -c -o ResolvExpr/cfa_cpp-CommonType.obj `if test -f 'ResolvExpr/CommonType.cc'; then $(CYGPATH_W) 'ResolvExpr/CommonType.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/CommonType.cc'; fi`
     1656@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-CommonType.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-CommonType.Po
     1657@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/CommonType.cc' object='ResolvExpr/cfa_cpp-CommonType.obj' libtool=no @AMDEPBACKSLASH@
     1658@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1659@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-CommonType.obj `if test -f 'ResolvExpr/CommonType.cc'; then $(CYGPATH_W) 'ResolvExpr/CommonType.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/CommonType.cc'; fi`
     1660
     1661ResolvExpr/cfa_cpp-ConversionCost.o: ResolvExpr/ConversionCost.cc
     1662@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-ConversionCost.o -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-ConversionCost.Tpo -c -o ResolvExpr/cfa_cpp-ConversionCost.o `test -f 'ResolvExpr/ConversionCost.cc' || echo '$(srcdir)/'`ResolvExpr/ConversionCost.cc
     1663@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-ConversionCost.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-ConversionCost.Po
     1664@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/ConversionCost.cc' object='ResolvExpr/cfa_cpp-ConversionCost.o' libtool=no @AMDEPBACKSLASH@
     1665@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1666@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-ConversionCost.o `test -f 'ResolvExpr/ConversionCost.cc' || echo '$(srcdir)/'`ResolvExpr/ConversionCost.cc
     1667
     1668ResolvExpr/cfa_cpp-ConversionCost.obj: ResolvExpr/ConversionCost.cc
     1669@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-ConversionCost.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-ConversionCost.Tpo -c -o ResolvExpr/cfa_cpp-ConversionCost.obj `if test -f 'ResolvExpr/ConversionCost.cc'; then $(CYGPATH_W) 'ResolvExpr/ConversionCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/ConversionCost.cc'; fi`
     1670@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-ConversionCost.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-ConversionCost.Po
     1671@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/ConversionCost.cc' object='ResolvExpr/cfa_cpp-ConversionCost.obj' libtool=no @AMDEPBACKSLASH@
     1672@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1673@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-ConversionCost.obj `if test -f 'ResolvExpr/ConversionCost.cc'; then $(CYGPATH_W) 'ResolvExpr/ConversionCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/ConversionCost.cc'; fi`
     1674
     1675ResolvExpr/cfa_cpp-CastCost.o: ResolvExpr/CastCost.cc
     1676@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-CastCost.o -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-CastCost.Tpo -c -o ResolvExpr/cfa_cpp-CastCost.o `test -f 'ResolvExpr/CastCost.cc' || echo '$(srcdir)/'`ResolvExpr/CastCost.cc
     1677@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-CastCost.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-CastCost.Po
     1678@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/CastCost.cc' object='ResolvExpr/cfa_cpp-CastCost.o' libtool=no @AMDEPBACKSLASH@
     1679@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1680@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-CastCost.o `test -f 'ResolvExpr/CastCost.cc' || echo '$(srcdir)/'`ResolvExpr/CastCost.cc
     1681
     1682ResolvExpr/cfa_cpp-CastCost.obj: ResolvExpr/CastCost.cc
     1683@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-CastCost.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-CastCost.Tpo -c -o ResolvExpr/cfa_cpp-CastCost.obj `if test -f 'ResolvExpr/CastCost.cc'; then $(CYGPATH_W) 'ResolvExpr/CastCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/CastCost.cc'; fi`
     1684@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-CastCost.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-CastCost.Po
     1685@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/CastCost.cc' object='ResolvExpr/cfa_cpp-CastCost.obj' libtool=no @AMDEPBACKSLASH@
     1686@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1687@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-CastCost.obj `if test -f 'ResolvExpr/CastCost.cc'; then $(CYGPATH_W) 'ResolvExpr/CastCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/CastCost.cc'; fi`
     1688
     1689ResolvExpr/cfa_cpp-PtrsCastable.o: ResolvExpr/PtrsCastable.cc
     1690@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-PtrsCastable.o -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-PtrsCastable.Tpo -c -o ResolvExpr/cfa_cpp-PtrsCastable.o `test -f 'ResolvExpr/PtrsCastable.cc' || echo '$(srcdir)/'`ResolvExpr/PtrsCastable.cc
     1691@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-PtrsCastable.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-PtrsCastable.Po
     1692@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/PtrsCastable.cc' object='ResolvExpr/cfa_cpp-PtrsCastable.o' libtool=no @AMDEPBACKSLASH@
     1693@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1694@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-PtrsCastable.o `test -f 'ResolvExpr/PtrsCastable.cc' || echo '$(srcdir)/'`ResolvExpr/PtrsCastable.cc
     1695
     1696ResolvExpr/cfa_cpp-PtrsCastable.obj: ResolvExpr/PtrsCastable.cc
     1697@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-PtrsCastable.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-PtrsCastable.Tpo -c -o ResolvExpr/cfa_cpp-PtrsCastable.obj `if test -f 'ResolvExpr/PtrsCastable.cc'; then $(CYGPATH_W) 'ResolvExpr/PtrsCastable.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PtrsCastable.cc'; fi`
     1698@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-PtrsCastable.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-PtrsCastable.Po
     1699@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/PtrsCastable.cc' object='ResolvExpr/cfa_cpp-PtrsCastable.obj' libtool=no @AMDEPBACKSLASH@
     1700@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1701@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-PtrsCastable.obj `if test -f 'ResolvExpr/PtrsCastable.cc'; then $(CYGPATH_W) 'ResolvExpr/PtrsCastable.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PtrsCastable.cc'; fi`
     1702
     1703ResolvExpr/cfa_cpp-AdjustExprType.o: ResolvExpr/AdjustExprType.cc
     1704@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-AdjustExprType.o -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-AdjustExprType.Tpo -c -o ResolvExpr/cfa_cpp-AdjustExprType.o `test -f 'ResolvExpr/AdjustExprType.cc' || echo '$(srcdir)/'`ResolvExpr/AdjustExprType.cc
     1705@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-AdjustExprType.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-AdjustExprType.Po
     1706@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/AdjustExprType.cc' object='ResolvExpr/cfa_cpp-AdjustExprType.o' libtool=no @AMDEPBACKSLASH@
     1707@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1708@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-AdjustExprType.o `test -f 'ResolvExpr/AdjustExprType.cc' || echo '$(srcdir)/'`ResolvExpr/AdjustExprType.cc
     1709
     1710ResolvExpr/cfa_cpp-AdjustExprType.obj: ResolvExpr/AdjustExprType.cc
     1711@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-AdjustExprType.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-AdjustExprType.Tpo -c -o ResolvExpr/cfa_cpp-AdjustExprType.obj `if test -f 'ResolvExpr/AdjustExprType.cc'; then $(CYGPATH_W) 'ResolvExpr/AdjustExprType.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AdjustExprType.cc'; fi`
     1712@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-AdjustExprType.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-AdjustExprType.Po
     1713@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/AdjustExprType.cc' object='ResolvExpr/cfa_cpp-AdjustExprType.obj' libtool=no @AMDEPBACKSLASH@
     1714@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1715@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-AdjustExprType.obj `if test -f 'ResolvExpr/AdjustExprType.cc'; then $(CYGPATH_W) 'ResolvExpr/AdjustExprType.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AdjustExprType.cc'; fi`
     1716
     1717ResolvExpr/cfa_cpp-AlternativePrinter.o: ResolvExpr/AlternativePrinter.cc
     1718@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-AlternativePrinter.o -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-AlternativePrinter.Tpo -c -o ResolvExpr/cfa_cpp-AlternativePrinter.o `test -f 'ResolvExpr/AlternativePrinter.cc' || echo '$(srcdir)/'`ResolvExpr/AlternativePrinter.cc
     1719@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-AlternativePrinter.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-AlternativePrinter.Po
     1720@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/AlternativePrinter.cc' object='ResolvExpr/cfa_cpp-AlternativePrinter.o' libtool=no @AMDEPBACKSLASH@
     1721@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1722@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-AlternativePrinter.o `test -f 'ResolvExpr/AlternativePrinter.cc' || echo '$(srcdir)/'`ResolvExpr/AlternativePrinter.cc
     1723
     1724ResolvExpr/cfa_cpp-AlternativePrinter.obj: ResolvExpr/AlternativePrinter.cc
     1725@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-AlternativePrinter.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-AlternativePrinter.Tpo -c -o ResolvExpr/cfa_cpp-AlternativePrinter.obj `if test -f 'ResolvExpr/AlternativePrinter.cc'; then $(CYGPATH_W) 'ResolvExpr/AlternativePrinter.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AlternativePrinter.cc'; fi`
     1726@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-AlternativePrinter.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-AlternativePrinter.Po
     1727@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/AlternativePrinter.cc' object='ResolvExpr/cfa_cpp-AlternativePrinter.obj' libtool=no @AMDEPBACKSLASH@
     1728@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1729@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-AlternativePrinter.obj `if test -f 'ResolvExpr/AlternativePrinter.cc'; then $(CYGPATH_W) 'ResolvExpr/AlternativePrinter.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/AlternativePrinter.cc'; fi`
     1730
     1731ResolvExpr/cfa_cpp-Resolver.o: ResolvExpr/Resolver.cc
     1732@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-Resolver.o -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-Resolver.Tpo -c -o ResolvExpr/cfa_cpp-Resolver.o `test -f 'ResolvExpr/Resolver.cc' || echo '$(srcdir)/'`ResolvExpr/Resolver.cc
     1733@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-Resolver.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-Resolver.Po
     1734@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/Resolver.cc' object='ResolvExpr/cfa_cpp-Resolver.o' libtool=no @AMDEPBACKSLASH@
     1735@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1736@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-Resolver.o `test -f 'ResolvExpr/Resolver.cc' || echo '$(srcdir)/'`ResolvExpr/Resolver.cc
     1737
     1738ResolvExpr/cfa_cpp-Resolver.obj: ResolvExpr/Resolver.cc
     1739@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-Resolver.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-Resolver.Tpo -c -o ResolvExpr/cfa_cpp-Resolver.obj `if test -f 'ResolvExpr/Resolver.cc'; then $(CYGPATH_W) 'ResolvExpr/Resolver.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Resolver.cc'; fi`
     1740@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-Resolver.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-Resolver.Po
     1741@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/Resolver.cc' object='ResolvExpr/cfa_cpp-Resolver.obj' libtool=no @AMDEPBACKSLASH@
     1742@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1743@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-Resolver.obj `if test -f 'ResolvExpr/Resolver.cc'; then $(CYGPATH_W) 'ResolvExpr/Resolver.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Resolver.cc'; fi`
     1744
     1745ResolvExpr/cfa_cpp-ResolveTypeof.o: ResolvExpr/ResolveTypeof.cc
     1746@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-ResolveTypeof.o -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-ResolveTypeof.Tpo -c -o ResolvExpr/cfa_cpp-ResolveTypeof.o `test -f 'ResolvExpr/ResolveTypeof.cc' || echo '$(srcdir)/'`ResolvExpr/ResolveTypeof.cc
     1747@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-ResolveTypeof.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-ResolveTypeof.Po
     1748@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/ResolveTypeof.cc' object='ResolvExpr/cfa_cpp-ResolveTypeof.o' libtool=no @AMDEPBACKSLASH@
     1749@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1750@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-ResolveTypeof.o `test -f 'ResolvExpr/ResolveTypeof.cc' || echo '$(srcdir)/'`ResolvExpr/ResolveTypeof.cc
     1751
     1752ResolvExpr/cfa_cpp-ResolveTypeof.obj: ResolvExpr/ResolveTypeof.cc
     1753@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-ResolveTypeof.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-ResolveTypeof.Tpo -c -o ResolvExpr/cfa_cpp-ResolveTypeof.obj `if test -f 'ResolvExpr/ResolveTypeof.cc'; then $(CYGPATH_W) 'ResolvExpr/ResolveTypeof.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/ResolveTypeof.cc'; fi`
     1754@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-ResolveTypeof.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-ResolveTypeof.Po
     1755@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/ResolveTypeof.cc' object='ResolvExpr/cfa_cpp-ResolveTypeof.obj' libtool=no @AMDEPBACKSLASH@
     1756@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1757@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-ResolveTypeof.obj `if test -f 'ResolvExpr/ResolveTypeof.cc'; then $(CYGPATH_W) 'ResolvExpr/ResolveTypeof.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/ResolveTypeof.cc'; fi`
     1758
     1759ResolvExpr/cfa_cpp-RenameVars.o: ResolvExpr/RenameVars.cc
     1760@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-RenameVars.o -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-RenameVars.Tpo -c -o ResolvExpr/cfa_cpp-RenameVars.o `test -f 'ResolvExpr/RenameVars.cc' || echo '$(srcdir)/'`ResolvExpr/RenameVars.cc
     1761@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-RenameVars.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-RenameVars.Po
     1762@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/RenameVars.cc' object='ResolvExpr/cfa_cpp-RenameVars.o' libtool=no @AMDEPBACKSLASH@
     1763@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1764@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-RenameVars.o `test -f 'ResolvExpr/RenameVars.cc' || echo '$(srcdir)/'`ResolvExpr/RenameVars.cc
     1765
     1766ResolvExpr/cfa_cpp-RenameVars.obj: ResolvExpr/RenameVars.cc
     1767@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-RenameVars.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-RenameVars.Tpo -c -o ResolvExpr/cfa_cpp-RenameVars.obj `if test -f 'ResolvExpr/RenameVars.cc'; then $(CYGPATH_W) 'ResolvExpr/RenameVars.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/RenameVars.cc'; fi`
     1768@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-RenameVars.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-RenameVars.Po
     1769@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/RenameVars.cc' object='ResolvExpr/cfa_cpp-RenameVars.obj' libtool=no @AMDEPBACKSLASH@
     1770@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1771@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-RenameVars.obj `if test -f 'ResolvExpr/RenameVars.cc'; then $(CYGPATH_W) 'ResolvExpr/RenameVars.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/RenameVars.cc'; fi`
     1772
     1773ResolvExpr/cfa_cpp-FindOpenVars.o: ResolvExpr/FindOpenVars.cc
     1774@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-FindOpenVars.o -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-FindOpenVars.Tpo -c -o ResolvExpr/cfa_cpp-FindOpenVars.o `test -f 'ResolvExpr/FindOpenVars.cc' || echo '$(srcdir)/'`ResolvExpr/FindOpenVars.cc
     1775@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-FindOpenVars.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-FindOpenVars.Po
     1776@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/FindOpenVars.cc' object='ResolvExpr/cfa_cpp-FindOpenVars.o' libtool=no @AMDEPBACKSLASH@
     1777@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1778@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-FindOpenVars.o `test -f 'ResolvExpr/FindOpenVars.cc' || echo '$(srcdir)/'`ResolvExpr/FindOpenVars.cc
     1779
     1780ResolvExpr/cfa_cpp-FindOpenVars.obj: ResolvExpr/FindOpenVars.cc
     1781@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-FindOpenVars.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-FindOpenVars.Tpo -c -o ResolvExpr/cfa_cpp-FindOpenVars.obj `if test -f 'ResolvExpr/FindOpenVars.cc'; then $(CYGPATH_W) 'ResolvExpr/FindOpenVars.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/FindOpenVars.cc'; fi`
     1782@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-FindOpenVars.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-FindOpenVars.Po
     1783@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/FindOpenVars.cc' object='ResolvExpr/cfa_cpp-FindOpenVars.obj' libtool=no @AMDEPBACKSLASH@
     1784@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1785@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-FindOpenVars.obj `if test -f 'ResolvExpr/FindOpenVars.cc'; then $(CYGPATH_W) 'ResolvExpr/FindOpenVars.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/FindOpenVars.cc'; fi`
     1786
     1787ResolvExpr/cfa_cpp-PolyCost.o: ResolvExpr/PolyCost.cc
     1788@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-PolyCost.o -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-PolyCost.Tpo -c -o ResolvExpr/cfa_cpp-PolyCost.o `test -f 'ResolvExpr/PolyCost.cc' || echo '$(srcdir)/'`ResolvExpr/PolyCost.cc
     1789@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-PolyCost.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-PolyCost.Po
     1790@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/PolyCost.cc' object='ResolvExpr/cfa_cpp-PolyCost.o' libtool=no @AMDEPBACKSLASH@
     1791@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1792@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-PolyCost.o `test -f 'ResolvExpr/PolyCost.cc' || echo '$(srcdir)/'`ResolvExpr/PolyCost.cc
     1793
     1794ResolvExpr/cfa_cpp-PolyCost.obj: ResolvExpr/PolyCost.cc
     1795@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-PolyCost.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-PolyCost.Tpo -c -o ResolvExpr/cfa_cpp-PolyCost.obj `if test -f 'ResolvExpr/PolyCost.cc'; then $(CYGPATH_W) 'ResolvExpr/PolyCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PolyCost.cc'; fi`
     1796@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-PolyCost.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-PolyCost.Po
     1797@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/PolyCost.cc' object='ResolvExpr/cfa_cpp-PolyCost.obj' libtool=no @AMDEPBACKSLASH@
     1798@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1799@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-PolyCost.obj `if test -f 'ResolvExpr/PolyCost.cc'; then $(CYGPATH_W) 'ResolvExpr/PolyCost.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/PolyCost.cc'; fi`
     1800
     1801ResolvExpr/cfa_cpp-Occurs.o: ResolvExpr/Occurs.cc
     1802@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-Occurs.o -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-Occurs.Tpo -c -o ResolvExpr/cfa_cpp-Occurs.o `test -f 'ResolvExpr/Occurs.cc' || echo '$(srcdir)/'`ResolvExpr/Occurs.cc
     1803@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-Occurs.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-Occurs.Po
     1804@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/Occurs.cc' object='ResolvExpr/cfa_cpp-Occurs.o' libtool=no @AMDEPBACKSLASH@
     1805@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1806@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-Occurs.o `test -f 'ResolvExpr/Occurs.cc' || echo '$(srcdir)/'`ResolvExpr/Occurs.cc
     1807
     1808ResolvExpr/cfa_cpp-Occurs.obj: ResolvExpr/Occurs.cc
     1809@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-Occurs.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-Occurs.Tpo -c -o ResolvExpr/cfa_cpp-Occurs.obj `if test -f 'ResolvExpr/Occurs.cc'; then $(CYGPATH_W) 'ResolvExpr/Occurs.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Occurs.cc'; fi`
     1810@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-Occurs.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-Occurs.Po
     1811@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/Occurs.cc' object='ResolvExpr/cfa_cpp-Occurs.obj' libtool=no @AMDEPBACKSLASH@
     1812@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1813@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-Occurs.obj `if test -f 'ResolvExpr/Occurs.cc'; then $(CYGPATH_W) 'ResolvExpr/Occurs.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/Occurs.cc'; fi`
     1814
     1815ResolvExpr/cfa_cpp-TypeEnvironment.o: ResolvExpr/TypeEnvironment.cc
     1816@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-TypeEnvironment.o -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-TypeEnvironment.Tpo -c -o ResolvExpr/cfa_cpp-TypeEnvironment.o `test -f 'ResolvExpr/TypeEnvironment.cc' || echo '$(srcdir)/'`ResolvExpr/TypeEnvironment.cc
     1817@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-TypeEnvironment.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-TypeEnvironment.Po
     1818@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/TypeEnvironment.cc' object='ResolvExpr/cfa_cpp-TypeEnvironment.o' libtool=no @AMDEPBACKSLASH@
     1819@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1820@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-TypeEnvironment.o `test -f 'ResolvExpr/TypeEnvironment.cc' || echo '$(srcdir)/'`ResolvExpr/TypeEnvironment.cc
     1821
     1822ResolvExpr/cfa_cpp-TypeEnvironment.obj: ResolvExpr/TypeEnvironment.cc
     1823@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT ResolvExpr/cfa_cpp-TypeEnvironment.obj -MD -MP -MF ResolvExpr/$(DEPDIR)/cfa_cpp-TypeEnvironment.Tpo -c -o ResolvExpr/cfa_cpp-TypeEnvironment.obj `if test -f 'ResolvExpr/TypeEnvironment.cc'; then $(CYGPATH_W) 'ResolvExpr/TypeEnvironment.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/TypeEnvironment.cc'; fi`
     1824@am__fastdepCXX_TRUE@   $(am__mv) ResolvExpr/$(DEPDIR)/cfa_cpp-TypeEnvironment.Tpo ResolvExpr/$(DEPDIR)/cfa_cpp-TypeEnvironment.Po
     1825@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='ResolvExpr/TypeEnvironment.cc' object='ResolvExpr/cfa_cpp-TypeEnvironment.obj' libtool=no @AMDEPBACKSLASH@
     1826@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1827@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o ResolvExpr/cfa_cpp-TypeEnvironment.obj `if test -f 'ResolvExpr/TypeEnvironment.cc'; then $(CYGPATH_W) 'ResolvExpr/TypeEnvironment.cc'; else $(CYGPATH_W) '$(srcdir)/ResolvExpr/TypeEnvironment.cc'; fi`
     1828
     1829SymTab/cfa_cpp-IdTable.o: SymTab/IdTable.cc
     1830@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/cfa_cpp-IdTable.o -MD -MP -MF SymTab/$(DEPDIR)/cfa_cpp-IdTable.Tpo -c -o SymTab/cfa_cpp-IdTable.o `test -f 'SymTab/IdTable.cc' || echo '$(srcdir)/'`SymTab/IdTable.cc
     1831@am__fastdepCXX_TRUE@   $(am__mv) SymTab/$(DEPDIR)/cfa_cpp-IdTable.Tpo SymTab/$(DEPDIR)/cfa_cpp-IdTable.Po
     1832@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SymTab/IdTable.cc' object='SymTab/cfa_cpp-IdTable.o' libtool=no @AMDEPBACKSLASH@
     1833@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1834@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/cfa_cpp-IdTable.o `test -f 'SymTab/IdTable.cc' || echo '$(srcdir)/'`SymTab/IdTable.cc
     1835
     1836SymTab/cfa_cpp-IdTable.obj: SymTab/IdTable.cc
     1837@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/cfa_cpp-IdTable.obj -MD -MP -MF SymTab/$(DEPDIR)/cfa_cpp-IdTable.Tpo -c -o SymTab/cfa_cpp-IdTable.obj `if test -f 'SymTab/IdTable.cc'; then $(CYGPATH_W) 'SymTab/IdTable.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/IdTable.cc'; fi`
     1838@am__fastdepCXX_TRUE@   $(am__mv) SymTab/$(DEPDIR)/cfa_cpp-IdTable.Tpo SymTab/$(DEPDIR)/cfa_cpp-IdTable.Po
     1839@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SymTab/IdTable.cc' object='SymTab/cfa_cpp-IdTable.obj' libtool=no @AMDEPBACKSLASH@
     1840@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1841@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/cfa_cpp-IdTable.obj `if test -f 'SymTab/IdTable.cc'; then $(CYGPATH_W) 'SymTab/IdTable.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/IdTable.cc'; fi`
     1842
     1843SymTab/cfa_cpp-Indexer.o: SymTab/Indexer.cc
     1844@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/cfa_cpp-Indexer.o -MD -MP -MF SymTab/$(DEPDIR)/cfa_cpp-Indexer.Tpo -c -o SymTab/cfa_cpp-Indexer.o `test -f 'SymTab/Indexer.cc' || echo '$(srcdir)/'`SymTab/Indexer.cc
     1845@am__fastdepCXX_TRUE@   $(am__mv) SymTab/$(DEPDIR)/cfa_cpp-Indexer.Tpo SymTab/$(DEPDIR)/cfa_cpp-Indexer.Po
     1846@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SymTab/Indexer.cc' object='SymTab/cfa_cpp-Indexer.o' libtool=no @AMDEPBACKSLASH@
     1847@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1848@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/cfa_cpp-Indexer.o `test -f 'SymTab/Indexer.cc' || echo '$(srcdir)/'`SymTab/Indexer.cc
     1849
     1850SymTab/cfa_cpp-Indexer.obj: SymTab/Indexer.cc
     1851@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/cfa_cpp-Indexer.obj -MD -MP -MF SymTab/$(DEPDIR)/cfa_cpp-Indexer.Tpo -c -o SymTab/cfa_cpp-Indexer.obj `if test -f 'SymTab/Indexer.cc'; then $(CYGPATH_W) 'SymTab/Indexer.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Indexer.cc'; fi`
     1852@am__fastdepCXX_TRUE@   $(am__mv) SymTab/$(DEPDIR)/cfa_cpp-Indexer.Tpo SymTab/$(DEPDIR)/cfa_cpp-Indexer.Po
     1853@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SymTab/Indexer.cc' object='SymTab/cfa_cpp-Indexer.obj' libtool=no @AMDEPBACKSLASH@
     1854@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1855@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/cfa_cpp-Indexer.obj `if test -f 'SymTab/Indexer.cc'; then $(CYGPATH_W) 'SymTab/Indexer.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Indexer.cc'; fi`
     1856
     1857SymTab/cfa_cpp-Mangler.o: SymTab/Mangler.cc
     1858@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/cfa_cpp-Mangler.o -MD -MP -MF SymTab/$(DEPDIR)/cfa_cpp-Mangler.Tpo -c -o SymTab/cfa_cpp-Mangler.o `test -f 'SymTab/Mangler.cc' || echo '$(srcdir)/'`SymTab/Mangler.cc
     1859@am__fastdepCXX_TRUE@   $(am__mv) SymTab/$(DEPDIR)/cfa_cpp-Mangler.Tpo SymTab/$(DEPDIR)/cfa_cpp-Mangler.Po
     1860@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SymTab/Mangler.cc' object='SymTab/cfa_cpp-Mangler.o' libtool=no @AMDEPBACKSLASH@
     1861@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1862@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/cfa_cpp-Mangler.o `test -f 'SymTab/Mangler.cc' || echo '$(srcdir)/'`SymTab/Mangler.cc
     1863
     1864SymTab/cfa_cpp-Mangler.obj: SymTab/Mangler.cc
     1865@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/cfa_cpp-Mangler.obj -MD -MP -MF SymTab/$(DEPDIR)/cfa_cpp-Mangler.Tpo -c -o SymTab/cfa_cpp-Mangler.obj `if test -f 'SymTab/Mangler.cc'; then $(CYGPATH_W) 'SymTab/Mangler.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Mangler.cc'; fi`
     1866@am__fastdepCXX_TRUE@   $(am__mv) SymTab/$(DEPDIR)/cfa_cpp-Mangler.Tpo SymTab/$(DEPDIR)/cfa_cpp-Mangler.Po
     1867@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SymTab/Mangler.cc' object='SymTab/cfa_cpp-Mangler.obj' libtool=no @AMDEPBACKSLASH@
     1868@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1869@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/cfa_cpp-Mangler.obj `if test -f 'SymTab/Mangler.cc'; then $(CYGPATH_W) 'SymTab/Mangler.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Mangler.cc'; fi`
     1870
     1871SymTab/cfa_cpp-Validate.o: SymTab/Validate.cc
     1872@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/cfa_cpp-Validate.o -MD -MP -MF SymTab/$(DEPDIR)/cfa_cpp-Validate.Tpo -c -o SymTab/cfa_cpp-Validate.o `test -f 'SymTab/Validate.cc' || echo '$(srcdir)/'`SymTab/Validate.cc
     1873@am__fastdepCXX_TRUE@   $(am__mv) SymTab/$(DEPDIR)/cfa_cpp-Validate.Tpo SymTab/$(DEPDIR)/cfa_cpp-Validate.Po
     1874@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SymTab/Validate.cc' object='SymTab/cfa_cpp-Validate.o' libtool=no @AMDEPBACKSLASH@
     1875@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1876@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/cfa_cpp-Validate.o `test -f 'SymTab/Validate.cc' || echo '$(srcdir)/'`SymTab/Validate.cc
     1877
     1878SymTab/cfa_cpp-Validate.obj: SymTab/Validate.cc
     1879@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/cfa_cpp-Validate.obj -MD -MP -MF SymTab/$(DEPDIR)/cfa_cpp-Validate.Tpo -c -o SymTab/cfa_cpp-Validate.obj `if test -f 'SymTab/Validate.cc'; then $(CYGPATH_W) 'SymTab/Validate.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Validate.cc'; fi`
     1880@am__fastdepCXX_TRUE@   $(am__mv) SymTab/$(DEPDIR)/cfa_cpp-Validate.Tpo SymTab/$(DEPDIR)/cfa_cpp-Validate.Po
     1881@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SymTab/Validate.cc' object='SymTab/cfa_cpp-Validate.obj' libtool=no @AMDEPBACKSLASH@
     1882@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1883@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/cfa_cpp-Validate.obj `if test -f 'SymTab/Validate.cc'; then $(CYGPATH_W) 'SymTab/Validate.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/Validate.cc'; fi`
     1884
     1885SymTab/cfa_cpp-FixFunction.o: SymTab/FixFunction.cc
     1886@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/cfa_cpp-FixFunction.o -MD -MP -MF SymTab/$(DEPDIR)/cfa_cpp-FixFunction.Tpo -c -o SymTab/cfa_cpp-FixFunction.o `test -f 'SymTab/FixFunction.cc' || echo '$(srcdir)/'`SymTab/FixFunction.cc
     1887@am__fastdepCXX_TRUE@   $(am__mv) SymTab/$(DEPDIR)/cfa_cpp-FixFunction.Tpo SymTab/$(DEPDIR)/cfa_cpp-FixFunction.Po
     1888@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SymTab/FixFunction.cc' object='SymTab/cfa_cpp-FixFunction.o' libtool=no @AMDEPBACKSLASH@
     1889@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1890@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/cfa_cpp-FixFunction.o `test -f 'SymTab/FixFunction.cc' || echo '$(srcdir)/'`SymTab/FixFunction.cc
     1891
     1892SymTab/cfa_cpp-FixFunction.obj: SymTab/FixFunction.cc
     1893@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/cfa_cpp-FixFunction.obj -MD -MP -MF SymTab/$(DEPDIR)/cfa_cpp-FixFunction.Tpo -c -o SymTab/cfa_cpp-FixFunction.obj `if test -f 'SymTab/FixFunction.cc'; then $(CYGPATH_W) 'SymTab/FixFunction.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/FixFunction.cc'; fi`
     1894@am__fastdepCXX_TRUE@   $(am__mv) SymTab/$(DEPDIR)/cfa_cpp-FixFunction.Tpo SymTab/$(DEPDIR)/cfa_cpp-FixFunction.Po
     1895@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SymTab/FixFunction.cc' object='SymTab/cfa_cpp-FixFunction.obj' libtool=no @AMDEPBACKSLASH@
     1896@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1897@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/cfa_cpp-FixFunction.obj `if test -f 'SymTab/FixFunction.cc'; then $(CYGPATH_W) 'SymTab/FixFunction.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/FixFunction.cc'; fi`
     1898
     1899SymTab/cfa_cpp-ImplementationType.o: SymTab/ImplementationType.cc
     1900@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/cfa_cpp-ImplementationType.o -MD -MP -MF SymTab/$(DEPDIR)/cfa_cpp-ImplementationType.Tpo -c -o SymTab/cfa_cpp-ImplementationType.o `test -f 'SymTab/ImplementationType.cc' || echo '$(srcdir)/'`SymTab/ImplementationType.cc
     1901@am__fastdepCXX_TRUE@   $(am__mv) SymTab/$(DEPDIR)/cfa_cpp-ImplementationType.Tpo SymTab/$(DEPDIR)/cfa_cpp-ImplementationType.Po
     1902@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SymTab/ImplementationType.cc' object='SymTab/cfa_cpp-ImplementationType.o' libtool=no @AMDEPBACKSLASH@
     1903@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1904@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/cfa_cpp-ImplementationType.o `test -f 'SymTab/ImplementationType.cc' || echo '$(srcdir)/'`SymTab/ImplementationType.cc
     1905
     1906SymTab/cfa_cpp-ImplementationType.obj: SymTab/ImplementationType.cc
     1907@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SymTab/cfa_cpp-ImplementationType.obj -MD -MP -MF SymTab/$(DEPDIR)/cfa_cpp-ImplementationType.Tpo -c -o SymTab/cfa_cpp-ImplementationType.obj `if test -f 'SymTab/ImplementationType.cc'; then $(CYGPATH_W) 'SymTab/ImplementationType.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/ImplementationType.cc'; fi`
     1908@am__fastdepCXX_TRUE@   $(am__mv) SymTab/$(DEPDIR)/cfa_cpp-ImplementationType.Tpo SymTab/$(DEPDIR)/cfa_cpp-ImplementationType.Po
     1909@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SymTab/ImplementationType.cc' object='SymTab/cfa_cpp-ImplementationType.obj' libtool=no @AMDEPBACKSLASH@
     1910@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1911@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SymTab/cfa_cpp-ImplementationType.obj `if test -f 'SymTab/ImplementationType.cc'; then $(CYGPATH_W) 'SymTab/ImplementationType.cc'; else $(CYGPATH_W) '$(srcdir)/SymTab/ImplementationType.cc'; fi`
     1912
     1913SynTree/cfa_cpp-Type.o: SynTree/Type.cc
     1914@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-Type.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-Type.Tpo -c -o SynTree/cfa_cpp-Type.o `test -f 'SynTree/Type.cc' || echo '$(srcdir)/'`SynTree/Type.cc
     1915@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-Type.Tpo SynTree/$(DEPDIR)/cfa_cpp-Type.Po
     1916@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/Type.cc' object='SynTree/cfa_cpp-Type.o' libtool=no @AMDEPBACKSLASH@
     1917@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1918@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-Type.o `test -f 'SynTree/Type.cc' || echo '$(srcdir)/'`SynTree/Type.cc
     1919
     1920SynTree/cfa_cpp-Type.obj: SynTree/Type.cc
     1921@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-Type.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-Type.Tpo -c -o SynTree/cfa_cpp-Type.obj `if test -f 'SynTree/Type.cc'; then $(CYGPATH_W) 'SynTree/Type.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Type.cc'; fi`
     1922@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-Type.Tpo SynTree/$(DEPDIR)/cfa_cpp-Type.Po
     1923@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/Type.cc' object='SynTree/cfa_cpp-Type.obj' libtool=no @AMDEPBACKSLASH@
     1924@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1925@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-Type.obj `if test -f 'SynTree/Type.cc'; then $(CYGPATH_W) 'SynTree/Type.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Type.cc'; fi`
     1926
     1927SynTree/cfa_cpp-VoidType.o: SynTree/VoidType.cc
     1928@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-VoidType.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-VoidType.Tpo -c -o SynTree/cfa_cpp-VoidType.o `test -f 'SynTree/VoidType.cc' || echo '$(srcdir)/'`SynTree/VoidType.cc
     1929@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-VoidType.Tpo SynTree/$(DEPDIR)/cfa_cpp-VoidType.Po
     1930@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/VoidType.cc' object='SynTree/cfa_cpp-VoidType.o' libtool=no @AMDEPBACKSLASH@
     1931@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1932@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-VoidType.o `test -f 'SynTree/VoidType.cc' || echo '$(srcdir)/'`SynTree/VoidType.cc
     1933
     1934SynTree/cfa_cpp-VoidType.obj: SynTree/VoidType.cc
     1935@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-VoidType.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-VoidType.Tpo -c -o SynTree/cfa_cpp-VoidType.obj `if test -f 'SynTree/VoidType.cc'; then $(CYGPATH_W) 'SynTree/VoidType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/VoidType.cc'; fi`
     1936@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-VoidType.Tpo SynTree/$(DEPDIR)/cfa_cpp-VoidType.Po
     1937@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/VoidType.cc' object='SynTree/cfa_cpp-VoidType.obj' libtool=no @AMDEPBACKSLASH@
     1938@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1939@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-VoidType.obj `if test -f 'SynTree/VoidType.cc'; then $(CYGPATH_W) 'SynTree/VoidType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/VoidType.cc'; fi`
     1940
     1941SynTree/cfa_cpp-BasicType.o: SynTree/BasicType.cc
     1942@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-BasicType.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-BasicType.Tpo -c -o SynTree/cfa_cpp-BasicType.o `test -f 'SynTree/BasicType.cc' || echo '$(srcdir)/'`SynTree/BasicType.cc
     1943@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-BasicType.Tpo SynTree/$(DEPDIR)/cfa_cpp-BasicType.Po
     1944@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/BasicType.cc' object='SynTree/cfa_cpp-BasicType.o' libtool=no @AMDEPBACKSLASH@
     1945@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1946@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-BasicType.o `test -f 'SynTree/BasicType.cc' || echo '$(srcdir)/'`SynTree/BasicType.cc
     1947
     1948SynTree/cfa_cpp-BasicType.obj: SynTree/BasicType.cc
     1949@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-BasicType.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-BasicType.Tpo -c -o SynTree/cfa_cpp-BasicType.obj `if test -f 'SynTree/BasicType.cc'; then $(CYGPATH_W) 'SynTree/BasicType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/BasicType.cc'; fi`
     1950@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-BasicType.Tpo SynTree/$(DEPDIR)/cfa_cpp-BasicType.Po
     1951@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/BasicType.cc' object='SynTree/cfa_cpp-BasicType.obj' libtool=no @AMDEPBACKSLASH@
     1952@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1953@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-BasicType.obj `if test -f 'SynTree/BasicType.cc'; then $(CYGPATH_W) 'SynTree/BasicType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/BasicType.cc'; fi`
     1954
     1955SynTree/cfa_cpp-PointerType.o: SynTree/PointerType.cc
     1956@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-PointerType.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-PointerType.Tpo -c -o SynTree/cfa_cpp-PointerType.o `test -f 'SynTree/PointerType.cc' || echo '$(srcdir)/'`SynTree/PointerType.cc
     1957@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-PointerType.Tpo SynTree/$(DEPDIR)/cfa_cpp-PointerType.Po
     1958@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/PointerType.cc' object='SynTree/cfa_cpp-PointerType.o' libtool=no @AMDEPBACKSLASH@
     1959@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1960@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-PointerType.o `test -f 'SynTree/PointerType.cc' || echo '$(srcdir)/'`SynTree/PointerType.cc
     1961
     1962SynTree/cfa_cpp-PointerType.obj: SynTree/PointerType.cc
     1963@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-PointerType.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-PointerType.Tpo -c -o SynTree/cfa_cpp-PointerType.obj `if test -f 'SynTree/PointerType.cc'; then $(CYGPATH_W) 'SynTree/PointerType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/PointerType.cc'; fi`
     1964@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-PointerType.Tpo SynTree/$(DEPDIR)/cfa_cpp-PointerType.Po
     1965@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/PointerType.cc' object='SynTree/cfa_cpp-PointerType.obj' libtool=no @AMDEPBACKSLASH@
     1966@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1967@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-PointerType.obj `if test -f 'SynTree/PointerType.cc'; then $(CYGPATH_W) 'SynTree/PointerType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/PointerType.cc'; fi`
     1968
     1969SynTree/cfa_cpp-ArrayType.o: SynTree/ArrayType.cc
     1970@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-ArrayType.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-ArrayType.Tpo -c -o SynTree/cfa_cpp-ArrayType.o `test -f 'SynTree/ArrayType.cc' || echo '$(srcdir)/'`SynTree/ArrayType.cc
     1971@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-ArrayType.Tpo SynTree/$(DEPDIR)/cfa_cpp-ArrayType.Po
     1972@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/ArrayType.cc' object='SynTree/cfa_cpp-ArrayType.o' libtool=no @AMDEPBACKSLASH@
     1973@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1974@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-ArrayType.o `test -f 'SynTree/ArrayType.cc' || echo '$(srcdir)/'`SynTree/ArrayType.cc
     1975
     1976SynTree/cfa_cpp-ArrayType.obj: SynTree/ArrayType.cc
     1977@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-ArrayType.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-ArrayType.Tpo -c -o SynTree/cfa_cpp-ArrayType.obj `if test -f 'SynTree/ArrayType.cc'; then $(CYGPATH_W) 'SynTree/ArrayType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ArrayType.cc'; fi`
     1978@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-ArrayType.Tpo SynTree/$(DEPDIR)/cfa_cpp-ArrayType.Po
     1979@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/ArrayType.cc' object='SynTree/cfa_cpp-ArrayType.obj' libtool=no @AMDEPBACKSLASH@
     1980@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1981@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-ArrayType.obj `if test -f 'SynTree/ArrayType.cc'; then $(CYGPATH_W) 'SynTree/ArrayType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ArrayType.cc'; fi`
     1982
     1983SynTree/cfa_cpp-FunctionType.o: SynTree/FunctionType.cc
     1984@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-FunctionType.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-FunctionType.Tpo -c -o SynTree/cfa_cpp-FunctionType.o `test -f 'SynTree/FunctionType.cc' || echo '$(srcdir)/'`SynTree/FunctionType.cc
     1985@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-FunctionType.Tpo SynTree/$(DEPDIR)/cfa_cpp-FunctionType.Po
     1986@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/FunctionType.cc' object='SynTree/cfa_cpp-FunctionType.o' libtool=no @AMDEPBACKSLASH@
     1987@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1988@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-FunctionType.o `test -f 'SynTree/FunctionType.cc' || echo '$(srcdir)/'`SynTree/FunctionType.cc
     1989
     1990SynTree/cfa_cpp-FunctionType.obj: SynTree/FunctionType.cc
     1991@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-FunctionType.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-FunctionType.Tpo -c -o SynTree/cfa_cpp-FunctionType.obj `if test -f 'SynTree/FunctionType.cc'; then $(CYGPATH_W) 'SynTree/FunctionType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/FunctionType.cc'; fi`
     1992@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-FunctionType.Tpo SynTree/$(DEPDIR)/cfa_cpp-FunctionType.Po
     1993@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/FunctionType.cc' object='SynTree/cfa_cpp-FunctionType.obj' libtool=no @AMDEPBACKSLASH@
     1994@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1995@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-FunctionType.obj `if test -f 'SynTree/FunctionType.cc'; then $(CYGPATH_W) 'SynTree/FunctionType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/FunctionType.cc'; fi`
     1996
     1997SynTree/cfa_cpp-ReferenceToType.o: SynTree/ReferenceToType.cc
     1998@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-ReferenceToType.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-ReferenceToType.Tpo -c -o SynTree/cfa_cpp-ReferenceToType.o `test -f 'SynTree/ReferenceToType.cc' || echo '$(srcdir)/'`SynTree/ReferenceToType.cc
     1999@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-ReferenceToType.Tpo SynTree/$(DEPDIR)/cfa_cpp-ReferenceToType.Po
     2000@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/ReferenceToType.cc' object='SynTree/cfa_cpp-ReferenceToType.o' libtool=no @AMDEPBACKSLASH@
     2001@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2002@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-ReferenceToType.o `test -f 'SynTree/ReferenceToType.cc' || echo '$(srcdir)/'`SynTree/ReferenceToType.cc
     2003
     2004SynTree/cfa_cpp-ReferenceToType.obj: SynTree/ReferenceToType.cc
     2005@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-ReferenceToType.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-ReferenceToType.Tpo -c -o SynTree/cfa_cpp-ReferenceToType.obj `if test -f 'SynTree/ReferenceToType.cc'; then $(CYGPATH_W) 'SynTree/ReferenceToType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ReferenceToType.cc'; fi`
     2006@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-ReferenceToType.Tpo SynTree/$(DEPDIR)/cfa_cpp-ReferenceToType.Po
     2007@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/ReferenceToType.cc' object='SynTree/cfa_cpp-ReferenceToType.obj' libtool=no @AMDEPBACKSLASH@
     2008@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2009@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-ReferenceToType.obj `if test -f 'SynTree/ReferenceToType.cc'; then $(CYGPATH_W) 'SynTree/ReferenceToType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ReferenceToType.cc'; fi`
     2010
     2011SynTree/cfa_cpp-TupleType.o: SynTree/TupleType.cc
     2012@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-TupleType.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-TupleType.Tpo -c -o SynTree/cfa_cpp-TupleType.o `test -f 'SynTree/TupleType.cc' || echo '$(srcdir)/'`SynTree/TupleType.cc
     2013@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-TupleType.Tpo SynTree/$(DEPDIR)/cfa_cpp-TupleType.Po
     2014@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/TupleType.cc' object='SynTree/cfa_cpp-TupleType.o' libtool=no @AMDEPBACKSLASH@
     2015@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2016@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-TupleType.o `test -f 'SynTree/TupleType.cc' || echo '$(srcdir)/'`SynTree/TupleType.cc
     2017
     2018SynTree/cfa_cpp-TupleType.obj: SynTree/TupleType.cc
     2019@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-TupleType.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-TupleType.Tpo -c -o SynTree/cfa_cpp-TupleType.obj `if test -f 'SynTree/TupleType.cc'; then $(CYGPATH_W) 'SynTree/TupleType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TupleType.cc'; fi`
     2020@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-TupleType.Tpo SynTree/$(DEPDIR)/cfa_cpp-TupleType.Po
     2021@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/TupleType.cc' object='SynTree/cfa_cpp-TupleType.obj' libtool=no @AMDEPBACKSLASH@
     2022@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2023@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-TupleType.obj `if test -f 'SynTree/TupleType.cc'; then $(CYGPATH_W) 'SynTree/TupleType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TupleType.cc'; fi`
     2024
     2025SynTree/cfa_cpp-TypeofType.o: SynTree/TypeofType.cc
     2026@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-TypeofType.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-TypeofType.Tpo -c -o SynTree/cfa_cpp-TypeofType.o `test -f 'SynTree/TypeofType.cc' || echo '$(srcdir)/'`SynTree/TypeofType.cc
     2027@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-TypeofType.Tpo SynTree/$(DEPDIR)/cfa_cpp-TypeofType.Po
     2028@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/TypeofType.cc' object='SynTree/cfa_cpp-TypeofType.o' libtool=no @AMDEPBACKSLASH@
     2029@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2030@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-TypeofType.o `test -f 'SynTree/TypeofType.cc' || echo '$(srcdir)/'`SynTree/TypeofType.cc
     2031
     2032SynTree/cfa_cpp-TypeofType.obj: SynTree/TypeofType.cc
     2033@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-TypeofType.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-TypeofType.Tpo -c -o SynTree/cfa_cpp-TypeofType.obj `if test -f 'SynTree/TypeofType.cc'; then $(CYGPATH_W) 'SynTree/TypeofType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeofType.cc'; fi`
     2034@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-TypeofType.Tpo SynTree/$(DEPDIR)/cfa_cpp-TypeofType.Po
     2035@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/TypeofType.cc' object='SynTree/cfa_cpp-TypeofType.obj' libtool=no @AMDEPBACKSLASH@
     2036@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2037@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-TypeofType.obj `if test -f 'SynTree/TypeofType.cc'; then $(CYGPATH_W) 'SynTree/TypeofType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeofType.cc'; fi`
     2038
     2039SynTree/cfa_cpp-AttrType.o: SynTree/AttrType.cc
     2040@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-AttrType.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-AttrType.Tpo -c -o SynTree/cfa_cpp-AttrType.o `test -f 'SynTree/AttrType.cc' || echo '$(srcdir)/'`SynTree/AttrType.cc
     2041@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-AttrType.Tpo SynTree/$(DEPDIR)/cfa_cpp-AttrType.Po
     2042@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/AttrType.cc' object='SynTree/cfa_cpp-AttrType.o' libtool=no @AMDEPBACKSLASH@
     2043@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2044@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-AttrType.o `test -f 'SynTree/AttrType.cc' || echo '$(srcdir)/'`SynTree/AttrType.cc
     2045
     2046SynTree/cfa_cpp-AttrType.obj: SynTree/AttrType.cc
     2047@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-AttrType.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-AttrType.Tpo -c -o SynTree/cfa_cpp-AttrType.obj `if test -f 'SynTree/AttrType.cc'; then $(CYGPATH_W) 'SynTree/AttrType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AttrType.cc'; fi`
     2048@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-AttrType.Tpo SynTree/$(DEPDIR)/cfa_cpp-AttrType.Po
     2049@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/AttrType.cc' object='SynTree/cfa_cpp-AttrType.obj' libtool=no @AMDEPBACKSLASH@
     2050@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2051@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-AttrType.obj `if test -f 'SynTree/AttrType.cc'; then $(CYGPATH_W) 'SynTree/AttrType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AttrType.cc'; fi`
     2052
     2053SynTree/cfa_cpp-Constant.o: SynTree/Constant.cc
     2054@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-Constant.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-Constant.Tpo -c -o SynTree/cfa_cpp-Constant.o `test -f 'SynTree/Constant.cc' || echo '$(srcdir)/'`SynTree/Constant.cc
     2055@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-Constant.Tpo SynTree/$(DEPDIR)/cfa_cpp-Constant.Po
     2056@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/Constant.cc' object='SynTree/cfa_cpp-Constant.o' libtool=no @AMDEPBACKSLASH@
     2057@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2058@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-Constant.o `test -f 'SynTree/Constant.cc' || echo '$(srcdir)/'`SynTree/Constant.cc
     2059
     2060SynTree/cfa_cpp-Constant.obj: SynTree/Constant.cc
     2061@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-Constant.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-Constant.Tpo -c -o SynTree/cfa_cpp-Constant.obj `if test -f 'SynTree/Constant.cc'; then $(CYGPATH_W) 'SynTree/Constant.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Constant.cc'; fi`
     2062@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-Constant.Tpo SynTree/$(DEPDIR)/cfa_cpp-Constant.Po
     2063@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/Constant.cc' object='SynTree/cfa_cpp-Constant.obj' libtool=no @AMDEPBACKSLASH@
     2064@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2065@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-Constant.obj `if test -f 'SynTree/Constant.cc'; then $(CYGPATH_W) 'SynTree/Constant.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Constant.cc'; fi`
     2066
     2067SynTree/cfa_cpp-Expression.o: SynTree/Expression.cc
     2068@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-Expression.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-Expression.Tpo -c -o SynTree/cfa_cpp-Expression.o `test -f 'SynTree/Expression.cc' || echo '$(srcdir)/'`SynTree/Expression.cc
     2069@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-Expression.Tpo SynTree/$(DEPDIR)/cfa_cpp-Expression.Po
     2070@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/Expression.cc' object='SynTree/cfa_cpp-Expression.o' libtool=no @AMDEPBACKSLASH@
     2071@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2072@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-Expression.o `test -f 'SynTree/Expression.cc' || echo '$(srcdir)/'`SynTree/Expression.cc
     2073
     2074SynTree/cfa_cpp-Expression.obj: SynTree/Expression.cc
     2075@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-Expression.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-Expression.Tpo -c -o SynTree/cfa_cpp-Expression.obj `if test -f 'SynTree/Expression.cc'; then $(CYGPATH_W) 'SynTree/Expression.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Expression.cc'; fi`
     2076@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-Expression.Tpo SynTree/$(DEPDIR)/cfa_cpp-Expression.Po
     2077@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/Expression.cc' object='SynTree/cfa_cpp-Expression.obj' libtool=no @AMDEPBACKSLASH@
     2078@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2079@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-Expression.obj `if test -f 'SynTree/Expression.cc'; then $(CYGPATH_W) 'SynTree/Expression.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Expression.cc'; fi`
     2080
     2081SynTree/cfa_cpp-TupleExpr.o: SynTree/TupleExpr.cc
     2082@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-TupleExpr.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-TupleExpr.Tpo -c -o SynTree/cfa_cpp-TupleExpr.o `test -f 'SynTree/TupleExpr.cc' || echo '$(srcdir)/'`SynTree/TupleExpr.cc
     2083@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-TupleExpr.Tpo SynTree/$(DEPDIR)/cfa_cpp-TupleExpr.Po
     2084@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/TupleExpr.cc' object='SynTree/cfa_cpp-TupleExpr.o' libtool=no @AMDEPBACKSLASH@
     2085@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2086@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-TupleExpr.o `test -f 'SynTree/TupleExpr.cc' || echo '$(srcdir)/'`SynTree/TupleExpr.cc
     2087
     2088SynTree/cfa_cpp-TupleExpr.obj: SynTree/TupleExpr.cc
     2089@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-TupleExpr.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-TupleExpr.Tpo -c -o SynTree/cfa_cpp-TupleExpr.obj `if test -f 'SynTree/TupleExpr.cc'; then $(CYGPATH_W) 'SynTree/TupleExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TupleExpr.cc'; fi`
     2090@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-TupleExpr.Tpo SynTree/$(DEPDIR)/cfa_cpp-TupleExpr.Po
     2091@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/TupleExpr.cc' object='SynTree/cfa_cpp-TupleExpr.obj' libtool=no @AMDEPBACKSLASH@
     2092@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2093@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-TupleExpr.obj `if test -f 'SynTree/TupleExpr.cc'; then $(CYGPATH_W) 'SynTree/TupleExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TupleExpr.cc'; fi`
     2094
     2095SynTree/cfa_cpp-CommaExpr.o: SynTree/CommaExpr.cc
     2096@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-CommaExpr.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-CommaExpr.Tpo -c -o SynTree/cfa_cpp-CommaExpr.o `test -f 'SynTree/CommaExpr.cc' || echo '$(srcdir)/'`SynTree/CommaExpr.cc
     2097@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-CommaExpr.Tpo SynTree/$(DEPDIR)/cfa_cpp-CommaExpr.Po
     2098@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/CommaExpr.cc' object='SynTree/cfa_cpp-CommaExpr.o' libtool=no @AMDEPBACKSLASH@
     2099@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2100@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-CommaExpr.o `test -f 'SynTree/CommaExpr.cc' || echo '$(srcdir)/'`SynTree/CommaExpr.cc
     2101
     2102SynTree/cfa_cpp-CommaExpr.obj: SynTree/CommaExpr.cc
     2103@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-CommaExpr.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-CommaExpr.Tpo -c -o SynTree/cfa_cpp-CommaExpr.obj `if test -f 'SynTree/CommaExpr.cc'; then $(CYGPATH_W) 'SynTree/CommaExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/CommaExpr.cc'; fi`
     2104@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-CommaExpr.Tpo SynTree/$(DEPDIR)/cfa_cpp-CommaExpr.Po
     2105@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/CommaExpr.cc' object='SynTree/cfa_cpp-CommaExpr.obj' libtool=no @AMDEPBACKSLASH@
     2106@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2107@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-CommaExpr.obj `if test -f 'SynTree/CommaExpr.cc'; then $(CYGPATH_W) 'SynTree/CommaExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/CommaExpr.cc'; fi`
     2108
     2109SynTree/cfa_cpp-TypeExpr.o: SynTree/TypeExpr.cc
     2110@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-TypeExpr.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-TypeExpr.Tpo -c -o SynTree/cfa_cpp-TypeExpr.o `test -f 'SynTree/TypeExpr.cc' || echo '$(srcdir)/'`SynTree/TypeExpr.cc
     2111@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-TypeExpr.Tpo SynTree/$(DEPDIR)/cfa_cpp-TypeExpr.Po
     2112@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/TypeExpr.cc' object='SynTree/cfa_cpp-TypeExpr.o' libtool=no @AMDEPBACKSLASH@
     2113@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2114@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-TypeExpr.o `test -f 'SynTree/TypeExpr.cc' || echo '$(srcdir)/'`SynTree/TypeExpr.cc
     2115
     2116SynTree/cfa_cpp-TypeExpr.obj: SynTree/TypeExpr.cc
     2117@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-TypeExpr.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-TypeExpr.Tpo -c -o SynTree/cfa_cpp-TypeExpr.obj `if test -f 'SynTree/TypeExpr.cc'; then $(CYGPATH_W) 'SynTree/TypeExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeExpr.cc'; fi`
     2118@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-TypeExpr.Tpo SynTree/$(DEPDIR)/cfa_cpp-TypeExpr.Po
     2119@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/TypeExpr.cc' object='SynTree/cfa_cpp-TypeExpr.obj' libtool=no @AMDEPBACKSLASH@
     2120@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2121@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-TypeExpr.obj `if test -f 'SynTree/TypeExpr.cc'; then $(CYGPATH_W) 'SynTree/TypeExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeExpr.cc'; fi`
     2122
     2123SynTree/cfa_cpp-ApplicationExpr.o: SynTree/ApplicationExpr.cc
     2124@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-ApplicationExpr.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-ApplicationExpr.Tpo -c -o SynTree/cfa_cpp-ApplicationExpr.o `test -f 'SynTree/ApplicationExpr.cc' || echo '$(srcdir)/'`SynTree/ApplicationExpr.cc
     2125@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-ApplicationExpr.Tpo SynTree/$(DEPDIR)/cfa_cpp-ApplicationExpr.Po
     2126@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/ApplicationExpr.cc' object='SynTree/cfa_cpp-ApplicationExpr.o' libtool=no @AMDEPBACKSLASH@
     2127@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2128@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-ApplicationExpr.o `test -f 'SynTree/ApplicationExpr.cc' || echo '$(srcdir)/'`SynTree/ApplicationExpr.cc
     2129
     2130SynTree/cfa_cpp-ApplicationExpr.obj: SynTree/ApplicationExpr.cc
     2131@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-ApplicationExpr.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-ApplicationExpr.Tpo -c -o SynTree/cfa_cpp-ApplicationExpr.obj `if test -f 'SynTree/ApplicationExpr.cc'; then $(CYGPATH_W) 'SynTree/ApplicationExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ApplicationExpr.cc'; fi`
     2132@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-ApplicationExpr.Tpo SynTree/$(DEPDIR)/cfa_cpp-ApplicationExpr.Po
     2133@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/ApplicationExpr.cc' object='SynTree/cfa_cpp-ApplicationExpr.obj' libtool=no @AMDEPBACKSLASH@
     2134@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2135@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-ApplicationExpr.obj `if test -f 'SynTree/ApplicationExpr.cc'; then $(CYGPATH_W) 'SynTree/ApplicationExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ApplicationExpr.cc'; fi`
     2136
     2137SynTree/cfa_cpp-AddressExpr.o: SynTree/AddressExpr.cc
     2138@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-AddressExpr.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-AddressExpr.Tpo -c -o SynTree/cfa_cpp-AddressExpr.o `test -f 'SynTree/AddressExpr.cc' || echo '$(srcdir)/'`SynTree/AddressExpr.cc
     2139@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-AddressExpr.Tpo SynTree/$(DEPDIR)/cfa_cpp-AddressExpr.Po
     2140@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/AddressExpr.cc' object='SynTree/cfa_cpp-AddressExpr.o' libtool=no @AMDEPBACKSLASH@
     2141@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2142@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-AddressExpr.o `test -f 'SynTree/AddressExpr.cc' || echo '$(srcdir)/'`SynTree/AddressExpr.cc
     2143
     2144SynTree/cfa_cpp-AddressExpr.obj: SynTree/AddressExpr.cc
     2145@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-AddressExpr.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-AddressExpr.Tpo -c -o SynTree/cfa_cpp-AddressExpr.obj `if test -f 'SynTree/AddressExpr.cc'; then $(CYGPATH_W) 'SynTree/AddressExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AddressExpr.cc'; fi`
     2146@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-AddressExpr.Tpo SynTree/$(DEPDIR)/cfa_cpp-AddressExpr.Po
     2147@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/AddressExpr.cc' object='SynTree/cfa_cpp-AddressExpr.obj' libtool=no @AMDEPBACKSLASH@
     2148@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2149@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-AddressExpr.obj `if test -f 'SynTree/AddressExpr.cc'; then $(CYGPATH_W) 'SynTree/AddressExpr.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AddressExpr.cc'; fi`
     2150
     2151SynTree/cfa_cpp-Statement.o: SynTree/Statement.cc
     2152@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-Statement.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-Statement.Tpo -c -o SynTree/cfa_cpp-Statement.o `test -f 'SynTree/Statement.cc' || echo '$(srcdir)/'`SynTree/Statement.cc
     2153@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-Statement.Tpo SynTree/$(DEPDIR)/cfa_cpp-Statement.Po
     2154@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/Statement.cc' object='SynTree/cfa_cpp-Statement.o' libtool=no @AMDEPBACKSLASH@
     2155@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2156@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-Statement.o `test -f 'SynTree/Statement.cc' || echo '$(srcdir)/'`SynTree/Statement.cc
     2157
     2158SynTree/cfa_cpp-Statement.obj: SynTree/Statement.cc
     2159@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-Statement.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-Statement.Tpo -c -o SynTree/cfa_cpp-Statement.obj `if test -f 'SynTree/Statement.cc'; then $(CYGPATH_W) 'SynTree/Statement.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Statement.cc'; fi`
     2160@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-Statement.Tpo SynTree/$(DEPDIR)/cfa_cpp-Statement.Po
     2161@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/Statement.cc' object='SynTree/cfa_cpp-Statement.obj' libtool=no @AMDEPBACKSLASH@
     2162@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2163@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-Statement.obj `if test -f 'SynTree/Statement.cc'; then $(CYGPATH_W) 'SynTree/Statement.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Statement.cc'; fi`
     2164
     2165SynTree/cfa_cpp-CompoundStmt.o: SynTree/CompoundStmt.cc
     2166@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-CompoundStmt.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-CompoundStmt.Tpo -c -o SynTree/cfa_cpp-CompoundStmt.o `test -f 'SynTree/CompoundStmt.cc' || echo '$(srcdir)/'`SynTree/CompoundStmt.cc
     2167@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-CompoundStmt.Tpo SynTree/$(DEPDIR)/cfa_cpp-CompoundStmt.Po
     2168@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/CompoundStmt.cc' object='SynTree/cfa_cpp-CompoundStmt.o' libtool=no @AMDEPBACKSLASH@
     2169@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2170@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-CompoundStmt.o `test -f 'SynTree/CompoundStmt.cc' || echo '$(srcdir)/'`SynTree/CompoundStmt.cc
     2171
     2172SynTree/cfa_cpp-CompoundStmt.obj: SynTree/CompoundStmt.cc
     2173@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-CompoundStmt.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-CompoundStmt.Tpo -c -o SynTree/cfa_cpp-CompoundStmt.obj `if test -f 'SynTree/CompoundStmt.cc'; then $(CYGPATH_W) 'SynTree/CompoundStmt.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/CompoundStmt.cc'; fi`
     2174@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-CompoundStmt.Tpo SynTree/$(DEPDIR)/cfa_cpp-CompoundStmt.Po
     2175@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/CompoundStmt.cc' object='SynTree/cfa_cpp-CompoundStmt.obj' libtool=no @AMDEPBACKSLASH@
     2176@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2177@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-CompoundStmt.obj `if test -f 'SynTree/CompoundStmt.cc'; then $(CYGPATH_W) 'SynTree/CompoundStmt.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/CompoundStmt.cc'; fi`
     2178
     2179SynTree/cfa_cpp-DeclStmt.o: SynTree/DeclStmt.cc
     2180@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-DeclStmt.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-DeclStmt.Tpo -c -o SynTree/cfa_cpp-DeclStmt.o `test -f 'SynTree/DeclStmt.cc' || echo '$(srcdir)/'`SynTree/DeclStmt.cc
     2181@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-DeclStmt.Tpo SynTree/$(DEPDIR)/cfa_cpp-DeclStmt.Po
     2182@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/DeclStmt.cc' object='SynTree/cfa_cpp-DeclStmt.o' libtool=no @AMDEPBACKSLASH@
     2183@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2184@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-DeclStmt.o `test -f 'SynTree/DeclStmt.cc' || echo '$(srcdir)/'`SynTree/DeclStmt.cc
     2185
     2186SynTree/cfa_cpp-DeclStmt.obj: SynTree/DeclStmt.cc
     2187@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-DeclStmt.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-DeclStmt.Tpo -c -o SynTree/cfa_cpp-DeclStmt.obj `if test -f 'SynTree/DeclStmt.cc'; then $(CYGPATH_W) 'SynTree/DeclStmt.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/DeclStmt.cc'; fi`
     2188@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-DeclStmt.Tpo SynTree/$(DEPDIR)/cfa_cpp-DeclStmt.Po
     2189@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/DeclStmt.cc' object='SynTree/cfa_cpp-DeclStmt.obj' libtool=no @AMDEPBACKSLASH@
     2190@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2191@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-DeclStmt.obj `if test -f 'SynTree/DeclStmt.cc'; then $(CYGPATH_W) 'SynTree/DeclStmt.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/DeclStmt.cc'; fi`
     2192
     2193SynTree/cfa_cpp-Declaration.o: SynTree/Declaration.cc
     2194@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-Declaration.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-Declaration.Tpo -c -o SynTree/cfa_cpp-Declaration.o `test -f 'SynTree/Declaration.cc' || echo '$(srcdir)/'`SynTree/Declaration.cc
     2195@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-Declaration.Tpo SynTree/$(DEPDIR)/cfa_cpp-Declaration.Po
     2196@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/Declaration.cc' object='SynTree/cfa_cpp-Declaration.o' libtool=no @AMDEPBACKSLASH@
     2197@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2198@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-Declaration.o `test -f 'SynTree/Declaration.cc' || echo '$(srcdir)/'`SynTree/Declaration.cc
     2199
     2200SynTree/cfa_cpp-Declaration.obj: SynTree/Declaration.cc
     2201@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-Declaration.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-Declaration.Tpo -c -o SynTree/cfa_cpp-Declaration.obj `if test -f 'SynTree/Declaration.cc'; then $(CYGPATH_W) 'SynTree/Declaration.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Declaration.cc'; fi`
     2202@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-Declaration.Tpo SynTree/$(DEPDIR)/cfa_cpp-Declaration.Po
     2203@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/Declaration.cc' object='SynTree/cfa_cpp-Declaration.obj' libtool=no @AMDEPBACKSLASH@
     2204@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2205@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-Declaration.obj `if test -f 'SynTree/Declaration.cc'; then $(CYGPATH_W) 'SynTree/Declaration.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Declaration.cc'; fi`
     2206
     2207SynTree/cfa_cpp-DeclarationWithType.o: SynTree/DeclarationWithType.cc
     2208@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-DeclarationWithType.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-DeclarationWithType.Tpo -c -o SynTree/cfa_cpp-DeclarationWithType.o `test -f 'SynTree/DeclarationWithType.cc' || echo '$(srcdir)/'`SynTree/DeclarationWithType.cc
     2209@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-DeclarationWithType.Tpo SynTree/$(DEPDIR)/cfa_cpp-DeclarationWithType.Po
     2210@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/DeclarationWithType.cc' object='SynTree/cfa_cpp-DeclarationWithType.o' libtool=no @AMDEPBACKSLASH@
     2211@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2212@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-DeclarationWithType.o `test -f 'SynTree/DeclarationWithType.cc' || echo '$(srcdir)/'`SynTree/DeclarationWithType.cc
     2213
     2214SynTree/cfa_cpp-DeclarationWithType.obj: SynTree/DeclarationWithType.cc
     2215@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-DeclarationWithType.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-DeclarationWithType.Tpo -c -o SynTree/cfa_cpp-DeclarationWithType.obj `if test -f 'SynTree/DeclarationWithType.cc'; then $(CYGPATH_W) 'SynTree/DeclarationWithType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/DeclarationWithType.cc'; fi`
     2216@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-DeclarationWithType.Tpo SynTree/$(DEPDIR)/cfa_cpp-DeclarationWithType.Po
     2217@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/DeclarationWithType.cc' object='SynTree/cfa_cpp-DeclarationWithType.obj' libtool=no @AMDEPBACKSLASH@
     2218@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2219@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-DeclarationWithType.obj `if test -f 'SynTree/DeclarationWithType.cc'; then $(CYGPATH_W) 'SynTree/DeclarationWithType.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/DeclarationWithType.cc'; fi`
     2220
     2221SynTree/cfa_cpp-ObjectDecl.o: SynTree/ObjectDecl.cc
     2222@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-ObjectDecl.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-ObjectDecl.Tpo -c -o SynTree/cfa_cpp-ObjectDecl.o `test -f 'SynTree/ObjectDecl.cc' || echo '$(srcdir)/'`SynTree/ObjectDecl.cc
     2223@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-ObjectDecl.Tpo SynTree/$(DEPDIR)/cfa_cpp-ObjectDecl.Po
     2224@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/ObjectDecl.cc' object='SynTree/cfa_cpp-ObjectDecl.o' libtool=no @AMDEPBACKSLASH@
     2225@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2226@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-ObjectDecl.o `test -f 'SynTree/ObjectDecl.cc' || echo '$(srcdir)/'`SynTree/ObjectDecl.cc
     2227
     2228SynTree/cfa_cpp-ObjectDecl.obj: SynTree/ObjectDecl.cc
     2229@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-ObjectDecl.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-ObjectDecl.Tpo -c -o SynTree/cfa_cpp-ObjectDecl.obj `if test -f 'SynTree/ObjectDecl.cc'; then $(CYGPATH_W) 'SynTree/ObjectDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ObjectDecl.cc'; fi`
     2230@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-ObjectDecl.Tpo SynTree/$(DEPDIR)/cfa_cpp-ObjectDecl.Po
     2231@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/ObjectDecl.cc' object='SynTree/cfa_cpp-ObjectDecl.obj' libtool=no @AMDEPBACKSLASH@
     2232@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2233@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-ObjectDecl.obj `if test -f 'SynTree/ObjectDecl.cc'; then $(CYGPATH_W) 'SynTree/ObjectDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/ObjectDecl.cc'; fi`
     2234
     2235SynTree/cfa_cpp-FunctionDecl.o: SynTree/FunctionDecl.cc
     2236@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-FunctionDecl.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-FunctionDecl.Tpo -c -o SynTree/cfa_cpp-FunctionDecl.o `test -f 'SynTree/FunctionDecl.cc' || echo '$(srcdir)/'`SynTree/FunctionDecl.cc
     2237@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-FunctionDecl.Tpo SynTree/$(DEPDIR)/cfa_cpp-FunctionDecl.Po
     2238@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/FunctionDecl.cc' object='SynTree/cfa_cpp-FunctionDecl.o' libtool=no @AMDEPBACKSLASH@
     2239@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2240@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-FunctionDecl.o `test -f 'SynTree/FunctionDecl.cc' || echo '$(srcdir)/'`SynTree/FunctionDecl.cc
     2241
     2242SynTree/cfa_cpp-FunctionDecl.obj: SynTree/FunctionDecl.cc
     2243@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-FunctionDecl.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-FunctionDecl.Tpo -c -o SynTree/cfa_cpp-FunctionDecl.obj `if test -f 'SynTree/FunctionDecl.cc'; then $(CYGPATH_W) 'SynTree/FunctionDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/FunctionDecl.cc'; fi`
     2244@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-FunctionDecl.Tpo SynTree/$(DEPDIR)/cfa_cpp-FunctionDecl.Po
     2245@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/FunctionDecl.cc' object='SynTree/cfa_cpp-FunctionDecl.obj' libtool=no @AMDEPBACKSLASH@
     2246@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2247@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-FunctionDecl.obj `if test -f 'SynTree/FunctionDecl.cc'; then $(CYGPATH_W) 'SynTree/FunctionDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/FunctionDecl.cc'; fi`
     2248
     2249SynTree/cfa_cpp-AggregateDecl.o: SynTree/AggregateDecl.cc
     2250@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-AggregateDecl.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-AggregateDecl.Tpo -c -o SynTree/cfa_cpp-AggregateDecl.o `test -f 'SynTree/AggregateDecl.cc' || echo '$(srcdir)/'`SynTree/AggregateDecl.cc
     2251@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-AggregateDecl.Tpo SynTree/$(DEPDIR)/cfa_cpp-AggregateDecl.Po
     2252@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/AggregateDecl.cc' object='SynTree/cfa_cpp-AggregateDecl.o' libtool=no @AMDEPBACKSLASH@
     2253@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2254@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-AggregateDecl.o `test -f 'SynTree/AggregateDecl.cc' || echo '$(srcdir)/'`SynTree/AggregateDecl.cc
     2255
     2256SynTree/cfa_cpp-AggregateDecl.obj: SynTree/AggregateDecl.cc
     2257@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-AggregateDecl.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-AggregateDecl.Tpo -c -o SynTree/cfa_cpp-AggregateDecl.obj `if test -f 'SynTree/AggregateDecl.cc'; then $(CYGPATH_W) 'SynTree/AggregateDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AggregateDecl.cc'; fi`
     2258@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-AggregateDecl.Tpo SynTree/$(DEPDIR)/cfa_cpp-AggregateDecl.Po
     2259@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/AggregateDecl.cc' object='SynTree/cfa_cpp-AggregateDecl.obj' libtool=no @AMDEPBACKSLASH@
     2260@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2261@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-AggregateDecl.obj `if test -f 'SynTree/AggregateDecl.cc'; then $(CYGPATH_W) 'SynTree/AggregateDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/AggregateDecl.cc'; fi`
     2262
     2263SynTree/cfa_cpp-NamedTypeDecl.o: SynTree/NamedTypeDecl.cc
     2264@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-NamedTypeDecl.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-NamedTypeDecl.Tpo -c -o SynTree/cfa_cpp-NamedTypeDecl.o `test -f 'SynTree/NamedTypeDecl.cc' || echo '$(srcdir)/'`SynTree/NamedTypeDecl.cc
     2265@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-NamedTypeDecl.Tpo SynTree/$(DEPDIR)/cfa_cpp-NamedTypeDecl.Po
     2266@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/NamedTypeDecl.cc' object='SynTree/cfa_cpp-NamedTypeDecl.o' libtool=no @AMDEPBACKSLASH@
     2267@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2268@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-NamedTypeDecl.o `test -f 'SynTree/NamedTypeDecl.cc' || echo '$(srcdir)/'`SynTree/NamedTypeDecl.cc
     2269
     2270SynTree/cfa_cpp-NamedTypeDecl.obj: SynTree/NamedTypeDecl.cc
     2271@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-NamedTypeDecl.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-NamedTypeDecl.Tpo -c -o SynTree/cfa_cpp-NamedTypeDecl.obj `if test -f 'SynTree/NamedTypeDecl.cc'; then $(CYGPATH_W) 'SynTree/NamedTypeDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/NamedTypeDecl.cc'; fi`
     2272@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-NamedTypeDecl.Tpo SynTree/$(DEPDIR)/cfa_cpp-NamedTypeDecl.Po
     2273@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/NamedTypeDecl.cc' object='SynTree/cfa_cpp-NamedTypeDecl.obj' libtool=no @AMDEPBACKSLASH@
     2274@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2275@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-NamedTypeDecl.obj `if test -f 'SynTree/NamedTypeDecl.cc'; then $(CYGPATH_W) 'SynTree/NamedTypeDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/NamedTypeDecl.cc'; fi`
     2276
     2277SynTree/cfa_cpp-TypeDecl.o: SynTree/TypeDecl.cc
     2278@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-TypeDecl.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-TypeDecl.Tpo -c -o SynTree/cfa_cpp-TypeDecl.o `test -f 'SynTree/TypeDecl.cc' || echo '$(srcdir)/'`SynTree/TypeDecl.cc
     2279@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-TypeDecl.Tpo SynTree/$(DEPDIR)/cfa_cpp-TypeDecl.Po
     2280@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/TypeDecl.cc' object='SynTree/cfa_cpp-TypeDecl.o' libtool=no @AMDEPBACKSLASH@
     2281@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2282@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-TypeDecl.o `test -f 'SynTree/TypeDecl.cc' || echo '$(srcdir)/'`SynTree/TypeDecl.cc
     2283
     2284SynTree/cfa_cpp-TypeDecl.obj: SynTree/TypeDecl.cc
     2285@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-TypeDecl.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-TypeDecl.Tpo -c -o SynTree/cfa_cpp-TypeDecl.obj `if test -f 'SynTree/TypeDecl.cc'; then $(CYGPATH_W) 'SynTree/TypeDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeDecl.cc'; fi`
     2286@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-TypeDecl.Tpo SynTree/$(DEPDIR)/cfa_cpp-TypeDecl.Po
     2287@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/TypeDecl.cc' object='SynTree/cfa_cpp-TypeDecl.obj' libtool=no @AMDEPBACKSLASH@
     2288@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2289@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-TypeDecl.obj `if test -f 'SynTree/TypeDecl.cc'; then $(CYGPATH_W) 'SynTree/TypeDecl.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeDecl.cc'; fi`
     2290
     2291SynTree/cfa_cpp-Initializer.o: SynTree/Initializer.cc
     2292@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-Initializer.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-Initializer.Tpo -c -o SynTree/cfa_cpp-Initializer.o `test -f 'SynTree/Initializer.cc' || echo '$(srcdir)/'`SynTree/Initializer.cc
     2293@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-Initializer.Tpo SynTree/$(DEPDIR)/cfa_cpp-Initializer.Po
     2294@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/Initializer.cc' object='SynTree/cfa_cpp-Initializer.o' libtool=no @AMDEPBACKSLASH@
     2295@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2296@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-Initializer.o `test -f 'SynTree/Initializer.cc' || echo '$(srcdir)/'`SynTree/Initializer.cc
     2297
     2298SynTree/cfa_cpp-Initializer.obj: SynTree/Initializer.cc
     2299@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-Initializer.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-Initializer.Tpo -c -o SynTree/cfa_cpp-Initializer.obj `if test -f 'SynTree/Initializer.cc'; then $(CYGPATH_W) 'SynTree/Initializer.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Initializer.cc'; fi`
     2300@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-Initializer.Tpo SynTree/$(DEPDIR)/cfa_cpp-Initializer.Po
     2301@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/Initializer.cc' object='SynTree/cfa_cpp-Initializer.obj' libtool=no @AMDEPBACKSLASH@
     2302@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2303@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-Initializer.obj `if test -f 'SynTree/Initializer.cc'; then $(CYGPATH_W) 'SynTree/Initializer.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Initializer.cc'; fi`
     2304
     2305SynTree/cfa_cpp-Visitor.o: SynTree/Visitor.cc
     2306@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-Visitor.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-Visitor.Tpo -c -o SynTree/cfa_cpp-Visitor.o `test -f 'SynTree/Visitor.cc' || echo '$(srcdir)/'`SynTree/Visitor.cc
     2307@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-Visitor.Tpo SynTree/$(DEPDIR)/cfa_cpp-Visitor.Po
     2308@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/Visitor.cc' object='SynTree/cfa_cpp-Visitor.o' libtool=no @AMDEPBACKSLASH@
     2309@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2310@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-Visitor.o `test -f 'SynTree/Visitor.cc' || echo '$(srcdir)/'`SynTree/Visitor.cc
     2311
     2312SynTree/cfa_cpp-Visitor.obj: SynTree/Visitor.cc
     2313@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-Visitor.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-Visitor.Tpo -c -o SynTree/cfa_cpp-Visitor.obj `if test -f 'SynTree/Visitor.cc'; then $(CYGPATH_W) 'SynTree/Visitor.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Visitor.cc'; fi`
     2314@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-Visitor.Tpo SynTree/$(DEPDIR)/cfa_cpp-Visitor.Po
     2315@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/Visitor.cc' object='SynTree/cfa_cpp-Visitor.obj' libtool=no @AMDEPBACKSLASH@
     2316@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2317@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-Visitor.obj `if test -f 'SynTree/Visitor.cc'; then $(CYGPATH_W) 'SynTree/Visitor.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Visitor.cc'; fi`
     2318
     2319SynTree/cfa_cpp-Mutator.o: SynTree/Mutator.cc
     2320@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-Mutator.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-Mutator.Tpo -c -o SynTree/cfa_cpp-Mutator.o `test -f 'SynTree/Mutator.cc' || echo '$(srcdir)/'`SynTree/Mutator.cc
     2321@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-Mutator.Tpo SynTree/$(DEPDIR)/cfa_cpp-Mutator.Po
     2322@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/Mutator.cc' object='SynTree/cfa_cpp-Mutator.o' libtool=no @AMDEPBACKSLASH@
     2323@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2324@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-Mutator.o `test -f 'SynTree/Mutator.cc' || echo '$(srcdir)/'`SynTree/Mutator.cc
     2325
     2326SynTree/cfa_cpp-Mutator.obj: SynTree/Mutator.cc
     2327@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-Mutator.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-Mutator.Tpo -c -o SynTree/cfa_cpp-Mutator.obj `if test -f 'SynTree/Mutator.cc'; then $(CYGPATH_W) 'SynTree/Mutator.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Mutator.cc'; fi`
     2328@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-Mutator.Tpo SynTree/$(DEPDIR)/cfa_cpp-Mutator.Po
     2329@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/Mutator.cc' object='SynTree/cfa_cpp-Mutator.obj' libtool=no @AMDEPBACKSLASH@
     2330@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2331@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-Mutator.obj `if test -f 'SynTree/Mutator.cc'; then $(CYGPATH_W) 'SynTree/Mutator.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/Mutator.cc'; fi`
     2332
     2333SynTree/cfa_cpp-CodeGenVisitor.o: SynTree/CodeGenVisitor.cc
     2334@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-CodeGenVisitor.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-CodeGenVisitor.Tpo -c -o SynTree/cfa_cpp-CodeGenVisitor.o `test -f 'SynTree/CodeGenVisitor.cc' || echo '$(srcdir)/'`SynTree/CodeGenVisitor.cc
     2335@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-CodeGenVisitor.Tpo SynTree/$(DEPDIR)/cfa_cpp-CodeGenVisitor.Po
     2336@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/CodeGenVisitor.cc' object='SynTree/cfa_cpp-CodeGenVisitor.o' libtool=no @AMDEPBACKSLASH@
     2337@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2338@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-CodeGenVisitor.o `test -f 'SynTree/CodeGenVisitor.cc' || echo '$(srcdir)/'`SynTree/CodeGenVisitor.cc
     2339
     2340SynTree/cfa_cpp-CodeGenVisitor.obj: SynTree/CodeGenVisitor.cc
     2341@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-CodeGenVisitor.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-CodeGenVisitor.Tpo -c -o SynTree/cfa_cpp-CodeGenVisitor.obj `if test -f 'SynTree/CodeGenVisitor.cc'; then $(CYGPATH_W) 'SynTree/CodeGenVisitor.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/CodeGenVisitor.cc'; fi`
     2342@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-CodeGenVisitor.Tpo SynTree/$(DEPDIR)/cfa_cpp-CodeGenVisitor.Po
     2343@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/CodeGenVisitor.cc' object='SynTree/cfa_cpp-CodeGenVisitor.obj' libtool=no @AMDEPBACKSLASH@
     2344@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2345@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-CodeGenVisitor.obj `if test -f 'SynTree/CodeGenVisitor.cc'; then $(CYGPATH_W) 'SynTree/CodeGenVisitor.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/CodeGenVisitor.cc'; fi`
     2346
     2347SynTree/cfa_cpp-TypeSubstitution.o: SynTree/TypeSubstitution.cc
     2348@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-TypeSubstitution.o -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-TypeSubstitution.Tpo -c -o SynTree/cfa_cpp-TypeSubstitution.o `test -f 'SynTree/TypeSubstitution.cc' || echo '$(srcdir)/'`SynTree/TypeSubstitution.cc
     2349@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-TypeSubstitution.Tpo SynTree/$(DEPDIR)/cfa_cpp-TypeSubstitution.Po
     2350@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/TypeSubstitution.cc' object='SynTree/cfa_cpp-TypeSubstitution.o' libtool=no @AMDEPBACKSLASH@
     2351@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2352@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-TypeSubstitution.o `test -f 'SynTree/TypeSubstitution.cc' || echo '$(srcdir)/'`SynTree/TypeSubstitution.cc
     2353
     2354SynTree/cfa_cpp-TypeSubstitution.obj: SynTree/TypeSubstitution.cc
     2355@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT SynTree/cfa_cpp-TypeSubstitution.obj -MD -MP -MF SynTree/$(DEPDIR)/cfa_cpp-TypeSubstitution.Tpo -c -o SynTree/cfa_cpp-TypeSubstitution.obj `if test -f 'SynTree/TypeSubstitution.cc'; then $(CYGPATH_W) 'SynTree/TypeSubstitution.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeSubstitution.cc'; fi`
     2356@am__fastdepCXX_TRUE@   $(am__mv) SynTree/$(DEPDIR)/cfa_cpp-TypeSubstitution.Tpo SynTree/$(DEPDIR)/cfa_cpp-TypeSubstitution.Po
     2357@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='SynTree/TypeSubstitution.cc' object='SynTree/cfa_cpp-TypeSubstitution.obj' libtool=no @AMDEPBACKSLASH@
     2358@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2359@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o SynTree/cfa_cpp-TypeSubstitution.obj `if test -f 'SynTree/TypeSubstitution.cc'; then $(CYGPATH_W) 'SynTree/TypeSubstitution.cc'; else $(CYGPATH_W) '$(srcdir)/SynTree/TypeSubstitution.cc'; fi`
     2360
     2361Tuples/cfa_cpp-Mutate.o: Tuples/Mutate.cc
     2362@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/cfa_cpp-Mutate.o -MD -MP -MF Tuples/$(DEPDIR)/cfa_cpp-Mutate.Tpo -c -o Tuples/cfa_cpp-Mutate.o `test -f 'Tuples/Mutate.cc' || echo '$(srcdir)/'`Tuples/Mutate.cc
     2363@am__fastdepCXX_TRUE@   $(am__mv) Tuples/$(DEPDIR)/cfa_cpp-Mutate.Tpo Tuples/$(DEPDIR)/cfa_cpp-Mutate.Po
     2364@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Tuples/Mutate.cc' object='Tuples/cfa_cpp-Mutate.o' libtool=no @AMDEPBACKSLASH@
     2365@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2366@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/cfa_cpp-Mutate.o `test -f 'Tuples/Mutate.cc' || echo '$(srcdir)/'`Tuples/Mutate.cc
     2367
     2368Tuples/cfa_cpp-Mutate.obj: Tuples/Mutate.cc
     2369@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/cfa_cpp-Mutate.obj -MD -MP -MF Tuples/$(DEPDIR)/cfa_cpp-Mutate.Tpo -c -o Tuples/cfa_cpp-Mutate.obj `if test -f 'Tuples/Mutate.cc'; then $(CYGPATH_W) 'Tuples/Mutate.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/Mutate.cc'; fi`
     2370@am__fastdepCXX_TRUE@   $(am__mv) Tuples/$(DEPDIR)/cfa_cpp-Mutate.Tpo Tuples/$(DEPDIR)/cfa_cpp-Mutate.Po
     2371@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Tuples/Mutate.cc' object='Tuples/cfa_cpp-Mutate.obj' libtool=no @AMDEPBACKSLASH@
     2372@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2373@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/cfa_cpp-Mutate.obj `if test -f 'Tuples/Mutate.cc'; then $(CYGPATH_W) 'Tuples/Mutate.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/Mutate.cc'; fi`
     2374
     2375Tuples/cfa_cpp-AssignExpand.o: Tuples/AssignExpand.cc
     2376@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/cfa_cpp-AssignExpand.o -MD -MP -MF Tuples/$(DEPDIR)/cfa_cpp-AssignExpand.Tpo -c -o Tuples/cfa_cpp-AssignExpand.o `test -f 'Tuples/AssignExpand.cc' || echo '$(srcdir)/'`Tuples/AssignExpand.cc
     2377@am__fastdepCXX_TRUE@   $(am__mv) Tuples/$(DEPDIR)/cfa_cpp-AssignExpand.Tpo Tuples/$(DEPDIR)/cfa_cpp-AssignExpand.Po
     2378@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Tuples/AssignExpand.cc' object='Tuples/cfa_cpp-AssignExpand.o' libtool=no @AMDEPBACKSLASH@
     2379@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2380@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/cfa_cpp-AssignExpand.o `test -f 'Tuples/AssignExpand.cc' || echo '$(srcdir)/'`Tuples/AssignExpand.cc
     2381
     2382Tuples/cfa_cpp-AssignExpand.obj: Tuples/AssignExpand.cc
     2383@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/cfa_cpp-AssignExpand.obj -MD -MP -MF Tuples/$(DEPDIR)/cfa_cpp-AssignExpand.Tpo -c -o Tuples/cfa_cpp-AssignExpand.obj `if test -f 'Tuples/AssignExpand.cc'; then $(CYGPATH_W) 'Tuples/AssignExpand.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/AssignExpand.cc'; fi`
     2384@am__fastdepCXX_TRUE@   $(am__mv) Tuples/$(DEPDIR)/cfa_cpp-AssignExpand.Tpo Tuples/$(DEPDIR)/cfa_cpp-AssignExpand.Po
     2385@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Tuples/AssignExpand.cc' object='Tuples/cfa_cpp-AssignExpand.obj' libtool=no @AMDEPBACKSLASH@
     2386@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2387@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/cfa_cpp-AssignExpand.obj `if test -f 'Tuples/AssignExpand.cc'; then $(CYGPATH_W) 'Tuples/AssignExpand.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/AssignExpand.cc'; fi`
     2388
     2389Tuples/cfa_cpp-FunctionFixer.o: Tuples/FunctionFixer.cc
     2390@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/cfa_cpp-FunctionFixer.o -MD -MP -MF Tuples/$(DEPDIR)/cfa_cpp-FunctionFixer.Tpo -c -o Tuples/cfa_cpp-FunctionFixer.o `test -f 'Tuples/FunctionFixer.cc' || echo '$(srcdir)/'`Tuples/FunctionFixer.cc
     2391@am__fastdepCXX_TRUE@   $(am__mv) Tuples/$(DEPDIR)/cfa_cpp-FunctionFixer.Tpo Tuples/$(DEPDIR)/cfa_cpp-FunctionFixer.Po
     2392@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Tuples/FunctionFixer.cc' object='Tuples/cfa_cpp-FunctionFixer.o' libtool=no @AMDEPBACKSLASH@
     2393@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2394@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/cfa_cpp-FunctionFixer.o `test -f 'Tuples/FunctionFixer.cc' || echo '$(srcdir)/'`Tuples/FunctionFixer.cc
     2395
     2396Tuples/cfa_cpp-FunctionFixer.obj: Tuples/FunctionFixer.cc
     2397@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/cfa_cpp-FunctionFixer.obj -MD -MP -MF Tuples/$(DEPDIR)/cfa_cpp-FunctionFixer.Tpo -c -o Tuples/cfa_cpp-FunctionFixer.obj `if test -f 'Tuples/FunctionFixer.cc'; then $(CYGPATH_W) 'Tuples/FunctionFixer.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/FunctionFixer.cc'; fi`
     2398@am__fastdepCXX_TRUE@   $(am__mv) Tuples/$(DEPDIR)/cfa_cpp-FunctionFixer.Tpo Tuples/$(DEPDIR)/cfa_cpp-FunctionFixer.Po
     2399@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Tuples/FunctionFixer.cc' object='Tuples/cfa_cpp-FunctionFixer.obj' libtool=no @AMDEPBACKSLASH@
     2400@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2401@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/cfa_cpp-FunctionFixer.obj `if test -f 'Tuples/FunctionFixer.cc'; then $(CYGPATH_W) 'Tuples/FunctionFixer.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/FunctionFixer.cc'; fi`
     2402
     2403Tuples/cfa_cpp-TupleAssignment.o: Tuples/TupleAssignment.cc
     2404@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/cfa_cpp-TupleAssignment.o -MD -MP -MF Tuples/$(DEPDIR)/cfa_cpp-TupleAssignment.Tpo -c -o Tuples/cfa_cpp-TupleAssignment.o `test -f 'Tuples/TupleAssignment.cc' || echo '$(srcdir)/'`Tuples/TupleAssignment.cc
     2405@am__fastdepCXX_TRUE@   $(am__mv) Tuples/$(DEPDIR)/cfa_cpp-TupleAssignment.Tpo Tuples/$(DEPDIR)/cfa_cpp-TupleAssignment.Po
     2406@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Tuples/TupleAssignment.cc' object='Tuples/cfa_cpp-TupleAssignment.o' libtool=no @AMDEPBACKSLASH@
     2407@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2408@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/cfa_cpp-TupleAssignment.o `test -f 'Tuples/TupleAssignment.cc' || echo '$(srcdir)/'`Tuples/TupleAssignment.cc
     2409
     2410Tuples/cfa_cpp-TupleAssignment.obj: Tuples/TupleAssignment.cc
     2411@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/cfa_cpp-TupleAssignment.obj -MD -MP -MF Tuples/$(DEPDIR)/cfa_cpp-TupleAssignment.Tpo -c -o Tuples/cfa_cpp-TupleAssignment.obj `if test -f 'Tuples/TupleAssignment.cc'; then $(CYGPATH_W) 'Tuples/TupleAssignment.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/TupleAssignment.cc'; fi`
     2412@am__fastdepCXX_TRUE@   $(am__mv) Tuples/$(DEPDIR)/cfa_cpp-TupleAssignment.Tpo Tuples/$(DEPDIR)/cfa_cpp-TupleAssignment.Po
     2413@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Tuples/TupleAssignment.cc' object='Tuples/cfa_cpp-TupleAssignment.obj' libtool=no @AMDEPBACKSLASH@
     2414@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2415@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/cfa_cpp-TupleAssignment.obj `if test -f 'Tuples/TupleAssignment.cc'; then $(CYGPATH_W) 'Tuples/TupleAssignment.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/TupleAssignment.cc'; fi`
     2416
     2417Tuples/cfa_cpp-FunctionChecker.o: Tuples/FunctionChecker.cc
     2418@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/cfa_cpp-FunctionChecker.o -MD -MP -MF Tuples/$(DEPDIR)/cfa_cpp-FunctionChecker.Tpo -c -o Tuples/cfa_cpp-FunctionChecker.o `test -f 'Tuples/FunctionChecker.cc' || echo '$(srcdir)/'`Tuples/FunctionChecker.cc
     2419@am__fastdepCXX_TRUE@   $(am__mv) Tuples/$(DEPDIR)/cfa_cpp-FunctionChecker.Tpo Tuples/$(DEPDIR)/cfa_cpp-FunctionChecker.Po
     2420@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Tuples/FunctionChecker.cc' object='Tuples/cfa_cpp-FunctionChecker.o' libtool=no @AMDEPBACKSLASH@
     2421@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2422@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/cfa_cpp-FunctionChecker.o `test -f 'Tuples/FunctionChecker.cc' || echo '$(srcdir)/'`Tuples/FunctionChecker.cc
     2423
     2424Tuples/cfa_cpp-FunctionChecker.obj: Tuples/FunctionChecker.cc
     2425@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/cfa_cpp-FunctionChecker.obj -MD -MP -MF Tuples/$(DEPDIR)/cfa_cpp-FunctionChecker.Tpo -c -o Tuples/cfa_cpp-FunctionChecker.obj `if test -f 'Tuples/FunctionChecker.cc'; then $(CYGPATH_W) 'Tuples/FunctionChecker.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/FunctionChecker.cc'; fi`
     2426@am__fastdepCXX_TRUE@   $(am__mv) Tuples/$(DEPDIR)/cfa_cpp-FunctionChecker.Tpo Tuples/$(DEPDIR)/cfa_cpp-FunctionChecker.Po
     2427@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Tuples/FunctionChecker.cc' object='Tuples/cfa_cpp-FunctionChecker.obj' libtool=no @AMDEPBACKSLASH@
     2428@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2429@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/cfa_cpp-FunctionChecker.obj `if test -f 'Tuples/FunctionChecker.cc'; then $(CYGPATH_W) 'Tuples/FunctionChecker.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/FunctionChecker.cc'; fi`
     2430
     2431Tuples/cfa_cpp-NameMatcher.o: Tuples/NameMatcher.cc
     2432@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/cfa_cpp-NameMatcher.o -MD -MP -MF Tuples/$(DEPDIR)/cfa_cpp-NameMatcher.Tpo -c -o Tuples/cfa_cpp-NameMatcher.o `test -f 'Tuples/NameMatcher.cc' || echo '$(srcdir)/'`Tuples/NameMatcher.cc
     2433@am__fastdepCXX_TRUE@   $(am__mv) Tuples/$(DEPDIR)/cfa_cpp-NameMatcher.Tpo Tuples/$(DEPDIR)/cfa_cpp-NameMatcher.Po
     2434@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Tuples/NameMatcher.cc' object='Tuples/cfa_cpp-NameMatcher.o' libtool=no @AMDEPBACKSLASH@
     2435@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2436@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/cfa_cpp-NameMatcher.o `test -f 'Tuples/NameMatcher.cc' || echo '$(srcdir)/'`Tuples/NameMatcher.cc
     2437
     2438Tuples/cfa_cpp-NameMatcher.obj: Tuples/NameMatcher.cc
     2439@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT Tuples/cfa_cpp-NameMatcher.obj -MD -MP -MF Tuples/$(DEPDIR)/cfa_cpp-NameMatcher.Tpo -c -o Tuples/cfa_cpp-NameMatcher.obj `if test -f 'Tuples/NameMatcher.cc'; then $(CYGPATH_W) 'Tuples/NameMatcher.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/NameMatcher.cc'; fi`
     2440@am__fastdepCXX_TRUE@   $(am__mv) Tuples/$(DEPDIR)/cfa_cpp-NameMatcher.Tpo Tuples/$(DEPDIR)/cfa_cpp-NameMatcher.Po
     2441@AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='Tuples/NameMatcher.cc' object='Tuples/cfa_cpp-NameMatcher.obj' libtool=no @AMDEPBACKSLASH@
     2442@AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     2443@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o Tuples/cfa_cpp-NameMatcher.obj `if test -f 'Tuples/NameMatcher.cc'; then $(CYGPATH_W) 'Tuples/NameMatcher.cc'; else $(CYGPATH_W) '$(srcdir)/Tuples/NameMatcher.cc'; fi`
     2444
     2445.ll.cc:
     2446        $(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE)
     2447
     2448.yy.cc:
     2449        $(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h $*.h y.output $*.output -- $(YACCCOMPILE)
     2450
     2451ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
     2452        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
     2453        unique=`for i in $$list; do \
     2454            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
     2455          done | \
     2456          $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
     2457              END { if (nonempty) { for (i in files) print i; }; }'`; \
     2458        mkid -fID $$unique
     2459tags: TAGS
     2460
     2461TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
     2462                $(TAGS_FILES) $(LISP)
     2463        set x; \
     2464        here=`pwd`; \
     2465        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
     2466        unique=`for i in $$list; do \
     2467            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
     2468          done | \
     2469          $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
     2470              END { if (nonempty) { for (i in files) print i; }; }'`; \
     2471        shift; \
     2472        if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
     2473          test -n "$$unique" || unique=$$empty_fix; \
     2474          if test $$# -gt 0; then \
     2475            $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
     2476              "$$@" $$unique; \
     2477          else \
     2478            $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
     2479              $$unique; \
     2480          fi; \
     2481        fi
     2482ctags: CTAGS
     2483CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
     2484                $(TAGS_FILES) $(LISP)
     2485        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
     2486        unique=`for i in $$list; do \
     2487            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
     2488          done | \
     2489          $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
     2490              END { if (nonempty) { for (i in files) print i; }; }'`; \
     2491        test -z "$(CTAGS_ARGS)$$unique" \
     2492          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
     2493             $$unique
     2494
     2495GTAGS:
     2496        here=`$(am__cd) $(top_builddir) && pwd` \
     2497          && $(am__cd) $(top_srcdir) \
     2498          && gtags -i $(GTAGS_ARGS) "$$here"
     2499
     2500distclean-tags:
     2501        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
     2502
     2503distdir: $(DISTFILES)
     2504        @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
     2505        topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
     2506        list='$(DISTFILES)'; \
     2507          dist_files=`for file in $$list; do echo $$file; done | \
     2508          sed -e "s|^$$srcdirstrip/||;t" \
     2509              -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
     2510        case $$dist_files in \
     2511          */*) $(MKDIR_P) `echo "$$dist_files" | \
     2512                           sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
     2513                           sort -u` ;; \
     2514        esac; \
     2515        for file in $$dist_files; do \
     2516          if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
     2517          if test -d $$d/$$file; then \
     2518            dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
     2519            if test -d "$(distdir)/$$file"; then \
     2520              find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
     2521            fi; \
     2522            if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
     2523              cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
     2524              find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
     2525            fi; \
     2526            cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
     2527          else \
     2528            test -f "$(distdir)/$$file" \
     2529            || cp -p $$d/$$file "$(distdir)/$$file" \
     2530            || exit 1; \
     2531          fi; \
     2532        done
     2533check-am: all-am
     2534check: $(BUILT_SOURCES)
     2535        $(MAKE) $(AM_MAKEFLAGS) check-am
     2536all-am: Makefile $(PROGRAMS)
     2537installdirs:
     2538        for dir in "$(DESTDIR)$(cfa_cpplibdir)"; do \
     2539          test -z "$$dir" || $(MKDIR_P) "$$dir"; \
     2540        done
     2541install: $(BUILT_SOURCES)
     2542        $(MAKE) $(AM_MAKEFLAGS) install-am
     2543install-exec: install-exec-am
     2544install-data: install-data-am
     2545uninstall: uninstall-am
     2546
     2547install-am: all-am
     2548        @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
     2549
     2550installcheck: installcheck-am
     2551install-strip:
     2552        if test -z '$(STRIP)'; then \
     2553          $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
     2554            install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
     2555              install; \
     2556        else \
     2557          $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
     2558            install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
     2559            "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
     2560        fi
     2561mostlyclean-generic:
     2562
     2563clean-generic:
     2564
     2565distclean-generic:
     2566        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
     2567        -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
     2568        -rm -f CodeGen/$(DEPDIR)/$(am__dirstamp)
     2569        -rm -f CodeGen/$(am__dirstamp)
     2570        -rm -f Common/$(DEPDIR)/$(am__dirstamp)
     2571        -rm -f Common/$(am__dirstamp)
     2572        -rm -f ControlStruct/$(DEPDIR)/$(am__dirstamp)
     2573        -rm -f ControlStruct/$(am__dirstamp)
     2574        -rm -f Designators/$(DEPDIR)/$(am__dirstamp)
     2575        -rm -f Designators/$(am__dirstamp)
     2576        -rm -f GenPoly/$(DEPDIR)/$(am__dirstamp)
     2577        -rm -f GenPoly/$(am__dirstamp)
     2578        -rm -f InitTweak/$(DEPDIR)/$(am__dirstamp)
     2579        -rm -f InitTweak/$(am__dirstamp)
     2580        -rm -f Parser/$(DEPDIR)/$(am__dirstamp)
     2581        -rm -f Parser/$(am__dirstamp)
     2582        -rm -f ResolvExpr/$(DEPDIR)/$(am__dirstamp)
     2583        -rm -f ResolvExpr/$(am__dirstamp)
     2584        -rm -f SymTab/$(DEPDIR)/$(am__dirstamp)
     2585        -rm -f SymTab/$(am__dirstamp)
     2586        -rm -f SynTree/$(DEPDIR)/$(am__dirstamp)
     2587        -rm -f SynTree/$(am__dirstamp)
     2588        -rm -f Tuples/$(DEPDIR)/$(am__dirstamp)
     2589        -rm -f Tuples/$(am__dirstamp)
     2590
     2591maintainer-clean-generic:
     2592        @echo "This command is intended for maintainers to use"
     2593        @echo "it deletes files that may require special tools to rebuild."
     2594        -rm -f Parser/lex.cc
     2595        -rm -f Parser/parser.cc
     2596        -rm -f Parser/parser.h
     2597        -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
     2598        -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
     2599clean: clean-am
     2600
     2601clean-am: clean-cfa_cpplibPROGRAMS clean-generic mostlyclean-am
     2602
     2603distclean: distclean-am
     2604        -rm -rf ./$(DEPDIR) CodeGen/$(DEPDIR) Common/$(DEPDIR) ControlStruct/$(DEPDIR) Designators/$(DEPDIR) GenPoly/$(DEPDIR) InitTweak/$(DEPDIR) Parser/$(DEPDIR) ResolvExpr/$(DEPDIR) SymTab/$(DEPDIR) SynTree/$(DEPDIR) Tuples/$(DEPDIR)
     2605        -rm -f Makefile
     2606distclean-am: clean-am distclean-compile distclean-generic \
     2607        distclean-tags
     2608
     2609dvi: dvi-am
     2610
     2611dvi-am:
     2612
     2613html: html-am
     2614
     2615html-am:
     2616
     2617info: info-am
     2618
     2619info-am:
     2620
     2621install-data-am: install-cfa_cpplibPROGRAMS
     2622
     2623install-dvi: install-dvi-am
     2624
     2625install-dvi-am:
     2626
     2627install-exec-am:
     2628
     2629install-html: install-html-am
     2630
     2631install-html-am:
     2632
     2633install-info: install-info-am
     2634
     2635install-info-am:
     2636
     2637install-man:
     2638
     2639install-pdf: install-pdf-am
     2640
     2641install-pdf-am:
     2642
     2643install-ps: install-ps-am
     2644
     2645install-ps-am:
     2646
     2647installcheck-am:
     2648
     2649maintainer-clean: maintainer-clean-am
     2650        -rm -rf ./$(DEPDIR) CodeGen/$(DEPDIR) Common/$(DEPDIR) ControlStruct/$(DEPDIR) Designators/$(DEPDIR) GenPoly/$(DEPDIR) InitTweak/$(DEPDIR) Parser/$(DEPDIR) ResolvExpr/$(DEPDIR) SymTab/$(DEPDIR) SynTree/$(DEPDIR) Tuples/$(DEPDIR)
     2651        -rm -f Makefile
     2652maintainer-clean-am: distclean-am maintainer-clean-generic
     2653
     2654mostlyclean: mostlyclean-am
     2655
     2656mostlyclean-am: mostlyclean-compile mostlyclean-generic
     2657
     2658pdf: pdf-am
     2659
     2660pdf-am:
     2661
     2662ps: ps-am
     2663
     2664ps-am:
     2665
     2666uninstall-am: uninstall-cfa_cpplibPROGRAMS
     2667
     2668.MAKE: all check install install-am install-strip
     2669
     2670.PHONY: CTAGS GTAGS all all-am check check-am clean \
     2671        clean-cfa_cpplibPROGRAMS clean-generic ctags distclean \
     2672        distclean-compile distclean-generic distclean-tags distdir dvi \
     2673        dvi-am html html-am info info-am install install-am \
     2674        install-cfa_cpplibPROGRAMS install-data install-data-am \
     2675        install-dvi install-dvi-am install-exec install-exec-am \
     2676        install-html install-html-am install-info install-info-am \
     2677        install-man install-pdf install-pdf-am install-ps \
     2678        install-ps-am install-strip installcheck installcheck-am \
     2679        installdirs maintainer-clean maintainer-clean-generic \
     2680        mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
     2681        ps ps-am tags uninstall uninstall-am \
     2682        uninstall-cfa_cpplibPROGRAMS
     2683
     2684
     2685#SRC +=  ArgTweak/Rewriter.cc \
     2686#       ArgTweak/Mutate.cc
     2687
     2688#       Tuples/MultipleAssign.cc \
     2689#       Tuples/FlattenTuple.cc \
     2690#       Tuples/MultRet.cc \
     2691#       Tuples/FixReturn.cc \
     2692#       Tuples/MassAssignment.cc \
     2693#       Tuples/TupleFixer.cc
     2694
     2695# Tell versions [3.59,3.63) of GNU make to not export all variables.
     2696# Otherwise a system limit (for SysV at least) may be exceeded.
     2697.NOEXPORT:
  • src/Parser/DeclarationNode.cc

    reb50842 r937e51d  
    1010// Created On       : Sat May 16 12:34:05 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu May 21 09:28:54 2015
    13 // Update Count     : 13
     12// Last Modified On : Wed Jun 24 15:29:19 2015
     13// Update Count     : 86
    1414//
    1515
     
    2121
    2222#include "TypeData.h"
     23
     24#include "SynTree/Declaration.h"
    2325#include "SynTree/Expression.h"
    2426
     27#include "Parser.h"
     28#include "TypedefTable.h"
     29extern TypedefTable typedefTable;
    2530
    2631using namespace std;
    2732
    2833// These must remain in the same order as the corresponding DeclarationNode enumerations.
     34const char *DeclarationNode::storageName[] = { "extern", "static", "auto", "register", "inline", "fortran", "_Noreturn", "_Thread_local", "" };
    2935const char *DeclarationNode::qualifierName[] = { "const", "restrict", "volatile", "lvalue", "_Atomic" };
    3036const char *DeclarationNode::basicTypeName[] = { "char", "int", "float", "double", "void", "_Bool", "_Complex", "_Imaginary" };
    31 const char *DeclarationNode::modifierName[] = { "signed", "unsigned", "short", "long" };
    32 const char *DeclarationNode::tyConName[] = { "struct", "union", "context" };
     37const char *DeclarationNode::modifierName[]  = { "signed", "unsigned", "short", "long" };
     38const char *DeclarationNode::aggregateName[] = { "struct", "union", "context" };
    3339const char *DeclarationNode::typeClassName[] = { "type", "dtype", "ftype" };
    3440
     
    6369}
    6470
    65 const char *storageClassName[] = {
    66         // order must correspond with DeclarationNode::StorageClass
    67         "extern",
    68         "static",
    69         "auto",
    70         "register",
    71         "inline",
    72         "fortran",
    73 };
    74 
    7571void DeclarationNode::print( std::ostream &os, int indent ) const {
    76         os << string(indent, ' ' );
     72        os << string( indent, ' ' );
    7773        if ( name == "" ) {
    7874                os << "unnamed: ";
    7975        } else {
    8076                os << name << ": ";
    81         }
     77        } // if
    8278
    8379        if ( linkage != LinkageSpec::Cforall ) {
    8480                os << LinkageSpec::toString( linkage ) << " ";
    85         }
    86 
    87         printEnums( storageClasses.begin(), storageClasses.end(), storageClassName, os );
     81        } // if
     82
     83        printEnums( storageClasses.begin(), storageClasses.end(), DeclarationNode::storageName, os );
    8884        if ( type ) {
    8985                type->print( os, indent );
    9086        } else {
    9187                os << "untyped entity ";
    92         }
     88        } // if
    9389
    9490        if ( bitfieldWidth ) {
    95                 os << endl << string(indent+2,  ' ') << "with bitfield width ";
     91                os << endl << string( indent + 2, ' ' ) << "with bitfield width ";
    9692                bitfieldWidth->printOneLine( os );
    97         }
     93        } // if
    9894
    9995        if ( initializer != 0 ) {
    100                 os << endl << string(indent+2,  ' ') << "with initializer ";
     96                os << endl << string( indent + 2, ' ' ) << "with initializer ";
    10197                initializer->printOneLine( os );
    102         }
     98        } // if
    10399
    104100        os << endl;
     
    109105        if ( hasEllipsis ) {
    110106                os << string( indent, ' ' )  << "and a variable number of other arguments" << endl;
    111         }
     107        } // if
    112108}
    113109
     
    123119        if ( body ) {
    124120                newnode->type->function->hasBody = true;
    125         }
     121        } // if
    126122
    127123        if ( ret ) {
     
    129125                ret->type = 0;
    130126                delete ret;
    131         }
     127        } // if
    132128
    133129        return newnode;
     
    141137}
    142138
    143 DeclarationNode *DeclarationNode::newStorageClass( StorageClass sc ) {
     139DeclarationNode *DeclarationNode::newStorageClass( DeclarationNode::StorageClass sc ) {
    144140        DeclarationNode *newnode = new DeclarationNode;
    145141        newnode->storageClasses.push_back( sc );
     
    161157}
    162158
    163 DeclarationNode *DeclarationNode::newForall( DeclarationNode* forall ) {
     159DeclarationNode *DeclarationNode::newForall( DeclarationNode *forall ) {
    164160        DeclarationNode *newnode = new DeclarationNode;
    165161        newnode->type = new TypeData( TypeData::Unknown );
     
    168164}
    169165
    170 DeclarationNode *DeclarationNode::newFromTypedef( std::string* name ) {
     166DeclarationNode *DeclarationNode::newFromTypedef( std::string *name ) {
    171167        DeclarationNode *newnode = new DeclarationNode;
    172168        newnode->type = new TypeData( TypeData::SymbolicInst );
     
    177173}
    178174
    179 DeclarationNode *DeclarationNode::newAggregate( TyCon kind, std::string* name, DeclarationNode *formals, ExpressionNode *actuals, DeclarationNode *fields ) {
     175DeclarationNode *DeclarationNode::newAggregate( Aggregate kind, std::string *name, DeclarationNode *formals, ExpressionNode *actuals, DeclarationNode *fields ) {
    180176        DeclarationNode *newnode = new DeclarationNode;
    181177        newnode->type = new TypeData( TypeData::Aggregate );
     
    184180        if ( newnode->type->aggregate->name == "" ) {
    185181                newnode->type->aggregate->name = DeclarationNode::anonymous.newName();
    186         }
     182        } // if
     183
     184        // SKULLDUGGERY: generate a typedef for the aggregate name so that the aggregate does not have to be qualified by
     185        // "struct"
     186        typedefTable.addToEnclosingScope( newnode->type->aggregate->name, TypedefTable::TD );
     187        DeclarationNode *typedf = new DeclarationNode;
     188        typedf->name = newnode->type->aggregate->name;
     189        newnode->appendList( typedf->addType( newnode->clone() )->addTypedef() );
     190
    187191        newnode->type->aggregate->params = formals;
    188192        newnode->type->aggregate->actuals = actuals;
     
    198202        if ( newnode->type->enumeration->name == "" ) {
    199203                newnode->type->enumeration->name = DeclarationNode::anonymous.newName();
    200         }
     204        } // if
     205
     206        // SKULLDUGGERY: generate a typedef for the enumeration name so that the enumeration does not have to be qualified
     207        // by "enum"
     208        typedefTable.addToEnclosingScope( newnode->type->enumeration->name, TypedefTable::TD );
     209        DeclarationNode *typedf = new DeclarationNode;
     210        typedf->name = newnode->type->enumeration->name;
     211        newnode->appendList( typedf->addType( newnode->clone() )->addTypedef() );
     212
    201213        newnode->type->enumeration->constants = constants;
    202214        return newnode;
    203215}
    204216
    205 DeclarationNode *DeclarationNode::newEnumConstant( std::string* name, ExpressionNode *constant ) {
     217DeclarationNode *DeclarationNode::newEnumConstant( std::string *name, ExpressionNode *constant ) {
    206218        DeclarationNode *newnode = new DeclarationNode;
    207219        newnode->name = assign_strptr( name );
     
    210222}
    211223
    212 DeclarationNode *DeclarationNode::newName( std::string* name ) {
     224DeclarationNode *DeclarationNode::newName( std::string *name ) {
    213225        DeclarationNode *newnode = new DeclarationNode;
    214226        newnode->name = assign_strptr( name );
     
    216228}
    217229
    218 DeclarationNode *DeclarationNode::newFromTypeGen( std::string* name, ExpressionNode *params ) {
     230DeclarationNode *DeclarationNode::newFromTypeGen( std::string *name, ExpressionNode *params ) {
    219231        DeclarationNode *newnode = new DeclarationNode;
    220232        newnode->type = new TypeData( TypeData::SymbolicInst );
     
    225237}
    226238
    227 DeclarationNode *DeclarationNode::newTypeParam( TypeClass tc, std::string* name ) {
     239DeclarationNode *DeclarationNode::newTypeParam( TypeClass tc, std::string *name ) {
    228240        DeclarationNode *newnode = new DeclarationNode;
    229241        newnode->name = assign_strptr( name );
     
    331343                        } else {
    332344                                dst->forall = src->forall;
    333                         }
     345                        } // if
    334346                        src->forall = 0;
    335                 }
     347                } // if
    336348                if ( dst->base ) {
    337349                        addQualifiersToType( src, dst->base );
     
    341353                } else {
    342354                        dst->qualifiers.splice( dst->qualifiers.end(), src->qualifiers );
    343                 }
    344         }
     355                } // if
     356        } // if
    345357}
    346358         
     
    351363                        if ( ! type ) {
    352364                                type = new TypeData;
    353                         }
     365                        } // if
    354366                        addQualifiersToType( q->type, type );
    355367                        if ( q->type && q->type->forall ) {
     
    357369                                        type->forall->appendList( q->type->forall );
    358370                                } else {
    359                                         type->forall = q->type->forall;
    360                                 }
     371                                        if ( type->kind == TypeData::Aggregate ) {
     372                                                type->aggregate->params = q->type->forall;
     373                                        } else {
     374                                                type->forall = q->type->forall;
     375                                        } // if
     376                                } // if
    361377                                q->type->forall = 0;
    362                         }
    363                 }
    364         }
     378                        } // if
     379                } // if
     380        } // if
    365381        delete q;
    366382        return this;
     
    379395                        } else {
    380396                                dst->forall = src->forall;
    381                         }
     397                        } // if
    382398                        src->forall = 0;
    383                 }
     399                } // if
    384400                if ( dst->base ) {
    385401                        addTypeToType( src, dst->base );
     
    398414                                        dst->basic->modifiers.splice( dst->basic->modifiers.end(), src->basic->modifiers );
    399415                                        dst->basic->typeSpec.splice( dst->basic->typeSpec.end(), src->basic->typeSpec );
    400                                 }
     416                                } // if
    401417                                break;
    402418
     
    409425                                        if ( src->kind == TypeData::Aggregate ) {
    410426                                                dst->base->aggInst->params = maybeClone( src->aggregate->actuals );
    411                                         }
     427                                        } // if
    412428                                        dst->base->qualifiers.splice( dst->base->qualifiers.end(), src->qualifiers );
    413429                                        src = 0;
     
    419435                                        } else {
    420436                                                dst->forall = src->forall;
    421                                         }
     437                                        } // if
    422438                                        src->forall = 0;
    423439                                        dst->base = src;
    424440                                        src = 0;
    425                                 }
    426                         }
    427                 }
    428         }
     441                                } // switch
     442                        } // switch
     443                } // if
     444        } // if
    429445}
    430446
     
    439455                                        if ( o->type->kind == TypeData::Aggregate ) {
    440456                                                type->aggInst->params = maybeClone( o->type->aggregate->actuals );
    441                                         }
     457                                        } // if
    442458                                        type->qualifiers.splice( type->qualifiers.end(), o->type->qualifiers );
    443459                                } else {
    444460                                        type = o->type;
    445                                 }
     461                                } // if
    446462                                o->type = 0;
    447463                        } else {
    448464                                addTypeToType( o->type, type );
    449                         }
    450                 }
     465                        } // if
     466                } // if
    451467                if ( o->bitfieldWidth ) {
    452468                        bitfieldWidth = o->bitfieldWidth;
    453                 }
    454         }
     469                } // if
     470        } // if
    455471        delete o;
    456472        return this;
     
    467483}
    468484
    469 DeclarationNode *DeclarationNode::addAssertions( DeclarationNode* assertions ) {
     485DeclarationNode *DeclarationNode::addAssertions( DeclarationNode *assertions ) {
    470486        assert( type );
    471487        switch ( type->kind ) {
     
    475491                } else {
    476492                        type->symbolic->assertions = assertions;
    477                 }
     493                } // if
    478494                break;
    479        
    480495          case TypeData::Variable:
    481496                if ( type->variable->assertions ) {
     
    483498                } else {
    484499                        type->variable->assertions = assertions;
    485                 }
     500                } // if
    486501                break;
    487        
    488502          default:
    489503                assert( false );
    490         }
     504        } // switch
    491505       
    492506        return this;
    493507}
    494508
    495 DeclarationNode *DeclarationNode::addName( std::string* newname ) {
     509DeclarationNode *DeclarationNode::addName( std::string *newname ) {
    496510        name = assign_strptr( newname );
    497511        return this;
     
    526540}
    527541
    528 static void
    529 setBase( TypeData *&type, TypeData *newType ) {
     542static void setBase( TypeData *&type, TypeData *newType ) {
    530543        if ( type ) {
    531544                TypeData *prevBase = type;
     
    534547                        prevBase = curBase;
    535548                        curBase = curBase->base;
    536                 }
     549                } // while
    537550                prevBase->base = newType;
    538551        } else {
    539552                type = newType;
    540         }
     553        } // if
    541554}
    542555
     
    547560                p->type = 0;
    548561                delete p;
    549         }
     562        } // if
    550563        return this;
    551564}
     
    557570                a->type = 0;
    558571                delete a;
    559         }
     572        } // if
    560573        return this;
    561574}
     
    572585                                if ( type->kind == TypeData::Aggregate ) {
    573586                                        p->type->base->aggInst->params = maybeClone( type->aggregate->actuals );
    574                                 }
     587                                } // if
    575588                                p->type->base->qualifiers.splice( p->type->base->qualifiers.end(), type->qualifiers );
    576589                                break;
     
    578591                          default:
    579592                                p->type->base = type;
    580                         }
     593                        } // switch
    581594                        type = 0;
    582                 }
     595                } // if
    583596                delete this;
    584597                return p;
    585598        } else {
    586599                return this;
    587         }
     600        } // if
    588601}
    589602
     
    593606        while ( cur->base ) {
    594607                cur = cur->base;
    595         }
     608        } // while
    596609        return cur;
    597610}
     
    609622                                if ( type->kind == TypeData::Aggregate ) {
    610623                                        lastArray->base->aggInst->params = maybeClone( type->aggregate->actuals );
    611                                 }
     624                                } // if
    612625                                lastArray->base->qualifiers.splice( lastArray->base->qualifiers.end(), type->qualifiers );
    613626                                break;
    614627                          default:
    615628                                lastArray->base = type;
    616                         }
     629                        } // switch
    617630                        type = 0;
    618                 }
     631                } // if
    619632                delete this;
    620633                return a;
    621634        } else {
    622635                return this;
    623         }
     636        } // if
    624637}
    625638
     
    637650                } else {
    638651                        type->function->idList = ids;
    639                 }
     652                } // if
    640653                return type;
    641654        } else {
     
    643656                newtype->function->idList = ids;
    644657                return newtype;
    645         }
     658        } // if
    646659}
    647660       
     
    662675        while ( srcType->base ) {
    663676                srcType = srcType->base;
    664         }
     677        } // while
    665678        newnode->type = maybeClone( srcType );
    666679        if ( newnode->type->kind == TypeData::AggregateInst ) {
     
    673686                        delete newnode->type->aggInst->aggregate->aggregate->members;
    674687                        newnode->type->aggInst->aggregate->aggregate->members = 0;
    675                 }
    676         }
     688                } // if
     689        } // if
    677690        newnode->type->forall = maybeClone( type->forall );
    678691        newnode->storageClasses = storageClasses;
     
    688701                        while ( srcType->base ) {
    689702                                srcType = srcType->base;
    690                         }
     703                        } // while
    691704                        TypeData *newType = srcType->clone();
    692705                        if ( newType->kind == TypeData::AggregateInst ) {
     
    699712                                        delete newType->aggInst->aggregate->aggregate->members;
    700713                                        newType->aggInst->aggregate->aggregate->members = 0;
    701                                 }
    702                         }
     714                                } // if
     715                        } // if
    703716                        newType->forall = maybeClone( type->forall );
    704717                        if ( ! o->type ) {
     
    707720                                addTypeToType( newType, o->type );
    708721                                delete newType;
    709                         }
    710                 }
    711         }
     722                        } // if
     723                } // if
     724        } // if
    712725        return o;
    713726}
     
    731744                                addTypeToType( newType, o->type );
    732745                                delete newType;
    733                         }
    734                 }
    735         }
     746                        } // if
     747                } // if
     748        } // if
    736749        return o;
    737750}
     
    740753        if ( node != 0 ) {
    741754                set_link( node );
    742         }
     755        } // if
    743756        return this;
    744757}
     
    756769}
    757770
    758 void buildList( const DeclarationNode *firstNode, std::list< Declaration* > &outputList ) {
     771void buildList( const DeclarationNode *firstNode, std::list< Declaration * > &outputList ) {
    759772        SemanticError errors;
    760         std::back_insert_iterator< std::list< Declaration* > > out( outputList );
     773        std::back_insert_iterator< std::list< Declaration *> > out( outputList );
    761774        const DeclarationNode *cur = firstNode;
    762775        while ( cur ) {
     
    776789                        errors.append( e );
    777790                } // try
    778                 cur = dynamic_cast< DeclarationNode* >( cur->get_link() );
     791                cur = dynamic_cast< DeclarationNode *>( cur->get_link() );
    779792        } // while
    780793        if ( ! errors.isEmpty() ) {
     
    783796}
    784797
    785 void buildList( const DeclarationNode *firstNode, std::list< DeclarationWithType* > &outputList ) {
     798void buildList( const DeclarationNode *firstNode, std::list< DeclarationWithType *> &outputList ) {
    786799        SemanticError errors;
    787         std::back_insert_iterator< std::list< DeclarationWithType* > > out( outputList );
     800        std::back_insert_iterator< std::list< DeclarationWithType *> > out( outputList );
    788801        const DeclarationNode *cur = firstNode;
    789802        while ( cur ) {
     
    799812                        Declaration *decl = cur->build();
    800813                        if ( decl ) {
    801                                 if ( DeclarationWithType *dwt = dynamic_cast< DeclarationWithType* >( decl ) ) {
     814                                if ( DeclarationWithType *dwt = dynamic_cast< DeclarationWithType *>( decl ) ) {
    802815                                        *out++ = dwt;
    803                                 } else if ( StructDecl *agg = dynamic_cast< StructDecl* >( decl ) ) {
     816                                } else if ( StructDecl *agg = dynamic_cast< StructDecl *>( decl ) ) {
    804817                                        StructInstType *inst = new StructInstType( Type::Qualifiers(), agg->get_name() );
    805                                         *out++ = new ObjectDecl( "", Declaration::NoStorageClass, linkage, 0, inst, 0 );
     818                                        *out++ = new ObjectDecl( "", DeclarationNode::NoStorageClass, linkage, 0, inst, 0 );
    806819                                        delete agg;
    807                                 } else if ( UnionDecl *agg = dynamic_cast< UnionDecl* >( decl ) ) {
     820                                } else if ( UnionDecl *agg = dynamic_cast< UnionDecl *>( decl ) ) {
    808821                                        UnionInstType *inst = new UnionInstType( Type::Qualifiers(), agg->get_name() );
    809                                         *out++ = new ObjectDecl( "", Declaration::NoStorageClass, linkage, 0, inst, 0 );
     822                                        *out++ = new ObjectDecl( "", DeclarationNode::NoStorageClass, linkage, 0, inst, 0 );
    810823                                } // if
    811824                        } // if
     
    813826                        errors.append( e );
    814827                } // try
    815                 cur = dynamic_cast< DeclarationNode* >( cur->get_link() );
     828                cur = dynamic_cast< DeclarationNode *>( cur->get_link() );
    816829        } // while
    817830        if ( ! errors.isEmpty() ) {
     
    820833}
    821834
    822 void buildTypeList( const DeclarationNode *firstNode, std::list< Type* > &outputList ) {
     835void buildTypeList( const DeclarationNode *firstNode, std::list< Type *> &outputList ) {
    823836        SemanticError errors;
    824         std::back_insert_iterator< std::list< Type* > > out( outputList );
     837        std::back_insert_iterator< std::list< Type *> > out( outputList );
    825838        const DeclarationNode *cur = firstNode;
    826839        while ( cur ) {
     
    830843                        errors.append( e );
    831844                } // try
    832                 cur = dynamic_cast< DeclarationNode* >( cur->get_link() );
     845                cur = dynamic_cast< DeclarationNode *>( cur->get_link() );
    833846        } // while
    834847        if ( ! errors.isEmpty() ) {
     
    839852Declaration *DeclarationNode::build() const {
    840853        if ( type ) {
    841                 Declaration *newDecl = type->buildDecl( name, buildStorageClass(), maybeBuild< Expression >( bitfieldWidth ), buildInline(), linkage, maybeBuild< Initializer >(initializer) );
     854                Declaration *newDecl = type->buildDecl( name, buildStorageClass(), maybeBuild< Expression >( bitfieldWidth ), buildFuncSpecifier( Inline ), buildFuncSpecifier( Noreturn ), linkage, maybeBuild< Initializer >(initializer) );
    842855                return newDecl;
    843856        } // if
    844         if ( ! buildInline() ) {
     857        if ( ! buildFuncSpecifier( Inline ) && ! buildFuncSpecifier( Noreturn ) ) {
    845858                return new ObjectDecl( name, buildStorageClass(), linkage, maybeBuild< Expression >( bitfieldWidth ), 0, maybeBuild< Initializer >( initializer ) );
    846859        } // if
    847         throw SemanticError( "invalid inline specification in declaration of ", this );
     860        throw SemanticError( "invalid function specifier in declaration of ", this );
    848861}
    849862
     
    882895}
    883896
    884 Declaration::StorageClass DeclarationNode::buildStorageClass() const {
    885         static const Declaration::StorageClass scMap[] = { 
    886                 Declaration::Extern,
    887                 Declaration::Static,
    888                 Declaration::Auto,
    889                 Declaration::Register,
    890                 Declaration::Inline,
    891                 Declaration::Fortran
    892         }; 
    893  
    894         Declaration::StorageClass ret = Declaration::NoStorageClass;
    895         for ( std::list< StorageClass >::const_iterator i = storageClasses.begin(); i != storageClasses.end(); ++i ) {
    896                 assert( unsigned( *i ) < sizeof( scMap ) / sizeof( scMap[0] ) );
    897           if ( *i == Inline ) continue;
    898           if ( ret != Declaration::NoStorageClass ) {
     897DeclarationNode::StorageClass DeclarationNode::buildStorageClass() const {
     898        DeclarationNode::StorageClass ret = DeclarationNode::NoStorageClass;
     899        for ( std::list< DeclarationNode::StorageClass >::const_iterator i = storageClasses.begin(); i != storageClasses.end(); ++i ) {
     900          if ( *i == DeclarationNode::Inline || *i == DeclarationNode::Noreturn ) continue; // ignore function specifiers
     901          if ( ret != DeclarationNode::NoStorageClass ) {       // already have a valid storage class ?
    899902                        throw SemanticError( "invalid combination of storage classes in declaration of ", this );
    900                 }
    901                 ret = scMap[ *i ];
    902         }
     903                } // if
     904                ret = *i;
     905        } // for
    903906        return ret;
    904907}
    905908
    906 bool DeclarationNode::buildInline() const {
    907         std::list< StorageClass >::const_iterator first = std::find( storageClasses.begin(), storageClasses.end(), Inline );
    908   if ( first == storageClasses.end() ) return false;
    909         std::list< StorageClass >::const_iterator next = std::find( ++first, storageClasses.end(), Inline );
    910   if ( next == storageClasses.end() ) return true;
    911         throw SemanticError( "duplicate inline specification in declaration of ", this );
     909bool DeclarationNode::buildFuncSpecifier( DeclarationNode::StorageClass key ) const {
     910        std::list< DeclarationNode::StorageClass >::const_iterator first = std::find( storageClasses.begin(), storageClasses.end(), key );
     911  if ( first == storageClasses.end() ) return false;    // not found
     912        first = std::find( ++first, storageClasses.end(), key ); // found
     913  if ( first == storageClasses.end() ) return true;             // not found again
     914        throw SemanticError( "duplicate function specifier in declaration of ", this );
    912915}
    913916
  • src/Parser/ExpressionNode.cc

    reb50842 r937e51d  
    99// Author           : Rodolfo G. Esteves
    1010// Created On       : Sat May 16 13:17:07 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat May 16 13:19:35 2015
    13 // Update Count     : 2
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Wed Jun 24 16:20:00 2015
     13// Update Count     : 158
    1414//
    1515
     
    1717#include <cctype>
    1818#include <algorithm>
     19#include <sstream>
     20#include <cstdio>
     21#include <climits>
    1922
    2023#include "ParseNode.h"
    21 #include "SynTree/Type.h"
    2224#include "SynTree/Constant.h"
    2325#include "SynTree/Expression.h"
    24 #include "SynTree/Declaration.h"
    2526#include "UnimplementedError.h"
    2627#include "parseutility.h"
     
    3132ExpressionNode::ExpressionNode() : ParseNode(), argName( 0 ) {}
    3233
    33 ExpressionNode::ExpressionNode( string *name_) : ParseNode( *name_ ), argName( 0 ) {
    34         delete name_;
    35 }
     34ExpressionNode::ExpressionNode( const string *name_ ) : ParseNode( name_ ), argName( 0 ) {}
    3635
    3736ExpressionNode::ExpressionNode( const ExpressionNode &other ) : ParseNode( other.name ) {
     
    4342}
    4443
    45 ExpressionNode * ExpressionNode::set_asArgName( std::string *aName ) {
     44ExpressionNode * ExpressionNode::set_asArgName( const std::string *aName ) {
    4645        argName = new VarRefNode( aName );
    4746        return this;
     
    5554void ExpressionNode::printDesignation( std::ostream &os, int indent ) const {
    5655        if ( argName ) {
    57                 os << string(' ', indent ) << "(designated by:  ";
     56                os << string( indent, ' ' ) << "(designated by:  ";
    5857                argName->printOneLine( os, indent );
    5958                os << ")" << std::endl;
     
    6160}
    6261
     62//##############################################################################
     63
    6364NullExprNode::NullExprNode() {}
    6465
     
    8586}
    8687
    87 //  enum ConstantNode::Type =  { Integer, Float, Character, String, Range }
    88 
    89 ConstantNode::ConstantNode( void ) : ExpressionNode(), sign( true ), longs(0), size(0) {}
    90 
    91 ConstantNode::ConstantNode( string *name_) : ExpressionNode( name_), sign( true ), longs(0), size(0) {}
    92 
    93 ConstantNode::ConstantNode( Type t, string *inVal ) : type( t ), sign( true ), longs(0), size(0) {
    94         if ( inVal ) {
    95                 value = *inVal;
    96                 delete inVal;
    97         } else {
    98                 value = "";
    99         } // if
    100 
    101         classify( value );
    102 }
    103 
    104 ConstantNode::ConstantNode( const ConstantNode &other ) : ExpressionNode( other ), type( other.type ), value( other.value ), sign( other.sign ),
    105                                                                                                                   base( other.base ), longs( other.longs ), size( other.size ) {
    106 }
    107 
    108 // for some reason, std::tolower doesn't work as an argument to std::transform in g++ 3.1
    109 inline char tolower_hack( char c ) {
    110         return std::tolower( c );
    111 }
    112 
    113 void ConstantNode::classify( std::string &str ) {
     88//##############################################################################
     89
     90static inline bool checkU( char c ) { return c == 'u' || c == 'U'; }
     91static inline bool checkL( char c ) { return c == 'l' || c == 'L'; }
     92static inline bool checkF( char c ) { return c == 'f' || c == 'F'; }
     93static inline bool checkX( char c ) { return c == 'x' || c == 'X'; }
     94
     95// Difficult to separate extra parts of constants during lexing because actions are not allow in the middle of patterns:
     96//
     97//              prefix action constant action suffix
     98//
     99// Alternatively, breaking a pattern using BEGIN does not work if the following pattern can be empty:
     100//
     101//              constant BEGIN CONT ...
     102//              <CONT>(...)? BEGIN 0 ... // possible empty suffix
     103//
     104// because the CONT rule is NOT triggered if the pattern is empty. Hence, constants are reparsed here to determine their
     105// type.
     106
     107ConstantNode::ConstantNode( Type t, string *inVal ) : type( t ), value( *inVal ) {
     108        // lexing divides constants into 4 kinds
     109        switch ( type ) {
     110          case Integer:
     111                {
     112                        static const BasicType::Kind kind[2][3] = {
     113                                { BasicType::SignedInt, BasicType::LongSignedInt, BasicType::LongLongSignedInt },
     114                                { BasicType::UnsignedInt, BasicType::LongUnsignedInt, BasicType::LongLongUnsignedInt },
     115                        };
     116                        size_t last = value.length() - 1;                       // last character of constant
     117                        unsigned long long v;                                           // converted integral value
     118                        bool dec = true, Unsigned = false;                      // decimal, unsigned constant
     119                        int size;                                                                       // 0 => int, 1 => long, 2 => long long
     120
     121                        if ( value[0] == '0' ) {                                        // octal constant ?
     122                                dec = false;
     123                                if ( last != 0 && checkX( value[1] ) ) { // hex constant ?
     124                                        sscanf( (char *)value.c_str(), "%llx", &v );
     125                                        //printf( "%llx %llu\n", v, v );
     126                                } else {
     127                                        sscanf( (char *)value.c_str(), "%llo", &v );
     128                                        //printf( "%llo %llu\n", v, v );
     129                                } // if
     130                        } else {                                                                        // decimal constant ?
     131                                sscanf( (char *)value.c_str(), "%llu", &v );
     132                                //printf( "%llu %llu\n", v, v );
     133                        } // if
     134
     135                        if ( v <= INT_MAX ) {                                           // signed int
     136                                size = 0;
     137                        } else if ( v <= UINT_MAX && ! dec ) {          // unsigned int
     138                                size = 0;
     139                                Unsigned = true;                                                // unsigned
     140                        } else if ( v <= LONG_MAX ) {                           // signed long int
     141                                size = 1;
     142                        } else if ( v <= ULONG_MAX && ( ! dec || LONG_MAX == LLONG_MAX ) ) { // signed long int
     143                                size = 1;
     144                                Unsigned = true;                                                // unsigned long int
     145                        } else if ( v <= LLONG_MAX ) {                          // signed long long int
     146                                size = 2;
     147                        } else {                                                                        // unsigned long long int
     148                                size = 2;
     149                                Unsigned = true;                                                // unsigned long long int
     150                        } // if
     151
     152                        if ( checkU( value[last] ) ) {                          // suffix 'u' ?
     153                                Unsigned = true;
     154                                if ( last > 0 && checkL( value[ last - 1 ] ) ) { // suffix 'l' ?
     155                                        size = 1;
     156                                        if ( last > 1 && checkL( value[ last - 2 ] ) ) { // suffix 'll' ?
     157                                                size = 2;
     158                                        } // if
     159                                } // if
     160                        } else if ( checkL( value[ last ] ) ) {         // suffix 'l' ?
     161                                size = 1;
     162                                if ( last > 0 && checkL( value[ last - 1 ] ) ) { // suffix 'll' ?
     163                                        size = 2;
     164                                        if ( last > 1 && checkU( value[ last - 2 ] ) ) { // suffix 'u' ?
     165                                                Unsigned = true;
     166                                        } // if
     167                                } else {
     168                                        if ( last > 0 && checkU( value[ last - 1 ] ) ) { // suffix 'u' ?
     169                                                Unsigned = true;
     170                                        } // if
     171                                } // if
     172                        } // if
     173                        btype = kind[Unsigned][size];                           // lookup constant type
     174                        break;
     175                }
     176          case Float:
     177                {
     178                        size_t len = value.length() - 1;
     179
     180                        btype = BasicType::Double;                                      // default
     181                        if ( checkF( value[len] ) ) {                           // float ?
     182                                btype = BasicType::Float;
     183                        } // if
     184                        if ( checkL( value[len] ) ) {                           // long double ?
     185                                btype = BasicType::LongDouble;
     186                        } // if
     187                        break;
     188                }
     189          case Character:
     190                btype = BasicType::Char;                                                // default
     191                if ( string( "LUu" ).find( value[0] ) != string::npos ) {
     192                        // ???
     193                } // if
     194                break;
     195          case String:
     196                // array of char
     197                if ( string( "LUu" ).find( value[0] ) != string::npos ) {
     198                        if ( value[0] == 'u' && value[1] == '8' ) {
     199                                // ???
     200                        } else {
     201                                // ???
     202                        } // if
     203                } // if
     204                break;
     205        } // switch
     206} // ConstantNode::ConstantNode
     207
     208ConstantNode *ConstantNode::appendstr( const std::string *newValue ) {
     209        assert( newValue != 0 );
     210        assert( type == String );
     211
     212        // "abc" "def" "ghi" => "abcdefghi", so remove new text from quotes and insert before last quote in old string.
     213        value.insert( value.length() - 1, newValue->substr( 1, newValue->length() - 2 ) );
     214       
     215        delete newValue;                                                                        // allocated by lexer
     216        return this;
     217}
     218
     219void ConstantNode::printOneLine( std::ostream &os, int indent ) const {
     220        os << string( indent, ' ' );
     221        printDesignation( os );
     222
    114223        switch ( type ) {
    115224          case Integer:
    116225          case Float:
    117                 {
    118                         std::string sfx("");
    119                         char c;
    120                         int i = str.length() - 1;
    121 
    122                         while ( i >= 0 && ! isxdigit( c = str.at( i--)) )
    123                                 sfx += c;
    124 
    125                         value = str.substr( 0, i + 2 );
    126 
    127                         // get rid of underscores
    128                         value.erase( remove( value.begin(), value.end(), '_'), value.end());
    129 
    130                         std::transform( sfx.begin(), sfx.end(), sfx.begin(), tolower_hack );
    131 
    132                         if ( sfx.find("ll") != string::npos ) {
    133                                 longs = 2;
    134                         } else if ( sfx.find("l") != string::npos ) {
    135                                 longs = 1;
    136                         } // if
    137 
    138                         assert(( longs >= 0) && ( longs <= 2));
    139 
    140                         if ( sfx.find("u") != string::npos )
    141                                 sign = false;
    142 
    143                         break;
    144                 }
    145           case Character:
    146                 {
    147                         // remove underscores from hex and oct escapes
    148                         if ( str.substr(1,2) == "\\x")
    149                                 value.erase( remove( value.begin(), value.end(), '_'), value.end());
    150 
    151                         break;
    152                 }
    153           default:
    154                 // shouldn't be here
    155                 ;
    156         }
    157 }
    158 
    159 ConstantNode::Type ConstantNode::get_type( void ) const {
    160         return type;
    161 }
    162 
    163 ConstantNode *ConstantNode::append( std::string *newValue ) {
    164         if ( newValue ) {
    165                 if ( type == String ) {
    166                         std::string temp = *newValue;
    167                         value.resize( value.size() - 1 );
    168                         value += newValue->substr(1, newValue->size());
    169                 } else
    170                         value += *newValue;
    171 
    172                 delete newValue;
    173         } // if
    174         return this;
    175 }
    176 
    177 void ConstantNode::printOneLine( std::ostream &os, int indent ) const {
    178         os << string( indent, ' ');
    179         printDesignation( os );
    180 
    181         switch ( type ) {
    182                 /* integers */
    183           case Integer:
    184226                os << value ;
    185227                break;
    186           case Float:
    187                 os << value ;
    188                 break;
    189 
    190228          case Character:
    191229                os << "'" << value << "'";
    192230                break;
    193 
    194231          case String:
    195232                os << '"' << value << '"';
    196233                break;
    197         }
     234        } // switch
    198235
    199236        os << ' ';
     
    206243
    207244Expression *ConstantNode::build() const {
    208         ::Type::Qualifiers q;
    209         BasicType *bt;
    210 
    211         switch ( get_type()) {
    212           case Integer:
    213                 /* Cfr. standard 6.4.4.1 */
    214                 //bt.set_kind( BasicType::SignedInt );
    215                 bt = new BasicType( q, BasicType::SignedInt );
    216                 break;
    217           case Float:
    218                 bt = new BasicType( q, BasicType::Float );
    219                 break;
    220           case Character:
    221                 bt = new BasicType( q, BasicType::Char );
    222                 break;
     245        ::Type::Qualifiers q;                                                           // no qualifiers on constants
     246
     247        switch ( get_type() ) {
    223248          case String:
    224                 // string should probably be a primitive type
    225                 ArrayType *at;
    226                 std::string value = get_value();
    227                 at = new ArrayType( q, new BasicType( q, BasicType::Char ),
    228                                                         new ConstantExpr( Constant( new BasicType( q, BasicType::SignedInt ),
    229                                                                                                                 toString( value.size() - 1 ) ) ),  // account for '\0'
    230                                                         false, false );
    231                 return new ConstantExpr( Constant( at, value ), maybeBuild< Expression >( get_argName() ) );
     249                {
     250                        // string should probably be a primitive type
     251                        ArrayType *at = new ArrayType( q, new BasicType( q, BasicType::Char ),
     252                                                                                   new ConstantExpr(
     253                                                                                           Constant( new BasicType( q, BasicType::UnsignedInt ),
     254                                                                                                                 toString( value.size()+1-2 ) ) ),  // +1 for '\0' and -2 for '"'
     255                                                                                   false, false );
     256                        return new ConstantExpr( Constant( at, value ), maybeBuild< Expression >( get_argName() ) );
     257                }
     258          default:
     259                return new ConstantExpr( Constant( new BasicType( q, btype ), get_value() ), maybeBuild< Expression >( get_argName() ) );
    232260        }
    233         return new ConstantExpr(  Constant( bt, get_value()),  maybeBuild< Expression >( get_argName() ) );
    234 }
     261}
     262
     263//##############################################################################
    235264
    236265VarRefNode::VarRefNode() : isLabel( false ) {}
    237266
    238 VarRefNode::VarRefNode( string *name_, bool labelp ) : ExpressionNode( name_), isLabel( labelp ) {}
     267VarRefNode::VarRefNode( const string *name_, bool labelp ) : ExpressionNode( name_ ), isLabel( labelp ) {}
    239268
    240269VarRefNode::VarRefNode( const VarRefNode &other ) : ExpressionNode( other ), isLabel( other.isLabel ) {
     
    252281void VarRefNode::print( std::ostream &os, int indent ) const {
    253282        printDesignation( os );
    254         os << '\r' << string( indent, ' ') << "Referencing: ";
     283        os << string( indent, ' ' ) << "Referencing: ";
    255284        os << "Variable: " << get_name();
    256285        os << endl;
    257286}
    258287
     288//##############################################################################
     289
    259290OperatorNode::OperatorNode( Type t ) : type( t ) {}
    260291
     
    275306void OperatorNode::print( std::ostream &os, int indent ) const{
    276307        printDesignation( os );
    277         os << '\r' << string( indent, ' ') << "Operator: " << OpName[type] << endl;
     308        os << string( indent, ' ' ) << "Operator: " << OpName[type] << endl;
    278309        return;
    279310}
    280311
    281 std::string OperatorNode::get_typename( void ) const{
    282         return string( OpName[ type ]);
     312const char *OperatorNode::get_typename( void ) const{
     313        return OpName[ type ];
    283314}
    284315
     
    288319        "Cond",   "NCond",
    289320        // diadic
    290         "SizeOf",      "AlignOf", "Attr", "CompLit", "Plus",    "Minus",   "Mul",     "Div",     "Mod",      "Or",
     321        "SizeOf",     "AlignOf", "Attr", "CompLit", "Plus",    "Minus",   "Mul",     "Div",     "Mod",      "Or",
    291322        "And",       "BitOr",   "BitAnd",  "Xor",     "Cast",    "LShift",  "RShift",  "LThan",   "GThan",
    292323        "LEThan",    "GEThan", "Eq",      "Neq",     "Assign",  "MulAssn", "DivAssn", "ModAssn", "PlusAssn",
     
    297328};
    298329
     330//##############################################################################
     331
    299332CompositeExprNode::CompositeExprNode( void ) : ExpressionNode(), function( 0 ), arguments( 0 ) {
    300333}
    301334
    302 CompositeExprNode::CompositeExprNode( string *name_) : ExpressionNode( name_), function( 0 ), arguments( 0 ) {
     335CompositeExprNode::CompositeExprNode( const string *name_ ) : ExpressionNode( name_ ), function( 0 ), arguments( 0 ) {
    303336}
    304337
     
    331364// the names that users use to define operator functions
    332365static const char *opFuncName[] = {
    333         "",  "", "",
    334         "",   "",
    335         // diadic
    336         "",   "", "", "", "?+?",    "?-?",   "?*?",     "?/?",     "?%?",     "",      "",
    337         "?|?",  "?&?",  "?^?",     "",    "?<<?",  "?>>?",  "?<?",   "?>?",    "?<=?",
    338         "?>=?", "?==?",      "?!=?",     "?=?",  "?*=?", "?/=?", "?%=?", "?+=?", "?-=?",
    339         "?<<=?", "?>>=?",  "?&=?", "?^=?",  "?|=?",  "?[?]",   "","","Range",
    340         // monadic
    341         "+?", "-?", "", "*?", "!?", "~?", "++?", "?++", "--?", "?--", "LabAddress"
     366        "",             "",             "",
     367        "",             "",
     368        //diadic
     369        "",             "",             "",             "",             "?+?",          "?-?",  "?*?",  "?/?",  "?%?",  "",              "",
     370        "?|?",          "?&?",          "?^?",  "",             "?<<?", "?>>?", "?<?",  "?>?",  "?<=?",
     371        "?>=?",         "?==?",         "?!=?", "?=?",  "?*=?", "?/=?", "?%=?", "?+=?", "?-=?",
     372        "?<<=?",        "?>>=?",        "?&=?", "?^=?", "?|=?", "?[?]", "",             "",             "Range",
     373        //monadic
     374        "+?",           "-?",           "",             "*?",   "!?",   "~?",   "++?",  "?++",  "--?",  "?--",  "&&"
    342375};
    343376
     
    350383        buildList( get_args(), args );
    351384
    352         if ( ! ( op = dynamic_cast<OperatorNode *>( function )) ) {
    353                 // a function as opposed to an operator
     385        if ( ! ( op = dynamic_cast<OperatorNode *>( function ) ) ) { // function as opposed to operator
    354386                return new UntypedExpr( function->build(), args, maybeBuild< Expression >( get_argName() ));
    355         } else {
    356                 switch ( op->get_type()) {
    357                   case OperatorNode::Incr:
    358                   case OperatorNode::Decr:
    359                   case OperatorNode::IncrPost:
    360                   case OperatorNode::DecrPost:
    361                   case OperatorNode::Assign:
    362                   case OperatorNode::MulAssn:
    363                   case OperatorNode::DivAssn:
    364                   case OperatorNode::ModAssn:
    365                   case OperatorNode::PlusAssn:
    366                   case OperatorNode::MinusAssn:
    367                   case OperatorNode::LSAssn:
    368                   case OperatorNode::RSAssn:
    369                   case OperatorNode::AndAssn:
    370                   case OperatorNode::ERAssn:
    371                   case OperatorNode::OrAssn:
    372                         // the rewrite rules for these expressions specify that the first argument has its address taken
    373                         assert( ! args.empty() );
    374                         args.front() = new AddressExpr( args.front() );
    375                         break;
    376                   default:
    377                         /* do nothing */
    378                         ;
    379                 }
    380 
    381                 switch ( op->get_type() ) {
    382                   case OperatorNode::Incr:
    383                   case OperatorNode::Decr:
    384                   case OperatorNode::IncrPost:
    385                   case OperatorNode::DecrPost:
    386                   case OperatorNode::Assign:
    387                   case OperatorNode::MulAssn:
    388                   case OperatorNode::DivAssn:
    389                   case OperatorNode::ModAssn:
    390                   case OperatorNode::PlusAssn:
    391                   case OperatorNode::MinusAssn:
    392                   case OperatorNode::LSAssn:
    393                   case OperatorNode::RSAssn:
    394                   case OperatorNode::AndAssn:
    395                   case OperatorNode::ERAssn:
    396                   case OperatorNode::OrAssn:
    397                   case OperatorNode::Plus:
    398                   case OperatorNode::Minus:
    399                   case OperatorNode::Mul:
    400                   case OperatorNode::Div:
    401                   case OperatorNode::Mod:
    402                   case OperatorNode::BitOr:
    403                   case OperatorNode::BitAnd:
    404                   case OperatorNode::Xor:
    405                   case OperatorNode::LShift:
    406                   case OperatorNode::RShift:
    407                   case OperatorNode::LThan:
    408                   case OperatorNode::GThan:
    409                   case OperatorNode::LEThan:
    410                   case OperatorNode::GEThan:
    411                   case OperatorNode::Eq:
    412                   case OperatorNode::Neq:
    413                   case OperatorNode::Index:
    414                   case OperatorNode::Range:
    415                   case OperatorNode::UnPlus:
    416                   case OperatorNode::UnMinus:
    417                   case OperatorNode::PointTo:
    418                   case OperatorNode::Neg:
    419                   case OperatorNode::BitNeg:
    420                   case OperatorNode::LabelAddress:
    421                         return new UntypedExpr( new NameExpr( opFuncName[ op->get_type() ] ), args );
    422                   case OperatorNode::AddressOf:
    423                         assert( args.size() == 1 );
    424                         assert( args.front() );
    425 
    426                         return new AddressExpr( args.front() );
    427                   case OperatorNode::Cast:
    428                         {
    429                                 TypeValueNode * arg = dynamic_cast<TypeValueNode *>( get_args());
    430                                 assert( arg );
    431 
    432                                 DeclarationNode *decl_node = arg->get_decl();
    433                                 ExpressionNode *expr_node = dynamic_cast<ExpressionNode *>( arg->get_link());
    434 
    435                                 Type *targetType = decl_node->buildType();
    436                                 if ( dynamic_cast< VoidType* >( targetType ) ) {
    437                                         delete targetType;
    438                                         return new CastExpr( expr_node->build(), maybeBuild< Expression >( get_argName() ) );
    439                                 } else {
    440                                         return new CastExpr( expr_node->build(),targetType, maybeBuild< Expression >( get_argName() ) );
    441                                 } // if
    442                         }
    443                   case OperatorNode::FieldSel:
    444                         {
    445                                 assert( args.size() == 2 );
    446 
    447                                 NameExpr *member = dynamic_cast<NameExpr *>( args.back());
    448                                 // TupleExpr *memberTup = dynamic_cast<TupleExpr *>( args.back());
    449 
    450                                 if ( member != 0 ) {
    451                                         UntypedMemberExpr *ret = new UntypedMemberExpr( member->get_name(), args.front());
    452                                         delete member;
    453                                         return ret;
    454                                         /* else if ( memberTup != 0 )
    455                                            {
    456                                            UntypedMemberExpr *ret = new UntypedMemberExpr( memberTup->get_name(), args.front());
    457                                            delete member;
    458                                            return ret;
    459                                            } */
    460                                 } else
    461                                         assert( false );
    462                         }
    463                   case OperatorNode::PFieldSel:
    464                         {
    465                                 assert( args.size() == 2 );
    466 
    467                                 NameExpr *member = dynamic_cast<NameExpr *>( args.back());  // modify for Tuples   xxx
    468                                 assert( member != 0 );
    469 
    470                                 UntypedExpr *deref = new UntypedExpr( new NameExpr( "*?" ) );
    471                                 deref->get_args().push_back( args.front() );
    472 
    473                                 UntypedMemberExpr *ret = new UntypedMemberExpr( member->get_name(), deref );
     387        } // if
     388
     389        switch ( op->get_type()) {
     390          case OperatorNode::Incr:
     391          case OperatorNode::Decr:
     392          case OperatorNode::IncrPost:
     393          case OperatorNode::DecrPost:
     394          case OperatorNode::Assign:
     395          case OperatorNode::MulAssn:
     396          case OperatorNode::DivAssn:
     397          case OperatorNode::ModAssn:
     398          case OperatorNode::PlusAssn:
     399          case OperatorNode::MinusAssn:
     400          case OperatorNode::LSAssn:
     401          case OperatorNode::RSAssn:
     402          case OperatorNode::AndAssn:
     403          case OperatorNode::ERAssn:
     404          case OperatorNode::OrAssn:
     405                // the rewrite rules for these expressions specify that the first argument has its address taken
     406                assert( ! args.empty() );
     407                args.front() = new AddressExpr( args.front() );
     408                break;
     409          default:
     410                /* do nothing */
     411                ;
     412        }
     413
     414        switch ( op->get_type() ) {
     415          case OperatorNode::Incr:
     416          case OperatorNode::Decr:
     417          case OperatorNode::IncrPost:
     418          case OperatorNode::DecrPost:
     419          case OperatorNode::Assign:
     420          case OperatorNode::MulAssn:
     421          case OperatorNode::DivAssn:
     422          case OperatorNode::ModAssn:
     423          case OperatorNode::PlusAssn:
     424          case OperatorNode::MinusAssn:
     425          case OperatorNode::LSAssn:
     426          case OperatorNode::RSAssn:
     427          case OperatorNode::AndAssn:
     428          case OperatorNode::ERAssn:
     429          case OperatorNode::OrAssn:
     430          case OperatorNode::Plus:
     431          case OperatorNode::Minus:
     432          case OperatorNode::Mul:
     433          case OperatorNode::Div:
     434          case OperatorNode::Mod:
     435          case OperatorNode::BitOr:
     436          case OperatorNode::BitAnd:
     437          case OperatorNode::Xor:
     438          case OperatorNode::LShift:
     439          case OperatorNode::RShift:
     440          case OperatorNode::LThan:
     441          case OperatorNode::GThan:
     442          case OperatorNode::LEThan:
     443          case OperatorNode::GEThan:
     444          case OperatorNode::Eq:
     445          case OperatorNode::Neq:
     446          case OperatorNode::Index:
     447          case OperatorNode::Range:
     448          case OperatorNode::UnPlus:
     449          case OperatorNode::UnMinus:
     450          case OperatorNode::PointTo:
     451          case OperatorNode::Neg:
     452          case OperatorNode::BitNeg:
     453          case OperatorNode::LabelAddress:
     454                return new UntypedExpr( new NameExpr( opFuncName[ op->get_type() ] ), args );
     455          case OperatorNode::AddressOf:
     456                assert( args.size() == 1 );
     457                assert( args.front() );
     458
     459                return new AddressExpr( args.front() );
     460          case OperatorNode::Cast:
     461                {
     462                        TypeValueNode * arg = dynamic_cast<TypeValueNode *>( get_args());
     463                        assert( arg );
     464
     465                        DeclarationNode *decl_node = arg->get_decl();
     466                        ExpressionNode *expr_node = dynamic_cast<ExpressionNode *>( arg->get_link());
     467
     468                        Type *targetType = decl_node->buildType();
     469                        if ( dynamic_cast< VoidType* >( targetType ) ) {
     470                                delete targetType;
     471                                return new CastExpr( expr_node->build(), maybeBuild< Expression >( get_argName() ) );
     472                        } else {
     473                                return new CastExpr( expr_node->build(),targetType, maybeBuild< Expression >( get_argName() ) );
     474                        } // if
     475                }
     476          case OperatorNode::FieldSel:
     477                {
     478                        assert( args.size() == 2 );
     479
     480                        NameExpr *member = dynamic_cast<NameExpr *>( args.back());
     481                        // TupleExpr *memberTup = dynamic_cast<TupleExpr *>( args.back());
     482
     483                        if ( member != 0 ) {
     484                                UntypedMemberExpr *ret = new UntypedMemberExpr( member->get_name(), args.front());
    474485                                delete member;
    475486                                return ret;
     487                                /* else if ( memberTup != 0 )
     488                                   {
     489                                   UntypedMemberExpr *ret = new UntypedMemberExpr( memberTup->get_name(), args.front());
     490                                   delete member;
     491                                   return ret;
     492                                   } */
     493                        } else
     494                                assert( false );
     495                }
     496          case OperatorNode::PFieldSel:
     497                {
     498                        assert( args.size() == 2 );
     499
     500                        NameExpr *member = dynamic_cast<NameExpr *>( args.back());  // modify for Tuples   xxx
     501                        assert( member != 0 );
     502
     503                        UntypedExpr *deref = new UntypedExpr( new NameExpr( "*?" ) );
     504                        deref->get_args().push_back( args.front() );
     505
     506                        UntypedMemberExpr *ret = new UntypedMemberExpr( member->get_name(), deref );
     507                        delete member;
     508                        return ret;
     509                }
     510          case OperatorNode::AlignOf:
     511          case OperatorNode::SizeOf:
     512                {
     513///     bool isSizeOf = ( op->get_type() == OperatorNode::SizeOf );
     514
     515                        if ( TypeValueNode * arg = dynamic_cast<TypeValueNode *>( get_args()) ) {
     516                                return new SizeofExpr( arg->get_decl()->buildType());
     517                        } else {
     518                                return new SizeofExpr( args.front());
     519                        } // if
     520                }
     521          case OperatorNode::Attr:
     522                {
     523                        VarRefNode *var = dynamic_cast<VarRefNode *>( get_args());
     524                        assert( var );
     525                        if ( ! get_args()->get_link() ) {
     526                                return new AttrExpr( var->build(), ( Expression*)0);
     527                        } else if ( TypeValueNode * arg = dynamic_cast<TypeValueNode *>( get_args()->get_link()) ) {
     528                                return new AttrExpr( var->build(), arg->get_decl()->buildType());
     529                        } else {
     530                                return new AttrExpr( var->build(), args.back());
     531                        } // if
     532                }
     533          case OperatorNode::CompLit:
     534                throw UnimplementedError( "C99 compound literals" );
     535                // the short-circuited operators
     536          case OperatorNode::Or:
     537          case OperatorNode::And:
     538                assert( args.size() == 2);
     539                return new LogicalExpr( notZeroExpr( args.front() ), notZeroExpr( args.back() ), ( op->get_type() == OperatorNode::And ) );
     540          case OperatorNode::Cond:
     541                {
     542                        assert( args.size() == 3);
     543                        std::list< Expression* >::const_iterator i = args.begin();
     544                        Expression *arg1 = notZeroExpr( *i++ );
     545                        Expression *arg2 = *i++;
     546                        Expression *arg3 = *i++;
     547                        return new ConditionalExpr( arg1, arg2, arg3 );
     548                }
     549          case OperatorNode::NCond:
     550                throw UnimplementedError( "GNU 2-argument conditional expression" );
     551          case OperatorNode::Comma:
     552                {
     553                        assert( args.size() == 2);
     554                        std::list< Expression* >::const_iterator i = args.begin();
     555                        Expression *ret = *i++;
     556                        while ( i != args.end() ) {
     557                                ret = new CommaExpr( ret, *i++ );
    476558                        }
    477                   case OperatorNode::AlignOf:
    478                   case OperatorNode::SizeOf:
    479                         {
    480 ///     bool isSizeOf = ( op->get_type() == OperatorNode::SizeOf );
    481 
    482                                 if ( TypeValueNode * arg = dynamic_cast<TypeValueNode *>( get_args()) ) {
    483                                         return new SizeofExpr( arg->get_decl()->buildType());
    484                                 } else {
    485                                         return new SizeofExpr( args.front());
    486                                 } // if
    487                         }
    488                   case OperatorNode::Attr:
    489                         {
    490                                 VarRefNode *var = dynamic_cast<VarRefNode *>( get_args());
    491                                 assert( var );
    492                                 if ( ! get_args()->get_link() ) {
    493                                         return new AttrExpr( var->build(), ( Expression*)0);
    494                                 } else if ( TypeValueNode * arg = dynamic_cast<TypeValueNode *>( get_args()->get_link()) ) {
    495                                         return new AttrExpr( var->build(), arg->get_decl()->buildType());
    496                                 } else {
    497                                         return new AttrExpr( var->build(), args.back());
    498                                 } // if
    499                         }
    500                   case OperatorNode::CompLit:
    501                         throw UnimplementedError( "C99 compound literals" );
    502                         // the short-circuited operators
    503                   case OperatorNode::Or:
    504                   case OperatorNode::And:
    505                         assert( args.size() == 2);
    506                         return new LogicalExpr( notZeroExpr( args.front() ), notZeroExpr( args.back() ), ( op->get_type() == OperatorNode::And ) );
    507                   case OperatorNode::Cond:
    508                         {
    509                                 assert( args.size() == 3);
    510                                 std::list< Expression* >::const_iterator i = args.begin();
    511                                 Expression *arg1 = notZeroExpr( *i++ );
    512                                 Expression *arg2 = *i++;
    513                                 Expression *arg3 = *i++;
    514                                 return new ConditionalExpr( arg1, arg2, arg3 );
    515                         }
    516                   case OperatorNode::NCond:
    517                         throw UnimplementedError( "GNU 2-argument conditional expression" );
    518                   case OperatorNode::Comma:
    519                         {
    520                                 assert( args.size() == 2);
    521                                 std::list< Expression* >::const_iterator i = args.begin();
    522                                 Expression *ret = *i++;
    523                                 while ( i != args.end() ) {
    524                                         ret = new CommaExpr( ret, *i++ );
    525                                 }
    526                                 return ret;
    527                         }
    528                         // Tuples
    529                   case OperatorNode::TupleC:
    530                         {
    531                                 TupleExpr *ret = new TupleExpr();
    532                                 std::copy( args.begin(), args.end(), back_inserter( ret->get_exprs() ) );
    533                                 return ret;
    534                         }
    535                   default:
    536                         // shouldn't happen
    537                         return 0;
    538                 }
    539         }
     559                        return ret;
     560                }
     561                // Tuples
     562          case OperatorNode::TupleC:
     563                {
     564                        TupleExpr *ret = new TupleExpr();
     565                        std::copy( args.begin(), args.end(), back_inserter( ret->get_exprs() ) );
     566                        return ret;
     567                }
     568          default:
     569                // shouldn't happen
     570                return 0;
     571        } // switch
    540572}
    541573
     
    552584void CompositeExprNode::print( std::ostream &os, int indent ) const {
    553585        printDesignation( os );
    554         os << '\r' << string( indent, ' ') << "Application of: " << endl;
     586        os << string( indent, ' ' ) << "Application of: " << endl;
    555587        function->print( os, indent + ParseNode::indent_by );
    556588
    557         os << '\r' << string( indent, ' ') ;
     589        os << string( indent, ' ' ) ;
    558590        if ( arguments ) {
    559591                os << "... on arguments: " << endl;
     
    586618}
    587619
     620//##############################################################################
     621
    588622CommaExprNode::CommaExprNode(): CompositeExprNode( new OperatorNode( OperatorNode::Comma )) {}
    589623
     
    603637}
    604638
     639//##############################################################################
     640
    605641ValofExprNode::ValofExprNode( StatementNode *s ): body( s ) {}
    606642
     
    614650void ValofExprNode::print( std::ostream &os, int indent ) const {
    615651        printDesignation( os );
    616         os << string( indent, ' ') << "Valof Expression:" << std::endl;
     652        os << string( indent, ' ' ) << "Valof Expression:" << std::endl;
    617653        get_body()->print( os, indent + 4);
    618654}
     
    625661        return new UntypedValofExpr ( get_body()->build(), maybeBuild< Expression >( get_argName() ) );
    626662}
     663
     664//##############################################################################
    627665
    628666ForCtlExprNode::ForCtlExprNode( ParseNode *init_, ExpressionNode *cond, ExpressionNode *incr ) throw ( SemanticError ) : condition( cond ), change( incr ) {
     
    633671                ExpressionNode *exp;
    634672
    635                 if (( decl = dynamic_cast<DeclarationNode *>( init_)) != 0)
     673                if (( decl = dynamic_cast<DeclarationNode *>(init_) ) != 0)
    636674                        init = new StatementNode( decl );
    637675                else if (( exp = dynamic_cast<ExpressionNode *>( init_)) != 0)
     
    659697
    660698void ForCtlExprNode::print( std::ostream &os, int indent ) const{
    661         os << string( indent,' ') << "For Control Expression -- : " << endl;
    662 
    663         os << "\r" << string( indent + 2,' ') << "initialization: ";
    664         if ( init != 0)
    665                 init->print( os, indent + 4);
    666 
    667         os << "\n\r" << string( indent + 2,' ') << "condition: ";
    668         if ( condition != 0)
    669                 condition->print( os, indent + 4);
    670         os << "\n\r" << string( indent + 2,' ') << "increment: ";
    671         if ( change != 0)
    672                 change->print( os, indent + 4);
     699        os << string( indent,' ' ) << "For Control Expression -- :" << endl;
     700
     701        os << string( indent + 2, ' ' ) << "initialization:" << endl;
     702        if ( init != 0 )
     703                init->printList( os, indent + 4 );
     704
     705        os << string( indent + 2, ' ' ) << "condition: " << endl;
     706        if ( condition != 0 )
     707                condition->print( os, indent + 4 );
     708        os << string( indent + 2, ' ' ) << "increment: " << endl;
     709        if ( change != 0 )
     710                change->print( os, indent + 4 );
    673711}
    674712
     
    677715}
    678716
    679 TypeValueNode::TypeValueNode( DeclarationNode *decl )
    680         : decl( decl ) {
    681 }
    682 
    683 TypeValueNode::TypeValueNode( const TypeValueNode &other )
    684         : ExpressionNode( other ), decl( maybeClone( other.decl ) ) {
     717//##############################################################################
     718
     719TypeValueNode::TypeValueNode( DeclarationNode *decl ) : decl( decl ) {
     720}
     721
     722TypeValueNode::TypeValueNode( const TypeValueNode &other ) : ExpressionNode( other ), decl( maybeClone( other.decl ) ) {
    685723}
    686724
     
    700738
    701739ExpressionNode *flattenCommas( ExpressionNode *list ) {
    702         if ( CompositeExprNode *composite = dynamic_cast< CompositeExprNode * >( list ) )
    703                 {
    704                         OperatorNode *op;
    705                         if ( ( op = dynamic_cast< OperatorNode * >( composite->get_function() )) && ( op->get_type() == OperatorNode::Comma ) )
    706                                 {
    707                                         if ( ExpressionNode *next = dynamic_cast< ExpressionNode * >( list->get_link() ) )
    708                                                 composite->add_arg( next );
    709                                         return flattenCommas( composite->get_args() );
    710                                 }
    711                 }
     740        if ( CompositeExprNode *composite = dynamic_cast< CompositeExprNode * >( list ) ) {
     741                OperatorNode *op;
     742                if ( ( op = dynamic_cast< OperatorNode * >( composite->get_function() )) && ( op->get_type() == OperatorNode::Comma ) ) {
     743                        if ( ExpressionNode *next = dynamic_cast< ExpressionNode * >( list->get_link() ) )
     744                                composite->add_arg( next );
     745                        return flattenCommas( composite->get_args() );
     746                } // if
     747        } // if
    712748
    713749        if ( ExpressionNode *next = dynamic_cast< ExpressionNode * >( list->get_link() ) )
     
    722758                if ( ( op = dynamic_cast< OperatorNode * >( composite->get_function() )) && ( op->get_type() == OperatorNode::TupleC ) )
    723759                        return composite->get_args();
    724         }
     760        } // if
    725761        return tuple;
    726762}
  • src/Parser/InitializerNode.cc

    reb50842 r937e51d  
    1010// Created On       : Sat May 16 13:20:24 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat May 16 13:21:40 2015
    13 // Update Count     : 2
     12// Last Modified On : Sat Jun  6 15:49:42 2015
     13// Update Count     : 3
    1414//
    1515
     
    4848
    4949void InitializerNode::print( std::ostream &os, int indent ) const {
    50         os << std::string(indent, ' ') << "Initializer expression" << std::endl;
     50        os << std::string( indent, ' ' ) << "Initializer expression" << std::endl;
    5151}
    5252
  • src/Parser/ParseNode.cc

    reb50842 r937e51d  
    1010// Created On       : Sat May 16 13:26:29 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 19 16:48:30 2015
    13 // Update Count     : 3
     12// Last Modified On : Sat Jun  6 20:17:58 2015
     13// Update Count     : 23
    1414//
    1515
     
    2020int ParseNode::indent_by = 4;
    2121
    22 ParseNode::ParseNode( void ) : next( 0 ) {};
    23 ParseNode::ParseNode( string _name ) : name( _name ), next( 0 ) {}
     22ParseNode::ParseNode() : name( 0 ), next( 0 ) {};
     23ParseNode::ParseNode( const string *name_ ) : name( name_ ), next( 0 ) {}
    2424
    25 ParseNode *ParseNode::set_name( string _name ) {
    26         name = _name;
    27         return this;
    28 }
    29 
    30 ParseNode *ParseNode::set_name( string *_name ) {
    31         name = *_name; // deep copy
    32         delete _name;
    33 
    34         return this;
    35 }
    36 
    37 ParseNode::~ParseNode( void ) {
     25ParseNode::~ParseNode() {
    3826        delete next;
    3927};
    4028
    41 string ParseNode::get_name( void ) {
    42         return name;
    43 }
    44 
    45 ParseNode *ParseNode::get_link( void ) const {
     29ParseNode *ParseNode::get_link() const {
    4630        return next;
    4731}
    4832
    49 ParseNode *ParseNode::get_last(void) {
     33ParseNode *ParseNode::get_last() {
    5034        ParseNode *current = this;
    5135
     
    5640}
    5741
    58 ParseNode *ParseNode::set_link(ParseNode *_next) {
     42ParseNode *ParseNode::set_link( ParseNode *next_ ) {
    5943        ParseNode *follow;
    6044
    61         if ( _next == 0 ) return this;
     45        if ( next_ == 0 ) return this;
    6246
    6347        for ( follow = this; follow->next != 0; follow = follow->next );
    64         follow->next = _next;
     48        follow->next = next_;
    6549
    6650        return this;
    6751}
    6852
    69 const string ParseNode::get_name(void) const {
    70         return name;
    71 }
    72 
    73 void ParseNode::print(std::ostream &os, int indent) const {}
     53void ParseNode::print( std::ostream &os, int indent ) const {}
    7454
    7555
     
    7858
    7959        if ( next ) {
    80         next->printList( os, indent );
    81         }
     60                next->printList( os, indent );
     61        } // if
    8262}
    8363
  • src/Parser/ParseNode.h

    reb50842 r937e51d  
    1010// Created On       : Sat May 16 13:28:16 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat May 16 13:30:24 2015
    13 // Update Count     : 3
     12// Last Modified On : Wed Jun 24 14:09:51 2015
     13// Update Count     : 81
    1414//
    1515
     
    2222
    2323#include "utility.h"
    24 #include "SynTree/Declaration.h"
     24#include "Parser/LinkageSpec.h"
     25#include "SynTree/Type.h"
     26//#include "SynTree/Declaration.h"
    2527#include "UniqueName.h"
    2628
     
    3638class ParseNode {
    3739  public:
    38         ParseNode( void );
    39         ParseNode ( std::string );
    40         virtual ~ParseNode( void );
    41 
    42         ParseNode *set_name ( std::string ) ;
    43         ParseNode *set_name ( std::string * ) ;
    44 
    45         std::string get_name( void );
    46 
    47         ParseNode *get_link( void ) const;
    48         ParseNode *get_last( void );
     40        ParseNode();
     41        ParseNode( const std::string * );
     42        virtual ~ParseNode();
     43
     44        ParseNode *get_link() const;
     45        ParseNode *get_last();
    4946        ParseNode *set_link( ParseNode * );
    5047        void set_next( ParseNode *newlink ) { next = newlink; }
     
    5249        virtual ParseNode *clone() const { return 0; };
    5350
    54         const std::string get_name( void ) const;
     51        const std::string &get_name() const { return *name; }
    5552        virtual void print( std::ostream &, int indent = 0 ) const;
    5653        virtual void printList( std::ostream &, int indent = 0 ) const;
     
    5855        ParseNode &operator,( ParseNode &);
    5956  protected:
    60         std::string name;
     57        const std::string *name;
    6158        ParseNode *next;
    6259        static int indent_by;
     
    6865  public:
    6966        ExpressionNode();
    70         ExpressionNode( std::string * );
     67        ExpressionNode( const std::string * );
    7168        ExpressionNode( const ExpressionNode &other );
    7269        virtual ~ExpressionNode() {} // cannot delete asArgName because it might be referenced elsewhere
     
    7774
    7875        ExpressionNode *get_argName() const { return argName; }
    79         ExpressionNode *set_asArgName( std::string *aName );
     76        ExpressionNode *set_asArgName( const std::string *aName );
    8077        ExpressionNode *set_asArgName( ExpressionNode *aDesignator );
    8178
     
    105102class ConstantNode : public ExpressionNode {
    106103  public:
    107         enum Type {
    108                 Integer, Float, Character, String /* , Range, EnumConstant  */
    109         };
    110 
    111         ConstantNode( void );
    112         ConstantNode( std::string * );
     104        enum Type { Integer, Float, Character, String };
     105
    113106        ConstantNode( Type, std::string * );
    114         ConstantNode( const ConstantNode &other );
    115107
    116108        virtual ConstantNode *clone() const { return new ConstantNode( *this ); }
    117 
    118         Type get_type( void ) const ;
     109        Type get_type( void ) const { return type; }
    119110        virtual void print( std::ostream &, int indent = 0) const;
    120111        virtual void printOneLine( std::ostream &, int indent = 0) const;
    121112
    122         std::string get_value() const { return value; }
    123         ConstantNode *append( std::string *newValue );
     113        const std::string &get_value() const { return value; }
     114        ConstantNode *appendstr( const std::string *newValue );
    124115
    125116        Expression *build() const;
    126117  private:
    127         void classify( std::string &);
    128118        Type type;
    129         std::string value;
    130         bool sign;
    131         short base;
    132         int longs, size;
     119        BasicType::Kind btype;
     120        std::string &value;
    133121};
    134122
     
    136124  public:
    137125        VarRefNode();
    138         VarRefNode( std::string *, bool isLabel = false );
     126        VarRefNode( const std::string *, bool isLabel = false );
    139127        VarRefNode( const VarRefNode &other );
    140128
     
    143131        virtual VarRefNode *clone() const { return new VarRefNode( *this ); }
    144132
    145         virtual void print( std::ostream &, int indent = 0) const;
    146         virtual void printOneLine( std::ostream &, int indent = 0) const;
     133        virtual void print( std::ostream &, int indent = 0 ) const;
     134        virtual void printOneLine( std::ostream &, int indent = 0 ) const;
    147135  private:
    148136        bool isLabel;
     
    183171        virtual OperatorNode *clone() const { return new OperatorNode( *this ); }
    184172
    185         Type get_type( void ) const;
    186         std::string get_typename( void ) const;
     173        Type get_type() const;
     174        const char *get_typename() const;
    187175
    188176        virtual void print( std::ostream &, int indent = 0) const;
     
    198186class CompositeExprNode : public ExpressionNode {
    199187  public:
    200         CompositeExprNode( void );
    201         CompositeExprNode( std::string * );
     188        CompositeExprNode();
     189        CompositeExprNode( const std::string * );
    202190        CompositeExprNode( ExpressionNode *f, ExpressionNode *args = 0 );
    203191        CompositeExprNode( ExpressionNode *f, ExpressionNode *arg1, ExpressionNode *arg2 );
     
    278266  public:
    279267        enum Qualifier { Const, Restrict, Volatile, Lvalue, Atomic, Attribute };
    280         enum StorageClass { Extern, Static, Auto, Register, Inline, Fortran };
     268        enum StorageClass { Extern, Static, Auto, Register, Inline, Fortran, Noreturn, Threadlocal, NoStorageClass, };
    281269        enum BasicType { Char, Int, Float, Double, Void, Bool, Complex, Imaginary };
    282         enum Modifier { Signed, Unsigned, Short, Long };
    283         enum TyCon { Struct, Union, Context };
     270        enum Modifier  { Signed, Unsigned, Short, Long };
     271        enum Aggregate { Struct, Union, Context };
    284272        enum TypeClass { Type, Dtype, Ftype };
    285273
     274        static const char *storageName[]; 
    286275        static const char *qualifierName[];
    287276        static const char *basicTypeName[];
    288277        static const char *modifierName[];
    289         static const char *tyConName[];
     278        static const char *aggregateName[];
    290279        static const char *typeClassName[];
    291280
     
    298287        static DeclarationNode *newForall( DeclarationNode *);
    299288        static DeclarationNode *newFromTypedef( std::string *);
    300         static DeclarationNode *newAggregate( TyCon kind, std::string *name, DeclarationNode *formals, ExpressionNode *actuals, DeclarationNode *fields );
     289        static DeclarationNode *newAggregate( Aggregate kind, std::string *name, DeclarationNode *formals, ExpressionNode *actuals, DeclarationNode *fields );
    301290        static DeclarationNode *newEnum( std::string *name, DeclarationNode *constants );
    302291        static DeclarationNode *newEnumConstant( std::string *name, ExpressionNode *constant );
    303292        static DeclarationNode *newName( std::string *);
    304         static DeclarationNode *newFromTypeGen( std::string*, ExpressionNode *params );
     293        static DeclarationNode *newFromTypeGen( std::string *, ExpressionNode *params );
    305294        static DeclarationNode *newTypeParam( TypeClass, std::string *);
    306295        static DeclarationNode *newContext( std::string *name, DeclarationNode *params, DeclarationNode *asserts );
     
    313302        static DeclarationNode *newTuple( DeclarationNode *members );
    314303        static DeclarationNode *newTypeof( ExpressionNode *expr );
    315         static DeclarationNode *newAttr( std::string*, ExpressionNode *expr );
    316         static DeclarationNode *newAttr( std::string*, DeclarationNode *type );
     304        static DeclarationNode *newAttr( std::string *, ExpressionNode *expr );
     305        static DeclarationNode *newAttr( std::string *, DeclarationNode *type );
    317306
    318307        DeclarationNode *addQualifiers( DeclarationNode *);
     
    340329        DeclarationNode *cloneBaseType( DeclarationNode *newdecl );
    341330
    342         DeclarationNode *appendList( DeclarationNode  *);
     331        DeclarationNode *appendList( DeclarationNode * );
    343332
    344333        DeclarationNode *clone() const;
     
    350339
    351340        bool get_hasEllipsis() const;
    352         std::string get_name() const { return name; }
     341        const std::string &get_name() const { return name; }
    353342        LinkageSpec::Type get_linkage() const { return linkage; }
    354343        DeclarationNode *extractAggregate() const;
     
    357346        ~DeclarationNode();
    358347  private:
    359         Declaration::StorageClass buildStorageClass() const;
    360         bool buildInline() const;
     348        StorageClass buildStorageClass() const;
     349        bool buildFuncSpecifier( StorageClass key ) const;
    361350
    362351        TypeData *type;
     
    380369        };
    381370
    382         StatementNode( void );
    383         StatementNode( std::string );
     371        StatementNode();
     372        StatementNode( const std::string * );
    384373        StatementNode( Type, ExpressionNode *e = 0, StatementNode *s = 0 );
    385374        StatementNode( Type, std::string *target );
     
    387376
    388377
    389         ~StatementNode( void );
    390 
    391         static StatementNode  *newCatchStmt( DeclarationNode *d = 0, StatementNode *s = 0, bool catchRestP = false );
     378        ~StatementNode();
     379
     380        static StatementNode *newCatchStmt( DeclarationNode *d = 0, StatementNode *s = 0, bool catchRestP = false );
    392381
    393382        void set_control( ExpressionNode * );
     
    396385        ExpressionNode *get_control() const ;
    397386        StatementNode *get_block() const;
    398         StatementNode::Type get_type( void ) const;
    399 
    400         StatementNode *add_label( std::string * );
     387        StatementNode::Type get_type() const;
     388
     389        StatementNode *add_label( const std::string * );
    401390        std::list<std::string> *get_labels() const;
    402391
     
    429418class CompoundStmtNode : public StatementNode {
    430419  public:
    431         CompoundStmtNode( void );
    432         CompoundStmtNode( std::string * );
     420        CompoundStmtNode();
     421        CompoundStmtNode( const std::string * );
    433422        CompoundStmtNode( StatementNode * );
    434423        ~CompoundStmtNode();
     
    499488
    500489// in DeclarationNode.cc
    501 void buildList( const DeclarationNode *firstNode, std::list< Declaration *> &outputList );
     490void buildList( const DeclarationNode *firstNode, std::list< Declaration * > &outputList );
    502491void buildList( const DeclarationNode *firstNode, std::list< DeclarationWithType *> &outputList );
    503 void buildTypeList( const DeclarationNode *firstNode, std::list< Type *> &outputList );
     492void buildTypeList( const DeclarationNode *firstNode, std::list< Type * > &outputList );
    504493
    505494// in ExpressionNode.cc
  • src/Parser/Parser.cc

    reb50842 r937e51d  
    1010// Created On       : Sat May 16 14:54:28 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat May 16 14:55:59 2015
    13 // Update Count     : 2
     12// Last Modified On : Sun May 31 23:45:19 2015
     13// Update Count     : 4
    1414//
    1515
     
    1717#include "TypedefTable.h"
    1818#include "lex.h"
    19 #include "cfa.tab.h"
     19#include "parser.h"
    2020
    2121// global variables in cfa.y
  • src/Parser/StatementNode.cc

    reb50842 r937e51d  
    1010// Created On       : Sat May 16 14:59:41 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat May 16 15:10:45 2015
    13 // Update Count     : 7
     12// Last Modified On : Sat Jun  6 23:25:41 2015
     13// Update Count     : 19
    1414//
    1515
     
    3636StatementNode::StatementNode() : ParseNode(), control( 0 ), block( 0 ), labels( 0 ), target( 0 ), decl( 0 ), isCatchRest ( false ) {}
    3737
    38 StatementNode::StatementNode( string name_) : ParseNode( name_), control( 0 ), block( 0 ), labels( 0 ), target( 0 ), decl( 0 ), isCatchRest ( false ) {}
     38StatementNode::StatementNode( const string *name_ ) : ParseNode( name_ ), control( 0 ), block( 0 ), labels( 0 ), target( 0 ), decl( 0 ), isCatchRest ( false ) {}
    3939
    4040StatementNode::StatementNode( DeclarationNode *decl ) : type( Decl ), control( 0 ), block( 0 ), labels( 0 ), target( 0 ), isCatchRest ( false ) {
     
    4949                                next->set_next( new StatementNode( dynamic_cast< DeclarationNode* >( decl->get_link() ) ) );
    5050                                decl->set_next( 0 );
    51                         }
     51                        } // if
    5252                } else {
    5353                        if ( decl->get_link() ) {
    5454                                next = new StatementNode( dynamic_cast< DeclarationNode* >( decl->get_link() ) );
    5555                                decl->set_next( 0 );
    56                         }
     56                        } // if
    5757                        this->decl = decl;
    58                 }
    59         }
     58                } // if
     59        } // if
    6060}
    6161
     
    6767
    6868StatementNode::StatementNode( Type t, string *_target ) :
    69                 type( t ), control( 0 ), block( 0 ),   labels( 0 ), target(_target ), decl( 0 ), isCatchRest ( false ) {}
     69                type( t ), control( 0 ), block( 0 ), labels( 0 ), target(_target ), decl( 0 ), isCatchRest ( false ) {}
    7070
    7171StatementNode::~StatementNode() {
     
    9898        } else {
    9999                newnode->target = 0;
    100         }
     100        } // if
    101101        newnode->decl = maybeClone( decl );
    102102        return newnode;
     
    125125}
    126126
    127 StatementNode *StatementNode::add_label( std::string *l ) {
     127StatementNode *StatementNode::add_label( const std::string *l ) {
    128128        if ( l != 0 ) {
    129129                if ( labels == 0 )
     
    132132                labels->push_front(*l );
    133133                delete l;
    134         }
     134        } // if
    135135        return this;
    136136}
     
    151151                else
    152152                        block->set_link( stmt );
    153         }
     153        } // if
    154154        return this;
    155155}
     
    165165                        else
    166166                                block->set_link( stmt );
    167         }
     167        } // if
    168168        return this;
    169169}
    170170
    171171void StatementNode::print( std::ostream &os, int indent ) const {
    172         if ( labels != 0 )
     172        if ( labels != 0 ) {
    173173                if ( ! labels->empty()) {
    174174                        std::list<std::string>::const_iterator i;
    175175
    176                         os << '\r' << string( indent, ' ');
     176                        os << string( indent, ' ' );
    177177                        for ( i = labels->begin(); i != labels->end(); i++ )
    178178                                os << *i << ":";
    179179                        os << endl;
    180                 }
     180                } // if
     181        } // if
    181182
    182183        switch ( type ) {
     
    193194                break;
    194195          default:
    195                 os << '\r' << string( indent, ' ') << StatementNode::StType[type] << endl;
     196                os << string( indent, ' ' ) << StatementNode::StType[type] << endl;
    196197                if ( type == Catch ) {
    197198                        if ( decl ) {
    198                                 os << '\r' << string( indent + ParseNode::indent_by, ' ' ) << "Declaration: " << endl;
     199                                os << string( indent + ParseNode::indent_by, ' ' ) << "Declaration: " << endl;
    199200                                decl->print( os, indent + 2*ParseNode::indent_by );
    200201                        } else if ( isCatchRest ) {
    201                                 os << '\r' << string( indent + ParseNode::indent_by, ' ' ) << "Catches the rest " << endl;
     202                                os << string( indent + ParseNode::indent_by, ' ' ) << "Catches the rest " << endl;
    202203                        } else {
    203204                                ; // should never reach here
    204                         }
    205                 }
     205                        } // if
     206                } // if
    206207                if ( control ) {
    207                         os << '\r' << string( indent + ParseNode::indent_by, ' ' ) << "Expression: " << endl;
     208                        os << string( indent + ParseNode::indent_by, ' ' ) << "Expression: " << endl;
    208209                        control->printList( os, indent + 2*ParseNode::indent_by );
    209                 }
     210                } // if
    210211                if ( block ) {
    211                         os << '\r' << string( indent + ParseNode::indent_by, ' ' ) << "Branches of execution: " << endl;
     212                        os << string( indent + ParseNode::indent_by, ' ' ) << "Branches of execution: " << endl;
    212213                        block->printList( os, indent + 2*ParseNode::indent_by ); 
    213                 }
     214                } // if
    214215                if ( target ) {
    215                         os << '\r' << string( indent + ParseNode::indent_by, ' ' ) << "Target: " << get_target() << endl;
    216                 }
     216                        os << string( indent + ParseNode::indent_by, ' ' ) << "Target: " << get_target() << endl;
     217                } // if
    217218                break;
    218         }
     219        } // switch
    219220}
    220221
     
    227228                std::back_insert_iterator< std::list<Label> > lab_it( labs );
    228229                copy( labels->begin(), labels->end(), lab_it );
    229         }
     230        } // if
    230231
    231232        // try {
     
    254255                                elseb = branches.front();
    255256                                branches.pop_front();
    256                         }
     257                        } // if
    257258                        return new IfStmt( labs, notZeroExpr( get_control()->build() ), thenb, elseb );
    258259                }
     
    299300                                assert( get_control() != 0 );
    300301                                return new BranchStmt( labs, get_control()->build(), BranchStmt::Goto );
    301                         }
     302                        } // if
    302303
    303304                        return new BranchStmt( labs, get_target(), BranchStmt::Goto );
     
    322323                        if ( ( finallyBlock = dynamic_cast<FinallyStmt *>( branches.back())) ) {
    323324                                branches.pop_back();
    324                         }
     325                        } // if
    325326                        return new TryStmt( labs, tryBlock, branches, finallyBlock );
    326327                }
     
    342343                // shouldn't be here
    343344                return 0;
    344         }
    345 }
    346 
    347 CompoundStmtNode::CompoundStmtNode() : first( 0 ), last( 0 ) {
    348 }
    349 
    350 CompoundStmtNode::CompoundStmtNode( string *name_) : StatementNode(*name_), first( 0 ), last( 0 ) {
    351 }
    352 
    353 CompoundStmtNode::CompoundStmtNode( StatementNode *stmt ): first( stmt ) {
     345        } // switch
     346}
     347
     348CompoundStmtNode::CompoundStmtNode() : first( 0 ), last( 0 ) {}
     349
     350CompoundStmtNode::CompoundStmtNode( const string *name_ ) : StatementNode( name_ ), first( 0 ), last( 0 ) {}
     351
     352CompoundStmtNode::CompoundStmtNode( StatementNode *stmt ) : first( stmt ) {
    354353        if ( first ) {
    355354                last = ( StatementNode *)( stmt->get_last());
    356355        } else {
    357356                last = 0;
    358         }
     357        } // if
    359358}
    360359
     
    367366                last->set_link( stmt );
    368367                last = ( StatementNode *)( stmt->get_link());
    369         }
     368        } // if
    370369}
    371370
     
    373372        if ( first ) {
    374373                first->printList( os, indent+2 );
    375         }
     374        } // if
    376375}
    377376
     
    383382                std::back_insert_iterator< std::list<Label> > lab_it( labs );
    384383                copy( labels->begin(), labels->end(), lab_it );
    385         }
     384        } // if
    386385
    387386        CompoundStmt *cs = new CompoundStmt( labs );
     
    391390
    392391void NullStmtNode::print( ostream &os, int indent ) const {
    393         os << "\r" << string( indent, ' ') << "Null Statement:" << endl;
     392        os << string( indent, ' ' ) << "Null Statement:" << endl;
    394393}
    395394
  • src/Parser/TypeData.cc

    reb50842 r937e51d  
    1010// Created On       : Sat May 16 15:12:51 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat May 16 15:17:56 2015
    13 // Update Count     : 4
     12// Last Modified On : Thu Jun 18 22:06:23 2015
     13// Update Count     : 21
    1414//
    1515
     
    8989                attr->type = 0;
    9090                break;
    91         }
     91        } // switch
    9292}
    9393
     
    155155                delete attr;
    156156                break;
    157         }
     157        } // switch
    158158}
    159159
     
    225225                newtype->attr->type = maybeClone( attr->type );
    226226                break;
    227         }
     227        } // switch
    228228        return newtype;
    229229}
     
    238238                os << "forall " << endl;
    239239                forall->printList( os, indent+4 );
    240         }
     240        } // if
    241241
    242242        switch ( kind ) {
     
    249249                        os << "to ";
    250250                        base->print( os, indent );
    251                 }
     251                } // if
    252252                break;
    253253          case EnumConstant:
     
    261261                if ( array->isStatic ) {
    262262                        os << "static ";
    263                 }
     263                } // if
    264264                if ( array->dimension ) {
    265265                        os << "array of ";
     
    269269                } else {
    270270                        os << "open array of ";
    271                 }
     271                } // if
    272272                if ( base ) {
    273273                        base->print( os, indent );
    274                 }
     274                } // if
    275275                break;
    276276          case Function:
     
    281281                } else {
    282282                        os << string( indent+2, ' ' ) << "with no parameters " << endl;
    283                 }
     283                } // if
    284284                if ( function->idList ) {
    285285                        os << string( indent+2, ' ' ) << "with old-style identifier list " << endl;
    286286                        function->idList->printList( os, indent+4 );
    287                 }
     287                } // if
    288288                if ( function->oldDeclList ) {
    289289                        os << string( indent+2, ' ' ) << "with old-style declaration list " << endl;
    290290                        function->oldDeclList->printList( os, indent+4 );
    291                 }
     291                } // if
    292292                os << string( indent+2, ' ' ) << "returning ";
    293293                if ( base ) {
     
    295295                } else {
    296296                        os << "nothing ";
    297                 }
     297                } // if
    298298                os << endl;
    299299                if ( function->hasBody ) {
    300300                        os << string( indent+2, ' ' ) << "with body " << endl;
    301                 }
     301                } // if
    302302                if ( function->body ) {
    303303                        function->body->printList( os, indent+2 );
    304                 }
     304                } // if
    305305                break;
    306306          case Aggregate:
    307                 os << DeclarationNode::tyConName[ aggregate->kind ] << ' ' << aggregate->name << endl;
     307                os << DeclarationNode::aggregateName[ aggregate->kind ] << ' ' << aggregate->name << endl;
    308308                if ( aggregate->params ) {
    309309                        os << string( indent+2, ' ' ) << "with type parameters " << endl;
    310310                        aggregate->params->printList( os, indent+4 );
    311                 }
     311                } // if
    312312                if ( aggregate->actuals ) {
    313313                        os << string( indent+2, ' ' ) << "instantiated with actual parameters " << endl;
    314314                        aggregate->actuals->printList( os, indent+4 );
    315                 }
     315                } // if
    316316                if ( aggregate->members ) {
    317317                        os << string( indent+2, ' ' ) << "with members " << endl;
     
    319319///     } else {
    320320///       os << string( indent+2, ' ' ) << "with no members " << endl;
    321                 }
     321                } // if
    322322                break;
    323323          case AggregateInst:
     
    327327                } else {
    328328                        os << "instance of an unspecified aggregate ";
    329                 }
     329                } // if
    330330                if ( aggInst->params ) {
    331331                        os << string( indent+2, ' ' ) << "with parameters " << endl;
    332332                        aggInst->params->printList( os, indent+2 );
    333                 }
     333                } // if
    334334                break;
    335335          case Enum:
     
    338338                        os << "with constants" << endl;
    339339                        enumeration->constants->printList( os, indent+2 );
    340                 }
     340                } // if
    341341                break;
    342342          case SymbolicInst:
     
    345345                        os << " with parameters" << endl;
    346346                        symbolic->actuals->printList( os, indent + 2 );
    347                 }
     347                } // if
    348348                break;
    349349          case Symbolic:
     
    352352                } else {
    353353                        os << "type definition ";
    354                 }
     354                } // if
    355355                if ( symbolic->params ) {
    356356                        os << endl << string( indent+2, ' ' ) << "with parameters" << endl;
    357357                        symbolic->params->printList( os, indent + 2 );
    358                 }
     358                } // if
    359359                if ( symbolic->assertions ) {
    360360                        os << endl << string( indent+2, ' ' ) << "with assertions" << endl;
    361361                        symbolic->assertions->printList( os, indent + 4 );
    362362                        os << string( indent+2, ' ' );
    363                 }
     363                } // if
    364364                if ( base ) {
    365365                        os << "for ";
    366366                        base->print( os, indent + 2 );
    367                 }
     367                } // if
    368368                break;
    369369          case Variable:
     
    373373                        variable->assertions->printList( os, indent + 4 );
    374374                        os << string( indent+2, ' ' );
    375                 }
     375                } // if
    376376                break;
    377377          case Tuple:
     
    380380                        os << "with members " << endl;
    381381                        tuple->members->printList( os, indent + 2 );
    382                 }
     382                } // if
    383383                break;
    384384          case Typeof:
     
    386386                if ( typeexpr->expr ) {
    387387                        typeexpr->expr->print( os, indent + 2 );
    388                 }
     388                } // if
    389389                break;
    390390          case Attr:
     
    392392                if ( attr->expr ) {
    393393                        attr->expr->print( os, indent + 2 );
    394                 }
     394                } // if
    395395                if ( attr->type ) {
    396396                        attr->type->print( os, indent + 2 );
    397                 }
    398                 break;
    399         }
     397                } // if
     398                break;
     399        } // switch
    400400}
    401401
     
    408408                        ret = clone();
    409409                        ret->qualifiers.clear();
    410                 }
     410                } // if
    411411                break;
    412412          case Enum:
     
    414414                        ret = clone();
    415415                        ret->qualifiers.clear();
    416                 }
     416                } // if
    417417                break;
    418418          case AggregateInst:
    419419                if ( aggInst->aggregate ) {
    420420                        ret = aggInst->aggregate->extractAggregate( false );
    421                 }
     421                } // if
    422422                break;
    423423          default:
    424424                if ( base ) {
    425425                        ret = base->extractAggregate( false );
    426                 }
    427         }
     426                } // if
     427        } // switch
    428428        return ret;
    429429}
     
    434434                if ( (*i)->get_kind() == TypeDecl::Any ) {
    435435                        FunctionType *assignType = new FunctionType( Type::Qualifiers(), false );
    436                         assignType->get_parameters().push_back( new ObjectDecl( "", Declaration::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ) ), 0 ) );
    437                         assignType->get_parameters().push_back( new ObjectDecl( "", Declaration::NoStorageClass, LinkageSpec::Cforall, 0, new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ), 0 ) );
    438                         assignType->get_returnVals().push_back( new ObjectDecl( "", Declaration::NoStorageClass, LinkageSpec::Cforall, 0, new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ), 0 ) );
    439                         (*i)->get_assertions().push_front( new FunctionDecl( "?=?", Declaration::NoStorageClass, LinkageSpec::Cforall, assignType, 0, false ) );
    440                 }
    441         }
    442 }
    443 
    444 Declaration *TypeData::buildDecl( std::string name, Declaration::StorageClass sc, Expression *bitfieldWidth, bool isInline, LinkageSpec::Type linkage, Initializer *init ) const {
     436                        assignType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ) ), 0 ) );
     437                        assignType->get_parameters().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ), 0 ) );
     438                        assignType->get_returnVals().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new TypeInstType( Type::Qualifiers(), (*i)->get_name(), *i ), 0 ) );
     439                        (*i)->get_assertions().push_front( new FunctionDecl( "?=?", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, assignType, 0, false, false ) );
     440                } // if
     441        } // for
     442}
     443
     444Declaration *TypeData::buildDecl( std::string name, DeclarationNode::StorageClass sc, Expression *bitfieldWidth, bool isInline, bool isNoreturn, LinkageSpec::Type linkage, Initializer *init ) const {
    445445        if ( kind == TypeData::Function ) {
    446446                FunctionDecl *decl;
     
    450450                                CompoundStmt *body = dynamic_cast< CompoundStmt* >( stmt );
    451451                                assert( body );
    452                                 decl = new FunctionDecl( name, sc, linkage, buildFunction(), body, isInline );
     452                                decl = new FunctionDecl( name, sc, linkage, buildFunction(), body, isInline, isNoreturn );
    453453                        } else {
    454454                                // std::list<Label> ls;
    455                                 decl = new FunctionDecl( name, sc, linkage, buildFunction(), new CompoundStmt( std::list<Label>() ), isInline );
    456                         }
     455                                decl = new FunctionDecl( name, sc, linkage, buildFunction(), new CompoundStmt( std::list<Label>() ), isInline, isNoreturn );
     456                        } // if
    457457                } else {
    458                         decl = new FunctionDecl( name, sc, linkage, buildFunction(), 0, isInline );
    459                 }
     458                        decl = new FunctionDecl( name, sc, linkage, buildFunction(), 0, isInline, isNoreturn );
     459                } // if
    460460                for ( DeclarationNode *cur = function->idList; cur != 0; cur = dynamic_cast< DeclarationNode* >( cur->get_link() ) ) {
    461461                        if ( cur->get_name() != "" ) {
    462462                                decl->get_oldIdents().insert( decl->get_oldIdents().end(), cur->get_name() );
    463                         }
    464                 }
     463                        } // if
     464                } // for
    465465                buildList( function->oldDeclList, decl->get_oldDecls() );
    466466                return decl;
     
    474474                return buildVariable();
    475475        } else {
    476                 if ( isInline ) {
    477                         throw SemanticError( "invalid inline specification in declaration of ", this );
     476                if ( isInline || isNoreturn ) {
     477                        throw SemanticError( "invalid inline or _Noreturn specification in declaration of ", this );
    478478                } else {
    479479                        return new ObjectDecl( name, sc, linkage, bitfieldWidth, build(), init );
    480                 }
    481         }
     480                } // if
     481        } // if
    482482        return 0;
    483483}
     
    514514          case Variable:
    515515                assert( false );
    516         }
     516        } // switch
    517517
    518518        return 0;
     
    541541                        q.isAttribute = true;
    542542                        break;
    543                 }
    544         }
     543                } // switch
     544        } // for
    545545        return q;
    546546}
     
    563563                                } else {
    564564                                        return new VoidType( buildQualifiers() );
    565                                 }
     565                                } // if
    566566                        } else {
    567567                                ret = kindMap[ *i ];
    568                         }
     568                        } // if
    569569                } else {
    570570                        switch ( *i ) {
     
    582582                                          default:
    583583                                                throw SemanticError( "invalid type specifier \"float\" in type: ", this );
    584                                         }
    585                                 }
     584                                        } // switch
     585                                } // if
    586586                                break;
    587587                          case DeclarationNode::Double:
     
    595595                                          default:
    596596                                                throw SemanticError( "invalid type specifier \"double\" in type: ", this );
    597                                         }
    598                                 }
     597                                        } // switch
     598                                } // if
    599599                                break;
    600        
    601600                          case DeclarationNode::Complex:
    602601                                switch ( ret ) {
     
    609608                                  default:
    610609                                        throw SemanticError( "invalid type specifier \"_Complex\" in type: ", this );
    611                                 }
     610                                } // switch
    612611                                break;
    613612                          case DeclarationNode::Imaginary:
     
    621620                                  default:
    622621                                        throw SemanticError( "invalid type specifier \"_Imaginary\" in type: ", this );
    623                                 }
     622                                } // switch
    624623                                break;
    625624                          default:
    626625                                throw SemanticError( std::string( "invalid type specifier \"" ) + DeclarationNode::basicTypeName[ *i ] + "\" in type: ", this );
    627                         }
    628                 }
     626                        } // switch
     627                } // if
    629628                if ( *i == DeclarationNode::Double ) {
    630629                        sawDouble = true;
    631                 }
    632         }
     630                } // if
     631        } // for
    633632
    634633        for ( std::list< DeclarationNode::Modifier >::const_iterator i = basic->modifiers.begin(); i != basic->modifiers.end(); ++i ) {
     
    663662                                  default:
    664663                                        throw SemanticError( "invalid type modifier \"long\" in type: ", this );
    665                                 }
    666                         }
     664                                } // switch
     665                        } // if
    667666                        break;
    668667                  case DeclarationNode::Short:
     
    680679                                  default:
    681680                                        throw SemanticError( "invalid type modifier \"short\" in type: ", this );
    682                                 }
    683                         }
     681                                } // switch
     682                        } // if
    684683                        break;
    685684                  case DeclarationNode::Signed:
     
    691690                        } else {
    692691                                switch ( ret ) {
    693                                   case BasicType::LongLongSignedInt:    // PAB
     692                                  case BasicType::LongLongSignedInt:
    694693                                        ret = BasicType::LongLongUnsignedInt;
    695694                                        break;
     
    705704                                  default:
    706705                                        throw SemanticError( "invalid type modifer \"signed\" in type: ", this );
    707                                 }
    708                         }
     706                                } // switch
     707                        } // if
    709708                        break;
    710709                  case DeclarationNode::Unsigned:
     
    716715                        } else {
    717716                                switch ( ret ) {
    718                                   case BasicType::LongLongSignedInt:    // PAB
     717                                  case BasicType::LongLongSignedInt:
    719718                                        ret = BasicType::LongLongUnsignedInt;
    720719                                        break;
     
    733732                                  default:
    734733                                        throw SemanticError( "invalid type modifer \"unsigned\" in type: ", this );
    735                                 }
    736                         }
    737                         break;
    738                 }
     734                                } // switch
     735                        } // if
     736                        break;
     737                } // switch
    739738
    740739                if ( *i == DeclarationNode::Signed ) {
    741740                        sawSigned = true;
    742                 }
    743         }
     741                } // if
     742        } // for
    744743
    745744        BasicType *bt;
     
    748747        } else {
    749748                bt = new BasicType( buildQualifiers(), ret );
    750         }
     749        } // if
    751750        buildForall( forall, bt->get_forall() );
    752751        return bt;
     
    760759        } else {
    761760                pt = new PointerType( buildQualifiers(), new BasicType( Type::Qualifiers(), BasicType::SignedInt ) );
    762         }
     761        } // if
    763762        buildForall( forall, pt->get_forall() );
    764763        return pt;
     
    773772                at = new ArrayType( buildQualifiers(), new BasicType( Type::Qualifiers(), BasicType::SignedInt ),
    774773                                                        maybeBuild< Expression >( array->dimension ), array->isVarLen, array->isStatic );
    775         }
     774        } // if
    776775        buildForall( forall, at->get_forall() );
    777776        return at;
     
    791790                        break;
    792791                  default:
    793                         ft->get_returnVals().push_back( dynamic_cast< DeclarationWithType* >( base->buildDecl( "", Declaration::NoStorageClass, 0, false, LinkageSpec::Cforall ) ) );
    794                 }
     792                        ft->get_returnVals().push_back( dynamic_cast< DeclarationWithType* >( base->buildDecl( "", DeclarationNode::NoStorageClass, 0, false, false, LinkageSpec::Cforall ) ) );
     793                } // switch
    795794        } else {
    796                 ft->get_returnVals().push_back( new ObjectDecl( "", Declaration::NoStorageClass, LinkageSpec::Cforall, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), 0 ) );
    797         }
     795                ft->get_returnVals().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), 0 ) );
     796        } // if
    798797        return ft;
    799798}
     
    806805                at = new StructDecl( aggregate->name );
    807806                break;
    808        
    809807          case DeclarationNode::Union:
    810808                at = new UnionDecl( aggregate->name );
    811809                break;
    812        
    813810          case DeclarationNode::Context:
    814811                at = new ContextDecl( aggregate->name );
    815812                break;
    816        
    817813          default:
    818814                assert( false );
    819         }
     815        } // switch
    820816        buildList( aggregate->params, at->get_parameters() );
    821817        buildList( aggregate->members, at->get_members() );
     
    838834ReferenceToType *TypeData::buildAggInst() const {
    839835        assert( kind == AggregateInst );
    840         std::string name;
    841836
    842837        ReferenceToType *ret;
     
    857852                  default:
    858853                        assert( false );
    859                 }
    860         }
     854                } // switch
     855        } // if
    861856        buildList( aggInst->params, ret->get_parameters() );
    862857        buildForall( forall, ret->get_forall() );
     
    864859}
    865860
    866 NamedTypeDecl *TypeData::buildSymbolic( const std::string &name, Declaration::StorageClass sc ) const {
     861NamedTypeDecl *TypeData::buildSymbolic( const std::string &name, DeclarationNode::StorageClass sc ) const {
    867862        assert( kind == Symbolic );
    868863        NamedTypeDecl *ret;
     
    871866        } else {
    872867                ret = new TypeDecl( name, sc, maybeBuild< Type >( base ), TypeDecl::Any );
    873         }
     868        } // if
    874869        buildList( symbolic->params, ret->get_parameters() );
    875870        buildList( symbolic->assertions, ret->get_assertions() );
     
    881876        static const TypeDecl::Kind kindMap[] = { TypeDecl::Any, TypeDecl::Ftype, TypeDecl::Dtype };
    882877
    883         TypeDecl *ret = new TypeDecl( variable->name, Declaration::NoStorageClass, 0, kindMap[ variable->tyClass ] );
     878        TypeDecl *ret = new TypeDecl( variable->name, DeclarationNode::NoStorageClass, 0, kindMap[ variable->tyClass ] );
    884879        buildList( variable->assertions, ret->get_assertions() );
    885        
    886880        return ret;
    887881}
     
    891885        EnumDecl *ret = new EnumDecl( enumeration->name );
    892886        buildList( enumeration->constants, ret->get_members() );
    893 
    894887        return ret;
    895888}
     
    900893        buildList( symbolic->actuals, ret->get_parameters() );
    901894        buildForall( forall, ret->get_forall() );
    902 
    903895        return ret;
    904896}
     
    909901        buildTypeList( tuple->members, ret->get_types() );
    910902        buildForall( forall, ret->get_forall() );
    911 
    912903        return ret;
    913904}
     
    918909        assert( typeexpr->expr );
    919910        TypeofType *ret = new TypeofType( buildQualifiers(), typeexpr->expr->build() );
    920 
    921911        return ret;
    922912}
     
    931921                assert( attr->type );
    932922                ret = new AttrType( buildQualifiers(), attr->name, attr->type->buildType() );
    933         }
    934 
     923        } // if
    935924        return ret;
    936925}
  • src/Parser/TypeData.h

    reb50842 r937e51d  
    1010// Created On       : Sat May 16 15:18:36 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat May 16 15:20:00 2015
    13 // Update Count     : 2
     12// Last Modified On : Thu Jun 18 21:03:18 2015
     13// Update Count     : 7
    1414//
    1515
     
    4444
    4545        struct Aggregate_t {
    46                 DeclarationNode::TyCon kind;
     46                DeclarationNode::Aggregate kind;
    4747                std::string name;
    4848                DeclarationNode *params;
     
    120120        TypeData *extractAggregate( bool toplevel = true ) const;
    121121        // helper function for DeclNodeImpl::build
    122         Declaration * buildDecl( std::string name, Declaration::StorageClass sc, Expression *bitfieldWidth, bool isInline, LinkageSpec::Type linkage, Initializer *init = 0 ) const;
     122        Declaration * buildDecl( std::string name, DeclarationNode::StorageClass sc, Expression *bitfieldWidth, bool isInline, bool isNoreturn, LinkageSpec::Type linkage, Initializer *init = 0 ) const;
    123123        // helper functions for build()
    124124        Type::Qualifiers buildQualifiers() const;
    125         Type *buildBasicType() const;
     125        Type * buildBasicType() const;
    126126        PointerType * buildPointer() const;
    127127        ArrayType * buildArray() const;
    128128        AggregateDecl * buildAggregate() const;
    129129        ReferenceToType * buildAggInst() const;
    130         NamedTypeDecl * buildSymbolic( const std::string &name, Declaration::StorageClass sc ) const;
     130        NamedTypeDecl * buildSymbolic( const std::string &name, DeclarationNode::StorageClass sc ) const;
    131131        TypeDecl* buildVariable() const;
    132132        EnumDecl* buildEnum() const;
  • src/Parser/TypedefTable.cc

    reb50842 r937e51d  
    1010// Created On       : Sat May 16 15:20:13 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat May 16 15:24:03 2015
    13 // Update Count     : 2
     12// Last Modified On : Sun Jun 21 11:46:15 2015
     13// Update Count     : 7
    1414//
    1515
     
    2929TypedefTable::TypedefTable() : currentScope( 0 ) {}
    3030
    31 bool TypedefTable::isKind( string identifier, kind_t kind ) const {
     31bool TypedefTable::isKind( const string &identifier, kind_t kind ) const {
    3232        tableType::const_iterator id_pos = table.find( identifier );
    33         if ( id_pos == table.end()) {
     33        if ( id_pos == table.end() ) {
    3434                return true;
    3535        } else {
    3636                return (*((*id_pos ).second.begin())).kind == kind;
    37         }
     37        } // if
    3838}
    3939
    40 bool TypedefTable::isIdentifier( string identifier ) const {
     40bool TypedefTable::isIdentifier( const string &identifier ) const {
    4141        return isKind( identifier, ID );
    4242}
    4343
    44 bool TypedefTable::isTypedef( string identifier ) const {
     44bool TypedefTable::isTypedef( const string &identifier ) const {
    4545        return isKind( identifier, TD );
    4646}
    4747
    48 bool TypedefTable::isTypegen( string identifier ) const {
     48bool TypedefTable::isTypegen( const string &identifier ) const {
    4949        return isKind( identifier, TG );
    5050}
     
    6666                        while ( listPos != (*curPos ).second.end() && listPos->scope > scope ) {
    6767                                listPos++;
    68                         }
     68                        } // while
    6969                        (*curPos ).second.insert( listPos, newEntry );
    70                 }
    71         }
     70                } // if
     71        } // if
    7272}
    7373
     
    102102}
    103103
    104 void TypedefTable::openContext( std::string contextName ) {
     104void TypedefTable::openContext( const std::string &contextName ) {
    105105        map< string, deferListType >::iterator i = contexts.find( contextName );
    106106        if ( i != contexts.end() ) {
     
    108108                for ( deferListType::iterator i = entries.begin(); i != entries.end(); i++) {
    109109                        addToEnclosingScope( i->identifier, i->kind );
    110                 }
    111         }
     110                } // for
     111        } // if
    112112}
    113113
    114 void TypedefTable::enterScope( void ) {
     114void TypedefTable::enterScope() {
    115115        currentScope += 1;
    116116        deferListStack.push( deferListType() );
     
    119119}
    120120
    121 void TypedefTable::leaveScope( void ) {
     121void TypedefTable::leaveScope() {
    122122        debugPrint( "Leaving scope " << currentScope << endl );
    123123        for ( tableType::iterator i = table.begin(); i != table.end(); ) {
     
    129129                        table.erase( i++ );
    130130                } else ++i;
    131         }
     131        } // for
    132132        currentScope -= 1;
    133133        for ( deferListType::iterator i = deferListStack.top().begin(); i != deferListStack.top().end(); i++) {
    134134                addToCurrentScope( i->identifier, i->kind );
    135         }
     135        } // for
    136136        deferListStack.pop();
    137137        debugPrint( "nextIdentifiers size is " << nextIdentifiers.size() << " top is " << nextIdentifiers.top() << endl );
     
    139139}
    140140
    141 void TypedefTable::enterContext( std::string contextName ) {
     141void TypedefTable::enterContext( const std::string &contextName ) {
    142142        currentContext = contextName;
    143143        contextScope = currentScope;
    144144}
    145145
    146 void TypedefTable::leaveContext( void ) {
     146void TypedefTable::leaveContext() {
    147147        currentContext = "";
    148148}
     
    156156                }
    157157                debugPrint( endl );
    158         }
     158        } // for
    159159}
    160160
  • src/Parser/TypedefTable.h

    reb50842 r937e51d  
    1010// Created On       : Sat May 16 15:24:36 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat May 16 15:25:59 2015
    13 // Update Count     : 3
     12// Last Modified On : Thu Jun 18 21:03:17 2015
     13// Update Count     : 7
    1414//
    1515
     
    4949        std::stack< std::string > nextIdentifiers;
    5050
    51         bool isKind( std::string identifier, kind_t kind ) const;
     51        bool isKind( const std::string &identifier, kind_t kind ) const;
    5252        void addToScope( const std::string &identifier, kind_t kind, int scope );
    5353  public:
    5454        TypedefTable();
    5555
    56         bool isIdentifier( std::string identifier ) const;
    57         bool isTypedef( std::string identifier ) const;
    58         bool isTypegen( std::string identifier ) const;
     56        bool isIdentifier( const std::string &identifier ) const;
     57        bool isTypedef( const std::string &identifier ) const;
     58        bool isTypegen( const std::string &identifier ) const;
    5959       
    60         // "addToCurrentScope" adds the identifier/type pair to the current scope This does less than you think it does,
     60        // "addToCurrentScope" adds the identifier/type pair to the current scope. This does less than you think it does,
    6161        // since each declaration is within its own scope.  Mostly useful for type parameters.
    6262        void addToCurrentScope( const std::string &identifier, kind_t kind );
     
    7777       
    7878        // dump the definitions from a pre-defined context into the current scope
    79         void openContext( std::string contextName );
     79        void openContext( const std::string &contextName );
    8080       
    8181        void enterScope();
    8282        void leaveScope();
    83         void enterContext( std::string contextName );
     83        void enterContext( const std::string &contextName );
    8484        void leaveContext();
    8585
  • src/Parser/lex.h

    reb50842 r937e51d  
    1010// Created On       : Sat Sep 22 08:58:10 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat May 16 12:18:48 2015
    13 // Update Count     : 334
     12// Last Modified On : Mon Jun  8 20:28:48 2015
     13// Update Count     : 341
    1414//
    1515
     
    1818
    1919int yylex();
    20 void yyerror(char *);
     20void yyerror( const char * );
    2121
    2222// External declarations for information sharing between lexer and scanner
     
    3535class Token {
    3636  public:
    37     std::string *str;
     37    std::string *str;                                                                   // must be pointer as used in union
    3838    Location loc;
    3939
     
    4444
    4545// Local Variables: //
    46 // fill-column: 110 //
    4746// tab-width: 4 //
    4847// mode: c++ //
  • src/Parser/lex.ll

    reb50842 r937e51d  
    1010 * Created On       : Sat Sep 22 08:58:10 2001
    1111 * Last Modified By : Peter A. Buhr
    12  * Last Modified On : Tue May 19 15:41:54 2015
    13  * Update Count     : 331
     12 * Last Modified On : Fri Jun 19 11:10:14 2015
     13 * Update Count     : 392
    1414 */
    1515
    1616%option yylineno
     17%option nounput
    1718
    1819%{
    19 // This lexer assumes the program has been preprocessed by cpp. Hence, all user level preprocessor directive
    20 // have been performed and removed from the source. The only exceptions are preprocessor directives passed to
    21 // the compiler (e.g., line-number directives) and C/C++ style comments, which are ignored.
     20// This lexer assumes the program has been preprocessed by cpp. Hence, all user level preprocessor directive have been
     21// performed and removed from the source. The only exceptions are preprocessor directives passed to the compiler (e.g.,
     22// line-number directives) and C/C++ style comments, which are ignored.
    2223
    2324//**************************** Includes and Defines ****************************
     
    2728#include "lex.h"
    2829#include "ParseNode.h"
    29 #include "cfa.tab.h"                                                                    // YACC generated definitions based on C++ grammar
     30#include "parser.h"                                                                             // YACC generated definitions based on C++ grammar
    3031
    3132char *yyfilename;
    3233std::string *strtext;                                                                   // accumulate parts of character and string constant value
    3334
     35#define RETURN_LOCN(x)          yylval.tok.loc.file = yyfilename; yylval.tok.loc.line = yylineno; return( x )
     36#define RETURN_VAL(x)           yylval.tok.str = new std::string( yytext ); RETURN_LOCN( x )
     37#define RETURN_CHAR(x)          yylval.tok.str = NULL; RETURN_LOCN( x )
     38#define RETURN_STR(x)           yylval.tok.str = strtext; RETURN_LOCN( x )
     39
    3440#define WHITE_RETURN(x)                                                                 // do nothing
    35 #define NEWLINE_RETURN()        WHITE_RETURN('\n')
    36 #define RETURN_VAL(x)           yylval.tok.str = new std::string(yytext); \
    37                                         yylval.tok.loc.file = yyfilename; \
    38                                         yylval.tok.loc.line = yylineno; \
    39                                         return(x)
    40 #define RETURN_STR(x)           yylval.tok.str = strtext; \
    41                                         yylval.tok.loc.file = yyfilename; \
    42                                         yylval.tok.loc.line = yylineno; \
    43                                         return(x)
    44 
    45 #define KEYWORD_RETURN(x)       RETURN_VAL(x)                           // keyword
    46 #define IDENTIFIER_RETURN()     RETURN_VAL((typedefTable.isIdentifier(yytext) ? IDENTIFIER : typedefTable.isTypedef(yytext) ? TYPEDEFname : TYPEGENname))
    47 //#define ATTRIBUTE_RETURN()    RETURN_VAL((typedefTable.isIdentifier(yytext) ? ATTR_IDENTIFIER : typedefTable.isTypedef(yytext) ? ATTR_TYPEDEFname : ATTR_TYPEGENname))
    48 #define ATTRIBUTE_RETURN()      RETURN_VAL(ATTR_IDENTIFIER)
    49 
    50 #define ASCIIOP_RETURN()        RETURN_VAL((int)yytext[0])      // single character operator
    51 #define NAMEDOP_RETURN(x)       RETURN_VAL(x)                           // multichar operator, with a name
    52 
    53 #define NUMERIC_RETURN(x)       rm_underscore(); RETURN_VAL(x) // numeric constant
     41#define NEWLINE_RETURN()        WHITE_RETURN( '\n' )
     42#define ASCIIOP_RETURN()        RETURN_CHAR( (int)yytext[0] ) // single character operator
     43#define NAMEDOP_RETURN(x)       RETURN_VAL( x )                         // multichar operator, with a name
     44#define NUMERIC_RETURN(x)       rm_underscore(); RETURN_VAL( x ) // numeric constant
     45#define KEYWORD_RETURN(x)       RETURN_CHAR( x )                        // keyword
     46#define IDENTIFIER_RETURN()     RETURN_VAL( (typedefTable.isIdentifier( yytext ) ? IDENTIFIER : typedefTable.isTypedef( yytext ) ? TYPEDEFname : TYPEGENname ) )
     47#define ATTRIBUTE_RETURN()      RETURN_VAL( ATTR_IDENTIFIER )
    5448
    5549void rm_underscore() {
     
    114108hex_escape "\\""x""_"?{hex_digits}
    115109escape_seq {simple_escape}|{octal_escape}|{hex_escape}|{universal_char}
     110cwide_prefix "L"|"U"|"u"
     111swide_prefix {cwide_prefix}|"u8"
    116112
    117113                                // display/white-space characters
     
    165161^{h_white}*"#"[^\n]*"\n" ;
    166162
    167                                 /* ignore C style comments */
     163                                /* ignore C style comments (ALSO HANDLED BY CPP) */
    168164"/*"                    { BEGIN COMMENT; }
    169 <COMMENT>.|\n           ;
    170 <COMMENT>"*/"           { BEGIN 0; }
    171 
    172                                 /* ignore C++ style comments */
    173 "//"[^\n]*"\n"          ;
     165<COMMENT>.|\n   ;
     166<COMMENT>"*/"   { BEGIN 0; }
     167
     168                                /* ignore C++ style comments (ALSO HANDLED BY CPP) */
     169"//"[^\n]*"\n"  ;
    174170
    175171                                /* ignore whitespace */
     
    275271"0"                             { NUMERIC_RETURN(ZERO); }                               // CFA
    276272"1"                             { NUMERIC_RETURN(ONE); }                                // CFA
    277 {decimal_constant}      { NUMERIC_RETURN(INTEGERconstant); }
    278 {octal_constant}        { NUMERIC_RETURN(INTEGERconstant); }
    279 {hex_constant}          { NUMERIC_RETURN(INTEGERconstant); }
     273{decimal_constant} { NUMERIC_RETURN(INTEGERconstant); }
     274{octal_constant} { NUMERIC_RETURN(INTEGERconstant); }
     275{hex_constant}  { NUMERIC_RETURN(INTEGERconstant); }
    280276{floating_constant}     { NUMERIC_RETURN(FLOATINGconstant); }
    281277{hex_floating_constant} { NUMERIC_RETURN(FLOATINGconstant); }
    282278
    283279                                /* character constant, allows empty value */
    284 "L"?"_"?[']             { BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
     280({cwide_prefix}[_]?)?['] { BEGIN QUOTE; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
    285281<QUOTE>[^'\\\n]* { *strtext += std::string( yytext ); }
    286282<QUOTE>['\n]    { BEGIN 0; *strtext += std::string( yytext); RETURN_STR(CHARACTERconstant); }
     
    288284
    289285                                /* string constant */
    290 "L"?"_"?["]             { BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
     286({swide_prefix}[_]?)?["] { BEGIN STRING; rm_underscore(); strtext = new std::string; *strtext += std::string( yytext ); }
    291287<STRING>[^"\\\n]* { *strtext += std::string( yytext ); }
    292 <STRING>["\n]   { BEGIN 0; *strtext += std::string( yytext); RETURN_STR(STRINGliteral); }
     288<STRING>["\n]   { BEGIN 0; *strtext += std::string( yytext ); RETURN_STR(STRINGliteral); }
    293289                                /* " stop highlighting */
    294290
     291                                /* common character/string constant */
    295292<QUOTE,STRING>{escape_seq} { rm_underscore(); *strtext += std::string( yytext ); }
    296 <QUOTE,STRING>[\\]      { *strtext += std::string( yytext ); } // unknown escape character
     293<QUOTE,STRING>"\\"{h_white}*"\n" {}                                             // continuation (ALSO HANDLED BY CPP)
     294<QUOTE,STRING>"\\" { *strtext += std::string( yytext ); } // unknown escape character
    297295
    298296                                /* punctuation */
     
    355353                                /* CFA, operator identifier */
    356354{op_unary}"?"   { IDENTIFIER_RETURN(); }                                // unary
    357 "?"({op_unary_pre_post}|"()"|"[?]") { IDENTIFIER_RETURN(); }
     355"?"({op_unary_pre_post}|"()"|"[?]"|"{}") { IDENTIFIER_RETURN(); }
    358356"?"{op_binary_over}"?"  { IDENTIFIER_RETURN(); }                // binary
    359357        /*
     
    400398
    401399// Local Variables: //
    402 // fill-column: 110 //
     400// mode: c++ //
    403401// tab-width: 4 //
    404 // mode: c++ //
    405402// compile-command: "make install" //
    406403// End: //
  • src/Parser/module.mk

    reb50842 r937e51d  
    88## module.mk --
    99##
    10 ## Author           : Richard C. Bilson
     10## Author           : Peter A. Buhr
    1111## Created On       : Sat May 16 15:29:09 2015
    1212## Last Modified By : Peter A. Buhr
    13 ## Last Modified On : Thu May 21 21:17:07 2015
    14 ## Update Count     : 2
     13## Last Modified On : Mon Jun  8 20:23:47 2015
     14## Update Count     : 87
    1515###############################################################################
    1616
    17 YACC=bison
    18 YFLAGS=-d --debug -v
    19 LEX=flex
    20 LFLAGS=
     17BUILT_SOURCES = Parser/parser.h
    2118
    22 SRC += Parser/cfa.y \
    23        Parser/lex.l \
     19AM_YFLAGS = -d -t -v
     20cfa_cpp_LDADD = ${LEXLIB}       # yywrap
     21MAINTAINERCLEANFILES = Parser/parser.output
     22
     23SRC += Parser/parser.yy \
     24       Parser/lex.ll \
    2425       Parser/TypedefTable.cc \
    2526       Parser/ParseNode.cc \
     
    3233       Parser/parseutility.cc \
    3334       Parser/Parser.cc
    34 
    35 EXTRA_OUTPUT += Parser/cfa.tab.cc \
    36                 Parser/cfa.tab.h \
    37                 Parser/lex.yy.cc \
    38                 Parser/cfa.output
    39 
    40 LIBS += -lfl
    41 
    42 Parser/Parser.cc: Parser/cfa.tab.h
    43 
    44 Parser/cfa.tab.cc: Parser/cfa.y
    45         $(YACC) $(YFLAGS) $< --file-prefix=Parser/cfa
    46         -mv Parser/cfa.tab.c Parser/cfa.tab.cc
    47 
    48 Parser/cfa.tab.h: Parser/cfa.tab.cc
    49 
    50 Parser/lex.yy.cc: Parser/lex.l Parser/cfa.tab.h Parser/TypedefTable.h
    51         $(LEX) $(LFLAGS) -o$@ $<
    52 
    53 Parser/lex.yy.o: Parser/lex.yy.cc Parser/ParseNode.h
    54         $(CXX) $(CXXFLAGS) -Wno-unused -c -o $@ $<
  • src/ResolvExpr/AlternativeFinder.cc

    reb50842 r937e51d  
    1010// Created On       : Sat May 16 23:52:08 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat May 16 23:55:30 2015
    13 // Update Count     : 3
     12// Last Modified On : Mon Jun 22 17:19:54 2015
     13// Update Count     : 17
    1414//
    1515
     
    108108                                                PRINT(
    109109                                                        std::cout << "cost " << candidate->cost << " beats " << mapPlace->second.candidate->cost << std::endl;
    110                                                         )
     110                                                )
    111111                                                selected[ mangleName ] = current;
    112112                                        } else if ( candidate->cost == mapPlace->second.candidate->cost ) {
    113113                                                PRINT(
    114114                                                        std::cout << "marking ambiguous" << std::endl;
    115                                                         )
     115                                                )
    116116                                                mapPlace->second.isAmbiguous = true;
    117117                                        }
     
    123123                        PRINT(
    124124                                std::cout << "there are " << selected.size() << " alternatives before elimination" << std::endl;
    125                                 )
     125                        )
    126126
    127127                        // accept the alternatives that were unambiguous
     
    184184                                std::cout << "findSubExprs" << std::endl;
    185185                                printAlts( finder.alternatives, std::cout );
    186                                 )
     186                        )
    187187                        *out++ = finder;
    188188                }
     
    206206                        std::cout << "alternatives before prune:" << std::endl;
    207207                        printAlts( alternatives, std::cout );
    208                         )
     208                )
    209209                AltList::iterator oldBegin = alternatives.begin();
    210210                pruneAlternatives( alternatives.begin(), alternatives.end(), front_inserter( alternatives ), indexer );
    211211                if ( alternatives.begin() == oldBegin ) {
    212                         std::ostrstream stream;
     212                        std::ostringstream stream;
    213213                        stream << "Can't choose between alternatives for expression ";
    214214                        expr->print( stream );
     
    217217                        findMinCost( alternatives.begin(), alternatives.end(), back_inserter( winners ) );
    218218                        printAlts( winners, stream, 8 );
    219                         throw SemanticError( std::string( stream.str(), stream.pcount() ) );
     219                        throw SemanticError( stream.str() );
    220220                }
    221221                alternatives.erase( oldBegin, alternatives.end() );
    222222                PRINT(
    223223                        std::cout << "there are " << alternatives.size() << " alternatives after elimination" << std::endl;
    224                         )
     224                )
    225225        }
    226226
     
    265265                                std::cout << "--- results are" << std::endl;
    266266                                printAll( (*actualExpr)->get_results(), std::cout, 8 );
    267                                 )
    268                                 std::list< DeclarationWithType* >::iterator startFormal = formal;
     267                        )
     268                        std::list< DeclarationWithType* >::iterator startFormal = formal;
    269269                        Cost actualCost;
    270270                        for ( std::list< Type* >::iterator actual = (*actualExpr)->get_results().begin(); actual != (*actualExpr)->get_results().end(); ++actual ) {
     
    282282                                        std::cout << std::endl << " to ";
    283283                                        (*formal)->get_type()->print( std::cout, 8 );
    284                                         )
    285                                         Cost newCost = conversionCost( *actual, (*formal)->get_type(), indexer, alt.env );
     284                                )
     285                                Cost newCost = conversionCost( *actual, (*formal)->get_type(), indexer, alt.env );
    286286                                PRINT(
    287287                                        std::cout << std::endl << "cost is" << newCost << std::endl;
    288                                         )
    289 
    290                                         if ( newCost == Cost::infinity ) {
    291                                                 return newCost;
    292                                         }
     288                                )
     289
     290                                if ( newCost == Cost::infinity ) {
     291                                        return newCost;
     292                                }
    293293                                convCost += newCost;
    294294                                actualCost += newCost;
     
    381381                                        (*actual)->print( std::cerr );
    382382                                        std::cerr << std::endl;
    383                                         )
     383                                )
    384384                                if ( ! unify( (*formal)->get_type(), *actual, resultEnv, resultNeed, resultHave, openVars, indexer ) ) {
    385385                                        return false;
     
    429429                                        std::cerr << "recursing with new set:" << std::endl;
    430430                                        printAssertionSet( newNeed, std::cerr, 8 );
    431                                         )
     431                                )
    432432                                inferRecursive( newNeed.begin(), newNeed.end(), newAlt, openVars, decls, newerNeed, level+1, indexer, out );
    433433                                return;
     
    444444                        curDecl->print( std::cerr );
    445445                        std::cerr << std::endl;
    446                         )
     446                )
    447447                std::list< DeclarationWithType* > candidates;
    448448                decls.lookupId( curDecl->get_name(), candidates );
     
    453453                                (*candidate)->print( std::cout );
    454454                                std::cout << std::endl;
    455                                 )
     455                        )
    456456                        AssertionSet newHave, newerNeed( newNeed );
    457457                        TypeEnvironment newEnv( newAlt.env );
     
    466466                                adjType->print( std::cerr );
    467467                                std::cerr << std::endl;
    468                                 )
     468                        )
    469469                        if ( unify( curDecl->get_type(), adjType, newEnv, newerNeed, newHave, newOpenVars, indexer ) ) {
    470470                                PRINT(
    471471                                        std::cerr << "success!" << std::endl;
    472                                         )
     472                                )
    473473                                SymTab::Indexer newDecls( decls );
    474474                                addToIndexer( newHave, newDecls );
     
    486486                                        (*candidate)->print( std::cout );
    487487                                        std::cout << std::endl;
    488                                         )
     488                                )
    489489                                ApplicationExpr *appExpr = static_cast< ApplicationExpr* >( newerAlt.expr );
    490490                                // XXX: this is a memory leak, but adjType can't be deleted because it might contain assertions
     
    509509                        std::cout << "============= new indexer" << std::endl;
    510510                        decls.print( std::cout );
    511                         )
     511                )
    512512                addToIndexer( have, decls );
    513513                AssertionSet newNeed;
     
    533533                                std::cout << "need assertions:" << std::endl;
    534534                                printAssertionSet( resultNeed, std::cout, 8 );
    535                                 )
     535                        )
    536536                        inferParameters( resultNeed, resultHave, newAlt, openVars, out );
    537537                }
     
    542542                AlternativeFinder funcOpFinder( indexer, env );
    543543
    544                 AlternativeFinder funcFinder( indexer, env );
    545 
    546                 {
     544                AlternativeFinder funcFinder( indexer, env ); {
    547545                        NameExpr *fname;
    548546                        if ( ( fname = dynamic_cast<NameExpr *>( untypedExpr->get_function()))
    549                                  && ( fname->get_name() == std::string("LabAddress")) ) {
    550                                 alternatives.push_back( Alternative( untypedExpr, env, Cost()) );
     547                                 && ( fname->get_name() == std::string("&&")) ) {
     548                                alternatives.push_back( Alternative( untypedExpr->clone(), env, Cost()) );
    551549                                return;
    552550                        }
     
    562560                Tuples::TupleAssignSpotter tassign( this );
    563561                if ( tassign.isTupleAssignment( untypedExpr, possibilities ) ) {
    564                         // TODO take care of possible tuple assignments, or discard expression
     562                        // take care of possible tuple assignments, or discard expression
    565563                        return;
    566564                } // else ...
     
    572570                                std::cout << "working on alternative: " << std::endl;
    573571                                func->print( std::cout, 8 );
    574                                 )
     572                        )
    575573                        // check if the type is pointer to function
    576574                        PointerType *pointer;
     
    605603                                                std::cout << "known function ops:" << std::endl;
    606604                                                printAlts( funcOpFinder.alternatives, std::cout, 8 );
    607                                                 )
     605                                        )
    608606                                }
    609607
     
    644642                                withFunc->env.print( std::cout, 8 );
    645643                                std::cout << "cost of conversion is:" << cvtCost << std::endl;
    646                                 )
    647                                 if ( cvtCost != Cost::infinity ) {
    648                                         withFunc->cvtCost = cvtCost;
    649                                         alternatives.push_back( *withFunc );
    650                                 } // if
     644                        )
     645                        if ( cvtCost != Cost::infinity ) {
     646                                withFunc->cvtCost = cvtCost;
     647                                alternatives.push_back( *withFunc );
     648                        } // if
    651649                } // for
    652650                candidates.clear();
     
    749747                                newExpr.print( std::cerr );
    750748                                std::cerr << std::endl;
    751                                 )
     749                        )
    752750                        renameTypes( alternatives.back().expr );
    753751                        if ( StructInstType *structInst = dynamic_cast< StructInstType* >( (*i)->get_type() ) ) {
     
    796794                        argType->print( std::cout );
    797795                        std::cout << std::endl;
    798                         )
    799                         if ( typesCompatibleIgnoreQualifiers( argType, function->get_parameters().front()->get_type(), indexer, env ) ) {
    800                                 alternatives.push_back( Alternative( new AttrExpr( new VariableExpr( funcDecl ), argType->clone() ), env, Cost::zero ) );
    801                                 for ( std::list< DeclarationWithType* >::iterator i = function->get_returnVals().begin(); i != function->get_returnVals().end(); ++i ) {
    802                                         alternatives.back().expr->get_results().push_back( (*i)->get_type()->clone() );
    803                                 } // for
    804                         } // if
     796                )
     797                if ( typesCompatibleIgnoreQualifiers( argType, function->get_parameters().front()->get_type(), indexer, env ) ) {
     798                        alternatives.push_back( Alternative( new AttrExpr( new VariableExpr( funcDecl ), argType->clone() ), env, Cost::zero ) );
     799                        for ( std::list< DeclarationWithType* >::iterator i = function->get_returnVals().begin(); i != function->get_returnVals().end(); ++i ) {
     800                                alternatives.back().expr->get_results().push_back( (*i)->get_type()->clone() );
     801                        } // for
     802                } // if
    805803        }
    806804
  • src/ResolvExpr/RenameVars.cc

    reb50842 r937e51d  
    1010// Created On       : Sun May 17 12:05:18 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun May 17 12:07:59 2015
    13 // Update Count     : 2
     12// Last Modified On : Mon Jun  8 14:51:35 2015
     13// Update Count     : 4
    1414//
    1515
    16 #include <strstream>
     16#include <sstream>
    1717
    1818#include "RenameVars.h"
     
    122122                        // renames all "forall" type names to `_${level}_${name}'
    123123                        for ( std::list< TypeDecl* >::iterator i = type->get_forall().begin(); i != type->get_forall().end(); ++i ) {
    124                                 std::ostrstream output;
     124                                std::ostringstream output;
    125125                                output << "_" << level << "_" << (*i)->get_name();
    126                                 std::string newname( output.str(), output.pcount() );
     126                                std::string newname( output.str() );
    127127                                mapStack.front()[ (*i)->get_name() ] = newname;
    128128                                (*i)->set_name( newname );
  • src/ResolvExpr/Resolver.cc

    reb50842 r937e51d  
    99// Author           : Richard C. Bilson
    1010// Created On       : Sun May 17 12:17:01 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sun May 17 12:18:17 2015
    13 // Update Count     : 2
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Wed Jun 24 16:20:35 2015
     13// Update Count     : 156
    1414//
    1515
     
    3838                virtual void visit( TypeDecl *typeDecl );
    3939
     40                virtual void visit( ArrayType * at );
     41
    4042                virtual void visit( ExprStmt *exprStmt );
    4143                virtual void visit( IfStmt *ifStmt );
     
    4547                virtual void visit( ChooseStmt *switchStmt );
    4648                virtual void visit( CaseStmt *caseStmt );
     49                virtual void visit( BranchStmt *branchStmt );
    4750                virtual void visit( ReturnStmt *returnStmt );
    4851
     
    5053                virtual void visit( ListInit *listInit );
    5154          private:
     55        typedef std::list< Initializer * >::iterator InitIterator;
     56
     57          void resolveAggrInit( AggregateDecl *, InitIterator &, InitIterator & );
     58          void resolveSingleAggrInit( Declaration *, InitIterator &, InitIterator & );
     59
    5260                std::list< Type * > functionReturn;
    5361                Type *initContext;
     
    158166                SymTab::Indexer::visit( objectDecl );
    159167        }
    160  
     168
     169        void Resolver::visit( ArrayType * at ) {
     170                if ( at->get_dimension() ) {
     171                        BasicType arrayLenType = BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt );
     172                        CastExpr *castExpr = new CastExpr( at->get_dimension(), arrayLenType.clone() );
     173                        Expression *newExpr = findSingleExpression( castExpr, *this );
     174                        delete at->get_dimension();
     175                        at->set_dimension( newExpr );
     176                }
     177                Visitor::visit( at );
     178        }
     179
    161180        void Resolver::visit( TypeDecl *typeDecl ) {
    162181                if ( typeDecl->get_base() ) {
     
    166185                SymTab::Indexer::visit( typeDecl );
    167186        }
    168  
     187
    169188        void Resolver::visit( FunctionDecl *functionDecl ) {
    170189#if 0
     
    252271        }
    253272
     273        void Resolver::visit( BranchStmt *branchStmt ) {
     274                // must resolve the argument for a computed goto
     275                if ( branchStmt->get_type() == BranchStmt::Goto ) { // check for computed goto statement
     276                        if ( NameExpr * arg = dynamic_cast< NameExpr * >( branchStmt->get_computedTarget() ) ) {
     277                                VoidType v = Type::Qualifiers();                // cast to void * for the alternative finder
     278                                PointerType pt( Type::Qualifiers(), v.clone() );
     279                                CastExpr * castExpr = new CastExpr( arg, pt.clone() );
     280                                Expression * newExpr = findSingleExpression( castExpr, *this ); // find best expression
     281                                branchStmt->set_target( newExpr );
     282                        } // if
     283                } // if
     284        }
     285
    254286        void Resolver::visit( ReturnStmt *returnStmt ) {
    255287                if ( returnStmt->get_expr() ) {
     
    260292                        returnStmt->set_expr( newExpr );
    261293                } // if
     294        }
     295
     296        template< typename T >
     297        bool isCharType( T t ) {
     298                if ( BasicType * bt = dynamic_cast< BasicType * >( t ) ) {
     299                        return bt->get_kind() == BasicType::Char || bt->get_kind() == BasicType::SignedChar ||
     300                                bt->get_kind() == BasicType::UnsignedChar;
     301                }
     302                return false;
    262303        }
    263304
     
    286327                        delete castExpr;
    287328                        singleInit->set_value( newExpr );
     329
     330                        // check if initializing type is char[]
     331                        if ( ArrayType * at = dynamic_cast< ArrayType * >( initContext ) ) {
     332                                if ( isCharType( at->get_base() ) ) {
     333                                        // check if the resolved type is char *
     334                                        if ( PointerType * pt = dynamic_cast< PointerType *>( newExpr->get_results().front() ) ) {
     335                                                if ( isCharType( pt->get_base() ) ) {
     336                                                        // strip cast if we're initializing a char[] with a char *, e.g.
     337                                                        // char x[] = "hello";
     338                                                        CastExpr *ce = dynamic_cast< CastExpr * >( newExpr );
     339                                                        singleInit->set_value( ce->get_arg() );
     340                                                        ce->set_arg( NULL );
     341                                                        delete ce;                                                                     
     342                                                }
     343                                        }
     344                                }
     345                        }
    288346                } // if
    289347//      singleInit->get_value()->accept( *this );
    290348        }
    291349
    292         void Resolver::visit( ListInit *listInit ) {
    293                 Visitor::visit(listInit);
     350        void Resolver::resolveSingleAggrInit( Declaration * dcl, InitIterator & init, InitIterator & initEnd ) {
     351                DeclarationWithType * dt = dynamic_cast< DeclarationWithType * >( dcl );
     352                assert( dt );
     353                initContext = dt->get_type();
     354                try {
     355                        if ( init == initEnd ) return; // stop when there are no more initializers
     356                        (*init)->accept( *this );
     357                        ++init; // made it past an initializer
     358                } catch( SemanticError & ) {
     359                        // need to delve deeper, if you can
     360                        if ( StructInstType * sit = dynamic_cast< StructInstType * >( dt->get_type() ) ) {
     361                                resolveAggrInit( sit->get_baseStruct(), init, initEnd );
     362                        } else if ( UnionInstType * uit = dynamic_cast< UnionInstType * >( dt->get_type() ) ) {
     363                                resolveAggrInit( uit->get_baseUnion(), init, initEnd );
     364                        } else {
     365                                // member is not an aggregate type, so can't go any deeper
     366
     367                                // might need to rethink what is being thrown
     368                                throw;
     369                        } // if
     370                }
     371        }
     372
     373        void Resolver::resolveAggrInit( AggregateDecl * aggr, InitIterator & init, InitIterator & initEnd ) {
     374                if ( StructDecl * st = dynamic_cast< StructDecl * >( aggr ) ) {
     375                        // want to resolve each initializer to the members of the struct,
     376                        // but if there are more initializers than members we should stop
     377                        list< Declaration * >::iterator it = st->get_members().begin();
     378                        for ( ; it != st->get_members().end(); ++it) {
     379                                resolveSingleAggrInit( *it, init, initEnd );
     380                        }
     381                } else if ( UnionDecl * un = dynamic_cast< UnionDecl * >( aggr ) ) {
     382                        // only resolve to the first member of a union
     383                        resolveSingleAggrInit( *un->get_members().begin(), init, initEnd );
     384                } // if
     385        }
     386
     387        void Resolver::visit( ListInit * listInit ) {
     388                InitIterator iter = listInit->begin_initializers();
     389                InitIterator end = listInit->end_initializers();
     390
     391                if ( ArrayType * at = dynamic_cast< ArrayType * >( initContext ) ) {
     392                        // resolve each member to the base type of the array
     393                        for ( ; iter != end; ++iter ) {
     394                                initContext = at->get_base();
     395                                (*iter)->accept( *this );
     396                        } // for
     397                } else if ( StructInstType * st = dynamic_cast< StructInstType * >( initContext ) ) {
     398                        resolveAggrInit( st->get_baseStruct(), iter, end );
     399                } else if ( UnionInstType *st = dynamic_cast< UnionInstType * >( initContext ) ) {
     400                        resolveAggrInit( st->get_baseUnion(), iter, end );
     401                } else {
     402                        // basic types are handled here
     403                        Visitor::visit( listInit );
     404                }
     405
    294406#if 0
    295407                if ( ArrayType *at = dynamic_cast<ArrayType*>(initContext) ) {
  • src/ResolvExpr/module.mk

    reb50842 r937e51d  
     1######################### -*- Mode: Makefile-Gmake -*- ########################
     2##
     3## Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     4##
     5## The contents of this file are covered under the licence agreement in the
     6## file "LICENCE" distributed with Cforall.
     7##
     8## module.mk --
     9##
     10## Author           : Richard C. Bilson
     11## Created On       : Mon Jun  1 17:49:17 2015
     12## Last Modified By : Peter A. Buhr
     13## Last Modified On : Mon Jun  1 17:53:28 2015
     14## Update Count     : 1
     15###############################################################################
     16
    117SRC += ResolvExpr/AlternativeFinder.cc \
    2       ResolvExpr/Alternative.cc \
     18       ResolvExpr/Alternative.cc \
    319       ResolvExpr/Unify.cc \
    420       ResolvExpr/PtrsAssignable.cc \
     
    1632       ResolvExpr/Occurs.cc \
    1733       ResolvExpr/TypeEnvironment.cc
    18        
  • src/SymTab/Indexer.cc

    reb50842 r937e51d  
    1010// Created On       : Sun May 17 21:37:33 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 19 16:49:55 2015
    13 // Update Count     : 3
     12// Last Modified On : Fri Jun  5 08:05:17 2015
     13// Update Count     : 5
    1414//
    1515
     
    5151        }
    5252
    53 /********
    54  * A NOTE ON THE ORDER OF TRAVERSAL
    55  *
    56  * Types and typedefs have their base types visited before they are added to the type table.
    57  * This is ok, since there is no such thing as a recursive type or typedef.
    58  *             typedef struct { T *x; } T; // never allowed
    59  *
    60  * for structs/unions, it is possible to have recursion, so the decl should be added as if it's
    61  * incomplete to begin, the members are traversed, and then the complete type should be added
    62  * (assuming the type is completed by this particular declaration).
    63  *             struct T { struct T *x; }; // allowed
    64  *
    65  * It's important to add the complete type to the symbol table *after* the members/base has been
    66  * traversed, since that traversal may modify the definition of the type and these modifications
    67  * should be visible when the symbol table is queried later in this pass.
    68  *
    69  * TODO: figure out whether recursive contexts are sensible/possible/reasonable.
    70  */
     53
     54// A NOTE ON THE ORDER OF TRAVERSAL
     55//
     56// Types and typedefs have their base types visited before they are added to the type table.  This is ok, since there is
     57// no such thing as a recursive type or typedef.
     58//
     59//             typedef struct { T *x; } T; // never allowed
     60//
     61// for structs/unions, it is possible to have recursion, so the decl should be added as if it's incomplete to begin, the
     62// members are traversed, and then the complete type should be added (assuming the type is completed by this particular
     63// declaration).
     64//
     65//             struct T { struct T *x; }; // allowed
     66//
     67// It is important to add the complete type to the symbol table *after* the members/base has been traversed, since that
     68// traversal may modify the definition of the type and these modifications should be visible when the symbol table is
     69// queried later in this pass.
     70//
     71// TODO: figure out whether recursive contexts are sensible/possible/reasonable.
     72
    7173
    7274        void Indexer::visit( TypeDecl *typeDecl ) {
    7375                // see A NOTE ON THE ORDER OF TRAVERSAL, above
    74                 // note that assertions come after the type is added to the symtab, since they aren't part
    75                 // of the type proper and may depend on the type itself
     76                // note that assertions come after the type is added to the symtab, since they are not part of the type proper
     77                // and may depend on the type itself
    7678                enterScope();
    7779                acceptAll( typeDecl->get_parameters(), *this );
  • src/SymTab/Mangler.cc

    reb50842 r937e51d  
    1010// Created On       : Sun May 17 21:40:29 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 19 16:50:47 2015
    13 // Update Count     : 3
     12// Last Modified On : Mon Jun  8 15:12:12 2015
     13// Update Count     : 8
    1414//
    1515
     
    160160                } else {
    161161                        printQualifiers( typeInst );
    162                         std::ostrstream numStream;
     162                        std::ostringstream numStream;
    163163                        numStream << varNum->second.first;
    164                         mangleName << (numStream.pcount() + 1);
    165164                        switch ( (TypeDecl::Kind )varNum->second.second ) {
    166165                          case TypeDecl::Any:
     
    174173                                break;
    175174                        } // switch
    176                         mangleName << std::string( numStream.str(), numStream.pcount() );
     175                        mangleName << numStream.str();
    177176                } // if
    178177        }
     
    220219                                        sub_mangler.varNums = varNums;
    221220                                        (*assert)->accept( sub_mangler );
    222                                         assertionNames.push_back( std::string( sub_mangler.mangleName.str(), sub_mangler.mangleName.pcount() ) );
     221                                        assertionNames.push_back( sub_mangler.mangleName.str() );
    223222                                } // for
    224223                        } // for
  • src/SymTab/Mangler.h

    reb50842 r937e51d  
    1010// Created On       : Sun May 17 21:44:03 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 19 16:49:21 2015
    13 // Update Count     : 3
     12// Last Modified On : Mon Jun  8 14:47:14 2015
     13// Update Count     : 5
    1414//
    1515
     
    1717#define MANGLER_H
    1818
    19 #include <strstream>
     19#include <sstream>
    2020#include "SynTree/SynTree.h"
    2121#include "SynTree/Visitor.h"
     
    4343                virtual void visit( TupleType *tupleType );
    4444 
    45                 std::string get_mangleName() { return std::string( mangleName.str(), mangleName.pcount() ); }
     45                std::string get_mangleName() { return mangleName.str(); }
    4646          private:
    47                 std::ostrstream mangleName;
     47                std::ostringstream mangleName;
    4848                typedef std::map< std::string, std::pair< int, int > > VarMapType;
    4949                VarMapType varNums;
  • src/SymTab/Validate.cc

    reb50842 r937e51d  
    99// Author           : Richard C. Bilson
    1010// Created On       : Sun May 17 21:50:04 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 19 16:50:09 2015
    13 // Update Count     : 3
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Wed Jun 24 16:20:50 2015
     13// Update Count     : 30
    1414//
    1515
     
    4545#include "SynTree/Type.h"
    4646#include "SynTree/Statement.h"
     47#include "SynTree/TypeSubstitution.h"
    4748#include "Indexer.h"
    48 #include "SynTree/TypeSubstitution.h"
    4949#include "FixFunction.h"
    5050#include "ImplementationType.h"
     
    176176                acceptAll( translationUnit, pass1 );
    177177                acceptAll( translationUnit, pass2 );
     178                // need to collect all of the assignment operators prior to
     179                // this point and only generate assignment operators if one doesn't exist
    178180                AddStructAssignment::addStructAssignment( translationUnit );
    179181                acceptAll( translationUnit, pass3 );
     
    506508                if ( ! array->get_dimension() ) return;
    507509 
    508                 ObjectDecl *index = new ObjectDecl( indexName.newName(), Declaration::NoStorageClass, LinkageSpec::C, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), 0 );
     510                ObjectDecl *index = new ObjectDecl( indexName.newName(), DeclarationNode::NoStorageClass, LinkageSpec::C, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), 0 );
    509511                *out++ = new DeclStmt( noLabels, index );
    510512 
     
    544546                FunctionType *assignType = new FunctionType( Type::Qualifiers(), false );
    545547 
    546                 ObjectDecl *returnVal = new ObjectDecl( "", Declaration::NoStorageClass, LinkageSpec::Cforall, 0, refType->clone(), 0 );
     548                ObjectDecl *returnVal = new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, refType->clone(), 0 );
    547549                assignType->get_returnVals().push_back( returnVal );
    548550 
    549                 ObjectDecl *dstParam = new ObjectDecl( "_dst", Declaration::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), refType->clone() ), 0 );
     551                ObjectDecl *dstParam = new ObjectDecl( "_dst", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), refType->clone() ), 0 );
    550552                assignType->get_parameters().push_back( dstParam );
    551553 
    552                 ObjectDecl *srcParam = new ObjectDecl( "_src", Declaration::NoStorageClass, LinkageSpec::Cforall, 0, refType, 0 );
     554                ObjectDecl *srcParam = new ObjectDecl( "_src", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, refType, 0 );
    553555                assignType->get_parameters().push_back( srcParam );
    554556
    555557                // Routines at global scope marked "static" to prevent multiple definitions is separate translation units
    556558                // because each unit generates copies of the default routines for each aggregate.
    557                 FunctionDecl *assignDecl = new FunctionDecl( "?=?", functionNesting > 0 ? Declaration::NoStorageClass : Declaration::Static, LinkageSpec::AutoGen, assignType, new CompoundStmt( noLabels ), true );
     559                FunctionDecl *assignDecl = new FunctionDecl( "?=?", functionNesting > 0 ? DeclarationNode::NoStorageClass : DeclarationNode::Static, LinkageSpec::AutoGen, assignType, new CompoundStmt( noLabels ), true, false );
    558560                assignDecl->fixUniqueId();
    559561 
    560562                for ( std::list< Declaration * >::const_iterator member = aggregateDecl->get_members().begin(); member != aggregateDecl->get_members().end(); ++member ) {
    561563                        if ( DeclarationWithType *dwt = dynamic_cast< DeclarationWithType * >( *member ) ) {
     564                                // query the type qualifiers of this field and skip assigning it if it is marked const.
     565                                // If it is an array type, we need to strip off the array layers to find its qualifiers.
     566                                Type * type = dwt->get_type();
     567                                while ( ArrayType * at = dynamic_cast< ArrayType * >( type ) ) {
     568                                        type = at->get_base();
     569                                }
     570
     571                                if ( type->get_qualifiers().isConst ) {
     572                                        // don't assign const members
     573                                        continue;
     574                                }
     575
    562576                                if ( ArrayType *array = dynamic_cast< ArrayType * >( dwt->get_type() ) ) {
    563577                                        makeArrayAssignment( srcParam, dstParam, dwt, array, back_inserter( assignDecl->get_statements()->get_kids() ) );
     
    575589                FunctionType *assignType = new FunctionType( Type::Qualifiers(), false );
    576590 
    577                 ObjectDecl *returnVal = new ObjectDecl( "", Declaration::NoStorageClass, LinkageSpec::Cforall, 0, refType->clone(), 0 );
     591                ObjectDecl *returnVal = new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, refType->clone(), 0 );
    578592                assignType->get_returnVals().push_back( returnVal );
    579593 
    580                 ObjectDecl *dstParam = new ObjectDecl( "_dst", Declaration::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), refType->clone() ), 0 );
     594                ObjectDecl *dstParam = new ObjectDecl( "_dst", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), refType->clone() ), 0 );
    581595                assignType->get_parameters().push_back( dstParam );
    582596 
    583                 ObjectDecl *srcParam = new ObjectDecl( "_src", Declaration::NoStorageClass, LinkageSpec::Cforall, 0, refType, 0 );
     597                ObjectDecl *srcParam = new ObjectDecl( "_src", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, refType, 0 );
    584598                assignType->get_parameters().push_back( srcParam );
    585599 
    586600                // Routines at global scope marked "static" to prevent multiple definitions is separate translation units
    587601                // because each unit generates copies of the default routines for each aggregate.
    588                 FunctionDecl *assignDecl = new FunctionDecl( "?=?",  functionNesting > 0 ? Declaration::NoStorageClass : Declaration::Static, LinkageSpec::AutoGen, assignType, new CompoundStmt( noLabels ), true );
     602                FunctionDecl *assignDecl = new FunctionDecl( "?=?",  functionNesting > 0 ? DeclarationNode::NoStorageClass : DeclarationNode::Static, LinkageSpec::AutoGen, assignType, new CompoundStmt( noLabels ), true, false );
    589603                assignDecl->fixUniqueId();
    590604 
     
    621635                TypeInstType *typeInst = new TypeInstType( Type::Qualifiers(), typeDecl->get_name(), false );
    622636                typeInst->set_baseType( typeDecl );
    623                 ObjectDecl *src = new ObjectDecl( "_src", Declaration::NoStorageClass, LinkageSpec::Cforall, 0, typeInst->clone(), 0 );
    624                 ObjectDecl *dst = new ObjectDecl( "_dst", Declaration::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), typeInst->clone() ), 0 );
     637                ObjectDecl *src = new ObjectDecl( "_src", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, typeInst->clone(), 0 );
     638                ObjectDecl *dst = new ObjectDecl( "_dst", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, new PointerType( Type::Qualifiers(), typeInst->clone() ), 0 );
    625639                if ( typeDecl->get_base() ) {
    626640                        stmts = new CompoundStmt( std::list< Label >() );
     
    631645                } // if
    632646                FunctionType *type = new FunctionType( Type::Qualifiers(), false );
    633                 type->get_returnVals().push_back( new ObjectDecl( "", Declaration::NoStorageClass, LinkageSpec::Cforall, 0, typeInst, 0 ) );
     647                type->get_returnVals().push_back( new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, typeInst, 0 ) );
    634648                type->get_parameters().push_back( dst );
    635649                type->get_parameters().push_back( src );
    636                 FunctionDecl *func = new FunctionDecl( "?=?", Declaration::NoStorageClass, LinkageSpec::AutoGen, type, stmts, false );
     650                FunctionDecl *func = new FunctionDecl( "?=?", DeclarationNode::NoStorageClass, LinkageSpec::AutoGen, type, stmts, false, false );
    637651                declsToAdd.push_back( func );
    638652        }
    639653
    640654        void addDecls( std::list< Declaration * > &declsToAdd, std::list< Statement * > &statements, std::list< Statement * >::iterator i ) {
    641                 if ( ! declsToAdd.empty() ) {
    642                         for ( std::list< Declaration * >::iterator decl = declsToAdd.begin(); decl != declsToAdd.end(); ++decl ) {
    643                                 statements.insert( i, new DeclStmt( noLabels, *decl ) );
    644                         } // for
    645                         declsToAdd.clear();
    646                 } // if
     655                for ( std::list< Declaration * >::iterator decl = declsToAdd.begin(); decl != declsToAdd.end(); ++decl ) {
     656                        statements.insert( i, new DeclStmt( noLabels, *decl ) );
     657                } // for
     658                declsToAdd.clear();
    647659        }
    648660
  • src/SymTab/module.mk

    reb50842 r937e51d  
     1######################### -*- Mode: Makefile-Gmake -*- ########################
     2##
     3## Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     4##
     5## The contents of this file are covered under the licence agreement in the
     6## file "LICENCE" distributed with Cforall.
     7##
     8## module.mk --
     9##
     10## Author           : Richard C. Bilson
     11## Created On       : Mon Jun  1 17:49:17 2015
     12## Last Modified By : Peter A. Buhr
     13## Last Modified On : Mon Jun  1 17:53:50 2015
     14## Update Count     : 1
     15###############################################################################
     16
    117SRC += SymTab/IdTable.cc \
    218       SymTab/Indexer.cc \
  • src/SynTree/AggregateDecl.cc

    reb50842 r937e51d  
    1010// Created On       : Sun May 17 23:56:39 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 19 16:52:08 2015
    13 // Update Count     : 5
     12// Last Modified On : Sat Jun 13 08:12:49 2015
     13// Update Count     : 6
    1414//
    1515
     
    1919
    2020
    21 AggregateDecl::AggregateDecl( const std::string &name ) : Parent( name, Declaration::NoStorageClass, LinkageSpec::Cforall ) {
     21AggregateDecl::AggregateDecl( const std::string &name ) : Parent( name, DeclarationNode::NoStorageClass, LinkageSpec::Cforall ) {
    2222}
    2323
  • src/SynTree/ArrayType.cc

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 07:52:08 2015
    13 // Update Count     : 2
     12// Last Modified On : Sat Jun  6 14:11:48 2015
     13// Update Count     : 9
    1414//
    1515
     
    2525
    2626ArrayType::ArrayType( const ArrayType &other )
    27         : Type( other ), base( maybeClone( other.base ) ), dimension( maybeClone( other.dimension ) ),
    28           isVarLen( other.isVarLen ), isStatic( other.isStatic ) {
     27                : Type( other ), base( maybeClone( other.base ) ), dimension( maybeClone( other.dimension ) ),
     28                  isVarLen( other.isVarLen ), isStatic( other.isStatic ) {
    2929}
    3030
     
    4343        } else if ( dimension ) {
    4444                os << "array of ";
    45                 dimension->print( os, indent );
    4645        } else {
    4746                os << "open array of ";
     
    4948        if ( base ) {
    5049                base->print( os, indent );
     50        } // if
     51        if ( dimension ) {
     52                os << "with dimension of ";
     53                dimension->print( os, indent );
    5154        } // if
    5255}
  • src/SynTree/BasicType.cc

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 07:55:16 2015
    13 // Update Count     : 1
     12// Last Modified On : Sun Jun  7 08:44:36 2015
     13// Update Count     : 5
    1414//
    1515
  • src/SynTree/CompoundStmt.cc

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 08:11:02 2015
    13 // Update Count     : 1
     12// Last Modified On : Tue Jun 23 11:37:49 2015
     13// Update Count     : 3
    1414//
    1515
     
    3333}
    3434
    35 void CompoundStmt::print( std::ostream &os, int indent ) {
    36         os << "\r" << string(indent, ' ') << "CompoundStmt" << endl ;
    37         printAll( kids, os, indent+2 );
     35void CompoundStmt::print( std::ostream &os, int indent ) const {
     36        os << string( indent, ' ' ) << "CompoundStmt" << endl ;
     37        printAll( kids, os, indent + 2 );
    3838}
    3939
  • src/SynTree/Constant.cc

    reb50842 r937e51d  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 08:13:25 2015
    13 // Update Count     : 1
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Wed Jun 10 14:41:03 2015
     13// Update Count     : 8
    1414//
    1515
     
    2020#include "Type.h"
    2121
    22 Constant::Constant( Type *_type, std::string _value ) : type(_type), value(_value) {}
     22Constant::Constant( Type *type_, std::string value_ ) : type( type_ ), value( value_ ) {}
    2323
    2424Constant::~Constant() {}
     
    2727
    2828void Constant::print( std::ostream &os ) const {
    29         os << value;
     29        os << "(" << value;
    3030        if ( type ) {
    31                 os << " (type: ";
     31                os << ": ";
    3232                type->print( os );
    33                 os << ")";
    3433        } // if
     34  os << ")";
    3535}
    3636
  • src/SynTree/DeclStmt.cc

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 08:16:03 2015
    13 // Update Count     : 2
     12// Last Modified On : Tue Jun 23 11:38:15 2015
     13// Update Count     : 4
    1414//
    1515
     
    2828}
    2929
    30 void DeclStmt::print( std::ostream &os, int indent ) {
     30void DeclStmt::print( std::ostream &os, int indent ) const {
     31        assert( decl != 0 );
    3132        os << "Declaration of ";
    32         if ( decl ) {
    33                 decl->print( os, indent );
    34         } // if
     33        decl->print( os, indent );
    3534}
    3635
  • src/SynTree/Declaration.cc

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 08:18:35 2015
    13 // Update Count     : 2
     12// Last Modified On : Sat Jun 13 08:07:20 2015
     13// Update Count     : 9
    1414//
    1515
     
    2222#include "utility.h"
    2323
    24 const char* Declaration::storageClassName[] = { "", "auto", "static", "extern", "register" }; 
    25 
    2624static UniqueId lastUniqueId = 0;
    2725typedef std::map< UniqueId, Declaration* > IdMapType;
    2826static IdMapType idMap;
    2927
    30 Declaration::Declaration( const std::string &name, StorageClass sc, LinkageSpec::Type linkage )
    31         : name( name ), storageClass( sc ), linkage( linkage ), uniqueId( 0 ) {
     28Declaration::Declaration( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage )
     29                : name( name ), storageClass( sc ), linkage( linkage ), uniqueId( 0 ) {
    3230}
    3331
    3432Declaration::Declaration( const Declaration &other )
    35         : name( other.name ), storageClass( other.storageClass ), linkage( other.linkage ), uniqueId( other.uniqueId ) {
     33                : name( other.name ), storageClass( other.storageClass ), linkage( other.linkage ), uniqueId( other.uniqueId ) {
    3634}
    3735
     
    4442}
    4543
    46 /* static class method */
    4744Declaration *Declaration::declFromId( UniqueId id ) {
    4845        IdMapType::const_iterator i = idMap.find( id );
    49         if ( i != idMap.end() ) {
    50                 return i->second;
    51         } else {
    52                 return 0;
    53         } // if
     46        return i != idMap.end() ? i->second : 0;
    5447}
    5548
    56 /* static class method */
    5749void Declaration::dumpIds( std::ostream &os ) {
    5850        for ( IdMapType::const_iterator i = idMap.begin(); i != idMap.end(); ++i ) {
  • src/SynTree/Declaration.h

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 08:46:25 2015
    13 // Update Count     : 2
     12// Last Modified On : Sat Jun 13 09:10:31 2015
     13// Update Count     : 25
    1414//
    1515
     
    2121#include "Mutator.h"
    2222#include "Parser/LinkageSpec.h"
     23#include "Parser/ParseNode.h"
    2324
    2425class Declaration {
    2526  public:
    26         enum StorageClass { 
    27                 NoStorageClass,
    28                 Extern,
    29                 Static,
    30                 Auto,
    31                 Register,
    32                 Inline,
    33                 Fortran,
    34         };     
    35 
    36         Declaration( const std::string &name, StorageClass sc, LinkageSpec::Type linkage );
     27        Declaration( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage );
    3728        Declaration( const Declaration &other );
    3829        virtual ~Declaration();
    3930
    40         std::string get_name() const { return name; }
     31        const std::string &get_name() const { return name; }
    4132        void set_name( std::string newValue ) { name = newValue; }
    42         StorageClass get_storageClass() const { return storageClass; }
    43         void set_storageClass( StorageClass newValue ) { storageClass = newValue; }
     33        DeclarationNode::StorageClass get_storageClass() const { return storageClass; }
     34        void set_storageClass( DeclarationNode::StorageClass newValue ) { storageClass = newValue; }
    4435        LinkageSpec::Type get_linkage() const { return linkage; }
    4536        void set_linkage( LinkageSpec::Type newValue ) { linkage = newValue; }
     
    5344        virtual void printShort( std::ostream &os, int indent = 0 ) const = 0;
    5445
    55         static const char* storageClassName[]; 
    56 
    5746        static void dumpIds( std::ostream &os );
    5847        static Declaration *declFromId( UniqueId id );
    5948  private:
    6049        std::string name;
    61         StorageClass storageClass;
     50        DeclarationNode::StorageClass storageClass;
    6251        LinkageSpec::Type linkage;
    6352        UniqueId uniqueId;
     
    6655class DeclarationWithType : public Declaration {
    6756  public:
    68         DeclarationWithType( const std::string &name, StorageClass sc, LinkageSpec::Type linkage );
     57        DeclarationWithType( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage );
    6958        DeclarationWithType( const DeclarationWithType &other );
    7059        virtual ~DeclarationWithType();
     
    8675        typedef DeclarationWithType Parent;
    8776  public:
    88         ObjectDecl( const std::string &name, StorageClass sc, LinkageSpec::Type linkage, Expression *bitfieldWidth, Type *type, Initializer *init );
     77        ObjectDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, Expression *bitfieldWidth, Type *type, Initializer *init );
    8978        ObjectDecl( const ObjectDecl &other );
    9079        virtual ~ObjectDecl();
     
    112101        typedef DeclarationWithType Parent;
    113102  public:
    114         FunctionDecl( const std::string &name, StorageClass sc, LinkageSpec::Type linkage, FunctionType *type, CompoundStmt *statements, bool isInline );
     103        FunctionDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, FunctionType *type, CompoundStmt *statements, bool isInline, bool isNoreturn );
    115104        FunctionDecl( const FunctionDecl &other );
    116105        virtual ~FunctionDecl();
     
    123112        CompoundStmt *get_statements() const { return statements; }
    124113        void set_statements( CompoundStmt *newValue ) { statements = newValue; }
    125 //    bool get_isInline() const { return isInline; }
    126 //    void set_isInline( bool newValue ) { isInline = newValue; }
     114        bool get_isInline() const { return isInline; }
     115        bool get_isNoreturn() const { return isNoreturn; }
    127116        std::list< std::string >& get_oldIdents() { return oldIdents; }
    128117        std::list< Declaration* >& get_oldDecls() { return oldDecls; }
     
    136125        FunctionType *type;
    137126        CompoundStmt *statements;
    138         bool isInline;
     127        bool isInline, isNoreturn;
    139128        std::list< std::string > oldIdents;
    140129        std::list< Declaration* > oldDecls;
     
    144133        typedef Declaration Parent;
    145134  public:
    146         NamedTypeDecl( const std::string &name, StorageClass sc, Type *type );
     135        NamedTypeDecl( const std::string &name, DeclarationNode::StorageClass sc, Type *type );
    147136        NamedTypeDecl( const TypeDecl &other );
    148137        virtual ~NamedTypeDecl();
     
    169158        enum Kind { Any, Dtype, Ftype };
    170159
    171         TypeDecl( const std::string &name, StorageClass sc, Type *type, Kind kind );
     160        TypeDecl( const std::string &name, DeclarationNode::StorageClass sc, Type *type, Kind kind );
    172161        TypeDecl( const TypeDecl &other );
    173162
     
    185174        typedef NamedTypeDecl Parent;
    186175  public:
    187         TypedefDecl( const std::string &name, StorageClass sc, Type *type ) : Parent( name, sc, type ) {}
     176        TypedefDecl( const std::string &name, DeclarationNode::StorageClass sc, Type *type ) : Parent( name, sc, type ) {}
    188177        TypedefDecl( const TypedefDecl &other ) : Parent( other ) {}
    189178
  • src/SynTree/DeclarationWithType.cc

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 08:20:23 2015
    13 // Update Count     : 2
     12// Last Modified On : Sat Jun 13 08:08:07 2015
     13// Update Count     : 3
    1414//
    1515
     
    1818#include "utility.h"
    1919
    20 DeclarationWithType::DeclarationWithType( const std::string &name, StorageClass sc, LinkageSpec::Type linkage )
     20DeclarationWithType::DeclarationWithType( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage )
    2121                : Declaration( name, sc, linkage ) {
    2222}
  • src/SynTree/Expression.cc

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 08:27:07 2015
    13 // Update Count     : 2
     12// Last Modified On : Sun Jun  7 08:40:46 2015
     13// Update Count     : 16
    1414//
    1515
     
    5050}
    5151
    52 void Expression::print(std::ostream &os, int indent) const {
     52void Expression::print( std::ostream &os, int indent ) const {
    5353        if ( env ) {
    54                 os << std::string(indent, ' ') << "with environment:" << std::endl;
     54                os << std::string( indent, ' ' ) << "with environment:" << std::endl;
    5555                env->print( os, indent+2 );
    5656        } // if
    5757
    5858        if ( argName ) {
    59                 os << std::string(indent, ' ') << "with designator:";
     59                os << std::string( indent, ' ' ) << "with designator:";
    6060                argName->print( os, indent+2 );
    6161        } // if
     
    7272
    7373void ConstantExpr::print( std::ostream &os, int indent ) const {
    74         os << std::string(indent, ' ') << "Constant Expression: " ;
    75         constant.print(os);
    76         os << std::endl;
     74        os << "constant expression " ;
     75        constant.print( os );
    7776        Expression::print( os, indent );
    7877}
     
    9392
    9493void VariableExpr::print( std::ostream &os, int indent ) const {
    95         os << std::string(indent, ' ') << "Variable Expression: ";
     94        os << std::string( indent, ' ' ) << "Variable Expression: ";
    9695
    9796        Declaration *decl = get_var();
     
    122121
    123122void SizeofExpr::print( std::ostream &os, int indent) const {
    124         os << std::string(indent, ' ') << "Sizeof Expression on: ";
     123        os << std::string( indent, ' ' ) << "Sizeof Expression on: ";
    125124
    126125        if (isType)
     
    152151
    153152void AttrExpr::print( std::ostream &os, int indent) const {
    154         os << std::string(indent, ' ') << "Attr ";
     153        os << std::string( indent, ' ' ) << "Attr ";
    155154        attr->print( os, indent + 2 );
    156155        if ( isType || expr ) {
     
    184183
    185184void CastExpr::print( std::ostream &os, int indent ) const {
    186         os << std::string(indent, ' ') << "Cast of:" << std::endl;
     185        os << std::string( indent, ' ' ) << "Cast of:" << std::endl;
    187186        arg->print(os, indent+2);
    188         os << std::endl << std::string(indent, ' ') << "to:" << std::endl;
     187        os << std::endl << std::string( indent, ' ' ) << "to:" << std::endl;
    189188        if ( results.empty() ) {
    190                 os << std::string(indent+2, ' ') << "nothing" << std::endl;
     189                os << std::string( indent+2, ' ' ) << "nothing" << std::endl;
    191190        } else {
    192191                printAll(results, os, indent+2);
     
    207206
    208207void UntypedMemberExpr::print( std::ostream &os, int indent ) const {
    209         os << std::string(indent, ' ') << "Member Expression, with field: " << get_member();
     208        os << std::string( indent, ' ' ) << "Member Expression, with field: " << get_member();
    210209
    211210        Expression *agg = get_aggregate();
    212         os << std::string(indent, ' ') << "from aggregate: ";
     211        os << std::string( indent, ' ' ) << "from aggregate: ";
    213212        if (agg != 0) agg->print(os, indent + 2);
    214213        Expression::print( os, indent );
     
    234233
    235234void MemberExpr::print( std::ostream &os, int indent ) const {
    236         os << std::string(indent, ' ') << "Member Expression, with field: " << std::endl;
     235        os << std::string( indent, ' ' ) << "Member Expression, with field: " << std::endl;
    237236
    238237        assert( member );
    239         os << std::string(indent + 2, ' ');
     238        os << std::string( indent + 2, ' ' );
    240239        member->print( os, indent + 2 );
    241240        os << std::endl;
    242241
    243242        Expression *agg = get_aggregate();
    244         os << std::string(indent, ' ') << "from aggregate: " << std::endl;
     243        os << std::string( indent, ' ' ) << "from aggregate: " << std::endl;
    245244        if (agg != 0) agg->print(os, indent + 2);
    246245        Expression::print( os, indent );
     
    261260
    262261void UntypedExpr::print( std::ostream &os, int indent ) const {
    263         os << std::string(indent, ' ') << "Applying untyped: " << std::endl;
     262        os << std::string( indent, ' ' ) << "Applying untyped: " << std::endl;
    264263        function->print(os, indent + 4);
    265         os << "\r" << std::string(indent, ' ') << "...to: " << std::endl;
     264        os << std::string( indent, ' ' ) << "...to: " << std::endl;
    266265        printArgs(os, indent + 4);
    267266        Expression::print( os, indent );
     
    282281
    283282void NameExpr::print( std::ostream &os, int indent ) const {
    284         os << std::string(indent, ' ') << "Name: " << get_name() << std::endl;
     283        os << std::string( indent, ' ' ) << "Name: " << get_name() << std::endl;
    285284        Expression::print( os, indent );
    286285}
     
    301300
    302301void LogicalExpr::print( std::ostream &os, int indent )const {
    303         os << std::string(indent, ' ') << "Short-circuited operation (" << (isAnd?"and":"or") << ") on: ";
     302        os << std::string( indent, ' ' ) << "Short-circuited operation (" << (isAnd?"and":"or") << ") on: ";
    304303        arg1->print(os);
    305304        os << " and ";
     
    323322
    324323void ConditionalExpr::print( std::ostream &os, int indent ) const {
    325         os << std::string(indent, ' ') << "Conditional expression on: " << std::endl;
     324        os << std::string( indent, ' ' ) << "Conditional expression on: " << std::endl;
    326325        arg1->print( os, indent+2 );
    327         os << std::string(indent, ' ') << "First alternative:" << std::endl;
     326        os << std::string( indent, ' ' ) << "First alternative:" << std::endl;
    328327        arg2->print( os, indent+2 );
    329         os << std::string(indent, ' ') << "Second alternative:" << std::endl;
     328        os << std::string( indent, ' ' ) << "Second alternative:" << std::endl;
    330329        arg3->print( os, indent+2 );
    331330        os << std::endl;
     
    334333
    335334void UntypedValofExpr::print( std::ostream &os, int indent ) const {
    336         os << std::string(indent, ' ') << "Valof Expression: " << std::endl;
     335        os << std::string( indent, ' ' ) << "Valof Expression: " << std::endl;
    337336        if ( get_body() != 0 )
    338337                get_body()->print( os, indent + 2 );
  • src/SynTree/Expression.h

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 08:46:15 2015
    13 // Update Count     : 3
     12// Last Modified On : Sun Jun  7 22:03:44 2015
     13// Update Count     : 4
    1414//
    1515
     
    125125        virtual ~NameExpr();
    126126
    127         std::string get_name() const { return name; }
     127        const std::string &get_name() const { return name; }
    128128        void set_name( std::string newValue ) { name = newValue; }
    129129
  • src/SynTree/FunctionDecl.cc

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu May 21 21:31:16 2015
    13 // Update Count     : 11
     12// Last Modified On : Sat Jun 13 09:10:32 2015
     13// Update Count     : 16
    1414//
    1515
     
    2121#include "utility.h"
    2222
    23 FunctionDecl::FunctionDecl( const std::string &name, StorageClass sc, LinkageSpec::Type linkage, FunctionType *type, CompoundStmt *statements, bool isInline )
    24                 : Parent( name, sc, linkage ), type( type ), statements( statements ), isInline( isInline ) {
     23FunctionDecl::FunctionDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, FunctionType *type, CompoundStmt *statements, bool isInline, bool isNoreturn )
     24                : Parent( name, sc, linkage ), type( type ), statements( statements ), isInline( isInline ), isNoreturn( isNoreturn ) {
    2525        // this is a brazen hack to force the function "main" to have C linkage
    2626        if ( name == "main" ) {
     
    3030
    3131FunctionDecl::FunctionDecl( const FunctionDecl &other )
    32                 : Parent( other ), type( maybeClone( other.type ) ), statements( maybeClone( other.statements ) ), isInline( other.isInline ) {
     32        : Parent( other ), type( maybeClone( other.type ) ), statements( maybeClone( other.statements ) ), isInline( other.isInline ), isNoreturn( other.isNoreturn ) {
    3333}
    3434
     
    5252       
    5353        if ( get_name() != "" ) {
    54                 os << get_name() << ": a ";
     54                os << get_name() << ": ";
    5555        } // if
    5656        if ( get_linkage() != LinkageSpec::Cforall ) {
     
    6060                os << "inline ";
    6161        } // if
    62         if ( get_storageClass() != NoStorageClass ) {
    63                 os << storageClassName[ get_storageClass() ] << ' ';
     62        if ( isNoreturn ) {
     63                os << "_Noreturn ";
     64        } // if
     65        if ( get_storageClass() != DeclarationNode::NoStorageClass ) {
     66                os << DeclarationNode::storageName[ get_storageClass() ] << ' ';
    6467        } // if
    6568        if ( get_type() ) {
     
    7073
    7174        if ( ! oldIdents.empty() ) {
    72                 os << string( indent+2, ' ' ) << "with parameter names" << endl;
     75                os << string( indent + 2, ' ' ) << "with parameter names" << endl;
    7376                for ( std::list< std::string >::const_iterator i = oldIdents.begin(); i != oldIdents.end(); ++i ) {
    74                         os << string( indent+4, ' ' ) << *i << endl;
     77                        os << string( indent + 4, ' ' ) << *i << endl;
    7578                } // for
    7679        } // if
    7780
    7881        if ( ! oldDecls.empty() ) {
    79                 os << string( indent+2, ' ' ) << "with parameter declarations" << endl;
    80                 printAll( oldDecls, os, indent+4 );
     82                os << string( indent + 2, ' ' ) << "with parameter declarations" << endl;
     83                printAll( oldDecls, os, indent + 4 );
    8184        } // if
    8285        if ( statements ) {
    83                 os << string( indent+2, ' ' ) << "with body " << endl;
    84                 statements->print( os, indent+4 );
     86                os << string( indent + 2, ' ' ) << "with body " << endl;
     87                statements->print( os, indent + 4 );
    8588        } // if
    8689}
     
    9194       
    9295        if ( get_name() != "" ) {
    93                 os << get_name() << ": a ";
     96                os << get_name() << ": ";
    9497        } // if
    9598        if ( isInline ) {
    9699                os << "inline ";
    97100        } // if
    98         if ( get_storageClass() != NoStorageClass ) {
    99                 os << storageClassName[ get_storageClass() ] << ' ';
     101        if ( isNoreturn ) {
     102                os << "_Noreturn ";
     103        } // if
     104        if ( get_storageClass() != DeclarationNode::NoStorageClass ) {
     105                os << DeclarationNode::storageName[ get_storageClass() ] << ' ';
    100106        } // if
    101107        if ( get_type() ) {
  • src/SynTree/Mutator.h

    reb50842 r937e51d  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 10:12:28 2015
    13 // Update Count     : 3
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Fri May 29 16:34:08 2015
     13// Update Count     : 4
    1414//
    1515#include <cassert>
     
    104104                assert( newnode );
    105105                return newnode;
    106 ///         return tree->acceptMutator( mutator );
    107106        } else {
    108107                return 0;
  • src/SynTree/NamedTypeDecl.cc

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 10:13:19 2015
    13 // Update Count     : 1
     12// Last Modified On : Sat Jun 13 08:13:55 2015
     13// Update Count     : 3
    1414//
    1515
     
    1818#include "utility.h"
    1919
    20 NamedTypeDecl::NamedTypeDecl( const std::string &name, StorageClass sc, Type *base )
     20NamedTypeDecl::NamedTypeDecl( const std::string &name, DeclarationNode::StorageClass sc, Type *base )
    2121        : Parent( name, sc, LinkageSpec::Cforall ), base( base ) {}
    2222
     
    3737       
    3838        if ( get_name() != "" ) {
    39                 os << get_name() << ": a ";
     39                os << get_name() << ": ";
    4040        } // if
    41         if ( get_storageClass() != NoStorageClass ) {
    42                 os << storageClassName[ get_storageClass() ] << ' ';
     41        if ( get_storageClass() != DeclarationNode::NoStorageClass ) {
     42                os << DeclarationNode::storageName[ get_storageClass() ] << ' ';
    4343        } // if
    4444        os << typeString();
     
    6161       
    6262        if ( get_name() != "" ) {
    63                 os << get_name() << ": a ";
     63                os << get_name() << ": ";
    6464        } // if
    65         if ( get_storageClass() != NoStorageClass ) {
    66                 os << storageClassName[ get_storageClass() ] << ' ';
     65        if ( get_storageClass() != DeclarationNode::NoStorageClass ) {
     66                os << DeclarationNode::storageName[ get_storageClass() ] << ' ';
    6767        } // if
    6868        os << typeString();
  • src/SynTree/ObjectDecl.cc

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 10:14:18 2015
    13 // Update Count     : 2
     12// Last Modified On : Sat Jun 13 08:10:16 2015
     13// Update Count     : 15
    1414//
    1515
     
    2020#include "utility.h"
    2121
    22 ObjectDecl::ObjectDecl( const std::string &name, StorageClass sc, LinkageSpec::Type linkage, Expression *bitfieldWidth, Type *type, Initializer *init )
     22ObjectDecl::ObjectDecl( const std::string &name, DeclarationNode::StorageClass sc, LinkageSpec::Type linkage, Expression *bitfieldWidth, Type *type, Initializer *init )
    2323        : Parent( name, sc, linkage ), type( type ), init( init ), bitfieldWidth( bitfieldWidth ) {
    2424}
     
    3636void ObjectDecl::print( std::ostream &os, int indent ) const {
    3737        if ( get_name() != "" ) {
    38                 os << get_name() << ": a ";
     38                os << get_name() << ": ";
    3939        } // if
    4040
     
    4343        } // if
    4444
    45         if ( get_storageClass() != NoStorageClass ) {
    46                 os << storageClassName[ get_storageClass() ] << ' ';
     45        if ( get_storageClass() != DeclarationNode::NoStorageClass ) {
     46                os << DeclarationNode::storageName[ get_storageClass() ] << ' ';
    4747        } // if
    4848
     
    6565
    6666void ObjectDecl::printShort( std::ostream &os, int indent ) const {
     67#if 0
     68        if ( get_mangleName() != "") {
     69                os << get_mangleName() << ": ";
     70        } else
     71#endif
    6772        if ( get_name() != "" ) {
    68                 os << get_name() << ": a ";
     73                os << get_name() << ": ";
    6974        } // if
    7075
    71         if ( get_storageClass() != NoStorageClass ) {
    72                 os << storageClassName[ get_storageClass() ] << ' ';
     76        if ( get_storageClass() != DeclarationNode::NoStorageClass ) {
     77                os << DeclarationNode::storageName[ get_storageClass() ] << ' ';
    7378        } // if
    7479
  • src/SynTree/ReferenceToType.cc

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 19 16:52:40 2015
    13 // Update Count     : 3
     12// Last Modified On : Sun Jun  7 08:31:48 2015
     13// Update Count     : 4
    1414//
    1515
     
    101101       
    102102        Type::print( os, indent );
    103         os << "instance of " << typeString() << " " << get_name() << " (" << ( isFtype ? "" : "not" ) << " a function type) ";
     103        os << "instance of " << typeString() << " " << get_name() << " (" << ( isFtype ? "" : "not" ) << " function type) ";
    104104        if ( ! parameters.empty() ) {
    105105                os << endl << std::string( indent, ' ' ) << "with parameters" << endl;
  • src/SynTree/Statement.cc

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 10:55:19 2015
    13 // Update Count     : 2
     12// Last Modified On : Tue Jun 23 11:42:09 2015
     13// Update Count     : 21
    1414//
    1515
     
    3030Statement::Statement( std::list<Label> _labels ) : labels(_labels ) {}
    3131
    32 void Statement::print( std::ostream &, int indent ) {}
     32void Statement::print( std::ostream &, int indent ) const {}
    3333
    3434Statement::~Statement() {}
     
    3838ExprStmt::~ExprStmt() {}
    3939
    40 void ExprStmt::print( std::ostream &os, int indent ) {
    41         os << "\r" << string(indent, ' ') << "Expression Statement:" << endl;
     40void ExprStmt::print( std::ostream &os, int indent ) const {
     41        os << string( indent, ' ' ) << "Expression Statement:" << endl;
    4242        expr->print( os, indent + 2 );
    4343}
     
    4646
    4747BranchStmt::BranchStmt( std::list<Label> labels, Label _target, Type _type ) throw ( SemanticError ) :
    48         Statement( labels ), target(_target ), type(_type ) {
     48        Statement( labels ), originalTarget(_target ), target(_target ), type(_type ) {
    4949        //actually this is a syntactic error signaled by the parser
    5050        if ( type == BranchStmt::Goto && target.size() == 0 )
     
    5858}
    5959
    60 void BranchStmt::print( std::ostream &os, int indent ) {
    61         os << "\r" << string( indent, ' ') << "Branch (" << brType[type] << ")" << endl ;
     60void BranchStmt::print( std::ostream &os, int indent ) const {
     61        os << string( indent, ' ' ) << "Branch (" << brType[type] << ")" << endl ;
    6262}
    6363
     
    6868}
    6969
    70 void ReturnStmt::print( std::ostream &os, int indent ) {
    71         os << "\r" << std::string( indent, ' ') << string ( isThrow? "Throw":"Return" ) << " Statement, returning: ";
     70void ReturnStmt::print( std::ostream &os, int indent ) const {
     71        os << std::string( indent, ' ' ) << string ( isThrow? "Throw":"Return" ) << " Statement, returning: ";
    7272        if ( expr != 0 ) expr->print( os );
    7373        os << endl;
     
    7979IfStmt::~IfStmt() {}
    8080
    81 void IfStmt::print( std::ostream &os, int indent ) {
    82         os << "\r" << string( indent, ' ') << "If on condition: " << endl ;
     81void IfStmt::print( std::ostream &os, int indent ) const {
     82        os << string( indent, ' ' ) << "If on condition: " << endl ;
    8383        condition->print( os, indent + 4 );
    8484
    85         os << string( indent, ' ') << ".... and branches: " << endl;
     85        os << string( indent, ' ' ) << ".... and branches: " << endl;
    8686
    8787        thenPart->print( os, indent + 4 );
     
    103103void SwitchStmt::add_case( CaseStmt *c ) {}
    104104
    105 void SwitchStmt::print( std::ostream &os, int indent ) {
    106         os << "\r" << string( indent, ' ') << "Switch on condition: ";
     105void SwitchStmt::print( std::ostream &os, int indent ) const {
     106        os << string( indent, ' ' ) << "Switch on condition: ";
    107107        condition->print( os );
    108108        os << endl;
    109109
    110110        // branches
    111         std::list<Statement *>::iterator i;
     111        std::list<Statement *>::const_iterator i;
    112112        for ( i = branches.begin(); i != branches.end(); i++)
    113                 (*i )->print( os, indent + 4 );
     113                (*i)->print( os, indent + 4 );
    114114
    115115        //for_each( branches.begin(), branches.end(), mem_fun( bind1st(&Statement::print ), os ));
     
    126126}
    127127
    128 void CaseStmt::print( std::ostream &os, int indent ) {
    129         os << "\r" << string( indent, ' ');
    130 
    131         if ( isDefault())
     128CaseStmt * CaseStmt::makeDefault( std::list<Label> labels, std::list<Statement *> branches ) {
     129        return new CaseStmt( labels, 0, branches, true );
     130}
     131
     132void CaseStmt::print( std::ostream &os, int indent ) const {
     133        os << string( indent, ' ' );
     134
     135        if ( isDefault() )
    132136                os << "Default ";
    133137        else {
     
    138142        os << endl;
    139143
    140         std::list<Statement *>::iterator i;
     144        std::list<Statement *>::const_iterator i;
    141145        for ( i = stmts.begin(); i != stmts.end(); i++)
    142146                (*i )->print( os, indent + 4 );
     
    154158void ChooseStmt::add_case( CaseStmt *c ) {}
    155159
    156 void ChooseStmt::print( std::ostream &os, int indent ) {
    157         os << "\r" << string( indent, ' ') << "Choose on condition: ";
     160void ChooseStmt::print( std::ostream &os, int indent ) const {
     161        os << string( indent, ' ' ) << "Choose on condition: ";
    158162        condition->print( os );
    159163        os << endl;
    160164
    161165        // branches
    162         std::list<Statement *>::iterator i;
     166        std::list<Statement *>::const_iterator i;
    163167        for ( i = branches.begin(); i != branches.end(); i++)
    164168                (*i )->print( os, indent + 4 );
     
    167171}
    168172
    169 void FallthruStmt::print( std::ostream &os, int indent ) {
    170         os << "\r" << string( indent, ' ') << "Fall-through statement" << endl;
     173void FallthruStmt::print( std::ostream &os, int indent ) const {
     174        os << string( indent, ' ' ) << "Fall-through statement" << endl;
    171175}
    172176
     
    179183}
    180184
    181 void WhileStmt::print( std::ostream &os, int indent ) {
    182         os << "\r" << string( indent, ' ') << "While on condition: " << endl ;
     185void WhileStmt::print( std::ostream &os, int indent ) const {
     186        os << string( indent, ' ' ) << "While on condition: " << endl ;
    183187        condition->print( os, indent + 4 );
    184188
    185         os << string( indent, ' ') << ".... with body: " << endl;
     189        os << string( indent, ' ' ) << ".... with body: " << endl;
    186190
    187191        if ( body != 0 ) body->print( os, indent + 4 );
     
    199203}
    200204
    201 void ForStmt::print( std::ostream &os, int indent ) {
    202         os << "\r" << string( indent, ' ') << "For Statement" << endl ;
    203 
    204         os << "\r" << string( indent + 2, ' ') << "initialization: \n";
     205void ForStmt::print( std::ostream &os, int indent ) const {
     206        os << string( indent, ' ' ) << "Labels: {";
     207        for ( std::list<Label>::const_iterator it = get_labels().begin(); it != get_labels().end(); ++it) {
     208                os << *it << ",";
     209        }
     210        os << "}" << endl;
     211
     212        os << string( indent, ' ' ) << "For Statement" << endl ;
     213
     214        os << string( indent + 2, ' ' ) << "initialization: \n";
    205215        if ( initialization != 0 )
    206216                initialization->print( os, indent + 4 );
    207217
    208         os << "\n\r" << string( indent + 2, ' ') << "condition: \n";
     218        os << "\n" << string( indent + 2, ' ' ) << "condition: \n";
    209219        if ( condition != 0 )
    210220                condition->print( os, indent + 4 );
    211221
    212         os << "\n\r" << string( indent + 2, ' ') << "increment: \n";
     222        os << "\n" << string( indent + 2, ' ' ) << "increment: \n";
    213223        if ( increment != 0 )
    214224                increment->print( os, indent + 4 );
    215225
    216         os << "\n\r" << string( indent + 2, ' ') << "statement block: \n";
     226        os << "\n" << string( indent + 2, ' ' ) << "statement block: \n";
    217227        if ( body != 0 )
    218228                body->print( os, indent + 4 );
     
    235245}
    236246
    237 void TryStmt::print( std::ostream &os, int indent ) {
    238         os << "\r" << string( indent, ' ') << "Try Statement" << endl;
    239         os << string( indent + 2, ' ') << "with block: " << endl;
     247void TryStmt::print( std::ostream &os, int indent ) const {
     248        os << string( indent, ' ' ) << "Try Statement" << endl;
     249        os << string( indent + 2, ' ' ) << "with block: " << endl;
    240250        block->print( os, indent + 4 );
    241251
    242252        // handlers
    243         os << string( indent + 2, ' ') << "and handlers: " << endl;
    244         std::list<Statement *>::iterator i;
    245         for ( i = handlers.begin(); i != handlers.end(); i++)
     253        os << string( indent + 2, ' ' ) << "and handlers: " << endl;
     254        for ( std::list<Statement *>::const_iterator i = handlers.begin(); i != handlers.end(); i++)
    246255                (*i )->print( os, indent + 4 );
    247256
    248257        // finally block
    249258        if ( finallyBlock != 0 ) {
    250                 os << string( indent + 2, ' ') << "Finally block: " << endl;
     259                os << string( indent + 2, ' ' ) << "Finally block: " << endl;
    251260                finallyBlock->print( os, indent + 4 );
    252261        } // if
     
    262271}
    263272
    264 void CatchStmt::print( std::ostream &os, int indent ) {
    265         os << "\r" << string( indent, ' ') << "Catch Statement" << endl;
    266 
    267         os << "\r" << string( indent, ' ') << "... catching" << endl;
     273void CatchStmt::print( std::ostream &os, int indent ) const {
     274        os << string( indent, ' ' ) << "Catch Statement" << endl;
     275
     276        os << string( indent, ' ' ) << "... catching" << endl;
    268277        if ( decl ) {
    269278                decl->printShort( os, indent + 4 );
    270279                os << endl;
    271280        } else if ( catchRest )
    272                 os << "\r" << string( indent + 4 , ' ') << "the rest" << endl;
     281                os << string( indent + 4 , ' ' ) << "the rest" << endl;
    273282        else
    274                 os << "\r" << string( indent + 4 , ' ') << ">>> Error:  this catch clause must have a declaration <<<" << endl;
     283                os << string( indent + 4 , ' ' ) << ">>> Error:  this catch clause must have a declaration <<<" << endl;
    275284}
    276285
     
    284293}
    285294
    286 void FinallyStmt::print( std::ostream &os, int indent ) {
    287         os << "\r" << string( indent, ' ') << "Finally Statement" << endl;
    288         os << string( indent + 2, ' ') << "with block: " << endl;
     295void FinallyStmt::print( std::ostream &os, int indent ) const {
     296        os << string( indent, ' ' ) << "Finally Statement" << endl;
     297        os << string( indent + 2, ' ' ) << "with block: " << endl;
    289298        block->print( os, indent + 4 );
    290299}
     
    294303NullStmt::~NullStmt() {}
    295304
    296 void NullStmt::print( std::ostream &os, int indent ) {
    297         os << "\r" << string( indent, ' ') << "Null Statement" << endl ;
     305void NullStmt::print( std::ostream &os, int indent ) const {
     306        os << string( indent, ' ' ) << "Null Statement" << endl ;
    298307}
    299308
  • src/SynTree/Statement.h

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 10:57:40 2015
    13 // Update Count     : 2
     12// Last Modified On : Tue Jun 23 11:44:27 2015
     13// Update Count     : 20
    1414//
    1515
     
    2828
    2929        std::list<Label> & get_labels() { return labels; }
     30        const std::list<Label> & get_labels() const { return labels; }
    3031
    3132        virtual Statement *clone() const = 0;
    3233        virtual void accept( Visitor &v ) = 0;
    3334        virtual Statement *acceptMutator( Mutator &m ) = 0;
    34         virtual void print( std::ostream &os, int indent = 0 );
     35        virtual void print( std::ostream &os, int indent = 0 ) const;
    3536  protected:
    3637        std::list<Label> labels;
     
    4849        virtual void accept( Visitor &v ) { v.visit( this ); }
    4950        virtual CompoundStmt *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    50         virtual void print( std::ostream &os, int indent = 0 );
     51        virtual void print( std::ostream &os, int indent = 0 ) const;
    5152  private:
    5253        std::list<Statement*> kids;
     
    6465        virtual void accept( Visitor &v ) { v.visit( this ); }
    6566        virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    66         virtual void print( std::ostream &os, int indent = 0 );
     67        virtual void print( std::ostream &os, int indent = 0 ) const;
    6768  private:
    6869        Expression *expr;
     
    8485        virtual void accept( Visitor &v ) { v.visit( this ); }
    8586        virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    86         virtual void print( std::ostream &os, int indent = 0 );
     87        virtual void print( std::ostream &os, int indent = 0 ) const;
    8788  private:
    8889        Expression *condition;
     
    106107
    107108        virtual SwitchStmt *clone() const { return new SwitchStmt( *this ); }
    108         virtual void print( std::ostream &os, int indent = 0 );
     109        virtual void print( std::ostream &os, int indent = 0 ) const;
    109110  private:
    110111        Expression * condition;
     
    127128
    128129        virtual ChooseStmt *clone() const { return new ChooseStmt( *this ); }
    129         virtual void print( std::ostream &os, int indent = 0 );
     130        virtual void print( std::ostream &os, int indent = 0 ) const;
    130131  private:
    131132        Expression *condition;
     
    141142
    142143        virtual FallthruStmt *clone() const { return new FallthruStmt( *this ); }
    143         virtual void print( std::ostream &os, int indent = 0 );
     144        virtual void print( std::ostream &os, int indent = 0 ) const;
    144145};
    145146
     
    150151        virtual ~CaseStmt();
    151152
    152         bool isDefault() { return _isDefault; }
     153        static CaseStmt * makeDefault( std::list<Label> labels = std::list<Label>(),
     154                std::list<Statement *> stmts = std::list<Statement *>() );
     155
     156        bool isDefault() const { return _isDefault; }
    153157        void set_default(bool b) { _isDefault = b; }
    154158
     
    163167
    164168        virtual CaseStmt *clone() const { return new CaseStmt( *this ); }
    165         virtual void print( std::ostream &os, int indent = 0 );
     169        virtual void print( std::ostream &os, int indent = 0 ) const;
    166170  private:
    167171        Expression * condition;
     
    186190        virtual void accept( Visitor &v ) { v.visit( this ); }
    187191        virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    188         virtual void print( std::ostream &os, int indent = 0 );
     192        virtual void print( std::ostream &os, int indent = 0 ) const;
    189193  private:
    190194        Expression *condition;
     
    211215        virtual void accept( Visitor &v ) { v.visit( this ); }
    212216        virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    213         virtual void print( std::ostream &os, int indent = 0 );
     217        virtual void print( std::ostream &os, int indent = 0 ) const;
    214218  private:
    215219        Statement *initialization;
     
    221225class BranchStmt : public Statement {
    222226  public:
    223         enum Type { Goto = 0 , Break, Continue };
     227        enum Type { Goto = 0, Break, Continue };
    224228
    225229        BranchStmt( std::list<Label> labels, Label target, Type ) throw (SemanticError);
     
    227231        virtual ~BranchStmt() {}
    228232
     233        Label get_originalTarget() { return originalTarget; }
    229234        Label get_target() { return target; }
    230235        void set_target( Label newValue ) { target = newValue; }
     
    239244        virtual void accept( Visitor &v ) { v.visit( this ); }
    240245        virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    241         virtual void print( std::ostream &os, int indent = 0 );
     246        virtual void print( std::ostream &os, int indent = 0 ) const;
    242247  private:
    243248        static const char *brType[];
     249        Label originalTarget;  // can give better error messages if we remember the label name that the user entered
    244250        Label target;
    245251        Expression *computedTarget;
     
    258264        virtual void accept( Visitor &v ) { v.visit( this ); }
    259265        virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    260         virtual void print( std::ostream &os, int indent = 0 );
     266        virtual void print( std::ostream &os, int indent = 0 ) const;
    261267  private:
    262268        Expression *expr;
     
    274280        virtual void accept( Visitor &v ) { v.visit( this ); }
    275281        virtual NullStmt *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    276         virtual void print( std::ostream &os, int indent = 0 );
     282        virtual void print( std::ostream &os, int indent = 0 ) const;
    277283       
    278284  private:
     
    295301        virtual void accept( Visitor &v ) { v.visit( this ); }
    296302        virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    297         virtual void print( std::ostream &os, int indent = 0 );
     303        virtual void print( std::ostream &os, int indent = 0 ) const;
    298304       
    299305  private:
     
    317323        virtual void accept( Visitor &v ) { v.visit( this ); }
    318324        virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    319         virtual void print( std::ostream &os, int indent = 0 );
     325        virtual void print( std::ostream &os, int indent = 0 ) const;
    320326       
    321327  private:
     
    336342        virtual void accept( Visitor &v ) { v.visit( this ); }
    337343        virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    338         virtual void print( std::ostream &os, int indent = 0 );
     344        virtual void print( std::ostream &os, int indent = 0 ) const;
    339345  private:
    340346        CompoundStmt *block;
     
    355361        virtual void accept( Visitor &v ) { v.visit( this ); }
    356362        virtual Statement *acceptMutator( Mutator &m ) { return m.mutate( this ); }
    357         virtual void print( std::ostream &os, int indent = 0 );
     363        virtual void print( std::ostream &os, int indent = 0 ) const;
    358364  private:
    359365        Declaration *decl;
  • src/SynTree/Type.h

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 11:01:40 2015
    13 // Update Count     : 1
     12// Last Modified On : Sun Jun  7 21:50:38 2015
     13// Update Count     : 12
    1414//
    1515
     
    110110        }; 
    111111
    112         static const char *typeNames[];                 // string names for basic types, MUST MATCH with Kind
     112        static const char *typeNames[];                                         // string names for basic types, MUST MATCH with Kind
    113113
    114114        BasicType( const Type::Qualifiers &tq, Kind bt );
     
    214214        virtual ~ReferenceToType();
    215215
    216         std::string get_name() const { return name; }
     216        const std::string &get_name() const { return name; }
    217217        void set_name( std::string newValue ) { name = newValue; }
    218218        std::list< Expression* >& get_parameters() { return parameters; }
     
    372372        virtual ~AttrType();
    373373
    374         std::string get_name() const { return name; }
     374        const std::string &get_name() const { return name; }
    375375        void set_name( const std::string &newValue ) { name = newValue; }
    376376        Expression *get_expr() const { return expr; }
  • src/SynTree/TypeDecl.cc

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 11:02:11 2015
    13 // Update Count     : 1
     12// Last Modified On : Sat Jun 13 08:14:35 2015
     13// Update Count     : 2
    1414//
    1515
     
    1818#include "utility.h"
    1919
    20 TypeDecl::TypeDecl( const std::string &name, StorageClass sc, Type *type, Kind kind ) : Parent( name, sc, type ), kind( kind ) {
     20TypeDecl::TypeDecl( const std::string &name, DeclarationNode::StorageClass sc, Type *type, Kind kind ) : Parent( name, sc, type ), kind( kind ) {
    2121}
    2222
  • src/SynTree/module.mk

    reb50842 r937e51d  
     1######################### -*- Mode: Makefile-Gmake -*- ########################
     2##
     3## Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     4##
     5## The contents of this file are covered under the licence agreement in the
     6## file "LICENCE" distributed with Cforall.
     7##
     8## module.mk --
     9##
     10## Author           : Richard C. Bilson
     11## Created On       : Mon Jun  1 17:49:17 2015
     12## Last Modified By : Peter A. Buhr
     13## Last Modified On : Mon Jun  1 17:54:09 2015
     14## Update Count     : 1
     15###############################################################################
     16
    117SRC += SynTree/Type.cc \
    218       SynTree/VoidType.cc \
     
    3046       SynTree/Mutator.cc \
    3147       SynTree/CodeGenVisitor.cc \
    32        SynTree/TypeSubstitution.cc \
    33         $(NULL)
     48       SynTree/TypeSubstitution.cc
    3449
  • src/Tests/Constant0-1.c

    reb50842 r937e51d  
    1111int 0, 1;
    1212const int 0, 1;
     13int (0), (1);
     14int ((0)), ((1));
    1315static const int 0, 1;
    1416struct { int i; } 0;
     
    1820// pointer
    1921
    20 int 1, * 0;
    21 int (1), ((1)), * (0), (* 0), ((* 0));
    22 int * const (0), (* const 0), ((* const 0));
    23 struct { int i; } * 0;
     22int *0, *1;
     23int *(0), *(1);
     24int (*0), (*1);
     25int ((*0)), ((*1));
     26int * const (0), * const 1;
     27int (* const 0), (* const 1);
     28int ((* const 0)), ((* const 1));
     29struct { int i; } *0;
    2430
    2531// Cforall style
     
    3440static const * int x, 0;
    3541const * * int x, 0;
     42
     43int main() {
     44    int 1, * 0;
     45    * int x, 0;
     46}
  • src/Tests/DeclarationErrors.c

    reb50842 r937e51d  
    44typedef int Int;
    55static Int volatile static const x28;                   // duplicate static
     6
     7// Local Variables: //
     8// tab-width: 4 //
     9// End: //
  • src/Tests/DeclarationSpecifier.c

    reb50842 r937e51d  
    8989static const Int inline volatile f48();
    9090
     91// Local Variables: //
     92// tab-width: 4 //
     93// End: //
  • src/Tests/Expect-a/Functions.txt

    reb50842 r937e51d  
    1 h: a function
     1h: function
    22    with parameters
    33      void
     
    55      void
    66    with body
    7 
    8 f: a function
     7      CompoundStmt
     8
     9f: function
    910    with parameters
    1011      function
     
    3233            signed int
    3334
    34       g: a function
     35      g: function
    3536          with parameters
    3637            void
     
    4142      signed int
    4243    with body
    43 
    44 f1: a function
    45     returning
    46       signed int
    47     with body
    48 
    49 f2: a function
    50     returning
    51       signed int
    52     with body
    53 
    54 f3: a function
     44      CompoundStmt
     45                  Expression Statement:
     46            Applying untyped:
     47                Applying untyped:
     48                    Name: *?
     49                ...to:
     50                    Name: g
     51            ...to:
     52
     53                  Expression Statement:
     54            Applying untyped:
     55                Name: g
     56            ...to:
     57
     58                  Expression Statement:
     59            Applying untyped:
     60                Name: ?=?
     61            ...to:
     62                Address of:
     63                  Name: g
     64                Name: h
     65
     66
     67f1: function
     68      accepting unspecified arguments
     69    returning
     70      signed int
     71    with body
     72      CompoundStmt
     73
     74f2: function
     75      accepting unspecified arguments
     76    returning
     77      signed int
     78    with body
     79      CompoundStmt
     80
     81f3: function
     82      accepting unspecified arguments
    5583    returning
    5684      pointer to function
    57           returning
    58             signed int
    59 
    60     with body
    61 
    62 f4: a function
     85            accepting unspecified arguments
     86          returning
     87            signed int
     88
     89    with body
     90      CompoundStmt
     91
     92f4: function
     93      accepting unspecified arguments
    6394    returning
    6495      pointer to signed int
    6596    with body
    66 
    67 f5: a function
     97      CompoundStmt
     98
     99f5: function
     100      accepting unspecified arguments
    68101    returning
    69102      pointer to function
    70           returning
    71             signed int
    72 
    73     with body
    74 
    75 f6: a function
     103            accepting unspecified arguments
     104          returning
     105            signed int
     106
     107    with body
     108      CompoundStmt
     109
     110f6: function
     111      accepting unspecified arguments
    76112    returning
    77113      pointer to signed int
    78114    with body
    79 
    80 f7: a function
     115      CompoundStmt
     116
     117f7: function
     118      accepting unspecified arguments
    81119    returning
    82120      pointer to signed int
    83121    with body
    84 
    85 f8: a function
     122      CompoundStmt
     123
     124f8: function
     125      accepting unspecified arguments
    86126    returning
    87127      pointer to pointer to signed int
    88128    with body
    89 
    90 f9: a function
     129      CompoundStmt
     130
     131f9: function
     132      accepting unspecified arguments
    91133    returning
    92134      pointer to const pointer to signed int
    93135    with body
    94 
    95 f10: a function
     136      CompoundStmt
     137
     138f10: function
     139      accepting unspecified arguments
    96140    returning
    97141      pointer to open array of signed int
    98142    with body
    99 
    100 f11: a function
    101     returning
    102       pointer to open array of open array of signed int
    103     with body
    104 
    105 f12: a function
    106     returning
    107       pointer to open array of open array of signed int
    108     with body
    109 
    110 fII1: a function
    111     with parameters
    112       i: a signed int
    113     returning
    114       signed int
    115     with body
    116 
    117 fII2: a function
    118     with parameters
    119       i: a signed int
     143      CompoundStmt
     144
     145f11: function
     146      accepting unspecified arguments
     147    returning
     148      pointer to open array of array of signed int with dimension of constant expression 3 signed int
     149    with body
     150      CompoundStmt
     151
     152f12: function
     153      accepting unspecified arguments
     154    returning
     155      pointer to open array of array of signed int with dimension of constant expression 3 signed int
     156    with body
     157      CompoundStmt
     158
     159fII1: function
     160    with parameters
     161      i: signed int
     162    returning
     163      signed int
     164    with body
     165      CompoundStmt
     166
     167fII2: function
     168    with parameters
     169      i: signed int
    120170    returning
    121171      const signed int
    122172    with body
    123 
    124 fII3: a extern function
    125     with parameters
    126       i: a signed int
    127     returning
    128       signed int
    129     with body
    130 
    131 fII4: a extern function
    132     with parameters
    133       i: a signed int
     173      CompoundStmt
     174
     175fII3: extern function
     176    with parameters
     177      i: signed int
     178    returning
     179      signed int
     180    with body
     181      CompoundStmt
     182
     183fII4: extern function
     184    with parameters
     185      i: signed int
    134186    returning
    135187      const signed int
    136188    with body
    137 
    138 fII5: a function
     189      CompoundStmt
     190
     191fII5: function
     192      accepting unspecified arguments
    139193    returning
    140194      pointer to signed int
    141195    with body
    142 
    143 fII6: a function
     196      CompoundStmt
     197
     198fII6: function
     199      accepting unspecified arguments
    144200    returning
    145201      const pointer to signed int
    146202    with body
    147 
    148 fII7: a function
     203      CompoundStmt
     204
     205fII7: function
     206      accepting unspecified arguments
    149207    returning
    150208      pointer to const long signed int
    151209    with body
    152 
    153 fII8: a static function
     210      CompoundStmt
     211
     212fII8: static function
     213      accepting unspecified arguments
    154214    returning
    155215      pointer to const long signed int
    156216    with body
    157 
    158 fII9: a static function
     217      CompoundStmt
     218
     219fII9: static function
     220      accepting unspecified arguments
    159221    returning
    160222      pointer to const long signed int
    161223    with body
    162 
    163 fO1: a function
     224      CompoundStmt
     225
     226fO1: function
     227      accepting unspecified arguments
    164228    returning
    165229      signed int
     
    167231      i
    168232    with parameter declarations
    169       i: a signed int
    170     with body
    171 
    172 fO2: a function
     233      i: signed int
     234    with body
     235      CompoundStmt
     236
     237fO2: function
     238      accepting unspecified arguments
    173239    returning
    174240      signed int
     
    176242      i
    177243    with parameter declarations
    178       i: a signed int
    179     with body
    180 
    181 fO3: a function
     244      i: signed int
     245    with body
     246      CompoundStmt
     247
     248fO3: function
     249      accepting unspecified arguments
    182250    returning
    183251      const signed int
     
    185253      i
    186254    with parameter declarations
    187       i: a signed int
    188     with body
    189 
    190 fO4: a extern function
     255      i: signed int
     256    with body
     257      CompoundStmt
     258
     259fO4: extern function
     260      accepting unspecified arguments
    191261    returning
    192262      signed int
     
    194264      i
    195265    with parameter declarations
    196       i: a signed int
    197     with body
    198 
    199 fO5: a extern function
     266      i: signed int
     267    with body
     268      CompoundStmt
     269
     270fO5: extern function
     271      accepting unspecified arguments
    200272    returning
    201273      const signed int
     
    203275      i
    204276    with parameter declarations
    205       i: a signed int
    206     with body
    207 
    208 f: a function
    209     returning
    210       nothing
    211 
    212 f: a function
    213     returning
    214       signed int
    215 
    216 f: a function
    217     with parameters
    218       signed int
    219     returning
    220       nothing
    221 
    222 f: a function
    223     with parameters
    224       signed int
    225     returning
    226       signed int
    227 
    228 f: a function
    229     returning
    230       nothing
    231     with body
    232 
    233 f: a function
    234     returning
    235       signed int
    236     with body
    237 
    238 f: a function
    239     with parameters
    240       signed int
    241     returning
    242       nothing
    243     with body
    244 
    245 f: a function
    246     with parameters
    247       signed int
    248     returning
    249       signed int
    250     with body
    251 
    252 f: a function
    253     returning
    254       x: a signed int
    255 
    256 f: a function
    257     with parameters
    258       x: a signed int
    259     returning
    260       nothing
    261 
    262 f: a function
    263     with parameters
    264       x: a signed int
    265     returning
    266       x: a signed int
    267 
    268 f: a function
    269     returning
    270       x: a signed int
    271     with body
    272 
    273 f: a function
    274     with parameters
    275       x: a signed int
    276     returning
    277       nothing
    278     with body
    279 
    280 f: a function
    281     with parameters
    282       x: a signed int
    283     returning
    284       x: a signed int
    285     with body
    286 
    287 f: a function
    288     returning
    289       signed int
    290       x: a signed int
    291 
    292 f: a function
    293     with parameters
    294       signed int
    295       x: a signed int
    296     returning
    297       nothing
    298 
    299 f: a function
    300     with parameters
    301       signed int
    302       x: a signed int
    303     returning
    304       signed int
    305       x: a signed int
    306 
    307 f: a function
    308     returning
    309       signed int
    310       x: a signed int
    311     with body
    312 
    313 f: a function
    314     with parameters
    315       signed int
    316       x: a signed int
    317     returning
    318       nothing
    319     with body
    320 
    321 f: a function
    322     with parameters
    323       signed int
    324       x: a signed int
    325     returning
    326       signed int
    327       x: a signed int
    328     with body
    329 
    330 f: a function
    331     returning
    332       signed int
    333       x: a signed int
    334       signed int
    335 
    336 f: a function
    337     with parameters
    338       signed int
    339       x: a signed int
    340       signed int
    341     returning
    342       nothing
    343 
    344 f: a function
    345     with parameters
    346       signed int
    347       x: a signed int
    348       signed int
    349     returning
    350       signed int
    351       x: a signed int
    352       signed int
    353 
    354 f: a function
    355     returning
    356       signed int
    357       x: a signed int
    358       signed int
    359     with body
    360 
    361 f: a function
    362     with parameters
    363       signed int
    364       x: a signed int
    365       signed int
    366     returning
    367       nothing
    368     with body
    369 
    370 f: a function
    371     with parameters
    372       signed int
    373       x: a signed int
    374       signed int
    375     returning
    376       signed int
    377       x: a signed int
    378       signed int
    379     with body
    380 
    381 f: a function
    382     returning
    383       signed int
    384       x: a signed int
    385       y: a pointer to signed int
    386 
    387 f: a function
    388     with parameters
    389       signed int
    390       x: a signed int
    391       y: a pointer to signed int
    392     returning
    393       nothing
    394 
    395 f: a function
    396     with parameters
    397       signed int
    398       x: a signed int
    399       y: a pointer to signed int
    400     returning
    401       signed int
    402       x: a signed int
    403       y: a pointer to signed int
    404 
    405 f: a function
    406     returning
    407       signed int
    408       x: a signed int
    409       y: a pointer to signed int
    410     with body
    411 
    412 f: a function
    413     with parameters
    414       signed int
    415       x: a signed int
    416       y: a pointer to signed int
    417     returning
    418       nothing
    419     with body
    420 
    421 f: a function
    422     with parameters
    423       signed int
    424       x: a signed int
    425       y: a pointer to signed int
    426     returning
    427       signed int
    428       x: a signed int
    429       y: a pointer to signed int
    430     with body
    431 
    432 f11: a function
    433     with parameters
    434       signed int
    435     returning
    436       signed int
    437 
    438 f12: a function
    439     with parameters
    440       signed int
    441     returning
    442       signed int
    443 
    444 f: a function
     277      i: signed int
     278    with body
     279      CompoundStmt
     280
     281f: function
     282    returning
     283      nothing
     284
     285f: function
     286    returning
     287      signed int
     288
     289f: function
     290    with parameters
     291      signed int
     292    returning
     293      nothing
     294
     295f: function
     296    with parameters
     297      signed int
     298    returning
     299      signed int
     300
     301f: function
     302    returning
     303      nothing
     304    with body
     305      CompoundStmt
     306
     307f: function
     308    returning
     309      signed int
     310    with body
     311      CompoundStmt
     312
     313f: function
     314    with parameters
     315      signed int
     316    returning
     317      nothing
     318    with body
     319      CompoundStmt
     320
     321f: function
     322    with parameters
     323      signed int
     324    returning
     325      signed int
     326    with body
     327      CompoundStmt
     328
     329f: function
     330    returning
     331      x: signed int
     332
     333f: function
     334    with parameters
     335      x: signed int
     336    returning
     337      nothing
     338
     339f: function
     340    with parameters
     341      x: signed int
     342    returning
     343      x: signed int
     344
     345f: function
     346    returning
     347      x: signed int
     348    with body
     349      CompoundStmt
     350
     351f: function
     352    with parameters
     353      x: signed int
     354    returning
     355      nothing
     356    with body
     357      CompoundStmt
     358
     359f: function
     360    with parameters
     361      x: signed int
     362    returning
     363      x: signed int
     364    with body
     365      CompoundStmt
     366
     367f: function
     368    returning
     369      signed int
     370      x: signed int
     371
     372f: function
     373    with parameters
     374      signed int
     375      x: signed int
     376    returning
     377      nothing
     378
     379f: function
     380    with parameters
     381      signed int
     382      x: signed int
     383    returning
     384      signed int
     385      x: signed int
     386
     387f: function
     388    returning
     389      signed int
     390      x: signed int
     391    with body
     392      CompoundStmt
     393
     394f: function
     395    with parameters
     396      signed int
     397      x: signed int
     398    returning
     399      nothing
     400    with body
     401      CompoundStmt
     402
     403f: function
     404    with parameters
     405      signed int
     406      x: signed int
     407    returning
     408      signed int
     409      x: signed int
     410    with body
     411      CompoundStmt
     412
     413f: function
     414    returning
     415      signed int
     416      x: signed int
     417      signed int
     418
     419f: function
     420    with parameters
     421      signed int
     422      x: signed int
     423      signed int
     424    returning
     425      nothing
     426
     427f: function
     428    with parameters
     429      signed int
     430      x: signed int
     431      signed int
     432    returning
     433      signed int
     434      x: signed int
     435      signed int
     436
     437f: function
     438    returning
     439      signed int
     440      x: signed int
     441      signed int
     442    with body
     443      CompoundStmt
     444
     445f: function
     446    with parameters
     447      signed int
     448      x: signed int
     449      signed int
     450    returning
     451      nothing
     452    with body
     453      CompoundStmt
     454
     455f: function
     456    with parameters
     457      signed int
     458      x: signed int
     459      signed int
     460    returning
     461      signed int
     462      x: signed int
     463      signed int
     464    with body
     465      CompoundStmt
     466
     467f: function
     468    returning
     469      signed int
     470      x: signed int
     471      y: pointer to signed int
     472
     473f: function
     474    with parameters
     475      signed int
     476      x: signed int
     477      y: pointer to signed int
     478    returning
     479      nothing
     480
     481f: function
     482    with parameters
     483      signed int
     484      x: signed int
     485      y: pointer to signed int
     486    returning
     487      signed int
     488      x: signed int
     489      y: pointer to signed int
     490
     491f: function
     492    returning
     493      signed int
     494      x: signed int
     495      y: pointer to signed int
     496    with body
     497      CompoundStmt
     498
     499f: function
     500    with parameters
     501      signed int
     502      x: signed int
     503      y: pointer to signed int
     504    returning
     505      nothing
     506    with body
     507      CompoundStmt
     508
     509f: function
     510    with parameters
     511      signed int
     512      x: signed int
     513      y: pointer to signed int
     514    returning
     515      signed int
     516      x: signed int
     517      y: pointer to signed int
     518    with body
     519      CompoundStmt
     520
     521f11: function
     522    with parameters
     523      signed int
     524    returning
     525      signed int
     526
     527f12: function
     528    with parameters
     529      signed int
     530    returning
     531      signed int
     532
     533f: function
    445534    with parameters
    446535      function
    447536          with parameters
    448537            signed int
    449             p: a signed int
     538            p: signed int
    450539          returning
    451540            signed int
     
    460549      signed int
    461550    with body
    462       Declaration of p: a pointer to open array of open array of pointer to open array of open array of signed int
    463       Declaration of p: a pointer to open array of open array of pointer to open array of open array of signed int
    464       Declaration of p: a pointer to open array of pointer to function
    465           with parameters
    466             signed int
    467           returning
    468             signed int
    469 
    470 
    471 f1: a static function
     551      CompoundStmt
     552        Declaration of p: pointer to open array of array of pointer to open array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 10 signed int
     553        Declaration of p: pointer to open array of array of pointer to open array of array of signed int with dimension of constant expression 3 signed int with dimension of constant expression 10 signed int
     554        Declaration of p: pointer to open array of pointer to function
     555            with parameters
     556              signed int
     557            returning
     558              signed int
     559
     560
     561f1: static function
     562      accepting unspecified arguments
    472563    returning
    473564      pointer to const signed int
    474565    with body
    475 
    476 f2: a static function
     566      CompoundStmt
     567
     568f2: static function
    477569    returning
    478570      const signed int
    479571    with body
    480 
    481 f3: a inline static function
     572      CompoundStmt
     573
     574f3: inline static function
    482575    returning
    483576      const pointer to signed int
    484577    with body
    485 
    486 f4: a inline static function
     578      CompoundStmt
     579
     580f4: inline static function
    487581    returning
    488582      const tuple of types
     
    491585
    492586    with body
    493 
    494 f5: a static function
     587      CompoundStmt
     588
     589f5: static function
    495590    returning
    496591      const tuple of types
     
    499594
    500595    with body
    501 
    502 f: a function
    503     with parameters
    504       function
    505           returning
    506             signed int
    507 
    508       function
     596      CompoundStmt
     597
     598f: function
     599    with parameters
     600      function
     601            accepting unspecified arguments
     602          returning
     603            signed int
     604
     605      function
     606            accepting unspecified arguments
    509607          returning
    510608            pointer to signed int
    511609
    512610      function
     611            accepting unspecified arguments
    513612          returning
    514613            pointer to pointer to signed int
    515614
    516615      function
     616            accepting unspecified arguments
    517617          returning
    518618            pointer to const pointer to signed int
    519619
    520620      function
     621            accepting unspecified arguments
    521622          returning
    522623            const pointer to const pointer to signed int
    523624
    524625      open array of signed int
     626      array of signed int with dimension of constant expression 10 signed int
     627      open array of pointer to signed int
     628      array of pointer to signed int with dimension of constant expression 10 signed int
     629      open array of pointer to pointer to signed int
     630      array of pointer to pointer to signed int with dimension of constant expression 10 signed int
     631      open array of pointer to const pointer to signed int
     632      array of pointer to const pointer to signed int with dimension of constant expression 10 signed int
     633      open array of const pointer to const pointer to signed int
     634      array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int
     635    returning
     636      signed int
     637
     638f: function
     639    with parameters
     640      function
     641            accepting unspecified arguments
     642          returning
     643            signed int
     644
     645      function
     646            accepting unspecified arguments
     647          returning
     648            pointer to signed int
     649
     650      function
     651            accepting unspecified arguments
     652          returning
     653            pointer to pointer to signed int
     654
     655      function
     656            accepting unspecified arguments
     657          returning
     658            pointer to const pointer to signed int
     659
     660      function
     661            accepting unspecified arguments
     662          returning
     663            const pointer to const pointer to signed int
     664
    525665      open array of signed int
     666      array of signed int with dimension of constant expression 10 signed int
    526667      open array of pointer to signed int
    527       open array of pointer to signed int
     668      array of pointer to signed int with dimension of constant expression 10 signed int
    528669      open array of pointer to pointer to signed int
    529       open array of pointer to pointer to signed int
     670      array of pointer to pointer to signed int with dimension of constant expression 10 signed int
    530671      open array of pointer to const pointer to signed int
    531       open array of pointer to const pointer to signed int
     672      array of pointer to const pointer to signed int with dimension of constant expression 10 signed int
    532673      open array of const pointer to const pointer to signed int
    533       open array of const pointer to const pointer to signed int
    534     returning
    535       signed int
    536 
    537 f: a function
    538     with parameters
    539       function
    540           returning
    541             signed int
    542 
    543       function
    544           returning
    545             pointer to signed int
    546 
    547       function
    548           returning
    549             pointer to pointer to signed int
    550 
    551       function
    552           returning
    553             pointer to const pointer to signed int
    554 
    555       function
    556           returning
    557             const pointer to const pointer to signed int
    558 
    559       open array of signed int
    560       open array of signed int
    561       open array of pointer to signed int
    562       open array of pointer to signed int
    563       open array of pointer to pointer to signed int
    564       open array of pointer to pointer to signed int
    565       open array of pointer to const pointer to signed int
    566       open array of pointer to const pointer to signed int
    567       open array of const pointer to const pointer to signed int
    568       open array of const pointer to const pointer to signed int
    569     returning
    570       signed int
    571     with body
    572 
    573 T: a typedef for signed int
    574 f: a function
    575     with parameters
    576       function
    577           with parameters
    578             instance of type T
    579           returning
    580             instance of type T
    581 
    582       T: a instance of type T
    583     returning
    584       signed int
    585     with body
    586 
     674      array of const pointer to const pointer to signed int with dimension of constant expression 10 signed int
     675    returning
     676      signed int
     677    with body
     678      CompoundStmt
     679
     680T: typedef for signed int
     681f: function
     682    with parameters
     683      f: pointer to instance of type T (not function type)
     684      t: instance of type T (not function type)
     685    returning
     686      signed int
     687    with body
     688      CompoundStmt
     689        Declaration of T: instance of type T (not function type)
     690
  • src/Tests/Expect-e/MiscError.txt

    reb50842 r937e51d  
    55  nothing
    66Alternatives are:        Cost ( 0, 0, 1 ):         Cast of:
    7           Variable Expression: b: a signed int
     7          Variable Expression: b: signed int
    88
    99        to:
     
    1414
    1515        Cost ( 0, 0, 1 ):         Cast of:
    16           Variable Expression: b: a float
     16          Variable Expression: b: float
    1717
    1818        to:
     
    2929  nothing
    3030Alternatives are:        Cost ( 0, 0, 1 ):         Cast of:
    31           Variable Expression: b: a signed int
     31          Variable Expression: b: signed int
    3232
    3333        to:
     
    3838
    3939        Cost ( 0, 0, 1 ):         Cast of:
    40           Variable Expression: b: a float
     40          Variable Expression: b: float
    4141
    4242        to:
     
    5757Alternatives are:        Cost ( 0, 0, 1 ):         Cast of:
    5858          Comma Expression:
    59             Variable Expression: a: a signed int
     59            Variable Expression: a: signed int
    6060
    61             Variable Expression: b: a signed int
     61            Variable Expression: b: signed int
    6262
    6363        to:
     
    6969        Cost ( 0, 0, 1 ):         Cast of:
    7070          Comma Expression:
    71             Variable Expression: a: a signed int
     71            Variable Expression: a: signed int
    7272
    73             Variable Expression: b: a float
     73            Variable Expression: b: float
    7474
    7575        to:
  • src/Tests/Expect-e/OccursError.txt

    reb50842 r937e51d  
    11Error: No reasonable alternatives for expression Applying untyped:
    22    Name: f
    3 
    43...to:
    54    Name: g
  • src/Tests/Expect-s/Array.txt

    reb50842 r937e51d  
    55Adding object m2
    66Adding object m4
    7 Adding typedef T
    8 --- Entering scope
    9 --- Leaving scope containing
    107Adding function fred
    118--- Entering scope
     
    1613Adding object T
    1714--- Leaving scope containing
    18 T (__T__A0i) (2)
    19 a1 (__a1__A0i) (2)
    20 a2 (__a2__A0i) (2)
    21 a4 (__a4__A0i) (2)
    2215--- Leaving scope containing
    2316Adding function mary
     
    3023--- Leaving scope containing
    3124--- Leaving scope containing
    32 T (__T__Pi) (1)
    33 p1 (__p1__CPi) (1)
    34 p2 (__p2__Pi) (1)
    35 p3 (__p3__CPi) (1)
    3625Adding function tom
    3726--- Entering scope
     
    4837--- Leaving scope containing
    4938--- Leaving scope containing
    50 T (__T__Pi) (1)
    51 p1 (__p1__CPi) (1)
    52 p2 (__p2__Pi) (1)
    53 p3 (__p3__CPi) (1)
  • src/Tests/Expect-s/Context.txt

    reb50842 r937e51d  
    1 Adding context has_q
    21--- Entering scope
    3 Adding type T
    42--- Entering scope
    53--- Leaving scope containing
     4Adding type T
    65Adding function q
    76--- Entering scope
    87--- Leaving scope containing
    98--- Leaving scope containing
    10 q (__q__F_2tT_2tT_) (1)
    119T
     10Adding context has_q
    1211Adding function f
    1312--- Entering scope
    14 Adding type z
    1513--- Entering scope
    1614--- Leaving scope containing
    17 Adding function q
     15Adding type z
     16Adding function ?=?
    1817--- Entering scope
    1918--- Leaving scope containing
    2019--- Entering scope
    21 Adding context has_r
    2220--- Entering scope
     21--- Entering scope
     22--- Leaving scope containing
    2323Adding type T
    2424--- Entering scope
    2525--- Leaving scope containing
    2626Adding type U
    27 --- Entering scope
    28 --- Leaving scope containing
    2927Adding function r
    3028--- Entering scope
    3129--- Leaving scope containing
    3230--- Leaving scope containing
    33 r (__r__F_2tT_2tTPF_2tT_2tT2tU__) (3)
    3431T
    3532U
     33Adding context has_r
     34--- Entering scope
     35--- Leaving scope containing
    3636Adding type x
    3737--- Entering scope
    3838--- Leaving scope containing
    3939Adding type y
    40 --- Entering scope
    4140--- Leaving scope containing
    42 Adding function r
    43 --- Entering scope
    44 --- Leaving scope containing
    45 --- Leaving scope containing
    46 r (__r__F_2tx_2txPF_2tx_2tx2ty__) (2)
    4741x
    4842y
    4943has_r
    5044--- Leaving scope containing
    51 q (__q__F_2tz_2tz_) (1)
    5245z
  • src/Tests/Expect-s/Enum.txt

    reb50842 r937e51d  
    1717Adding object fruit
    1818--- Leaving scope containing
    19 Apple (__Apple__C7eFruits) (2)
    20 Banana (__Banana__C7eFruits) (2)
    21 Mango (__Mango__C7eFruits) (2)
    22 Pear (__Pear__C7eFruits) (2)
    23 fruit (__fruit__7eFruits) (2)
    2419Fruits
    2520--- Leaving scope containing
  • src/Tests/Expect-s/Forall.txt

    reb50842 r937e51d  
    1 in default case, (shouldn't be here)
    2 in default case, (shouldn't be here)
    3 Adding typedef f
    4 --- Entering scope
    5 Adding type T
    6 --- Entering scope
    7 --- Leaving scope containing
    8 --- Leaving scope containing
    9 T
     1Adding function ?=?
     2--- Entering scope
     3--- Leaving scope containing
     4Adding function ?=?
     5--- Entering scope
     6--- Leaving scope containing
     7Adding function ?=?
     8--- Entering scope
     9--- Leaving scope containing
     10Adding function ?=?
     11--- Entering scope
     12--- Leaving scope containing
     13Adding function ?=?
     14--- Entering scope
     15--- Leaving scope containing
     16Adding function ?=?
     17--- Entering scope
     18--- Leaving scope containing
     19Adding function g1
     20--- Entering scope
     21--- Entering scope
     22Adding function f
     23--- Entering scope
     24--- Entering scope
     25--- Leaving scope containing
     26Adding type T
     27Adding function ?=?
     28--- Entering scope
     29--- Leaving scope containing
     30--- Leaving scope containing
     31T
     32Adding function f
     33--- Entering scope
     34--- Leaving scope containing
     35Adding function h
     36--- Entering scope
     37Adding object p
     38--- Leaving scope containing
     39Adding object x
     40Adding object y
     41Adding object z
     42Adding object w
     43--- Leaving scope containing
     44--- Leaving scope containing
     45Adding function g2
     46--- Entering scope
     47--- Entering scope
     48Adding function f
     49--- Entering scope
     50--- Entering scope
     51--- Leaving scope containing
     52Adding type T
     53Adding function ?=?
     54--- Entering scope
     55--- Leaving scope containing
     56--- Leaving scope containing
     57T
     58Adding function f
     59--- Entering scope
     60--- Entering scope
     61--- Leaving scope containing
     62Adding type T
     63Adding function ?=?
     64--- Entering scope
     65--- Leaving scope containing
     66--- Entering scope
     67--- Leaving scope containing
     68Adding type U
     69Adding function ?=?
     70--- Entering scope
     71--- Leaving scope containing
     72--- Leaving scope containing
     73T
     74U
     75Adding object x
     76Adding object y
     77Adding object z
     78Adding object w
     79--- Leaving scope containing
     80--- Leaving scope containing
    1081Adding function swap
    1182--- Entering scope
    12 Adding type T
     83--- Entering scope
     84--- Leaving scope containing
     85Adding type T
     86Adding function ?=?
    1387--- Entering scope
    1488--- Leaving scope containing
     
    1892Adding object temp
    1993--- Leaving scope containing
    20 temp (__temp__2tT) (2)
    21 --- Leaving scope containing
    22 left (__left__2tT) (1)
    23 right (__right__2tT) (1)
     94--- Leaving scope containing
     95T
     96--- Entering scope
     97--- Entering scope
     98--- Leaving scope containing
     99Adding type T
     100Adding object 0
     101Adding function ?+?
     102--- Entering scope
     103--- Leaving scope containing
     104Adding function ?++
     105--- Entering scope
     106--- Leaving scope containing
     107Adding function ?+=?
     108--- Entering scope
     109--- Leaving scope containing
     110--- Leaving scope containing
    24111T
    25112Adding context sumable
    26113--- Entering scope
    27 Adding type T
    28 --- Entering scope
    29 --- Leaving scope containing
     114--- Leaving scope containing
     115Adding type T1
    30116Adding object 0
    31117Adding function ?+?
     
    38124--- Entering scope
    39125--- Leaving scope containing
    40 --- Leaving scope containing
    41 0 (__0__C2tT) (1)
    42 ?++ (__?++__F_2tT_2tT_) (1)
    43 ?+=? (__?+=?__F_2tT_2tT2tT_) (1)
    44 ?+? (__?+?__F_2tT_2tT2tT_) (1)
    45 T
    46 Adding type T1
    47 --- Entering scope
    48 --- Leaving scope containing
    49 Adding object 0
    50 Adding function ?+?
    51 --- Entering scope
    52 --- Leaving scope containing
    53 Adding function ?++
    54 --- Entering scope
    55 --- Leaving scope containing
    56 Adding function ?+=?
    57 --- Entering scope
    58 --- Leaving scope containing
    59 Adding type T2
    60 --- Entering scope
     126--- Entering scope
     127--- Entering scope
     128--- Leaving scope containing
    61129Adding type P1
    62130--- Entering scope
    63131--- Leaving scope containing
    64132Adding type P2
    65 --- Entering scope
    66 --- Leaving scope containing
    67133--- Leaving scope containing
    68134P1
    69135P2
     136Adding type T2
     137--- Entering scope
     138--- Leaving scope containing
    70139Adding type T3
    71 --- Entering scope
    72 --- Leaving scope containing
    73 Adding object 0
    74 Adding function ?+?
    75 --- Entering scope
    76 --- Leaving scope containing
    77 Adding function ?++
    78 --- Entering scope
    79 --- Leaving scope containing
    80 Adding function ?+=?
    81 --- Entering scope
    82 --- Leaving scope containing
    83 Adding struct __anonymous0
     140Adding fwd decl for struct __anonymous0
    84141--- Entering scope
    85142Adding object i
    86143Adding object j
    87144--- Leaving scope containing
    88 i (__i__3tP1) (1)
    89 j (__j__3tP2) (1)
    90 Adding type T2
    91 --- Entering scope
     145Adding struct __anonymous0
     146--- Entering scope
     147--- Entering scope
     148--- Leaving scope containing
    92149Adding type P1
    93150--- Entering scope
     
    99156P1
    100157P2
    101 Adding object 0
    102 Adding function ?+?
    103 --- Entering scope
    104 --- Leaving scope containing
    105 Adding function ?++
    106 --- Entering scope
    107 --- Leaving scope containing
    108 Adding function ?+=?
    109 --- Entering scope
    110 --- Leaving scope containing
     158Adding type T2
    111159Adding object w1
    112 Adding typedef w2
    113 --- Entering scope
    114 --- Leaving scope containing
    115160Adding object g2
     161--- Entering scope
     162--- Leaving scope containing
    116163Adding type w3
    117 --- Entering scope
    118 --- Leaving scope containing
    119164Adding object g3
    120165Adding function sum
    121166--- Entering scope
    122 Adding type T
    123 --- Entering scope
    124 --- Leaving scope containing
    125 Adding object 0
    126 Adding function ?+?
    127 --- Entering scope
    128 --- Leaving scope containing
    129 Adding function ?++
    130 --- Entering scope
    131 --- Leaving scope containing
    132 Adding function ?+=?
     167--- Entering scope
     168--- Leaving scope containing
     169Adding type T
     170Adding function ?=?
    133171--- Entering scope
    134172--- Leaving scope containing
     
    138176Adding object total
    139177Adding object i
    140 --- Leaving scope containing
    141 i (__i__i) (2)
    142 total (__total__2tT) (2)
    143 --- Leaving scope containing
    144 0 (__0__2tT) (1)
    145 ?++ (__?++__F_2tT_2tT_) (1)
    146 ?+=? (__?+=?__F_2tT_2tT2tT_) (1)
    147 ?+? (__?+?__F_2tT_2tT2tT_) (1)
    148 a (__a__P2tT) (1)
    149 n (__n__i) (1)
     178--- Entering scope
     179--- Leaving scope containing
     180--- Leaving scope containing
     181--- Leaving scope containing
    150182T
    151183Adding function twice
    152184--- Entering scope
    153 Adding type T
     185--- Entering scope
     186--- Leaving scope containing
     187Adding type T
     188Adding function ?=?
    154189--- Entering scope
    155190--- Leaving scope containing
     
    168203--- Leaving scope containing
    169204--- Leaving scope containing
    170 0 (__0__C2tT) (1)
    171 ?++ (__?++__F_2tT_2tT_) (1)
    172 ?+=? (__?+=?__F_2tT_2tT2tT_) (1)
    173 ?+? (__?+?__F_2tT_2tT2tT_) (1)
    174 t (__t__2tT) (1)
     205T
     206Adding function min
     207--- Entering scope
     208--- Entering scope
     209--- Leaving scope containing
     210Adding type T
     211Adding function ?=?
     212--- Entering scope
     213--- Leaving scope containing
     214Adding object 0
     215Adding function ?!=?
     216--- Entering scope
     217--- Leaving scope containing
     218Adding function ?<?
     219--- Entering scope
     220--- Leaving scope containing
     221Adding object t1
     222Adding object t2
     223--- Entering scope
     224--- Leaving scope containing
     225--- Leaving scope containing
    175226T
    176227Adding function main
     
    182233Adding object f
    183234--- Leaving scope containing
    184 a (__a__A0i) (2)
    185 f (__f__f) (2)
    186 x (__x__i) (2)
    187 y (__y__i) (2)
    188 --- Leaving scope containing
     235--- Leaving scope containing
  • src/Tests/Expect-s/Scope.txt

    reb50842 r937e51d  
    1 in default case, (shouldn't be here)
    2 in default case, (shouldn't be here)
    3 in default case, (shouldn't be here)
    41Adding object x
    5 Adding typedef y
    6 --- Entering scope
    7 --- Leaving scope containing
    8 Adding typedef t
    9 --- Entering scope
    10 --- Leaving scope containing
    112Adding object z
    12 Adding struct __anonymous0
     3Adding fwd decl for struct __anonymous0
    134--- Entering scope
    145Adding object a
    156Adding object b
    167--- Leaving scope containing
    17 a (__a__i) (1)
    18 b (__b__d) (1)
    19 Adding type u
     8Adding struct __anonymous0
     9--- Entering scope
    2010--- Entering scope
    2111--- Leaving scope containing
     12--- Leaving scope containing
     13Adding type u
    2214Adding function f
    2315--- Entering scope
    2416Adding object y
    2517--- Leaving scope containing
    26 y (__y__i) (1)
    2718Adding object q
    2819Adding function w
     
    3122Adding object v
    3223--- Entering scope
    33 Adding type x
    3424--- Entering scope
    3525--- Leaving scope containing
     26Adding type x
    3627Adding function t
    3728--- Entering scope
     
    4031Adding object z
    4132--- Leaving scope containing
    42 t (__t__F_2tx_2tu_) (2)
    43 u (__u__2tu) (2)
    44 z (__z__2tx) (2)
    4533x
    4634--- Leaving scope containing
    47 v (__v__2tu) (1)
    48 y (__y__2ty) (1)
    4935Adding object p
    50 Adding context has_u
    5136--- Entering scope
    52 Adding type z
    5337--- Entering scope
    5438--- Leaving scope containing
     39Adding type z
    5540Adding function u
    5641--- Entering scope
    5742--- Leaving scope containing
    5843--- Leaving scope containing
    59 u (__u__F_2tz_2tz_) (1)
    6044z
     45Adding context has_u
    6146Adding function q
    6247--- Entering scope
    63 Adding type t
    6448--- Entering scope
    6549--- Leaving scope containing
    66 Adding function u
     50Adding type t
     51Adding function ?=?
    6752--- Entering scope
    6853--- Leaving scope containing
     
    7156Adding object y
    7257--- Leaving scope containing
    73 y (__y__2tt) (2)
    7458--- Leaving scope containing
    75 the_t (__the_t__2tt) (1)
    76 u (__u__F_2tt_2tt_) (1)
    7759t
    7860Adding function f
     
    8163--- Entering scope
    8264Adding object y
    83 Adding typedef x
     65--- Entering scope
     66Adding object y
     67--- Entering scope
     68Adding object x
     69Adding object z
     70--- Leaving scope containing
     71Adding object x
     72--- Leaving scope containing
     73Adding object q
     74--- Leaving scope containing
     75--- Leaving scope containing
     76Adding function g
     77--- Entering scope
     78--- Entering scope
    8479--- Entering scope
    8580--- Leaving scope containing
     81Adding object x
    8682--- Entering scope
    8783Adding object y
    88 Adding typedef z
    89 --- Entering scope
    90 --- Leaving scope containing
    91 --- Entering scope
    92 Adding object x
    93 Adding typedef y
    94 --- Entering scope
    9584--- Leaving scope containing
    9685Adding object z
    9786--- Leaving scope containing
    98 x (__x__2tz) (4)
    99 z (__z__2ty) (4)
    100 y
    101 Adding object x
    102 --- Leaving scope containing
    103 x (__x__2tz) (3)
    104 y (__y__2tx) (3)
    105 z
    106 Adding object q
    107 --- Leaving scope containing
    108 q (__q__2tx) (2)
    109 y (__y__i) (2)
    110 x
    111 --- Leaving scope containing
    112 p (__p__2ty) (1)
    113 Adding function g
    114 --- Entering scope
    115 --- Entering scope
    116 Adding typedef x
    117 --- Entering scope
    118 --- Leaving scope containing
    119 Adding object z
    120 --- Leaving scope containing
    121 z (__z__2tx) (2)
    122 x
    12387--- Leaving scope containing
    12488Adding function q
     
    12892--- Leaving scope containing
    12993--- Leaving scope containing
    130 i (__i__i) (1)
  • src/Tests/Expect-s/ScopeErrors.txt

    reb50842 r937e51d  
    88Adding object thisIsNotAnError
    99--- Leaving scope containing
    10 thisIsNotAnError (__thisIsNotAnError__i) (2)
    1110--- Leaving scope containing
    1211Adding function thisIsAlsoNotAnError
     
    1615--- Leaving scope containing
    1716--- Leaving scope containing
    18 x (__x__d) (1)
    1917Adding function thisIsStillNotAnError
    2018--- Entering scope
     
    2927--- Leaving scope containing
    3028Adding function butThisIsAnError
    31 Error: duplicate definition for thisIsAnError: a signed int
    32 Error: duplicate function definition for butThisIsAnError: a function
     29Error: duplicate function definition for butThisIsAnError: function
    3330  with parameters
    3431    double
     
    3633    double
    3734  with body
     35    CompoundStmt
    3836
  • src/Tests/Expect-s/Tuple.txt

    reb50842 r937e51d  
    1212Adding object d
    1313--- Leaving scope containing
    14 a (__a__i) (1)
    15 b (__b__i) (1)
    16 c (__c__Pi) (1)
    17 d (__d__Pc) (1)
    18 Adding struct inner
     14Adding fwd decl for struct inner
    1915--- Entering scope
    2016Adding object f2
    2117Adding object f3
    2218--- Leaving scope containing
    23 f2 (__f2__i) (1)
    24 f3 (__f3__i) (1)
    25 Adding struct outer
     19Adding struct inner
     20Adding fwd decl for struct outer
    2621--- Entering scope
    2722Adding object f1
     23--- Entering scope
     24--- Leaving scope containing
    2825Adding object i
    2926Adding object f4
    3027--- Leaving scope containing
    31 f1 (__f1__i) (1)
    32 f4 (__f4__d) (1)
    33 i (__i__6sinner) (1)
     28Adding struct outer
     29--- Entering scope
     30--- Leaving scope containing
    3431Adding object s
     32--- Entering scope
     33--- Leaving scope containing
    3534Adding object sp
    3635Adding object t1
     
    4241Adding object fmt
    4342--- Leaving scope containing
    44 fmt (__fmt__Pc) (1)
    45 rc (__rc__i) (1)
    4643Adding function printf
    4744--- Entering scope
    4845Adding object fmt
    4946--- Leaving scope containing
    50 fmt (__fmt__Pc) (1)
    5147Adding function f1
    5248--- Entering scope
     
    5753--- Leaving scope containing
    5854--- Leaving scope containing
    59 w (__w__i) (1)
    60 x (__x__s) (1)
    61 y (__y__Ui) (1)
    6255Adding function g1
    6356--- Entering scope
     
    6962Adding object z
    7063--- Leaving scope containing
    71 p (__p__s) (2)
    72 x (__x__s) (2)
    73 y (__y__Ui) (2)
    74 z (__z__Tii_) (2)
    7564--- Leaving scope containing
    76 r (__r__Ticli_) (1)
    7765Adding function main
    7866--- Entering scope
     
    8573Adding object c
    8674Adding object d
     75--- Entering scope
     76--- Leaving scope containing
    8777Adding object t
    8878--- Leaving scope containing
    89 a (__a__i) (2)
    90 b (__b__i) (2)
    91 c (__c__i) (2)
    92 d (__d__i) (2)
    93 t (__t__6souter) (2)
    9479--- Leaving scope containing
    95 argc (__argc__i) (1)
    96 argv (__argv__PPc) (1)
    97 rc (__rc__i) (1)
  • src/Tests/Function.c

    reb50842 r937e51d  
    44float f( float );
    55
    6 void g()
    7 {
    8   // selects the same f and a each time
    9   // but without a cast would be ambiguous
    10   f( (int)a );
    11   (int)f( a );
     6void g() {
     7        // selects the same f each time but without a cast would be ambiguous
     8        f( (int)a );
     9        (int)f( a );
    1210}
    1311
     
    2422[ int, int ] r( int, int, int, int );
    2523
    26 void s()
    27 {
    28   r( p, q );
    29   r( [ q, p ] );
    30   r( r( p, q ), r( q, q ) );
     24void s() {
     25        r( p, q );
     26        r( [ q, p ] );
     27        r( r( p, q ), r( q, q ) );
    3128}
     29
     30// Local Variables: //
     31// tab-width: 4 //
     32// End: //
  • src/Tests/Functions.c

    reb50842 r937e51d  
    44
    55int f (
    6     int (void),
    7     int (int),
    8     int ((void)),
    9     int ((int)),
    10     void g(void)
    11   ) {
    12     (*g)();
    13     g();
    14     g = h;
     6        int (void),
     7        int (int),
     8        int ((void)),
     9        int ((int)),
     10        void g(void)
     11        ) {
     12        (*g)();
     13        g();
     14        g = h;
    1515}
    1616
     
    9393        int ( int, int p ),
    9494        [int](int)
    95     ) {
    96     int (*(*p)[][10])[][3];
    97     * [][10] * [][3] int p;
    98     * [] * [int](int) p;
     95        ) {
     96        int (*(*p)[][10])[][3];
     97        * [][10] * [][3] int p;
     98        * [] * [int](int) p;
    9999}
    100100
     
    108108
    109109int f(
    110     int (),
     110        int (),
    111111
    112     int *(),
    113     int **(),
    114     int * const *(),
    115     int * const * const (),
     112        int *(),
     113        int **(),
     114        int * const *(),
     115        int * const * const (),
    116116
    117     int ([]),
    118     int ([10]),
     117        int ([]),
     118        int ([10]),
    119119
    120     int *([]),
    121     int *([10]),
    122     int **([]),
    123     int **([10]),
    124     int * const *([]),
    125     int * const *([10]),
    126     int * const * const ([]),
    127     int * const * const ([10])
    128     );
     120        int *([]),
     121        int *([10]),
     122        int **([]),
     123        int **([10]),
     124        int * const *([]),
     125        int * const *([10]),
     126        int * const * const ([]),
     127        int * const * const ([10])
     128        );
    129129
    130130int f(
    131     int (),
     131        int (),
    132132
    133     int *(),
    134     int **(),
    135     int * const *(),
    136     int * const * const (),
     133        int *(),
     134        int **(),
     135        int * const *(),
     136        int * const * const (),
    137137
    138     int ([]),
    139     int ([10]),
     138        int ([]),
     139        int ([10]),
    140140
    141     int *([]),
    142     int *([10]),
    143     int **([]),
    144     int **([10]),
    145     int * const *([]),
    146     int * const *([10]),
    147     int * const * const ([]),
    148     int * const * const ([10])
    149     ) {
     141        int *([]),
     142        int *([10]),
     143        int **([]),
     144        int **([10]),
     145        int * const *([]),
     146        int * const *([10]),
     147        int * const * const ([]),
     148        int * const * const ([10])
     149        ) {
    150150}
    151151
    152152typedef int T;
    153153
    154 int f( T (T), T T ) {
    155     T (T);
     154int f( T (*f), T t ) {
     155        T (T);
    156156}
    157157
     
    162162//int f[]() {}
    163163//int ((*f15())())[] {}
     164
     165// Local Variables: //
     166// tab-width: 4 //
     167// End: //
  • src/Tests/InferParam.c

    reb50842 r937e51d  
    88void i( float );
    99
    10 void h()
    11 {
    12   int a;
    13   i( g( a ) );
     10void h() {
     11        int a;
     12        i( g( a ) );
    1413}
    1514
    16 context has_f_and_j( type T, type U )
    17 {
    18   U f( T );
    19   U j( T, U );
     15context has_f_and_j( type T, type U ) {
     16        U f( T );
     17        U j( T, U );
    2018};
    2119
     
    2321forall( type T, type U | has_f_and_j( T, U ) ) U k( T );
    2422
    25 void l()
    26 {
    27   int b;
    28   i( k( b ) );
     23void l() {
     24        int b;
     25        i( k( b ) );
    2926}
     27
     28// Local Variables: //
     29// tab-width: 4 //
     30// End: //
  • src/Tests/ScopeErrors.c

    reb50842 r937e51d  
    55float thisIsNotAnError;
    66
    7 int thisIsAlsoNotAnError()
    8 {
     7int thisIsAlsoNotAnError() {
    98  int thisIsNotAnError;
    109}
    1110
    12 int thisIsAlsoNotAnError( double x )
    13 {
     11int thisIsAlsoNotAnError( double x ) {
    1412}
    1513
     
    1715double thisIsStillNotAnError( double );
    1816
    19 double butThisIsAnError( double )
    20 {
     17double butThisIsAnError( double ) {
    2118}
    2219
    23 double butThisIsAnError( double )
    24 {
     20double butThisIsAnError( double ) {
    2521}
    2622
     23// Local Variables: //
     24// tab-width: 4 //
     25// End: //
  • src/Tests/Typedef.c

    reb50842 r937e51d  
    1818a c;
    1919
    20 typedef typeof(3) x, y;  /* GCC */
     20typedef typeof(3) x, y;  // GCC
    2121
    2222x p;
     
    2929}
    3030
    31 /* new-style function definitions */
     31// new-style function definitions
    3232
    3333typedef [10] * int arrayOf10Pointers;
     
    4242typedef [ * [static 10] int ] t;
    4343typedef [ * [static 10] int x ] f();
     44
     45// Local Variables: //
     46// tab-width: 4 //
     47// End: //
  • src/Tests/VariableDeclarator.c

    reb50842 r937e51d  
    154154[const * const * int] cf70(int);
    155155
    156 
    157 * [20] double z;
    158 [20] * char w;
    159 
    160156// function pointer
    161157
    162158*[]*[]* [ *[]*[] int ]( *[]*[] int, *[]*[] int ) v3;
     159
     160// Local Variables: //
     161// tab-width: 4 //
     162// End: //
  • src/Tuples/AssignExpand.cc

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 11:24:47 2015
    13 // Update Count     : 2
     12// Last Modified On : Sat Jun 13 08:16:39 2015
     13// Update Count     : 4
    1414//
    1515
     
    2323#include "AssignExpand.h"
    2424
     25#include "Parser/ParseNode.h"
     26
    2527#include "SynTree/Type.h"
     28#include "SynTree/Declaration.h"
     29#include "SynTree/Expression.h"
    2630#include "SynTree/Statement.h"
    27 #include "SynTree/Expression.h"
    28 #include "SynTree/Declaration.h"
    2931
    3032namespace Tuples {
     
    100102                                        assert( rhsT->get_results().size() == 1 );
    101103                                        // declare temporaries
    102                                         ObjectDecl *lhs = new ObjectDecl( temporaryNamer.newName("_lhs_"), Declaration::NoStorageClass, LinkageSpec::Intrinsic, 0,
     104                                        ObjectDecl *lhs = new ObjectDecl( temporaryNamer.newName("_lhs_"), DeclarationNode::NoStorageClass, LinkageSpec::Intrinsic, 0,
    103105                                                                                                          lhsT->get_results().front(), 0 );
    104106                                        decls.push_back( new DeclStmt( std::list< Label >(), lhs ) );
    105                                         ObjectDecl *rhs = new ObjectDecl( temporaryNamer.newName("_rhs_"), Declaration::NoStorageClass, LinkageSpec::Intrinsic, 0,
     107                                        ObjectDecl *rhs = new ObjectDecl( temporaryNamer.newName("_rhs_"), DeclarationNode::NoStorageClass, LinkageSpec::Intrinsic, 0,
    106108                                                                                                          rhsT->get_results().front(), 0);
    107109                                        decls.push_back( new DeclStmt( std::list< Label >(), rhs ));
  • src/Tuples/FunctionChecker.cc

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 11:59:55 2015
    13 // Update Count     : 3
     12// Last Modified On : Sat Jun 13 08:17:19 2015
     13// Update Count     : 4
    1414//
    1515
     
    7575                if ( applicationExpr->get_results().size() > 1 ) {
    7676                        for ( std::list< Type *>::iterator res = applicationExpr->get_results().begin(); res != applicationExpr->get_results().end(); res++ )
    77                                 temporaries.push_back( new ObjectDecl( nameGen->newName(),Declaration::Auto,LinkageSpec::AutoGen, 0, (*res )->clone(), 0 ) );
     77                                temporaries.push_back( new ObjectDecl( nameGen->newName(), DeclarationNode::Auto, LinkageSpec::AutoGen, 0, (*res )->clone(), 0 ) );
    7878
    7979                        assert( ! temporaries.empty() );
  • src/Tuples/MultRet.cc

    reb50842 r937e51d  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 18 12:37:57 2015
    13 // Update Count     : 1
     12// Last Modified On : Mon Jun  8 14:54:44 2015
     13// Update Count     : 2
    1414//
    1515
     
    141141        // Auxiliary function to generate new names for the `output' parameters
    142142        DeclStmt *MVRMutator::newVar( DeclarationWithType *reqDecl ) {
    143                 // std::ostrstream os;
     143                // std::ostringstream os;
    144144                // os << "__" << curVal++ << "__";// << std::ends;
    145                 // os.freeze( false );
    146145
    147146                ObjectDecl *decl;
  • src/Tuples/module.mk

    reb50842 r937e51d  
     1######################### -*- Mode: Makefile-Gmake -*- ########################
     2##
     3## Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     4##
     5## The contents of this file are covered under the licence agreement in the
     6## file "LICENCE" distributed with Cforall.
     7##
     8## module.mk --
     9##
     10## Author           : Richard C. Bilson
     11## Created On       : Mon Jun  1 17:49:17 2015
     12## Last Modified By : Peter A. Buhr
     13## Last Modified On : Mon Jun  1 17:54:33 2015
     14## Update Count     : 1
     15###############################################################################
     16
    117SRC +=  Tuples/Mutate.cc \
    218        Tuples/AssignExpand.cc \
     
    420        Tuples/TupleAssignment.cc \
    521        Tuples/FunctionChecker.cc \
    6         Tuples/NameMatcher.cc \
     22        Tuples/NameMatcher.cc
     23
    724#       Tuples/MultipleAssign.cc \
    825#       Tuples/FlattenTuple.cc \
     
    1027#       Tuples/FixReturn.cc \
    1128#       Tuples/MassAssignment.cc \
    12 #       Tuples/TupleFixer.cc \
    13         $(NULL)
    14 
     29#       Tuples/TupleFixer.cc
  • src/driver/cc1.cc

    reb50842 r937e51d  
    1010// Created On       : Fri Aug 26 14:23:51 2005
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat May 16 07:42:14 2015
    13 // Update Count     : 49
     12// Last Modified On : Sat May 30 08:58:29 2015
     13// Update Count     : 51
    1414//
    1515
  • src/driver/cfa.cc

    reb50842 r937e51d  
    1010// Created On       : Tue Aug 20 13:44:49 2002
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat May 16 07:47:05 2015
    13 // Update Count     : 111
     12// Last Modified On : Tue Jun 23 17:47:03 2015
     13// Update Count     : 119
    1414//
    1515
     
    6666        } // if
    6767
    68         string installincdir( CFA_INCDIR );                                     // fixed location of cc1 and cfa-cpp commands
    69         string installlibdir( CFA_LIBDIR );                                     // fixed location of include files
     68        string installincdir( CFA_INCDIR );                                     // fixed location of include files
     69        string installlibdir( CFA_LIBDIR );                                     // fixed location of cc1 and cfa-cpp commands
    7070
    7171        string heading;                                                                         // banner printed at start of cfa compilation
     
    8585        bool CFA_flag = false;                                                          // -CFA flag
    8686        bool cpp_flag = false;                                                          // -E or -M flag, preprocessor only
     87        bool std_flag = false;                                                          // -std= flag
    8788        bool debugging = false;                                                         // -g flag
    8889
     
    152153                                } // if
    153154
    154                                 // C++ specific arguments
     155                                // C specific arguments
    155156
    156157                        } else if ( arg == "-v" ) {
     
    160161                        } else if ( arg == "-g" ) {
    161162                                debugging = true;                                               // symbolic debugging required
     163                                args[nargs] = argv[i];                                  // pass the argument along
     164                                nargs += 1;
     165                        } else if ( prefix( arg, "-std=" ) ) {
     166                                std_flag = true;                                                // std=XX provided
    162167                                args[nargs] = argv[i];                                  // pass the argument along
    163168                                nargs += 1;
     
    296301                args[nargs] = "-Wno-deprecated";
    297302                nargs += 1;
    298                 args[nargs] = "-std=c99";
    299                 nargs += 1;
     303                if ( ! std_flag ) {                                                             // default c99, if none specified
     304                        args[nargs] = "-std=c99";
     305                        nargs += 1;
     306                } // if
    300307                args[nargs] = ( *new string( string("-B") + Bprefix + "/" ) ).c_str();
    301308                nargs += 1;
  • src/examples/Makefile.in

    reb50842 r937e51d  
    1 ######################### -*- Mode: Makefile-Gmake -*- ########################
    2 ##
    3 ## Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
    4 ##
    5 ## The contents of this file are covered under the licence agreement in the
    6 ## file "LICENCE" distributed with Cforall.
    7 ##
    8 ## Makefile.in --
    9 ##
    10 ## Author           : Peter A. Buhr
    11 ## Created On       : Sat May 16 11:34:24 2015
    12 ## Last Modified By : Peter A. Buhr
    13 ## Last Modified On : Sat May 16 11:35:25 2015
    14 ## Update Count     : 2
     1# Makefile.in generated by automake 1.11.3 from Makefile.am.
     2# @configure_input@
     3
     4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
     5# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
     6# Foundation, Inc.
     7# This Makefile.in is free software; the Free Software Foundation
     8# gives unlimited permission to copy and/or distribute it,
     9# with or without modifications, as long as this notice is preserved.
     10
     11# This program is distributed in the hope that it will be useful,
     12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
     13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
     14# PARTICULAR PURPOSE.
     15
     16@SET_MAKE@
     17
     18######################## -*- Mode: Makefile-Automake -*- ######################
    1519###############################################################################
    1620
    17 CC := @CFA_BINDIR@/cfa
    18 CFLAGS = -g -Wall -Wno-unused-function -MMD
    19 MAKEFILE_NAME = ${firstword ${MAKEFILE_LIST}}   # makefile name
    20 
    21 OBJECTS1 = iostream.o fstream.o fstream_test.o
    22 EXEC1 = fstream_test
    23 
    24 OBJECTS2 = vector_int.o fstream.o iostream.o array.o iterator.o vector_test.o
    25 EXEC2 = vector_test
    26 
    27 OBJECTS = ${OBJECTS1} ${OBJECTS2}               # all object files
    28 DEPENDS = ${OBJECTS:.o=.d}                      # substitute ".o" with ".d"
    29 EXECS = ${EXEC1} ${EXEC2}                       # all executables
    30 
    31 ########## Targets ##########
    32 
    33 .PHONY : all clean                              # not file names
    34 
    35 all : ${EXECS}                                  # build all executables
    36 
    37 ${EXEC1} : ${OBJECTS1}                          # link step 1st executable
    38         ${CC} ${CFLAGS} $^ -o $@                # additional object files before $^
    39 
    40 ${EXEC2} : ${OBJECTS2}                          # link step 2nd executable
    41         ${CC} ${CFLAGS} $^ -o $@                # additional object files before $^
    42 
    43 ${OBJECTS} : ${MAKEFILE_NAME}                   # OPTIONAL : changes to this file => recompile
    44 
    45 -include ${DEPENDS}                             # include *.d files containing program dependences
    46 
    47 clean :                                         # remove files that can be regenerated
    48         rm -f ${DEPENDS} ${OBJECTS} ${EXECS} *.class
    49 
    50 distclean : clean
     21VPATH = @srcdir@
     22pkgdatadir = $(datadir)/@PACKAGE@
     23pkgincludedir = $(includedir)/@PACKAGE@
     24pkglibdir = $(libdir)/@PACKAGE@
     25pkglibexecdir = $(libexecdir)/@PACKAGE@
     26am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
     27install_sh_DATA = $(install_sh) -c -m 644
     28install_sh_PROGRAM = $(install_sh) -c
     29install_sh_SCRIPT = $(install_sh) -c
     30INSTALL_HEADER = $(INSTALL_DATA)
     31transform = $(program_transform_name)
     32NORMAL_INSTALL = :
     33PRE_INSTALL = :
     34POST_INSTALL = :
     35NORMAL_UNINSTALL = :
     36PRE_UNINSTALL = :
     37POST_UNINSTALL = :
     38noinst_PROGRAMS = fstream_test$(EXEEXT) vector_test$(EXEEXT)
     39subdir = src/examples
     40DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
     41ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
     42am__aclocal_m4_deps = $(top_srcdir)/configure.ac
     43am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
     44        $(ACLOCAL_M4)
     45mkinstalldirs = $(install_sh) -d
     46CONFIG_HEADER = $(top_builddir)/config.h
     47CONFIG_CLEAN_FILES =
     48CONFIG_CLEAN_VPATH_FILES =
     49PROGRAMS = $(noinst_PROGRAMS)
     50am_fstream_test_OBJECTS = iostream.$(OBJEXT) fstream.$(OBJEXT) \
     51        fstream_test.$(OBJEXT)
     52fstream_test_OBJECTS = $(am_fstream_test_OBJECTS)
     53fstream_test_LDADD = $(LDADD)
     54am_vector_test_OBJECTS = vector_int.$(OBJEXT) fstream.$(OBJEXT) \
     55        iostream.$(OBJEXT) array.$(OBJEXT) iterator.$(OBJEXT) \
     56        vector_test.$(OBJEXT)
     57vector_test_OBJECTS = $(am_vector_test_OBJECTS)
     58vector_test_LDADD = $(LDADD)
     59DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
     60depcomp = $(SHELL) $(top_srcdir)/automake/depcomp
     61am__depfiles_maybe = depfiles
     62am__mv = mv -f
     63COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
     64        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
     65CCLD = $(CC)
     66LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
     67SOURCES = $(fstream_test_SOURCES) $(vector_test_SOURCES)
     68DIST_SOURCES = $(fstream_test_SOURCES) $(vector_test_SOURCES)
     69ETAGS = etags
     70CTAGS = ctags
     71DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
     72ACLOCAL = @ACLOCAL@
     73ALLOCA = @ALLOCA@
     74AMTAR = @AMTAR@
     75AUTOCONF = @AUTOCONF@
     76AUTOHEADER = @AUTOHEADER@
     77AUTOMAKE = @AUTOMAKE@
     78AWK = @AWK@
     79BACKEND_CC = @BACKEND_CC@
     80CC = @CFA_BINDIR@/cfa
     81CCDEPMODE = @CCDEPMODE@
     82CFA_BINDIR = @CFA_BINDIR@
     83CFA_INCDIR = @CFA_INCDIR@
     84CFA_LIBDIR = @CFA_LIBDIR@
     85CFA_PREFIX = @CFA_PREFIX@
     86
     87# applies to both programs
     88CFLAGS = -g -Wall -Wno-unused-function # TEMPORARY: does not build with -O2
     89CPP = @CPP@
     90CPPFLAGS = @CPPFLAGS@
     91CXX = @CXX@
     92CXXDEPMODE = @CXXDEPMODE@
     93CXXFLAGS = @CXXFLAGS@
     94CYGPATH_W = @CYGPATH_W@
     95DEFS = @DEFS@
     96DEPDIR = @DEPDIR@
     97ECHO_C = @ECHO_C@
     98ECHO_N = @ECHO_N@
     99ECHO_T = @ECHO_T@
     100EGREP = @EGREP@
     101EXEEXT = @EXEEXT@
     102GCC_PATH = @GCC_PATH@
     103GREP = @GREP@
     104INSTALL = @INSTALL@
     105INSTALL_DATA = @INSTALL_DATA@
     106INSTALL_PROGRAM = @INSTALL_PROGRAM@
     107INSTALL_SCRIPT = @INSTALL_SCRIPT@
     108INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
     109LDFLAGS = @LDFLAGS@
     110LEX = @LEX@
     111LEXLIB = @LEXLIB@
     112LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
     113LIBOBJS = @LIBOBJS@
     114LIBS = @LIBS@
     115LTLIBOBJS = @LTLIBOBJS@
     116MAINT = @MAINT@
     117MAKEINFO = @MAKEINFO@
     118MKDIR_P = @MKDIR_P@
     119OBJEXT = @OBJEXT@
     120PACKAGE = @PACKAGE@
     121PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
     122PACKAGE_NAME = @PACKAGE_NAME@
     123PACKAGE_STRING = @PACKAGE_STRING@
     124PACKAGE_TARNAME = @PACKAGE_TARNAME@
     125PACKAGE_URL = @PACKAGE_URL@
     126PACKAGE_VERSION = @PACKAGE_VERSION@
     127PATH_SEPARATOR = @PATH_SEPARATOR@
     128RANLIB = @RANLIB@
     129SET_MAKE = @SET_MAKE@
     130SHELL = @SHELL@
     131STRIP = @STRIP@
     132VERSION = @VERSION@
     133YACC = @YACC@
     134YFLAGS = @YFLAGS@
     135abs_builddir = @abs_builddir@
     136abs_srcdir = @abs_srcdir@
     137abs_top_builddir = @abs_top_builddir@
     138abs_top_srcdir = @abs_top_srcdir@
     139ac_ct_CC = @ac_ct_CC@
     140ac_ct_CXX = @ac_ct_CXX@
     141am__include = @am__include@
     142am__leading_dot = @am__leading_dot@
     143am__quote = @am__quote@
     144am__tar = @am__tar@
     145am__untar = @am__untar@
     146bindir = @bindir@
     147build_alias = @build_alias@
     148builddir = @builddir@
     149datadir = @datadir@
     150datarootdir = @datarootdir@
     151docdir = @docdir@
     152dvidir = @dvidir@
     153exec_prefix = @exec_prefix@
     154host_alias = @host_alias@
     155htmldir = @htmldir@
     156includedir = @includedir@
     157infodir = @infodir@
     158install_sh = @install_sh@
     159libdir = @libdir@
     160libexecdir = @libexecdir@
     161localedir = @localedir@
     162localstatedir = @localstatedir@
     163mandir = @mandir@
     164mkdir_p = @mkdir_p@
     165oldincludedir = @oldincludedir@
     166pdfdir = @pdfdir@
     167prefix = @prefix@
     168program_transform_name = @program_transform_name@
     169psdir = @psdir@
     170sbindir = @sbindir@
     171sharedstatedir = @sharedstatedir@
     172srcdir = @srcdir@
     173sysconfdir = @sysconfdir@
     174target_alias = @target_alias@
     175top_build_prefix = @top_build_prefix@
     176top_builddir = @top_builddir@
     177top_srcdir = @top_srcdir@
     178fstream_test_SOURCES = iostream.c fstream.c fstream_test.c
     179vector_test_SOURCES = vector_int.c fstream.c iostream.c array.c iterator.c vector_test.c
     180all: all-am
     181
     182.SUFFIXES:
     183.SUFFIXES: .c .o .obj
     184$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
     185        @for dep in $?; do \
     186          case '$(am__configure_deps)' in \
     187            *$$dep*) \
     188              ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
     189                && { if test -f $@; then exit 0; else break; fi; }; \
     190              exit 1;; \
     191          esac; \
     192        done; \
     193        echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/examples/Makefile'; \
     194        $(am__cd) $(top_srcdir) && \
     195          $(AUTOMAKE) --gnu src/examples/Makefile
     196.PRECIOUS: Makefile
     197Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
     198        @case '$?' in \
     199          *config.status*) \
     200            cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
     201          *) \
     202            echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
     203            cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
     204        esac;
     205
     206$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
     207        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
     208
     209$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
     210        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
     211$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
     212        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
     213$(am__aclocal_m4_deps):
     214
     215clean-noinstPROGRAMS:
     216        -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
     217fstream_test$(EXEEXT): $(fstream_test_OBJECTS) $(fstream_test_DEPENDENCIES) $(EXTRA_fstream_test_DEPENDENCIES)
     218        @rm -f fstream_test$(EXEEXT)
     219        $(LINK) $(fstream_test_OBJECTS) $(fstream_test_LDADD) $(LIBS)
     220vector_test$(EXEEXT): $(vector_test_OBJECTS) $(vector_test_DEPENDENCIES) $(EXTRA_vector_test_DEPENDENCIES)
     221        @rm -f vector_test$(EXEEXT)
     222        $(LINK) $(vector_test_OBJECTS) $(vector_test_LDADD) $(LIBS)
     223
     224mostlyclean-compile:
     225        -rm -f *.$(OBJEXT)
     226
     227distclean-compile:
     228        -rm -f *.tab.c
     229
     230@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/array.Po@am__quote@
     231@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstream.Po@am__quote@
     232@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstream_test.Po@am__quote@
     233@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iostream.Po@am__quote@
     234@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iterator.Po@am__quote@
     235@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vector_int.Po@am__quote@
     236@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vector_test.Po@am__quote@
     237
     238.c.o:
     239@am__fastdepCC_TRUE@    $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
     240@am__fastdepCC_TRUE@    $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
     241@AMDEP_TRUE@@am__fastdepCC_FALSE@       source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
     242@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     243@am__fastdepCC_FALSE@   $(COMPILE) -c $<
     244
     245.c.obj:
     246@am__fastdepCC_TRUE@    $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
     247@am__fastdepCC_TRUE@    $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
     248@AMDEP_TRUE@@am__fastdepCC_FALSE@       source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
     249@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     250@am__fastdepCC_FALSE@   $(COMPILE) -c `$(CYGPATH_W) '$<'`
     251
     252ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
     253        list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
     254        unique=`for i in $$list; do \
     255            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
     256          done | \
     257          $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
     258              END { if (nonempty) { for (i in files) print i; }; }'`; \
     259        mkid -fID $$unique
     260tags: TAGS
     261
     262TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
     263                $(TAGS_FILES) $(LISP)
     264        set x; \
     265        here=`pwd`; \
     266        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
     267        unique=`for i in $$list; do \
     268            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
     269          done | \
     270          $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
     271              END { if (nonempty) { for (i in files) print i; }; }'`; \
     272        shift; \
     273        if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
     274          test -n "$$unique" || unique=$$empty_fix; \
     275          if test $$# -gt 0; then \
     276            $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
     277              "$$@" $$unique; \
     278          else \
     279            $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
     280              $$unique; \
     281          fi; \
     282        fi
     283ctags: CTAGS
     284CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
     285                $(TAGS_FILES) $(LISP)
     286        list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
     287        unique=`for i in $$list; do \
     288            if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
     289          done | \
     290          $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
     291              END { if (nonempty) { for (i in files) print i; }; }'`; \
     292        test -z "$(CTAGS_ARGS)$$unique" \
     293          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
     294             $$unique
     295
     296GTAGS:
     297        here=`$(am__cd) $(top_builddir) && pwd` \
     298          && $(am__cd) $(top_srcdir) \
     299          && gtags -i $(GTAGS_ARGS) "$$here"
     300
     301distclean-tags:
     302        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
     303
     304distdir: $(DISTFILES)
     305        @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
     306        topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
     307        list='$(DISTFILES)'; \
     308          dist_files=`for file in $$list; do echo $$file; done | \
     309          sed -e "s|^$$srcdirstrip/||;t" \
     310              -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
     311        case $$dist_files in \
     312          */*) $(MKDIR_P) `echo "$$dist_files" | \
     313                           sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
     314                           sort -u` ;; \
     315        esac; \
     316        for file in $$dist_files; do \
     317          if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
     318          if test -d $$d/$$file; then \
     319            dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
     320            if test -d "$(distdir)/$$file"; then \
     321              find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
     322            fi; \
     323            if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
     324              cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
     325              find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
     326            fi; \
     327            cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
     328          else \
     329            test -f "$(distdir)/$$file" \
     330            || cp -p $$d/$$file "$(distdir)/$$file" \
     331            || exit 1; \
     332          fi; \
     333        done
     334check-am: all-am
     335check: check-am
     336all-am: Makefile $(PROGRAMS)
     337installdirs:
     338install: install-am
     339install-exec: install-exec-am
     340install-data: install-data-am
     341uninstall: uninstall-am
     342
     343install-am: all-am
     344        @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
     345
     346installcheck: installcheck-am
     347install-strip:
     348        if test -z '$(STRIP)'; then \
     349          $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
     350            install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
     351              install; \
     352        else \
     353          $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
     354            install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
     355            "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
     356        fi
     357mostlyclean-generic:
     358
     359clean-generic:
     360
     361distclean-generic:
     362        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
     363        -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
     364
     365maintainer-clean-generic:
     366        @echo "This command is intended for maintainers to use"
     367        @echo "it deletes files that may require special tools to rebuild."
     368clean: clean-am
     369
     370clean-am: clean-generic clean-noinstPROGRAMS mostlyclean-am
     371
     372distclean: distclean-am
     373        -rm -rf ./$(DEPDIR)
     374        -rm -f Makefile
     375distclean-am: clean-am distclean-compile distclean-generic \
     376        distclean-tags
     377
     378dvi: dvi-am
     379
     380dvi-am:
     381
     382html: html-am
     383
     384html-am:
     385
     386info: info-am
     387
     388info-am:
     389
     390install-data-am:
     391
     392install-dvi: install-dvi-am
     393
     394install-dvi-am:
     395
     396install-exec-am:
     397
     398install-html: install-html-am
     399
     400install-html-am:
     401
     402install-info: install-info-am
     403
     404install-info-am:
     405
     406install-man:
     407
     408install-pdf: install-pdf-am
     409
     410install-pdf-am:
     411
     412install-ps: install-ps-am
     413
     414install-ps-am:
     415
     416installcheck-am:
     417
     418maintainer-clean: maintainer-clean-am
     419        -rm -rf ./$(DEPDIR)
     420        -rm -f Makefile
     421maintainer-clean-am: distclean-am maintainer-clean-generic
     422
     423mostlyclean: mostlyclean-am
     424
     425mostlyclean-am: mostlyclean-compile mostlyclean-generic
     426
     427pdf: pdf-am
     428
     429pdf-am:
     430
     431ps: ps-am
     432
     433ps-am:
     434
     435uninstall-am:
     436
     437.MAKE: install-am install-strip
     438
     439.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
     440        clean-noinstPROGRAMS ctags distclean distclean-compile \
     441        distclean-generic distclean-tags distdir dvi dvi-am html \
     442        html-am info info-am install install-am install-data \
     443        install-data-am install-dvi install-dvi-am install-exec \
     444        install-exec-am install-html install-html-am install-info \
     445        install-info-am install-man install-pdf install-pdf-am \
     446        install-ps install-ps-am install-strip installcheck \
     447        installcheck-am installdirs maintainer-clean \
     448        maintainer-clean-generic mostlyclean mostlyclean-compile \
     449        mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
     450        uninstall-am
     451
     452
     453# Tell versions [3.59,3.63) of GNU make to not export all variables.
     454# Otherwise a system limit (for SysV at least) may be exceeded.
     455.NOEXPORT:
  • src/examples/abstype.c

    reb50842 r937e51d  
    1 // "cfa-cpp -nx Abstype.c"
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// abstype.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:10:01 2015
     13// Update Count     : 4
     14//
    215
    316type T | { T x( T ); };
    417
    518T y( T t ) {
    6     T t_instance;
    7     return x( t );
     19        T t_instance;
     20        return x( t );
    821}
    922
     
    1629
    1730U x( U u ) {
    18     U u_instance = u;
    19     (*u)++;
    20     return u;
     31        U u_instance = u;
     32        (*u)++;
     33        return u;
    2134}
    2235
    2336int *break_abstraction( U u ) {
    24     return u;
     37        return u;
    2538}
     39
     40// Local Variables: //
     41// tab-width: 4 //
     42// compile-command: "cfa abstype.c" //
     43// End: //
  • src/examples/array.c

    reb50842 r937e51d  
    1 // "cfa -c -o array.o array.c"
    2 // "cfa -CFA array.c > array_out.c"
    3 // "gcc32 array_out.c ../LibCfa/libcfa.a"
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// array.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:10:13 2015
     13// Update Count     : 2
     14//
    415
    516#include "array.h"
     
    1627forall( type array_type, type elt_type | bounded_array( array_type, elt_type ) )
    1728elt_type * begin( array_type array ) {
    18     return &array[ 0 ];
     29        return &array[ 0 ];
    1930}
    2031
     
    2233forall( type array_type, type elt_type | bounded_array( array_type, elt_type ) )
    2334elt_type * end( array_type array ) {
    24     return &array[ last( array ) ] + 1;
     35        return &array[ last( array ) ] + 1;
    2536}
     37
     38// Local Variables: //
     39// tab-width: 4 //
     40// compile-command: "cfa array.c" //
     41// End: //
  • src/examples/array.h

    reb50842 r937e51d  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// array.h --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:10:32 2015
     13// Update Count     : 2
     14//
     15
    116#ifndef ARRAY_H
    217#define ARRAY_H
     
    722// element has index 0.
    823context array( type array_type, type elt_type ) {
    9     lvalue elt_type ?[?]( array_type, int );
     24        lvalue elt_type ?[?]( array_type, int );
    1025};
    1126
    1227// A bounded array is an array that carries its maximum index with it.
    1328context bounded_array( type array_type, type elt_type | array( array_type, elt_type ) ) {
    14     int last( array_type );
     29        int last( array_type );
    1530};
    1631
     
    3247
    3348#endif // ARRAY_H
     49
     50// Local Variables: //
     51// tab-width: 4 //
     52// compile-command: "cfa array.c" //
     53// End: //
  • src/examples/constants.c

    reb50842 r937e51d  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// constants.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Mon Jun  8 20:44:48 2015
     13// Update Count     : 75
     14//
     15
    116int foo() {
    2     1_234_Ul;
    3     -0_177;
    4     0x_ff_FF_ff_FF;
    5     +9_223_372_036_854_775_807;
    6     12.123_333_E_27;
    7     0X_1.ff_ff_ff_ff_ff_fff_P_1023;
    8     '\0';
    9     '\1_2_3';
    10     L_'\x_ff_ee';
    11     L"a_bc\u_00_40xyz\xff_AA";
    12     "a_bc\\
    13   u_00_40xyz";
     17        1_234_Ul;
     18        -0_177;
     19        017_777_777_777;
     20        037_777_777_777;
     21        0x_7f_FF_ff_FF;
     22        0x_ff_FF_ff_FF;
     23        2_147_483_647;
     24        4_294_967_295;
     25        4_294_967_296;
     26        4_294_967_296U;
     27        0_777_777_777_777_777_777_777;
     28        01_777_777_777_777_777_777_777;
     29        0;
     30        0L;
     31        0LL;
     32        1;
     33        1L;
     34        1LL;
     35        10;
     36        10L;
     37        10LL;
     38        2U;
     39        2UL;
     40        2ULL;
     41        2LU;
     42        2LLU;
     43        0x_7f_FF_ff_FF_ff_FF_ff_FF;
     44        0x_ff_FF_ff_FF_ff_FF_ff_FF;
     45        9_223_372_036_854_775_807;
     46        18_446_744_073_709_551_615;
     47        3.141_59f;
     48        3.14159;
     49        12.123_333_E_27L;
     50        0X_1.ff_ff_ff_ff_ff_fff_P_1023;
     51        '\0';
     52        '\1_2_3';
     53        L'\x_ff_ee';
     54        L_"\x_ff_ee";
     55        L"a_b\r\Qyc\u_00_40  x_y_z\xff_AA";
     56        L_"a_b\r\Qyc\u_00_40\   
     57  x_y_z\xff_AA";
     58        "abc" "def" "ghi";
    1459}
    1560
    1661// Local Variables: //
    17 // compile-command: "../../bin/cfa -std=c99 constants.c" //
     62// tab-width: 4 //
     63// compile-command: "cfa constants.c" //
    1864// End: //
  • src/examples/control_structures.c

    reb50842 r937e51d  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// control_structures.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Thu Jun  4 14:02:50 2015
     13// Update Count     : 24
     14//
     15
    116int main() {
    2   L1: {
    3       L2: switch ( 3_333_333 ) {        // underscores in constant
    4           case 1,2,3:                   // 4~8, 4...8 not working
    5           L3: for ( ;; ) {
    6               L4: for ( ;; ) {
    7                     break L1;           // labelled break
    8                     break L2;
    9                     break L3;
    10                     break L4;
    11 #if 0
    12                     continue L1;        // labelled continue
    13                     continue L2;
    14                     continue L3;
    15                     continue L4;
    16 #endif
    17                 } // for
    18             } // for
    19             break;
    20           default:
    21             break L1;
    22         } // switch
    23         3;
    24         int i, j;
    25         choose ( 7 ) {
    26           case 1,2,3:
    27             i = 3;
    28             fallthru;
    29           case 4,5,6:
    30             j = 3;
    31           default: ;
    32         } // choose
    33     } // block
     17        L1: {
     18                L2:     switch ( 3_333_333 ) {                                          // underscores in constant
     19                  case 1,2,3:                                                                   // CFA
     20                  case 4~8:                                                                             // CFA
     21                  case 9 ... 10:                                                                // gcc, must have spaces
     22                                L3: for ( ;; ) {
     23                                        L4: for ( ;; ) {
     24                                                break L1;                                               // labelled break
     25                                                break L2;
     26                                                break L3;
     27                                                break L4;
     28                                                //continue L1;                                  // labelled continue - should be an error
     29                                                //continue L2;                                  // should be an error
     30                                                continue L3;
     31                                                continue L4;
     32                                        } // for
     33                                } // for
     34                                break;
     35                        default:
     36                                break L1;
     37                } // switch
     38                3;
     39                int i, j;
     40                choose ( 7 ) {
     41                  case 1,2,3:
     42                        i = 3;
     43                        4;
     44                        fallthru;
     45                  case 4,5,6:
     46                        j = 3;
     47                  default: ;
     48                } // choose
     49        } // block
    3450
    3551#if 0
    36     try {
    37         int i = 3;
    38     } catch( int ) {
    39     } catch( double ) {
    40     } catch( ... ) {
    41     } finally {
    42     } // try
     52        try {
     53                int i = 3;
     54        } catch( int ) {
     55        } catch( double ) {
     56        } catch( ... ) {
     57        } finally {
     58        } // try
    4359#endif
    4460
     
    4662
    4763// Local Variables: //
    48 // compile-command: "../../bin/cfa control_structures.c" //
     64// tab-width: 4 //
     65// compile-command: "cfa control_structures.c" //
    4966// End: //
  • src/examples/ctxts.c

    reb50842 r937e51d  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// ctxts.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:11:19 2015
     13// Update Count     : 2
     14//
     15
    116context has_f( type T ) {
    2     T f( T );
     17        T f( T );
    318};
    419
    520context has_g( type U | has_f( U ) ) {
    6     U g( U );
     21        U g( U );
    722};
    823
    924forall( type V | has_g( V ) ) void h( V );
     25
     26// Local Variables: //
     27// tab-width: 4 //
     28// compile-command: "cfa ctxts.c" //
     29// End: //
  • src/examples/esskaykay.c

    reb50842 r937e51d  
    1 // "./cfa-cpp -cn esskaykay.c"
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// esskaykay.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:11:45 2015
     13// Update Count     : 2
     14//
    215
    316// forall (type A, type B, type C) C ess (C (*f) (A,B), B (*g) (A), A x) { return f(x,g(x)); }
     
    1023
    1124forall (type A) A esskaykay (A x) { ess (kay, kay, x); }
     25
     26// Local Variables: //
     27// tab-width: 4 //
     28// compile-command: "cfa esskaykay.c" //
     29// End: //
  • src/examples/forward.c

    reb50842 r937e51d  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// forward.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:11:57 2015
     13// Update Count     : 2
     14//
     15
    116forall(type T) lvalue T *?( T* );
    217int ?=?( int*, int );
     
    621
    722void f() {
    8     *x;
     23        *x;
    924}
    1025
    1126// Local Variables: //
    12 // compile-command: "../../bin/cfa forward.c" //
     27// tab-width: 4 //
     28// compile-command: "cfa forward.c" //
    1329// End: //
  • src/examples/fstream.c

    reb50842 r937e51d  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// fstream.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:12:33 2015
     13// Update Count     : 2
     14//
     15
    116#include "fstream.h"
    217
     
    722
    823struct ofstream {
    9     FILE *file;
    10     int fail;
     24        FILE *file;
     25        int fail;
    1126};
    1227
    1328ofstream *write( ofstream *os, const char *data, streamsize_type size ) {
    14     if ( ! os->fail ) {
    15         fwrite( data, size, 1, os->file );
    16         os->fail = ferror( os->file );
    17     }
    18     return os;
     29        if ( ! os->fail ) {
     30                fwrite( data, size, 1, os->file );
     31                os->fail = ferror( os->file );
     32        }
     33        return os;
    1934}
    2035
    2136int fail( ofstream *os ) {
    22     return os->fail;
     37        return os->fail;
    2338}
    2439
    2540static ofstream *make_ofstream() {
    26     ofstream *new_stream = malloc( sizeof( ofstream ) );
    27     new_stream->fail = 0;
    28     return new_stream;
     41        ofstream *new_stream = malloc( sizeof( ofstream ) );
     42        new_stream->fail = 0;
     43        return new_stream;
    2944}
    3045
    3146ofstream *ofstream_stdout() {
    32     ofstream *stdout_stream = make_ofstream();
    33     stdout_stream->file = stdout;
    34     return stdout_stream;
     47        ofstream *stdout_stream = make_ofstream();
     48        stdout_stream->file = stdout;
     49        return stdout_stream;
    3550}
    3651
    3752ofstream *ofstream_stderr() {
    38     ofstream *stderr_stream = make_ofstream();
    39     stderr_stream->file = stderr;
    40     return stderr_stream;
     53        ofstream *stderr_stream = make_ofstream();
     54        stderr_stream->file = stderr;
     55        return stderr_stream;
    4156}
    4257
    4358ofstream *ofstream_fromfile( const char *name ) {
    44     ofstream *file_stream = make_ofstream();
    45     file_stream->file = fopen( name, "w" );
    46     file_stream->fail = file_stream->file == 0;
    47     return file_stream;
     59        ofstream *file_stream = make_ofstream();
     60        file_stream->file = fopen( name, "w" );
     61        file_stream->fail = file_stream->file == 0;
     62        return file_stream;
    4863}
    4964
    5065void ofstream_close( ofstream *os ) {
    51     if ( os->file != stdout && os->file != stderr ) {
    52         os->fail = fclose( os->file );
    53     }
    54     free( os );
     66        if ( os->file != stdout && os->file != stderr ) {
     67                os->fail = fclose( os->file );
     68        }
     69        free( os );
    5570}
    5671
    5772struct ifstream {
    58     FILE *file;
    59     int fail;
    60     int eof;
     73        FILE *file;
     74        int fail;
     75        int eof;
    6176};
    6277
    6378ifstream *read( ifstream *is, char *data, streamsize_type size ) {
    64     if ( ! is->fail && ! is->eof ) {
    65         fread( data, size, 1, is->file );
    66         is->fail = ferror( is->file );
    67         is->eof = feof( is->file );
    68     }
    69     return is;
     79        if ( ! is->fail && ! is->eof ) {
     80                fread( data, size, 1, is->file );
     81                is->fail = ferror( is->file );
     82                is->eof = feof( is->file );
     83        }
     84        return is;
    7085}
    7186 
    7287ifstream *unread( ifstream *is, char c ) {
    73     if ( ! is->fail ) {
    74         if ( ! EOF == ungetc( c, is->file ) ) {
    75             is->fail = 1;
     88        if ( ! is->fail ) {
     89                if ( ! EOF == ungetc( c, is->file ) ) {
     90                        is->fail = 1;
     91                }
    7692        }
    77     }
    78     return is;
     93        return is;
    7994}
    8095
    8196int fail( ifstream *is ) {
    82     return is->fail;
     97        return is->fail;
    8398}
    8499
    85100int eof( ifstream *is ) {
    86     return is->eof;
     101        return is->eof;
    87102}
    88103
    89104static ifstream *make_ifstream() {
    90     ifstream *new_stream = malloc( sizeof( ifstream ) );
    91     new_stream->fail = 0;
    92     new_stream->eof = 0;
    93     return new_stream;
     105        ifstream *new_stream = malloc( sizeof( ifstream ) );
     106        new_stream->fail = 0;
     107        new_stream->eof = 0;
     108        return new_stream;
    94109}
    95110
    96111ifstream *ifstream_stdin() {
    97     ifstream *stdin_stream = make_ifstream();
    98     stdin_stream->file = stdin;
    99     return stdin_stream;
     112        ifstream *stdin_stream = make_ifstream();
     113        stdin_stream->file = stdin;
     114        return stdin_stream;
    100115}
    101116
    102117ifstream *ifstream_fromfile( const char *name ) {
    103     ifstream *file_stream = make_ifstream();
    104     file_stream->file = fopen( name, "r" );
    105     file_stream->fail = file_stream->file == 0;
    106     return file_stream;
     118        ifstream *file_stream = make_ifstream();
     119        file_stream->file = fopen( name, "r" );
     120        file_stream->fail = file_stream->file == 0;
     121        return file_stream;
    107122}
     123
     124// Local Variables: //
     125// tab-width: 4 //
     126// compile-command: "cfa fstream.c" //
     127// End: //
  • src/examples/fstream.h

    reb50842 r937e51d  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// fstream.h --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:13:08 2015
     13// Update Count     : 1
     14//
     15
    116#ifndef __FSTREAM_H__
    217#define __FSTREAM_H__
     
    2742
    2843#endif // __FSTREAM_H__
     44
     45// Local Variables: //
     46// tab-width: 4 //
     47// compile-command: "cfa fstream.c" //
     48// End: //
  • src/examples/fstream_test.c

    reb50842 r937e51d  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// fstream_test.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:13:43 2015
     13// Update Count     : 2
     14//
     15
    116#include "fstream.h"
    217
    318int main() {
    4     ofstream *sout = ofstream_stdout();
    5     ifstream *sin = ifstream_stdin();
    6     int nombre;
    7     sout << "Appuyez un nombre, s'il vous plâit:\n";
    8     sin >> &nombre;
    9     sout << "Vous avez appuyé: " << nombre << "\n";
     19        ofstream *sout = ofstream_stdout();
     20        ifstream *sin = ifstream_stdin();
     21        int nombre;
     22        sout << "Appuyez un nombre, s'il vous plâit:\n";
     23        sin >> &nombre;
     24        sout << "Vous avez appuyé: " << nombre << "\n";
    1025}
     26
     27// Local Variables: //
     28// tab-width: 4 //
     29// compile-command: "cfa fstream_test.c" //
     30// End: //
  • src/examples/fwrite.c

    reb50842 r937e51d  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// fwrite.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:14:12 2015
     13// Update Count     : 1
     14//
     15
    116extern "C" {
    2     #include <stdio.h>
     17        #include <stdio.h>
    318}
    419
    520int main() {
    6     fwrite( "test\n", 5, 1, stdout );
     21        fwrite( "test\n", 5, 1, stdout );
    722}
     23
     24// Local Variables: //
     25// tab-width: 4 //
     26// compile-command: "cfa fwrite.c" //
     27// End: //
  • src/examples/hello.c

    reb50842 r937e51d  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// hello.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:14:58 2015
     13// Update Count     : 1
     14//
     15
    116#include "fstream.h"
    217
    318int main() {
    4     ofstream *sout = ofstream_stdout();
    5     ifstream *sin = ifstream_stdin();
    6     sout << "Bonjour au monde!\n";
    7     sout << 3 << " " << 3.5 << " " << 'a' << " " << "abc" << "\n";
    8     int i, j, k;
    9     sin >> &i >> &j >> &k;
    10     sout << "i:" << i << " j:" << j << " k:" << k << "\n";
     19        ofstream *sout = ofstream_stdout();
     20        ifstream *sin = ifstream_stdin();
     21        sout << "Bonjour au monde!\n";
     22        sout << 3 << " " << 3.5 << " " << 'a' << " " << "abc" << "\n";
     23        int i, j, k;
     24        sin >> &i >> &j >> &k;
     25        sout << "i:" << i << " j:" << j << " k:" << k << "\n";
    1126}
    1227
    1328// Local Variables: //
    14 // compile-command: "../../bin/cfa hello.c fstream.o iostream.o" //
     29// tab-width: 4 //
     30// compile-command: "cfa hello.c fstream.o iostream.o" //
    1531// End: //
  • src/examples/huge.c

    reb50842 r937e51d  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// huge.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:15:34 2015
     13// Update Count     : 1
     14//
     15
    116int huge( int n, forall( type T ) T (*f)( T ) ) {
    2     if ( n <= 0 )
    3         return f( 0 );
    4     else
    5         return huge( n - 1, f( f ) );
     17        if ( n <= 0 )
     18                return f( 0 );
     19        else
     20                return huge( n - 1, f( f ) );
    621}
     22
     23// Local Variables: //
     24// tab-width: 4 //
     25// compile-command: "cfa huge.c" //
     26// End: //
  • src/examples/identity.c

    reb50842 r937e51d  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// identity.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:16:30 2015
     13// Update Count     : 2
     14//
     15
    116#include "fstream.h"
    217
    318forall( type T )
    419T identity( T t ) {
    5     return t;
     20        return t;
    621}
    722
    823int main() {
    9     ofstream *sout = ofstream_stdout();
    10     char c = 'a';
    11     c = identity( c );
    12     sout << c << ' ' << identity( c ) << '\n';
    13     int i = 5;
    14     i = identity( i );
    15     sout << i << ' ' << identity( i ) << '\n';
    16     double d = 3.2;
    17     d = identity( d );
    18     sout << d << ' ' << identity( d ) << '\n';
     24        ofstream *sout = ofstream_stdout();
     25        char c = 'a';
     26        c = identity( c );
     27        sout << c << ' ' << identity( c ) << '\n';
     28        int i = 5;
     29        i = identity( i );
     30        sout << i << ' ' << identity( i ) << '\n';
     31        double d = 3.2;
     32        d = identity( d );
     33        sout << d << ' ' << identity( d ) << '\n';
    1934}
    2035
    2136// Local Variables: //
    22 // compile-command: "../../bin/cfa identity.c fstream.o iostream.o" //
     37// tab-width: 4 //
     38// compile-command: "cfa identity.c fstream.o iostream.o" //
    2339// End: //
  • src/examples/includes.c

    reb50842 r937e51d  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// includes.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Mon Jun  8 15:54:17 2015
     13// Update Count     : 7
     14//
     15
    116#if 1
    217//#include <aio.h>              // FAILS -- includes locale.h
     
    3449#include <curses.h>
    3550#else
    36 #include <time.h>               // FAILS -- includes locale.h
     51#include <curses.h>
    3752#endif // 0
    3853
    3954// Local Variables: //
    40 // compile-command: "../../bin/cfa includes.c" //
     55// tab-width: 4 //
     56// compile-command: "cfa includes.c" //
    4157// End: //
  • src/examples/index.h

    reb50842 r937e51d  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// index.h --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:17:31 2015
     13// Update Count     : 1
     14//
     15
    116context index( type T ) {
    2     T ?+?( T, T );
    3     T ?-?( T, T );
    4     const T 0, 1;
     17        T ?+?( T, T );
     18        T ?-?( T, T );
     19        const T 0, 1;
    520};
     21
     22// Local Variables: //
     23// tab-width: 4 //
     24// compile-command: "cfa index.c" //
     25// End: //
  • src/examples/iostream.c

    reb50842 r937e51d  
    1 // "cfa -c -o iostream.o iostream.c"
    2 // "cfa -v -E iostream.c > iostream_out.c"
    3 // "cfa -CFA iostream.c > iostream_out.c"
    4 // "cfa iostream_out.c"
    5 // "gcc32 iostream_out.c LibCfa/libcfa.a"
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// iostream.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:18:13 2015
     13// Update Count     : 2
     14//
    615
    716#include "iostream.h"
     
    1019//#include <string.h>
    1120//#include <ctype.h>
    12 typedef long unsigned int size_t;
    13 size_t strlen(const char *s);
     21        typedef long unsigned int size_t;
     22        size_t strlen(const char *s);
    1423}
    1524
    1625forall( dtype ostype | ostream( ostype ) )
    1726ostype * ?<<?( ostype *os, char c ) {
    18     return write( os, &c, 1 );
     27        return write( os, &c, 1 );
    1928}
    2029
    2130forall( dtype ostype | ostream( ostype ) )
    2231ostype * ?<<?( ostype *os, int i ) {
    23     char buffer[20];      // larger than the largest integer
    24     sprintf( buffer, "%d", i );
    25     return write( os, buffer, strlen( buffer ) );
     32        char buffer[20];      // larger than the largest integer
     33        sprintf( buffer, "%d", i );
     34        return write( os, buffer, strlen( buffer ) );
    2635}
    2736
    2837forall( dtype ostype | ostream( ostype ) )
    2938ostype * ?<<?( ostype *os, double d ) {
    30     char buffer[32];      // larger than the largest double
    31     sprintf( buffer, "%g", d );
    32     return write( os, buffer, strlen( buffer ) );
     39        char buffer[32];      // larger than the largest double
     40        sprintf( buffer, "%g", d );
     41        return write( os, buffer, strlen( buffer ) );
    3342}
    3443
    3544forall( dtype ostype | ostream( ostype ) )
    3645ostype * ?<<?( ostype *os, const char *cp ) {
    37     return write( os, cp, strlen( cp ) );
     46        return write( os, cp, strlen( cp ) );
    3847}
    3948
    4049forall( dtype istype | istream( istype ) )
    4150istype * ?>>?( istype *is, char *cp ) {
    42     return read( is, cp, 1 );
     51        return read( is, cp, 1 );
    4352}
    4453
    4554forall( dtype istype | istream( istype ) )
    4655istype * ?>>?( istype *is, int *ip ) {
    47     char cur;
     56        char cur;
    4857 
    49     // skip some whitespace
    50     do {
    51         is >> &cur;
    52         if ( fail( is ) || eof( is ) ) return is;
    53     } while ( !( cur >= '0' && cur <= '9' ) );
     58        // skip some whitespace
     59        do {
     60                is >> &cur;
     61                if ( fail( is ) || eof( is ) ) return is;
     62        } while ( !( cur >= '0' && cur <= '9' ) );
    5463 
    55     // accumulate digits
    56     *ip = 0;
    57     while ( cur >= '0' && cur <= '9' ) {
    58         *ip = *ip * 10 + ( cur - '0' );
    59         is >> &cur;
    60         if ( fail( is ) || eof( is ) ) return is;
    61     }
     64        // accumulate digits
     65        *ip = 0;
     66        while ( cur >= '0' && cur <= '9' ) {
     67                *ip = *ip * 10 + ( cur - '0' );
     68                is >> &cur;
     69                if ( fail( is ) || eof( is ) ) return is;
     70        }
    6271 
    63     unread( is, cur );
    64     return is;
     72        unread( is, cur );
     73        return is;
    6574}
     75
     76// Local Variables: //
     77// tab-width: 4 //
     78// compile-command: "cfa iostream.c" //
     79// End: //
  • src/examples/iostream.h

    reb50842 r937e51d  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// iostream.h --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:18:46 2015
     13// Update Count     : 1
     14//
     15
    116#ifndef IOSTREAM_H
    217#define IOSTREAM_H
     
    520
    621context ostream( dtype ostype ) {
    7     ostype *write( ostype *, const char *, streamsize_type );
    8     int fail( ostype * );
     22        ostype *write( ostype *, const char *, streamsize_type );
     23        int fail( ostype * );
    924};
    1025
    1126context writeable( type T ) {
    12     forall( dtype ostype | ostream( ostype ) ) ostype * ?<<?( ostype *, T );
     27        forall( dtype ostype | ostream( ostype ) ) ostype * ?<<?( ostype *, T );
    1328};
    1429
     
    2237
    2338context istream( dtype istype ) {
    24     istype *read( istype *, char *, streamsize_type );
    25     istype *unread( istype *, char );
    26     int fail( istype * );
    27     int eof( istype * );
     39        istype *read( istype *, char *, streamsize_type );
     40        istype *unread( istype *, char );
     41        int fail( istype * );
     42        int eof( istype * );
    2843};
    2944
    3045context readable( type T ) {
    31     forall( dtype istype | istream( istype ) ) istype * ?<<?( istype *, T );
     46        forall( dtype istype | istream( istype ) ) istype * ?<<?( istype *, T );
    3247};
    3348
     
    3954
    4055#endif // IOSTREAM_H
     56
     57// Local Variables: //
     58// tab-width: 4 //
     59// compile-command: "cfa iostream.c" //
     60// End: //
  • src/examples/it_out.c

    reb50842 r937e51d  
    1 # 1 "iterator.c"
    2 # 1 "<built-in>"
    3 # 1 "<command line>"
    4 # 1 "iterator.c"
    5 # 1 "iterator.h" 1
    6 
    7 
    8 
    9 # 1 "iostream.h" 1
    10 
    11 
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// it_out.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:41:23 2015
     13// Update Count     : 4
     14//
    1215
    1316typedef unsigned long streamsize_type;
    1417
    15 
    16 
    17 context ostream( dtype os_type )
    18 {
    19 
    20     os_type *write( os_type *, const char *, streamsize_type );
    21 
    22 
    23     int fail( os_type * );
     18context ostream( dtype os_type ) {
     19        os_type *write( os_type *, const char *, streamsize_type );
     20        int fail( os_type * );
    2421};
    2522
    26 
    27 
    28 
    29 context writeable( type T )
    30 {
    31     forall( dtype os_type | ostream( os_type ) ) os_type * ?<<?( os_type *, T );
     23context writeable( type T ) {
     24        forall( dtype os_type | ostream( os_type ) ) os_type * ?<<?( os_type *, T );
    3225};
    33 
    34 
    3526
    3627forall( dtype os_type | ostream( os_type ) ) os_type * ?<<?( os_type *, char );
     
    3829forall( dtype os_type | ostream( os_type ) ) os_type * ?<<?( os_type *, const char * );
    3930
    40 
    41 
    42 
    43 context istream( dtype is_type )
    44 {
    45 
    46     is_type *read( is_type *, char *, streamsize_type );
    47 
    48 
    49     is_type *unread( is_type *, char );
    50 
    51 
    52     int fail( is_type * );
    53 
    54 
    55     int eof( is_type * );
     31context istream( dtype is_type ) {
     32        is_type *read( is_type *, char *, streamsize_type );
     33        is_type *unread( is_type *, char );
     34        int fail( is_type * );
     35        int eof( is_type * );
    5636};
    5737
    58 
    59 
    60 
    61 context readable( type T )
    62 {
    63     forall( dtype is_type | istream( is_type ) ) is_type * ?<<?( is_type *, T );
     38context readable( type T ) {
     39        forall( dtype is_type | istream( is_type ) ) is_type * ?<<?( is_type *, T );
    6440};
    65 
    66 
    6741
    6842forall( dtype is_type | istream( is_type ) ) is_type * ?>>?( is_type *, char* );
    6943forall( dtype is_type | istream( is_type ) ) is_type * ?>>?( is_type *, int* );
    70 # 5 "iterator.h" 2
    7144
     45context iterator( type iterator_type, type elt_type ) {
     46        iterator_type ?++( iterator_type* );
     47        iterator_type ++?( iterator_type* );
     48        int ?==?( iterator_type, iterator_type );
     49        int ?!=?( iterator_type, iterator_type );
    7250
    73 context iterator( type iterator_type, type elt_type )
    74 {
    75 
    76     iterator_type ?++( iterator_type* );
    77     iterator_type ++?( iterator_type* );
    78 
    79 
    80     int ?==?( iterator_type, iterator_type );
    81     int ?!=?( iterator_type, iterator_type );
    82 
    83 
    84     lvalue elt_type *?( iterator_type );
     51        lvalue elt_type *?( iterator_type );
    8552};
    8653
    87 
     54forall( type elt_type | writeable( elt_type ),
     55                type iterator_type | iterator( iterator_type, elt_type ),
     56                dtype os_type | ostream( os_type ) )
     57void write_all( iterator_type begin, iterator_type end, os_type *os );
    8858
    8959forall( type elt_type | writeable( elt_type ),
    90         type iterator_type | iterator( iterator_type, elt_type ),
    91         dtype os_type | ostream( os_type ) )
    92 void write_all( iterator_type begin, iterator_type end, os_type *os );
    93 # 2 "iterator.c" 2
     60                type iterator_type | iterator( iterator_type, elt_type ),
     61                dtype os_type | ostream( os_type ) )
     62void write_all( elt_type begin, iterator_type end, os_type *os ) {
     63        os << begin;
     64}
    9465
    95 forall( type elt_type | writeable( elt_type ),
    96         type iterator_type | iterator( iterator_type, elt_type ),
    97         dtype os_type | ostream( os_type ) )
    98 void
    99 write_all( elt_type begin, iterator_type end, os_type *os )
    100 {
    101     os << begin;
    102 }
     66// Local Variables: //
     67// tab-width: 4 //
     68// compile-command: "cfa it_out.c" //
     69// End: //
  • src/examples/iterator.c

    reb50842 r937e51d  
    1 // "cfa iterator.c"
    2 // "cfa -CFA iterator.c > iterator_out.c"
    3 // "gcc31 iterator_out.c ../LibCfa/libcfa.a"
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// iterator.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:41:41 2015
     13// Update Count     : 3
     14//
    415
    516#include "iterator.h"
     
    1122///   iterator_type i;
    1223///   for ( i = begin; i != end; ++i ) {
    13 ///    func( *i );
     24///      func( *i );
    1425///   }
    1526/// }
    1627
    1728forall( type elt_type | writeable( elt_type ),
    18         type iterator_type | iterator( iterator_type, elt_type ),
    19         dtype os_type | ostream( os_type ) )
     29                type iterator_type | iterator( iterator_type, elt_type ),
     30                dtype os_type | ostream( os_type ) )
    2031void write_all( iterator_type begin, iterator_type end, os_type *os ) {
    21     iterator_type i;
    22     for ( i = begin; i != end; ++i ) {
    23         os << *i << ' ';
    24     }
     32        iterator_type i;
     33        for ( i = begin; i != end; ++i ) {
     34                os << *i << ' ';
     35        }
    2536}
    2637
    2738forall( type elt_type | writeable( elt_type ),
    28         type iterator_type | iterator( iterator_type, elt_type ),
    29         dtype os_type | ostream( os_type ) )
     39                type iterator_type | iterator( iterator_type, elt_type ),
     40                dtype os_type | ostream( os_type ) )
    3041void write_reverse( iterator_type begin, iterator_type end, os_type *os ) {
    31     iterator_type i; // "= end;" does not work
    32     i = end;
    33     do {
    34         --i;
    35         os << *i << ' ';
    36     } while ( i != begin );
     42        iterator_type i; // "= end;" does not work
     43        i = end;
     44        do {
     45                --i;
     46                os << *i << ' ';
     47        } while ( i != begin );
    3748}
     49
     50// Local Variables: //
     51// tab-width: 4 //
     52// compile-command: "cfa iterator.c" //
     53// End: //
  • src/examples/iterator.h

    reb50842 r937e51d  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// iterator.h --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:41:57 2015
     13// Update Count     : 3
     14//
     15
    116#ifndef ITERATOR_H
    217#define ITERATOR_H
     
    621// An iterator can be used to traverse a data structure.
    722context iterator( type iterator_type, type elt_type ) {
    8     // point to the next element
    9 //    iterator_type ?++( iterator_type * );
    10     iterator_type ++?( iterator_type * );
    11     iterator_type --?( iterator_type * );
     23        // point to the next element
     24//      iterator_type ?++( iterator_type * );
     25        iterator_type ++?( iterator_type * );
     26        iterator_type --?( iterator_type * );
    1227
    13     // can be tested for equality with other iterators
    14     int ?==?( iterator_type, iterator_type );
    15     int ?!=?( iterator_type, iterator_type );
     28        // can be tested for equality with other iterators
     29        int ?==?( iterator_type, iterator_type );
     30        int ?!=?( iterator_type, iterator_type );
    1631
    17     // dereference to get the pointed-at element
    18     lvalue elt_type *?( iterator_type );
     32        // dereference to get the pointed-at element
     33        lvalue elt_type *?( iterator_type );
    1934};
    2035
    2136context iterator_for ( type iterator_type, type collection_type, type elt_type | iterator( iterator_type, elt_type ) ) {
    22 //    [ iterator_type begin, iterator_type end ] get_iterators( collection_type );
    23     iterator_type begin( collection_type );
    24     iterator_type end( collection_type );
     37//      [ iterator_type begin, iterator_type end ] get_iterators( collection_type );
     38        iterator_type begin( collection_type );
     39        iterator_type end( collection_type );
    2540};
    2641
     
    3045// writes the range [begin, end) to the given stream
    3146forall( type elt_type | writeable( elt_type ),
    32         type iterator_type | iterator( iterator_type, elt_type ),
    33         dtype os_type | ostream( os_type ) )
     47                type iterator_type | iterator( iterator_type, elt_type ),
     48                dtype os_type | ostream( os_type ) )
    3449void write_all( iterator_type begin, iterator_type end, os_type *os );
    3550
    3651forall( type elt_type | writeable( elt_type ),
    37         type iterator_type | iterator( iterator_type, elt_type ),
    38         dtype os_type | ostream( os_type ) )
     52                type iterator_type | iterator( iterator_type, elt_type ),
     53                dtype os_type | ostream( os_type ) )
    3954void write_reverse( iterator_type begin, iterator_type end, os_type *os );
    4055
    4156#endif // ITERATOR_H
     57
     58// Local Variables: //
     59// tab-width: 4 //
     60// compile-command: "cfa iterator.c" //
     61// End: //
  • src/examples/min.c

    reb50842 r937e51d  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// min.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:23:19 2015
     13// Update Count     : 2
     14//
     15
    116extern "C" {
    2     int printf( const char *, ... );
     17        int printf( const char *, ... );
    318//#include <stdio.h>
    419}
     
    621forall( type T | { int ?<?( T, T ); } )
    722T min( const T t1, const T t2 ) {
    8     return t1 < t2 ? t1 : t2;
     23        return t1 < t2 ? t1 : t2;
    924}
    1025
    1126int main() {
    12     char c;
    13 //    c = min( 'z', 'a' );
    14 //    printf( "minimum %d\n", c );
    15     int i;
    16     i = min( 4, 3 );
    17     printf( "minimum %d\n", min( 4, 3 ) );
    18     float f;
    19     f = min( 4.0, 3.1 );
    20     printf( "minimum %g\n", f );
    21     double d;
    22     d = min( 4.0, 3.2 );
    23     printf( "minimum %g\n", d );
     27        char c;
     28//      c = min( 'z', 'a' );
     29//      printf( "minimum %d\n", c );
     30        int i;
     31        i = min( 4, 3 );
     32        printf( "minimum %d\n", min( 4, 3 ) );
     33        float f;
     34        f = min( 4.0, 3.1 );
     35        printf( "minimum %g\n", f );
     36        double d;
     37        d = min( 4.0, 3.2 );
     38        printf( "minimum %g\n", d );
    2439}
    2540
    2641// Local Variables: //
    27 // compile-command: "../../bin/cfa min.c" //
     42// tab-width: 4 //
     43// compile-command: "cfa min.c" //
    2844// End: //
  • src/examples/new.c

    reb50842 r937e51d  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// new.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:23:55 2015
     13// Update Count     : 1
     14//
     15
    116forall( type T )
    217void f( T *t ) {
    3     t--;
    4     *t;
    5     ++t;
    6     t += 2;
    7     t + 2;
    8     --t;
    9     t -= 2;
    10     t - 4;
    11     t[7];
    12     7[t];
     18        t--;
     19        *t;
     20        ++t;
     21        t += 2;
     22        t + 2;
     23        --t;
     24        t -= 2;
     25        t - 4;
     26        t[7];
     27        7[t];
    1328}
     29
     30// Local Variables: //
     31// tab-width: 4 //
     32// compile-command: "cfa new.c" //
     33// End: //
  • src/examples/prolog.c

    reb50842 r937e51d  
    1 // "./cfa prolog.c"
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// prolog.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:25:52 2015
     13// Update Count     : 1
     14//
    215
    316extern "C" { extern int printf( const char *fmt, ... ); }
     
    1326
    1427context ArithmeticType( type T ) {
    15     void is_arithmetic( T );
     28        void is_arithmetic( T );
    1629};
    1730
    1831context IntegralType( type T | ArithmeticType( T ) ) {
    19     void is_integer( T );
     32        void is_integer( T );
    2033};
    2134
    2235forall( type T | IntegralType( T ) | { void printResult( T ); } )
    2336void hornclause( T param ) {
    24     printResult( param );
     37        printResult( param );
    2538}
    2639
    2740int main() {
    28     int x;
    29     double x;
    30     char * x;
    31     hornclause( x );
     41        int x;
     42        double x;
     43        char * x;
     44        hornclause( x );
    3245}
     46
     47// Local Variables: //
     48// tab-width: 4 //
     49// compile-command: "cfa prolog.c" //
     50// End: //
  • src/examples/quad.c

    reb50842 r937e51d  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// quad.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:26:36 2015
     13// Update Count     : 2
     14//
     15
    116extern "C" {
    2     #include <stdio.h>
     17#include <stdio.h>
    318}
    419
    520forall( type T | { T ?*?( T, T ); } )
    621T square( T t ) {
    7     return t * t;
     22        return t * t;
    823}
    924
    1025forall( type U | { U square( U ); } )
    1126U quad( U u ) {
    12     return square( square( u ) );
     27        return square( square( u ) );
    1328}
    1429
    1530int main() {
    16     int N = 2;
    17     printf( "result of quad of %d is %d\n", N, quad( N ) );
     31        int N = 2;
     32        printf( "result of quad of %d is %d\n", N, quad( N ) );
    1833}
    1934
    2035// Local Variables: //
    21 // compile-command: "../../bin/cfa quad.c" //
     36// tab-width: 4 //
     37// compile-command: "cfa quad.c" //
    2238// End: //
  • src/examples/quoted_keyword.c

    reb50842 r937e51d  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// quoted_keyword.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:27:26 2015
     13// Update Count     : 2
     14//
     15
    116// test quoted keyword usage
    217int `catch`;
    318
    419struct {
    5     int `type`;
    6     int `struct`;
     20        int `type`;
     21        int `struct`;
    722} st;
    823
     
    1126
    1227int foo() {
    13     int w = `catch` + st.`type` + st.`struct` + `throw`;
     28        int w = `catch` + st.`type` + st.`struct` + `throw`;
    1429}
    1530
     
    1732
    1833// Local Variables: //
    19 // compile-command: "../../bin/cfa quoted_keyword.c" //
     34// tab-width: 4 //
     35// compile-command: "cfa quoted_keyword.c" //
    2036// End: //
  • src/examples/s.c

    reb50842 r937e51d  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// s.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:42:39 2015
     13// Update Count     : 2
     14//
     15
    116//int ?!=?( int, int );
    217
    318void f() {
    4 //    int a;
    5 //    a ? 4 : 5;
    6     1 ? 4 : 5;
    7     0 ? 4 : 5;
     19//      int a;
     20//      a ? 4 : 5;
     21        1 ? 4 : 5;
     22        0 ? 4 : 5;
    823}
     24
     25// Local Variables: //
     26// tab-width: 4 //
     27// compile-command: "cfa s.c" //
     28// End: //
  • src/examples/simple.c

    reb50842 r937e51d  
    1 // './cfa square.c'
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// simple.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:30:27 2015
     13// Update Count     : 3
     14//
    215
    316extern "C" {
    4     int printf( const char *fmt, ... );
     17        int printf( const char *fmt, ... );
    518}
    619
    720context has_star( type T ) {
    8     T ?*?( T, T );
     21        T ?*?( T, T );
    922};
    1023
    1124int ?*?( int, int );
    12 int ?=?( int*, int );
     25int ?=?( int *, int );
    1326
    1427forall( type T | has_star( T ) )
    1528T square( T t ) {
    16     return t * t;
     29        return t * t;
    1730}
    1831
    1932int main() {
    20     printf( "result of square of 5 is %d\n", square( 5 ) );
     33        printf( "result of square of 5 is %d\n", square( 5 ) );
    2134}
     35
     36// Local Variables: //
     37// tab-width: 4 //
     38// compile-command: "cfa simple.c" //
     39// End: //
  • src/examples/simplePoly.c

    reb50842 r937e51d  
    1 // './cfa-cpp -nc < simplePoly.c'
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// simplePoly.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:31:17 2015
     13// Update Count     : 2
     14//
    215
    316forall( type T, type U | { T f( T, U ); } )
    4 T q( T t, U u )
    5 {
    6     return f( t, u );
     17T q( T t, U u ) {
     18        return f( t, u );
    719//  return t;
    820}
     
    1123
    1224void g( void ) {
    13     int y;
    14     double x;
     25        int y;
     26        double x;
    1527//  if ( y )
    16     q( 3, &x );
     28        q( 3, &x );
    1729}
     30
     31// Local Variables: //
     32// tab-width: 4 //
     33// compile-command: "cfa simplePoly.c" //
     34// End: //
  • src/examples/simpler.c

    reb50842 r937e51d  
    1 // "./cfa-cpp -c simpler.c"
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// simpler.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:31:48 2015
     13// Update Count     : 1
     14//
    215
    316forall( type T ) T id( T, T );
    417
    518int main() {
    6     id( 0, 7 );
     19        id( 0, 7 );
    720}
     21
     22// Local Variables: //
     23// tab-width: 4 //
     24// compile-command: "cfa simpler.c" //
     25// End: //
  • src/examples/specialize.c

    reb50842 r937e51d  
    1 // "./cfa specialize.c"
    2 // "./cfa -g simple.c"
    3 // "./cfa -CFA simple.c > simple_out.c"
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// specialize.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:32:26 2015
     13// Update Count     : 2
     14//
    415
    516/// void f( const int * );
     
    2536
    2637extern "C" {
    27   int printf( const char*, ... );
     38        int printf( const char*, ... );
    2839}
    2940
    3041forall( type T ) T f( T t )
    3142{
    32   printf( "in f; sizeof T is %d\n", sizeof( T ) );
    33   return t;
     43        printf( "in f; sizeof T is %d\n", sizeof( T ) );
     44        return t;
    3445}
    3546
    3647void g( int (*p)(int) )
    3748{
    38   printf( "g: f(7) returned %d\n", f(7) );
     49        printf( "g: f(7) returned %d\n", f(7) );
    3950}
    4051
    4152int main() {
    42   g( f );
     53        g( f );
    4354}
     55
     56// Local Variables: //
     57// tab-width: 4 //
     58// compile-command: "cfa specialize.c" //
     59// End: //
  • src/examples/square.c

    reb50842 r937e51d  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// square.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:43:34 2015
     13// Update Count     : 2
     14//
     15
    116extern "C" {
    217#include <stdio.h>
    318}
    419
    5 forall( type T | { T ?*?( T, T ); })
     20forall( type T | { T ?*?( T, T ); } )
    621T square( T t ) {
    7     return t * t;
     22        return t * t;
    823}
    924
     25//char ?*?( char a1, char a2 ) {
     26//      return (char)( (int)a1 * (int)a2 );
     27//}
     28
    1029int main() {
    11     printf( "result of square of 5 is %d\n", square( 5 ) );
    12     printf( "result of square of 5 is %f\n", square( 5.0 ) );
     30        char c = 5;
     31        short int s = 5;
     32        int i = 5;
     33        float f = 5.0;
     34        double d = 5.0;
     35//      printf( "result of square of 5 is %d\n", (char)square( c ) );
     36        printf( "result of square of 5 is %d\n", square( s ) );
     37        printf( "result of square of 5 is %d\n", square( i ) );
     38        printf( "result of square of 5 is %f\n", square( f ) );
     39        printf( "result of square of 5 is %f\n", square( d ) );
    1340}
     41
     42// Local Variables: //
     43// tab-width: 4 //
     44// compile-command: "cfa square.c" //
     45// End: //
  • src/examples/sum.c

    reb50842 r937e51d  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// sum.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Mon Jun  1 20:46:35 2015
     13// Update Count     : 18
     14//
     15
    116extern "C" {
    2     int printf( const char *, ... );
     17        int printf( const char *, ... );
    318}
    419
    520context sumable( type T ) {
    6     const T 0;
    7     T ?+?( T, T );
    8     T ?++( T * );
    9     T ?+=?( T *, T );
     21        const T 0;
     22        T ?+?( T, T );
     23        T ?++( T * );
     24        T ?+=?( T *, T );
    1025};
    1126
    1227forall( type T | sumable( T ) )
    1328T sum( int n, T a[] ) {
    14     T total;                            // instantiate T, select 0
    15     total = 0;
    16     for ( int i = 0; i < n; i += 1 )
    17         total = total + a[i];           // select +
    18     return total;
     29        T total;                                                                                        // instantiate T, select 0
     30        total = 0;
     31        for ( int i = 0; i < n; i += 1 )
     32                total = total + a[i];                                                   // select +
     33        return total;
    1934}
    2035
     
    2742
    2843int main() {
    29     const int size = 10, low = 0, High = 10;
    30     int si = 0, ai[10]; // size
    31     int i;
    32     for ( i = low; i < High; i += 1 ) {
    33         si += i;
    34         ai[i] = i;
    35     }
    36     printf( "sum from %d to %d is %d, check %d\n",
    37             low, High, sum( size, ai ), si );
     44        const int low = 5, High = 15, size = High - low;
     45        int si = 0, ai[size];
     46        int v = low;
     47        for ( int i = 0; i < size; i += 1, v += 1 ) {
     48                si += v;
     49                ai[i] = v;
     50        }
     51        printf( "sum from %d to %d is %d, check %d\n",
     52                        low, High, sum( size, ai ), si );
    3853
    39 //    char ci[10];
    40 //    char c = sum( size, ci );
    41 //    float fi[10];
    42 //    float f = sum( size, fi );
     54//      char ci[size];
     55//      char c = sum( size, ci );
     56//      float fi[size];
     57//      float f = sum( size, fi );
    4358
    44     double sd = 0.0, ad[10]; // size
    45     for ( i = low; i < High; i += 1 ) {
    46         double d = i / (double)size;
    47         sd += d;
    48         ad[i] = d;
    49     }
    50     printf( "sum from %g to %g is %g, check %g\n",
    51             low / (double)size, High / (double)size, sum( size, ad ), sd );
     59        double sd = 0.0, ad[size];
     60        double v = low / 10.0;
     61        for ( int i = 0; i < size; i += 1, v += 0.1 ) {
     62                sd += v;
     63                ad[i] = v;
     64        }
     65        printf( "sum from %g to %g is %g, check %g\n",
     66                        low / 10.0, High / 10.0, sum( size, ad ), sd );
    5267}
    5368
    5469// Local Variables: //
    55 // compile-command: "../../bin/cfa sum.c" //
     70// tab-width: 4 //
     71// compile-command: "cfa sum.c" //
    5672// End: //
  • src/examples/swap.c

    reb50842 r937e51d  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// swap.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:34:47 2015
     13// Update Count     : 1
     14//
     15
    116extern "C" {
    2     int printf( const char *, ... );
     17        int printf( const char *, ... );
    318}
    419
    520forall( type T )
    621void swap( T *left, T *right ) {
    7     T temp = *left;
    8     *left = *right;
    9     *right = temp;
     22        T temp = *left;
     23        *left = *right;
     24        *right = temp;
    1025}
    1126
    1227int main() {
    13     int x = 1, y = 2;
    14     printf( "%d %d\n", x, y );
    15     swap( &x, &y );
    16     printf( "%d %d\n", x, y );
     28        int x = 1, y = 2;
     29        printf( "%d %d\n", x, y );
     30        swap( &x, &y );
     31        printf( "%d %d\n", x, y );
    1732}
    1833
    1934// Local Variables: //
    20 // compile-command: "../../bin/cfa swap.c" //
     35// tab-width: 4 //
     36// compile-command: "cfa swap.c" //
    2137// End: //
  • src/examples/twice.c

    reb50842 r937e51d  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// twice.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:37:23 2015
     13// Update Count     : 1
     14//
     15
    116#include "fstream.h"
    217
    318forall( type T | { T ?+?( T, T ); T ?++( T * ); [T] ?+=?( T *, T ); } )
    419T twice( const T t ) {
    5     return t + t;
     20        return t + t;
    621}
    722
    823int main() {
    9     ofstream *sout = ofstream_stdout();
    10     sout << twice( 1 ) << ' ' << twice( 3.2 ) << '\n';
     24        ofstream *sout = ofstream_stdout();
     25        sout << twice( 1 ) << ' ' << twice( 3.2 ) << '\n';
    1126}
    1227
    1328// Local Variables: //
    14 // compile-command: "../../bin/cfa twice.c fstream.o iostream.o" //
     29// tab-width: 4 //
     30// compile-command: "cfa twice.c fstream.o iostream.o" //
    1531// End: //
  • src/examples/vector_int.c

    reb50842 r937e51d  
    1 // "cfa vector_int.c"
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// vector_int.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:38:05 2015
     13// Update Count     : 3
     14//
    215
    316#include "vector_int.h"
     
    1023
    1124vector_int vector_int_allocate() {
    12     return vector_int_allocate( DEFAULT_CAPACITY );
     25        return vector_int_allocate( DEFAULT_CAPACITY );
    1326}
    1427
    1528vector_int vector_int_allocate( int reserve ) {
    16     vector_int new_vector;
    17     new_vector.last = -1;
    18     new_vector.capacity = reserve;
    19     new_vector.data = malloc( sizeof( int ) * reserve );
    20     return new_vector;
     29        vector_int new_vector;
     30        new_vector.last = -1;
     31        new_vector.capacity = reserve;
     32        new_vector.data = malloc( sizeof( int ) * reserve );
     33        return new_vector;
    2134}
    2235
    2336void vector_int_deallocate( vector_int vec ) {
    24     free( vec.data );
     37        free( vec.data );
    2538}
    2639
    2740void reserve( vector_int *vec, int reserve ) {
    28     if ( reserve > vec->capacity ) {
    29         vec->data = realloc( vec->data, sizeof( int ) * reserve );
    30         vec->capacity = reserve;
    31     }
     41        if ( reserve > vec->capacity ) {
     42                vec->data = realloc( vec->data, sizeof( int ) * reserve );
     43                vec->capacity = reserve;
     44        }
    3245}
    3346
    3447void append( vector_int *vec, int element ) {
    35     vec->last++;
    36     if ( vec->last == vec->capacity ) {
    37         vec->capacity *= 2;
    38         vec->data = realloc( vec->data, sizeof( int ) * vec->capacity );
    39     }
    40     vec->data[ vec->last ] = element;
     48        vec->last++;
     49        if ( vec->last == vec->capacity ) {
     50                vec->capacity *= 2;
     51                vec->data = realloc( vec->data, sizeof( int ) * vec->capacity );
     52        }
     53        vec->data[ vec->last ] = element;
    4154}
    4255
     
    4457
    4558lvalue int ?[?]( vector_int vec, int index ) {
    46     return vec.data[ index ];
     59        return vec.data[ index ];
    4760}
    4861
    4962int last( vector_int vec ) {
    50     return vec.last;
     63        return vec.last;
    5164}
    5265
     66
     67// Local Variables: //
     68// tab-width: 4 //
     69// compile-command: "cfa vector_int.c" //
     70// End: //
  • src/examples/vector_int.h

    reb50842 r937e51d  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// vector_int.h --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:39:05 2015
     13// Update Count     : 2
     14//
     15
    116#ifndef VECTOR_INT_H
    217#define VECTOR_INT_H
     
    520
    621typedef struct vector_int {
    7     int last;                                           // last used index
    8     int capacity;                                       // last possible index before reallocation
    9     int *data;                                          // array
     22        int last;                                                                                       // last used index
     23        int capacity;                                                                           // last possible index before reallocation
     24        int *data;                                                                                      // array
    1025} vector_int;
    1126
    12 vector_int vector_int_allocate();                       // allocate vector with default capacity
    13 vector_int vector_int_allocate( int reserve );          // allocate vector with specified capacity
    14 void vector_int_deallocate( vector_int );               // deallocate vector's storage
     27vector_int vector_int_allocate();                                               // allocate vector with default capacity
     28vector_int vector_int_allocate( int reserve );                  // allocate vector with specified capacity
     29void vector_int_deallocate( vector_int );                               // deallocate vector's storage
    1530
    16 void reserve( vector_int *vec, int reserve );           // reserve more capacity
    17 void append( vector_int *vec, int element );            // add element to end of vector, resizing as necessary
     31void reserve( vector_int *vec, int reserve );                   // reserve more capacity
     32void append( vector_int *vec, int element );                    // add element to end of vector, resizing as necessary
    1833
    1934// implement bounded_array
    2035
    21 lvalue int ?[?]( vector_int vec, int index );           // access to arbitrary element (does not resize)
    22 int last( vector_int vec );                             // return last element
     36lvalue int ?[?]( vector_int vec, int index );                   // access to arbitrary element (does not resize)
     37int last( vector_int vec );                                                             // return last element
    2338
    2439#endif // VECTOR_INT_H
     40
     41// Local Variables: //
     42// tab-width: 4 //
     43// compile-command: "cfa vector_int.c" //
     44// End: //
  • src/examples/vector_test.c

    reb50842 r937e51d  
     1//
     2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
     3//
     4// The contents of this file are covered under the licence agreement in the
     5// file "LICENCE" distributed with Cforall.
     6//
     7// vector_test.c --
     8//
     9// Author           : Richard C. Bilson
     10// Created On       : Wed May 27 17:56:53 2015
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed May 27 18:42:55 2015
     13// Update Count     : 2
     14//
     15
    116#include "fstream.h"
    217#include "vector_int.h"
     
    520
    621int main() {
    7     ofstream *sout = ofstream_stdout();
    8     ifstream *sin = ifstream_stdin();
    9     vector_int vec = vector_int_allocate();
     22        ofstream *sout = ofstream_stdout();
     23        ifstream *sin = ifstream_stdin();
     24        vector_int vec = vector_int_allocate();
    1025
    11     // read in numbers until EOF or error
    12     int num;
     26        // read in numbers until EOF or error
     27        int num;
    1328
    14     sout << "enter N elements and C-d on a separate line:\n";
    15     for ( ;; ) {
     29        sout << "enter N elements and C-d on a separate line:\n";
     30        for ( ;; ) {
    1631        sin >> &num;
    17       if ( fail( sin ) || eof( sin ) ) break;
     32          if ( fail( sin ) || eof( sin ) ) break;
    1833        append( &vec, num );
    19     }
    20     // write out the numbers
     34        }
     35        // write out the numbers
    2136
    22     sout << "Array elements:\n";
    23 //    write_all( begin( vec ), end( vec ), sout );
    24 //    sout << "\n";
    25     for ( int index = 0; index <= last( vec ); index += 1 ) {
     37        sout << "Array elements:\n";
     38//      write_all( begin( vec ), end( vec ), sout );
     39//      sout << "\n";
     40        for ( int index = 0; index <= last( vec ); index += 1 ) {
    2641        sout << vec[ index ] << " ";
    27     }
    28     sout << "\n";
     42        }
     43        sout << "\n";
    2944#if 1
    30     sout << "Array elements reversed:\n";
    31     write_reverse( begin( vec ), end( vec ), sout );
    32     sout << "\n";
     45        sout << "Array elements reversed:\n";
     46        write_reverse( begin( vec ), end( vec ), sout );
     47        sout << "\n";
    3348#endif
    3449}
    3550
    3651// ../bin/cfa vector_test.c fstream.o iostream.o vector_int.o iterator.o array.o
     52
     53// Local Variables: //
     54// tab-width: 4 //
     55// compile-command: "cfa vector_test.c fstream.o iostream.o vector_int.o iterator.o array.o" //
     56// End: //
  • src/libcfa/prelude.cf

    reb50842 r937e51d  
    88// Created On       : Sat Nov 29 07:23:41 2014
    99// Last Modified By : Peter A. Buhr
    10 // Last Modified On : Mon May  4 17:21:02 2015
    11 // Update Count     : 70
     10// Last Modified On : Tue Jun  9 14:43:47 2015
     11// Update Count     : 75
    1212//
    1313
     
    407407const volatile void *   ?=?( const volatile void * volatile *, const volatile void * );
    408408
    409 forall( dtype DT ) DT *                 ?=?(                DT *          *, forall( dtype DT2 ) const DT2 * );
    410 forall( dtype DT ) DT *                 ?=?(                DT * volatile *, forall( dtype DT2 ) const DT2 * );
     409//forall( dtype DT ) DT *                       ?=?(                DT *          *, forall( dtype DT2 ) const DT2 * );
     410//forall( dtype DT ) DT *                       ?=?(                DT * volatile *, forall( dtype DT2 ) const DT2 * );
    411411forall( dtype DT ) const DT *           ?=?( const          DT *          *, forall( dtype DT2 ) const DT2 * );
    412412forall( dtype DT ) const DT *           ?=?( const          DT * volatile *, forall( dtype DT2 ) const DT2 * );
    413 forall( dtype DT ) volatile DT *        ?=?( volatile       DT *          *, forall( dtype DT2 ) const DT2 * );
    414 forall( dtype DT ) volatile DT *        ?=?( volatile       DT * volatile *, forall( dtype DT2 ) const DT2 * );
     413//forall( dtype DT ) volatile DT *      ?=?( volatile       DT *          *, forall( dtype DT2 ) const DT2 * );
     414//forall( dtype DT ) volatile DT *      ?=?( volatile       DT * volatile *, forall( dtype DT2 ) const DT2 * );
    415415forall( dtype DT ) const volatile DT *  ?=?( const volatile DT *          *, forall( dtype DT2 ) const DT2 * );
    416416forall( dtype DT ) const volatile DT *  ?=?( const volatile DT * volatile *, forall( dtype DT2 ) const DT2 * );
  • src/main.cc

    reb50842 r937e51d  
    1010// Created On       : Fri May 15 23:12:02 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu May 21 21:15:54 2015
    13 // Update Count     : 9
     12// Last Modified On : Mon Jun 22 17:02:11 2015
     13// Update Count     : 73
    1414//
    1515
     
    5151using namespace std;
    5252
     53#define OPTPRINT(x) \
     54        if ( errorp ) std::cerr << x << std::endl;
     55
     56void parse( FILE * input, LinkageSpec::Type t, bool shouldExit = false );
     57
    5358bool
    5459        astp = false,
     60        bresolvep = false,
    5561        exprp = false,
    5662        expraltp = false,
    5763        grammarp = false,
    5864        libcfap = false,
     65        nopreludep = false,
     66        protop = false,
     67        parsep = false,
    5968        resolvep = false,                                                                       // used in AlternativeFinder
    6069        symtabp = false,
    61         parsep = false,
    6270        validp = false,
    63         preludep = true,
    64         protop = false,
    65         codegenp = false,
    66         errorp = false;
    67 
    68 enum { Ast, Expr, ExprAlt, Grammar, LibCFA, Nopreamble, Prototypes, Resolver, Symbol, Parse, };
     71        errorp = false,
     72        codegenp = false;
     73
     74enum { Ast, Bresolver, Expr, ExprAlt, Grammar, LibCFA, Nopreamble, Parse, Prototypes, Resolver, Symbol, Validate, };
    6975
    7076static struct option long_opts[] = {
    7177        { "ast", no_argument, 0, Ast },
     78        { "before-resolver", no_argument, 0, Bresolver },
    7279        { "expr", no_argument, 0, Expr },
    7380        { "expralt", no_argument, 0, ExprAlt },
     
    7582        { "libcfa", no_argument, 0, LibCFA },
    7683        { "nopreamble", no_argument, 0, Nopreamble },
     84        { "parse", no_argument, 0, Parse },
    7785        { "prototypes", no_argument, 0, Prototypes },
    7886        { "resolver", no_argument, 0, Resolver },
    7987        { "symbol", no_argument, 0, Symbol },
    80         { "parse", no_argument, 0, Parse },
     88        { "validate", no_argument, 0, Validate },
    8189        { 0, 0, 0, 0 }
    8290};
     
    9199       
    92100        int c;
    93         while ( (c = getopt_long( argc, argv, "aefglnpqrsxyzD:", long_opts, &long_index )) != -1 ) {
     101        while ( (c = getopt_long( argc, argv, "abefglnpqrsvyzD:", long_opts, &long_index )) != -1 ) {
    94102                switch ( c ) {
    95103                  case Ast:
     
    97105                        astp = true;
    98106                        break;
     107                  case Bresolver:
     108                  case 'b':                                                                             // print before resolver steps
     109                        bresolvep = true;
     110                        break;
    99111                  case Expr:
    100112                  case 'e':                                                                             // dump AST after expression analysis
     
    115127                  case Nopreamble:
    116128                  case 'n':                                                                             // do not read preamble
    117                         preludep = false;
     129                        nopreludep = true;
    118130                        break;
    119131                  case Prototypes:
     
    133145                        symtabp = true;
    134146                        break;
    135                   case 'x':                                                                             // dump AST after decl validation pass
     147                  case 'v':                                                                             // dump AST after decl validation pass
    136148                        validp = true;
    137149                        break;
     
    153165
    154166        try {
     167                // choose to read the program from a file or stdin
    155168                if ( optind < argc ) {
    156169                        input = fopen( argv[ optind ], "r" );
     
    169182       
    170183                Parser::get_parser().set_debug( grammarp );
    171        
    172                 if ( preludep ) {                                                               // include gcc builtins
    173                         FILE *builtins = fopen( CFA_LIBDIR "/builtins.cf", "r" );
     184
     185                // read in the builtins and the prelude
     186                if ( ! nopreludep ) {                                                   // include gcc builtins
     187                        FILE * builtins = fopen( CFA_LIBDIR "/builtins.cf", "r" );
    174188                        if ( builtins == NULL ) {
    175                                 std::cout << "Error: can't open builtins" << std::endl;
     189                                std::cerr << "Error: can't open builtins" << std::endl;
    176190                                exit( 1 );
    177191                        } // if
    178          
    179                         Parser::get_parser().set_linkage( LinkageSpec::Compiler );
    180                         Parser::get_parser().parse( builtins );
    181        
    182                         if ( Parser::get_parser().get_parseStatus() != 0 ) {
    183                                 return Parser::get_parser().get_parseStatus();
     192
     193                        parse( builtins, LinkageSpec::Compiler );
     194
     195                        if ( ! libcfap ) {
     196                                // read the prelude in, if we're not generating the cfa library
     197                                FILE * prelude = fopen( CFA_LIBDIR "/prelude.cf", "r" );
     198                                if ( prelude == NULL ) {
     199                                        std::cerr << "Error: can't open prelude" << std::endl;
     200                                        exit( 1 );
     201                                } // if
     202                   
     203                    parse( prelude, LinkageSpec::Intrinsic );
    184204                        } // if
    185                         fclose( builtins );
    186 
    187                         FILE *prelude;
    188                         if ( libcfap ) {                                                        // include cfa prelude
    189                                 prelude = input;
    190                         } else {
    191                                 prelude = fopen( CFA_LIBDIR "/prelude.cf", "r" );
    192                         } // if
    193                         if ( prelude == NULL ) {
    194                                 std::cout << "Error: can't open prelude" << std::endl;
    195                                 exit( 1 );
    196                         } // if
    197          
    198                         Parser::get_parser().set_linkage( LinkageSpec::Intrinsic );
    199                         Parser::get_parser().parse( prelude );
    200        
    201                         if ( Parser::get_parser().get_parseStatus() != 0 ) {
    202                                 return Parser::get_parser().get_parseStatus();
    203                         } // if
    204                         fclose( prelude );
    205                 } // if
    206        
     205                } // if
     206
    207207                if ( libcfap ) {
    208                         std::list< Declaration* > translationUnit;
    209                         buildList( Parser::get_parser().get_parseTree(), translationUnit );
    210                         Parser::get_parser().freeTree();
    211                         SymTab::validate( translationUnit, false );
    212                         CodeGen::fixNames( translationUnit );
    213                         LibCfa::makeLibCfa( translationUnit );
    214                         ResolvExpr::resolve( translationUnit );
    215                         GenPoly::convertLvalue( translationUnit );
    216                         GenPoly::box( translationUnit );
    217                         CodeGen::generate( translationUnit, *output, true );
    218                         if ( output != &std::cout ) {
    219                                 delete output;
    220                         } // if
    221                         return 0;
    222                 } // if
    223        
    224                 Parser::get_parser().set_linkage( LinkageSpec::Cforall );
    225  
    226                 Parser::get_parser().parse( input );
    227                 if ( grammarp || Parser::get_parser().get_parseStatus() != 0 ) {
    228                         return Parser::get_parser().get_parseStatus();
    229                 } // if
    230                 fclose( input );
     208                        parse( input, LinkageSpec::Intrinsic );
     209                } else {
     210                        parse( input, LinkageSpec::Cforall, grammarp );
     211                }
    231212 
    232213                if ( parsep ) {
     
    244225                } // if
    245226
     227                // add the assignment statement after the
     228                // initialization of a type parameter
     229                OPTPRINT( "tweak" )
     230                InitTweak::tweak( translationUnit );
     231                OPTPRINT( "validate" )
     232                SymTab::validate( translationUnit, symtabp );
     233                if ( symtabp ) {
     234                        return 0;
     235                } // if
     236
    246237                if ( expraltp ) {
    247                         SymTab::validate( translationUnit, false );
    248238                        ResolvExpr::AlternativePrinter printer( std::cout );
    249239                        acceptAll( translationUnit, printer );
     
    251241                } // if
    252242
    253                 if ( symtabp ) {
    254                         SymTab::validate( translationUnit, true );
    255                         return 0;
    256                 } // if
    257 
    258243                if ( validp ) {
    259                         SymTab::validate( translationUnit, false );
    260                         printAll( translationUnit, std::cout );
    261                         return 0;
    262                 } // if
    263 
     244                        printAll( translationUnit, std::cout );
     245                        return 0;
     246                } // if
     247
     248                OPTPRINT( "mutate" )
     249                ControlStruct::mutate( translationUnit );
     250                OPTPRINT( "fixNames" )
     251                CodeGen::fixNames( translationUnit );
     252
     253                if ( libcfap ) {
     254                        protop = true;
     255                        // generate the bodies of cfa library functions
     256                        LibCfa::makeLibCfa( translationUnit );
     257                } // if
     258
     259                if ( bresolvep ) {
     260                        printAll( translationUnit, std::cout );
     261                        return 0;
     262                } // if
     263
     264                OPTPRINT( "resolve" )
     265                ResolvExpr::resolve( translationUnit );
    264266                if ( exprp ) {
    265                         InitTweak::tweak( translationUnit );
    266                         SymTab::validate( translationUnit, false );
    267                         ControlStruct::mutate( translationUnit );
    268                         CodeGen::fixNames( translationUnit );
    269                         ResolvExpr::resolve( translationUnit );
    270                         printAll( translationUnit, std::cout );
    271                         return 0;
    272                 } // if
    273 
     267                        printAll( translationUnit, std::cout );
     268                }
     269
     270                OPTPRINT( "copyParams" );
     271                GenPoly::copyParams( translationUnit );
     272                OPTPRINT( "convertSpecializations" )
     273                GenPoly::convertSpecializations( translationUnit );             
     274                OPTPRINT( "convertLvalue" )
     275                GenPoly::convertLvalue( translationUnit );
     276                OPTPRINT( "box" )
     277                GenPoly::box( translationUnit );
     278
     279    // print the tree right before code generation
    274280                if ( codegenp ) {
    275                         // print the tree right before code generation
    276                         cerr << "tweak" << endl;
    277                         InitTweak::tweak( translationUnit );
    278                         cerr << "validate" << endl;
    279                         SymTab::validate( translationUnit, false );
    280                         cerr << "mutate" << endl;
    281                         ControlStruct::mutate( translationUnit );
    282                         cerr << "fixNames" << endl;
    283                         CodeGen::fixNames( translationUnit );
    284                         cerr << "resolve" << endl;
    285                         ResolvExpr::resolve( translationUnit );
    286                         cerr << "copyParams" << endl;
    287                         GenPoly::copyParams( translationUnit );
    288                         cerr << "convertSpecializations" << endl;
    289                         GenPoly::convertSpecializations( translationUnit );
    290                         cerr << "convertLvalue" << endl;
    291                         GenPoly::convertLvalue( translationUnit );
    292                         cerr << "box" << endl;
    293                         GenPoly::box( translationUnit );
    294                         if ( errorp ) {
    295                                 printAll( translationUnit, std::cout );
    296                         }
    297                         return 0;
    298                 } // if
    299 
    300                 // add the assignment statement after the
    301                 // initialization of a type parameter
    302                 InitTweak::tweak( translationUnit );
    303 
    304                 //std::cerr << "before validate" << std::endl;
    305                 SymTab::validate( translationUnit, false );
    306                 //Try::visit( translationUnit );
    307                 //Tuples::mutate( translationUnit );
    308                 //InitTweak::mutate( translationUnit );
    309                 //std::cerr << "before mutate" << std::endl;
    310                 ControlStruct::mutate( translationUnit );
    311                 //std::cerr << "before fixNames" << std::endl;
    312                 CodeGen::fixNames( translationUnit );
    313                 //std::cerr << "before resolve" << std::endl;
    314                 ResolvExpr::resolve( translationUnit );
    315                 //Tuples::checkFunctions( translationUnit );
    316                 //        std::cerr << "Finished tuple checkfunctions" << std::endl;
    317                 //printAll( translationUnit, std::cerr );
    318                 //std::cerr << "before copyParams" << std::endl;
    319                 GenPoly::copyParams( translationUnit );
    320                 //std::cerr << "before convertSpecializations" << std::endl;
    321                 GenPoly::convertSpecializations( translationUnit );
    322                 //std::cerr << "before convertLvalue" << std::endl;
    323                 GenPoly::convertLvalue( translationUnit );
    324                 //std::cerr << "before box" << std::endl;
    325                 GenPoly::box( translationUnit );
    326                 //Tuples::mutate( translationUnit );
     281                        printAll( translationUnit, std::cout );
     282                        return 0;
     283                } // if
    327284
    328285                CodeGen::generate( translationUnit, *output, protop );
     
    331288                        delete output;
    332289                } // if
    333 
    334290        } catch ( SemanticError &e ) {
    335291                if ( errorp ) {
    336                         printAll( translationUnit, std::cout );
     292                        printAll( translationUnit, std::cerr );
    337293                }
    338                 e.print( cout );
     294                e.print( std::cerr );
    339295                if ( output != &std::cout ) {
    340296                        delete output;
     
    359315} // main
    360316
     317void parse( FILE * input, LinkageSpec::Type linkage, bool shouldExit ) {
     318        Parser::get_parser().set_linkage( linkage );
     319        Parser::get_parser().parse( input );
     320
     321        fclose( input );
     322        if ( shouldExit || Parser::get_parser().get_parseStatus() != 0 ) {
     323                exit( Parser::get_parser().get_parseStatus() );
     324        } // if
     325}
     326
    361327// Local Variables: //
    362328// tab-width: 4 //
Note: See TracChangeset for help on using the changeset viewer.