Changeset a32b204 for translator/Tuples


Ignore:
Timestamp:
May 17, 2015, 1:19:35 PM (11 years ago)
Author:
Peter A. Buhr <pabuhr@…>
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, stuck-waitfor-destruct, with_gc
Children:
0dd3a2f
Parents:
b87a5ed
Message:

licencing: second groups of files

Location:
translator/Tuples
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • translator/Tuples/AssignExpand.cc

    rb87a5ed ra32b204  
    2424    CompoundStmt *newSt = 0;
    2525    if (! extra.empty() ) {
    26       if ( !newSt )
     26      if ( ! newSt )
    2727        newSt= new CompoundStmt(std::list<Label>());
    2828
     
    3131
    3232    if (! extra2.empty() ) {
    33       if ( !newSt )
     33      if ( ! newSt )
    3434        newSt= new CompoundStmt(std::list<Label>());
    3535
     
    3838
    3939    if (! replace.empty() ) {
    40       if ( !newSt )
     40      if ( ! newSt )
    4141        newSt= new CompoundStmt(std::list<Label>());
    4242
     
    4545    }
    4646
    47     if( newSt ) return newSt; else return exprStmt;
     47    if ( newSt ) return newSt; else return exprStmt;
    4848  }
    4949
     
    7272                   tupleExpr->get_type() == SolvedTupleExpr::MASS ) */ {
    7373      std::list<Expression *> &comps = tupleExpr->get_exprs();
    74       for( std::list<Expression *>::iterator i = comps.begin(); i != comps.end(); ++i ) {
     74      for ( std::list<Expression *>::iterator i = comps.begin(); i != comps.end(); ++i ) {
    7575        std::list<Statement *> decls;
    7676        std::list<Statement *> temps;
    7777        std::list<Statement *> assigns;
    78         if( ApplicationExpr *app = dynamic_cast< ApplicationExpr * >(*i) ) {
     78        if ( ApplicationExpr *app = dynamic_cast< ApplicationExpr * >(*i) ) {
    7979          assert( app->get_args().size() == 2 );
    8080
  • translator/Tuples/FunctionChecker.cc

    rb87a5ed ra32b204  
    2323
    2424  FunctionChecker::FunctionChecker( bool _topLevel, UniqueName *_nameGen ) : topLevel( _topLevel ), nameGen( _nameGen ) {
    25     if( topLevel) {
    26       assert( !nameGen );
     25    if ( topLevel) {
     26      assert( ! nameGen );
    2727      nameGen = new UniqueName("_MVR_");
    2828    } else
     
    3131
    3232  FunctionChecker::~FunctionChecker() {
    33     if( topLevel) {
     33    if ( topLevel) {
    3434      delete nameGen;
    3535      nameGen = 0;
     
    3939  Statement* FunctionChecker::mutate(ExprStmt *exprStmt) {
    4040    exprStmt->set_expr( maybeMutate( exprStmt->get_expr(), *this ) );
    41     if ( !tempExpr.empty() ) {
    42       assert ( !temporaries.empty() );
     41    if ( ! tempExpr.empty() ) {
     42      assert ( ! temporaries.empty() );
    4343      CompoundStmt *newBlock = new CompoundStmt( std::list< Label >() );
    4444      // declarations
    45       for( std::list< ObjectDecl *>::iterator d = temporaries.begin(); d != temporaries.end(); ++d )
     45      for ( std::list< ObjectDecl *>::iterator d = temporaries.begin(); d != temporaries.end(); ++d )
    4646        newBlock->get_kids().push_back( new DeclStmt( std::list<Label>(), *d ) );
    4747      // new expression statements
    48       for( std::list< Expression *>::iterator e = tempExpr.begin(); e != tempExpr.end(); ++e )
     48      for ( std::list< Expression *>::iterator e = tempExpr.begin(); e != tempExpr.end(); ++e )
    4949        newBlock->get_kids().push_back( new ExprStmt( std::list<Label>(), *e ) );
    5050
     
    6969
    7070    std::list< Expression * > newArgs;
    71     for( std::list< Expression *>::iterator e = applicationExpr->get_args().begin(); e != applicationExpr->get_args().end(); ++e ) {
     71    for ( std::list< Expression *>::iterator e = applicationExpr->get_args().begin(); e != applicationExpr->get_args().end(); ++e ) {
    7272      FunctionChecker rec( false, nameGen );
    7373      (*e)->acceptMutator( rec );
    7474
    75       if ( !rec.temporaries.empty() ) {
     75      if ( ! rec.temporaries.empty() ) {
    7676        TupleExpr *lhs = new TupleExpr;
    7777        std::list< Expression * > &tmem = lhs->get_exprs();
    78         for( std::list<ObjectDecl *>::iterator d = rec.temporaries.begin();  d != rec.temporaries.end(); ++d ) {
     78        for ( std::list<ObjectDecl *>::iterator d = rec.temporaries.begin();  d != rec.temporaries.end(); ++d ) {
    7979          tmem.push_back( new VariableExpr( *d ) );
    8080          newArgs.push_back( new VariableExpr( *d ) );
     
    100100
    101101  Expression* TupleDistrib::mutate(UntypedExpr *expr) {
    102     if(  NameExpr *assgnop = dynamic_cast< NameExpr * >(expr->get_function()) ) {
    103       if( assgnop->get_name() == std::string("?=?") ) {
     102    if (  NameExpr *assgnop = dynamic_cast< NameExpr * >(expr->get_function()) ) {
     103      if ( assgnop->get_name() == std::string("?=?") ) {
    104104        std::list<Expression *> &args = expr->get_args();
    105105        assert(args.size() == 2);
    106106        //if args.front() points to a tuple and if args.back() is already resolved
    107         if( AddressExpr *addr = dynamic_cast<AddressExpr *>(args.front()) )
    108           if( TupleExpr *lhs = dynamic_cast<TupleExpr *>(addr->get_arg()) )
    109             if( ApplicationExpr *rhs = dynamic_cast<ApplicationExpr *>( args.back() ) ) {
     107        if ( AddressExpr *addr = dynamic_cast<AddressExpr *>(args.front()) )
     108          if ( TupleExpr *lhs = dynamic_cast<TupleExpr *>(addr->get_arg()) )
     109            if ( ApplicationExpr *rhs = dynamic_cast<ApplicationExpr *>( args.back() ) ) {
    110110              for ( std::list<Expression *>::iterator tc = lhs->get_exprs().begin(); tc != lhs->get_exprs().end(); ++tc )
    111111                rhs->get_args().push_back( new AddressExpr( *tc ) );
  • translator/Tuples/FunctionFixer.cc

    rb87a5ed ra32b204  
    4040    Expression *rhs = 0;
    4141    // also check if returning multiple values
    42     if( CastExpr *cst = dynamic_cast<CastExpr *>( retStmt->get_expr() ) ) {
    43       if( ApplicationExpr *app = dynamic_cast<ApplicationExpr *>( cst->get_arg() ) ) {
    44         if( app->get_results().size() > 1 ) { // doesn't need to be ApplicationExpr
     42    if ( CastExpr *cst = dynamic_cast<CastExpr *>( retStmt->get_expr() ) ) {
     43      if ( ApplicationExpr *app = dynamic_cast<ApplicationExpr *>( cst->get_arg() ) ) {
     44        if ( app->get_results().size() > 1 ) { // doesn't need to be ApplicationExpr
    4545          tupleReturn = true;
    4646          rhs = app;
    4747        }
    48       } else if( TupleExpr *t = dynamic_cast<TupleExpr *>( cst->get_arg() ) ) {
     48      } else if ( TupleExpr *t = dynamic_cast<TupleExpr *>( cst->get_arg() ) ) {
    4949        tupleReturn = true;
    5050        assert( rets.size() == t->get_exprs().size() ); // stupid check, resolve expression
     
    5252      }
    5353
    54       if( tupleReturn ) {
     54      if ( tupleReturn ) {
    5555        assert ( rhs != 0 );
    5656        std::list< Expression * > lhs;
    57         for( std::list< DeclarationWithType * >::iterator d = rets.begin(); d != rets.end(); ++d ) {
     57        for ( std::list< DeclarationWithType * >::iterator d = rets.begin(); d != rets.end(); ++d ) {
    5858          std::list<Expression *> largs;
    5959          largs.push_back(new VariableExpr( *d ));
     
    8181    if ( rets.empty() ) return variableExpr;
    8282    mutateAll( variableExpr->get_results(), *this );
    83     if( std::find( rets.begin(), rets.end(), variableExpr->get_var() ) != rets.end() )
     83    if ( std::find( rets.begin(), rets.end(), variableExpr->get_var() ) != rets.end() )
    8484//      if ( PointerType *ptr = dynamic_cast<PointerType *>(variableExpr->get_var()->get_type()) ) {
    8585      if ( dynamic_cast<PointerType *>(variableExpr->get_var()->get_type()) != 0 ) {
     
    8888          Expression *expr = ResolvExpr::resolveInVoidContext( /*new CastExpr(*/new UntypedExpr( new NameExpr( "*?" ), largs )/*,
    8989                                                                                                                                 ptr->get_base()),*/, index);
    90           if( ApplicationExpr *app = dynamic_cast< ApplicationExpr * >( expr ) ) {
     90          if ( ApplicationExpr *app = dynamic_cast< ApplicationExpr * >( expr ) ) {
    9191            assert( app->get_args().size() == 1 );
    9292            app->get_args().pop_front();
  • translator/Tuples/MultRet.cc

    rb87a5ed ra32b204  
    3535      // copy variables
    3636      Statements &vars = toplevel.getVars()->get_kids();
    37       for( Statements::iterator i = vars.begin(); i != vars.end(); i++ )
     37      for ( Statements::iterator i = vars.begin(); i != vars.end(); i++ )
    3838        code->get_kids().push_back( *i );
    3939
    4040      // copy statements
    4141      Statements &block = toplevel.getCode()->get_kids();
    42       for( Statements::iterator i = block.begin(); i != block.end(); i++ )
     42      for ( Statements::iterator i = block.begin(); i != block.end(); i++ )
    4343        code->get_kids().push_back( *i );
    4444
     
    6666      mulretp = true;
    6767
    68       if( newVars == 0 )
     68      if ( newVars == 0 )
    6969        newVars = new CompoundStmt( std::list<Label>(0) );
    7070
     
    8181    Exprs &args = appExpr->get_args();
    8282    std::list< Expression * > newArgs;
    83     for( Exprs::iterator i = args.begin(); i != args.end(); i++ ) {
     83    for ( Exprs::iterator i = args.begin(); i != args.end(); i++ ) {
    8484      MVRMutator next;
    8585      Expression *mutated = (*i)->acceptMutator( next );
     
    9393        if (newVars == 0)
    9494          newVars = new CompoundStmt( std::list< Label >() );
    95         for( Stmts::iterator i = vars.begin(); i != vars.end(); i++ )  // std::splice? -- need to append lists
     95        for ( Stmts::iterator i = vars.begin(); i != vars.end(); i++ )  // std::splice? -- need to append lists
    9696          newVars->get_kids().push_back( *i );
    9797
    9898        if (newCode == 0)
    9999          newCode = new CompoundStmt( std::list< Label >() );
    100         for( Stmts::iterator i = block.begin(); i != block.end(); i++ )
     100        for ( Stmts::iterator i = block.begin(); i != block.end(); i++ )
    101101          newCode->get_kids().push_back( *i );
    102102
     
    105105      if ( next.hasResults() ) {
    106106        Exprs &res = next.get_results();
    107         for( Exprs::iterator i = res.begin(); i != res.end(); i++ )
     107        for ( Exprs::iterator i = res.begin(); i != res.end(); i++ )
    108108          newArgs.push_back( *i );
    109109      } else
     
    117117      // add 'out' parameters
    118118      if ( ! argsToAdd.empty() )
    119         for(std::list< Expression *>::iterator i = argsToAdd.begin(); i != argsToAdd.end(); i++)
     119        for (std::list< Expression *>::iterator i = argsToAdd.begin(); i != argsToAdd.end(); i++)
    120120          (appExpr->get_args()).push_back( *i );
    121121      // clear 'out' parameters ( so that the list can be reused -- substitute by auto_ptr later? )
  • translator/Tuples/NameMatcher.cc

    rb87a5ed ra32b204  
    66    : current( 0 ) {
    77    int cnt = 0;
    8     for( std::list< DeclarationWithType *>::const_iterator f = formals.begin(); f != formals.end(); ++f ) {
     8    for ( std::list< DeclarationWithType *>::const_iterator f = formals.begin(); f != formals.end(); ++f ) {
    99      table.insert( std::pair< std::string, int >( (*f)->get_name(), cnt++ ) );
    1010      index.push_back(*f);
     
    1616
    1717  void NameMatcher::match( ResolvExpr::AltList &alternatives ) throw (NoMatch) {
    18     if( alternatives.size() != index.size() )
     18    if ( alternatives.size() != index.size() )
    1919      throw NoMatch("Length of actuals and formals differ");
    2020
    21     for( ResolvExpr::AltList::const_iterator a = alternatives.begin(); a != alternatives.end(); ++a ) {
    22       if( a->expr->get_argName() != 0 )
     21    for ( ResolvExpr::AltList::const_iterator a = alternatives.begin(); a != alternatives.end(); ++a ) {
     22      if ( a->expr->get_argName() != 0 )
    2323        if ( NameExpr *name = dynamic_cast<NameExpr *>( a->expr->get_argName() ) ) {
    2424          if ( table.find( name->get_name() ) != table.end() ) {
     
    2727          } else
    2828            throw NoMatch( name->get_name() + "no such  designation" );
    29         } /*else if( TupleExpr *tup = dynamic_cast<TupleExpr *>( a->expr->get_argName() ) )
     29        } /*else if ( TupleExpr *tup = dynamic_cast<TupleExpr *>( a->expr->get_argName() ) )
    3030            std::cerr << "Designated expression" << std::endl; */
    3131      exprs.push_back( &(*a) );
     
    4141
    4242  ResolvExpr::Alternative &NameMatcher::get_next() throw (NoMoreElements) {
    43     if( current++ >= (int)(index.size()) )
     43    if ( current++ >= (int)(index.size()) )
    4444      throw NoMoreElements();
    4545    return *(new ResolvExpr::Alternative());
  • translator/Tuples/TupleAssignment.cc

    rb87a5ed ra32b204  
    1919  bool TupleAssignSpotter::pointsToTuple( Expression *expr ) {
    2020    // also check for function returning tuple of reference types
    21     if(AddressExpr *addr = dynamic_cast<AddressExpr *>(expr) )
    22       if( isTuple(addr->get_arg() ) )
     21    if (AddressExpr *addr = dynamic_cast<AddressExpr *>(expr) )
     22      if ( isTuple(addr->get_arg() ) )
    2323        return true;
    2424    return false;
     
    2626
    2727  bool TupleAssignSpotter::isTupleVar( DeclarationWithType *decl ) {
    28     if( dynamic_cast<TupleType *>(decl->get_type()) )
     28    if ( dynamic_cast<TupleType *>(decl->get_type()) )
    2929      return true;
    3030    return false;
     
    3333  bool TupleAssignSpotter::isTuple( Expression *expr, bool isRight ) {
    3434    // true if `expr' is an expression returning a tuple: tuple, tuple variable or MRV function
    35     if ( !expr ) return false;
    36 
    37     if( dynamic_cast<TupleExpr *>(expr) )
    38       return true;
    39     else if( VariableExpr *var = dynamic_cast<VariableExpr *>(expr) ) {
    40       if( isTupleVar(var->get_var()) )
     35    if ( ! expr ) return false;
     36
     37    if ( dynamic_cast<TupleExpr *>(expr) )
     38      return true;
     39    else if ( VariableExpr *var = dynamic_cast<VariableExpr *>(expr) ) {
     40      if ( isTupleVar(var->get_var()) )
    4141        return true;
    4242    }
     
    5252      return false;
    5353
    54     if( new_assigns.empty() ) return false;
     54    if ( new_assigns.empty() ) return false;
    5555    /*return */matcher->solve( new_assigns );
    56     if( dynamic_cast<TupleAssignSpotter::MultipleAssignMatcher *>( matcher ) ) {
     56    if ( dynamic_cast<TupleAssignSpotter::MultipleAssignMatcher *>( matcher ) ) {
    5757      // now resolve new assignments
    5858      std::list< Expression * > solved_assigns;
     
    6161
    6262      ResolvExpr::AltList current;
    63       for( std::list< Expression * >::iterator i = new_assigns.begin(); i != new_assigns.end(); ++i ) {
     63      for ( std::list< Expression * >::iterator i = new_assigns.begin(); i != new_assigns.end(); ++i ) {
    6464        //try {
    6565        ResolvExpr::AlternativeFinder finder( currentFinder->get_indexer(), currentFinder->get_environ() );
     
    8080      return true;
    8181    } else { // mass assignment
    82       //if( new_assigns.empty() ) return false;
     82      //if ( new_assigns.empty() ) return false;
    8383      std::list< Expression * > solved_assigns;
    8484      ResolvExpr::AltList solved_alts;
     
    8787      ResolvExpr::AltList current;
    8888      if ( optMass.empty() ) {
    89         for( std::list< Expression * >::size_type i = 0; i != new_assigns.size(); ++i )
     89        for ( std::list< Expression * >::size_type i = 0; i != new_assigns.size(); ++i )
    9090          optMass.push_back( ResolvExpr::AltList() );
    9191      }
    9292      int cnt = 0;
    93       for( std::list< Expression * >::iterator i = new_assigns.begin(); i != new_assigns.end(); ++i, cnt++ ) {
     93      for ( std::list< Expression * >::iterator i = new_assigns.begin(); i != new_assigns.end(); ++i, cnt++ ) {
    9494
    9595        ResolvExpr::AlternativeFinder finder( currentFinder->get_indexer(), currentFinder->get_environ() );
     
    110110
    111111  bool TupleAssignSpotter::isMVR( Expression *expr ) {
    112     if( expr->get_results().size() > 1 ) {
     112    if ( expr->get_results().size() > 1 ) {
    113113      // MVR processing
    114114      return true;
     
    118118
    119119  bool TupleAssignSpotter::isTupleAssignment( UntypedExpr * expr, std::list<ResolvExpr::AltList> &possibilities ) {
    120     if(  NameExpr *assgnop = dynamic_cast< NameExpr * >(expr->get_function()) ) {
    121 
    122       if( assgnop->get_name() == std::string("?=?") ) {
    123 
    124         for( std::list<ResolvExpr::AltList>::iterator ali = possibilities.begin(); ali != possibilities.end(); ++ali ) {
     120    if (  NameExpr *assgnop = dynamic_cast< NameExpr * >(expr->get_function()) ) {
     121
     122      if ( assgnop->get_name() == std::string("?=?") ) {
     123
     124        for ( std::list<ResolvExpr::AltList>::iterator ali = possibilities.begin(); ali != possibilities.end(); ++ali ) {
    125125          assert( ali->size() == 2 );
    126126          ResolvExpr::AltList::iterator opit = ali->begin();
    127127          ResolvExpr::Alternative op1 = *opit, op2 = *(++opit);
    128128
    129           if( pointsToTuple(op1.expr) ) { // also handles tuple vars
     129          if ( pointsToTuple(op1.expr) ) { // also handles tuple vars
    130130            if ( isTuple( op2.expr, true ) )
    131131              matcher = new MultipleAssignMatcher(op1.expr, op2.expr);
    132             else if( isMVR( op2.expr ) ) {
     132            else if ( isMVR( op2.expr ) ) {
    133133              // handle MVR differently
    134134            } else
     
    137137
    138138            std::list< ResolvExpr::AltList > options;
    139             if( match() )
     139            if ( match() )
    140140              /*
    141               if( hasMatched ) {
     141              if ( hasMatched ) {
    142142                // throw SemanticError("Ambiguous tuple assignment");
    143143              } else {*/
     
    150150        }
    151151
    152         if( hasMatched ) {
    153           if( dynamic_cast<TupleAssignSpotter::MultipleAssignMatcher *>( matcher ) ) {
     152        if ( hasMatched ) {
     153          if ( dynamic_cast<TupleAssignSpotter::MultipleAssignMatcher *>( matcher ) ) {
    154154            //options.print( std::cerr );
    155155            std::list< ResolvExpr::AltList >best = options.get_best();
    156             if( best.size() == 1 ) {
     156            if ( best.size() == 1 ) {
    157157              std::list<Expression *> solved_assigns;
    158               for( ResolvExpr::AltList::iterator i = best.front().begin(); i != best.front().end(); ++i ){
     158              for ( ResolvExpr::AltList::iterator i = best.front().begin(); i != best.front().end(); ++i ){
    159159                solved_assigns.push_back( i->expr );
    160160              }
     
    165165            assert(! optMass.empty() );
    166166            ResolvExpr::AltList winners;
    167             for( std::vector< ResolvExpr::AltList >::iterator i = optMass.begin(); i != optMass.end(); ++i )
     167            for ( std::vector< ResolvExpr::AltList >::iterator i = optMass.begin(); i != optMass.end(); ++i )
    168168              findMinCostAlt( i->begin(), i->end(), back_inserter(winners) );
    169169
    170170            std::list< Expression *> solved_assigns;
    171             for( ResolvExpr::AltList::iterator i = winners.begin(); i != winners.end(); ++i )
     171            for ( ResolvExpr::AltList::iterator i = winners.begin(); i != winners.end(); ++i )
    172172              solved_assigns.push_back( i->expr );
    173173            currentFinder->get_alternatives().push_front( ResolvExpr::Alternative(new SolvedTupleExpr(solved_assigns/*, SolvedTupleExpr::MASS*/), currentFinder->get_environ(), ResolvExpr::Cost() ) );
     
    181181  void TupleAssignSpotter::Matcher::init( Expression *_lhs, Expression *_rhs ) {
    182182    lhs.clear();
    183     if(AddressExpr *addr = dynamic_cast<AddressExpr *>(_lhs) )
    184       if( TupleExpr *tuple = dynamic_cast<TupleExpr *>(addr->get_arg()) )
     183    if (AddressExpr *addr = dynamic_cast<AddressExpr *>(_lhs) )
     184      if ( TupleExpr *tuple = dynamic_cast<TupleExpr *>(addr->get_arg()) )
    185185        std::copy( tuple->get_exprs().begin(), tuple->get_exprs().end(), back_inserter(lhs) );
    186186
     
    195195    init(_lhs,_rhs);
    196196
    197     if( TupleExpr *tuple = dynamic_cast<TupleExpr *>(_rhs) )
     197    if ( TupleExpr *tuple = dynamic_cast<TupleExpr *>(_rhs) )
    198198      std::copy( tuple->get_exprs().begin(), tuple->get_exprs().end(), back_inserter(rhs) );
    199199  }
     
    211211    if ( lhs.empty() || (rhs.size() != 1) ) return false;
    212212
    213     for( std::list< Expression * >::iterator l = lhs.begin(); l != lhs.end(); l++ ) {
     213    for ( std::list< Expression * >::iterator l = lhs.begin(); l != lhs.end(); l++ ) {
    214214      std::list< Expression * > args;
    215215      args.push_back( new AddressExpr(*l) );
     
    229229    ResolvExpr::AltList current;
    230230    if ( optMass.empty() ) {
    231       for( std::list< Expression * >::size_type i = 0; i != new_assigns.size(); ++i )
     231      for ( std::list< Expression * >::size_type i = 0; i != new_assigns.size(); ++i )
    232232        optMass.push_back( ResolvExpr::AltList() );
    233233    }
    234234    int cnt = 0;
    235     for( std::list< Expression * >::iterator i = new_assigns.begin(); i != new_assigns.end(); ++i, cnt++ ) {
     235    for ( std::list< Expression * >::iterator i = new_assigns.begin(); i != new_assigns.end(); ++i, cnt++ ) {
    236236
    237237      ResolvExpr::AlternativeFinder finder( currentFinder->get_indexer(), currentFinder->get_environ() );
     
    250250  bool TupleAssignSpotter::MultipleAssignMatcher::match( std::list< Expression * > &out ) {
    251251    // need more complicated matching
    252     if( lhs.size() == rhs.size() ) {
     252    if ( lhs.size() == rhs.size() ) {
    253253      zipWith( lhs.begin(), lhs.end(), rhs.begin(), rhs.end(), back_inserter(out), TupleAssignSpotter::Matcher::createAssgn );
    254254      return true;
     
    265265
    266266    ResolvExpr::AltList current;
    267     for( std::list< Expression * >::iterator i = new_assigns.begin(); i != new_assigns.end(); ++i ) {
     267    for ( std::list< Expression * >::iterator i = new_assigns.begin(); i != new_assigns.end(); ++i ) {
    268268      //try {
    269269      ResolvExpr::AlternativeFinder finder( currentFinder->get_indexer(), currentFinder->get_environ() );
     
    297297    // transpose matrix
    298298    if ( costMatrix.empty() )
    299       for( unsigned int i = 0; i< opt.size(); ++i)
     299      for ( unsigned int i = 0; i< opt.size(); ++i)
    300300        costMatrix.push_back( vector<ResolvExpr::Cost>() );
    301301
    302302    int cnt = 0;
    303     for( ResolvExpr::AltList::iterator i = opt.begin(); i != opt.end(); ++i, cnt++ )
     303    for ( ResolvExpr::AltList::iterator i = opt.begin(); i != opt.end(); ++i, cnt++ )
    304304      costMatrix[cnt].push_back( i->cost );
    305305
     
    312312    list< ResolvExpr::AltList > ret;
    313313    list< multiset<int> > solns;
    314     for( vector< vector<Cost> >::iterator i = costMatrix.begin(); i != costMatrix.end(); ++i ) {
     314    for ( vector< vector<Cost> >::iterator i = costMatrix.begin(); i != costMatrix.end(); ++i ) {
    315315      list<int> current;
    316316      findMinCost( i->begin(), i->end(), back_inserter(current) );
     
    320320    multiset<int> result;
    321321    lift_intersection( solns.begin(), solns.end(), inserter( result, result.begin() ) );
    322     if( result.size() != 1 )
     322    if ( result.size() != 1 )
    323323      throw SemanticError("Ambiguous tuple expression");
    324324    ret.push_back(get_option( *(result.begin() )));
     
    329329    using namespace std;
    330330
    331     for( vector< vector < ResolvExpr::Cost > >::iterator i = costMatrix.begin(); i != costMatrix.end(); ++i ) {
    332       for( vector < ResolvExpr::Cost >::iterator j = i->begin(); j != i->end(); ++j )
     331    for ( vector< vector < ResolvExpr::Cost > >::iterator i = costMatrix.begin(); i != costMatrix.end(); ++i ) {
     332      for ( vector < ResolvExpr::Cost >::iterator j = i->begin(); j != i->end(); ++j )
    333333        ostr << *j << " " ;
    334334      ostr << std::endl;
     
    352352    Cost minCost = Cost::infinity;
    353353    unsigned int index = 0;
    354     for( InputIterator i = begin; i != end; ++i, index++ ) {
    355       if( *i < minCost ) {
     354    for ( InputIterator i = begin; i != end; ++i, index++ ) {
     355      if ( *i < minCost ) {
    356356        minCost = *i;
    357357        alternatives.clear();
    358358        alternatives.push_back( index );
    359       } else if( *i == minCost ) {
     359      } else if ( *i == minCost ) {
    360360        alternatives.push_back( index );
    361361      }
     
    366366  template< class InputIterator, class OutputIterator >
    367367  void TupleAssignSpotter::Options::lift_intersection( InputIterator begin, InputIterator end, OutputIterator out ){
    368     if( begin == end ) return;
     368    if ( begin == end ) return;
    369369    InputIterator test = begin;
    370370
    371     if(++test == end)
     371    if (++test == end)
    372372      { copy(begin->begin(), begin->end(), out); return; }
    373373
     
    376376    copy( begin->begin(), begin->end(), inserter( cur, cur.begin() ) );
    377377
    378     while( test != end ) {
     378    while ( test != end ) {
    379379      std::multiset<int> temp;
    380380      set_intersection( cur.begin(), cur.end(), test->begin(), test->end(), inserter(temp,temp.begin()) );
     
    390390
    391391  ResolvExpr::AltList TupleAssignSpotter::Options::get_option( std::list< ResolvExpr::AltList >::size_type index ) {
    392     if( index >= options.size() )
     392    if ( index >= options.size() )
    393393      throw 0; // XXX
    394394    std::list< ResolvExpr::AltList >::iterator it = options.begin();
    395     for( std::list< ResolvExpr::AltList >::size_type i = 0; i < index; ++i, ++it );
     395    for ( std::list< ResolvExpr::AltList >::size_type i = 0; i < index; ++i, ++it );
    396396    return *it;
    397397  }
  • translator/Tuples/TupleAssignment.h

    rb87a5ed ra32b204  
    102102    // select the alternatives that have the minimum parameter cost
    103103    Cost minCost = Cost::infinity;
    104     for( AltList::iterator i = begin; i != end; ++i ) {
    105       if( i->cost < minCost ) {
     104    for ( AltList::iterator i = begin; i != end; ++i ) {
     105      if ( i->cost < minCost ) {
    106106        minCost = i->cost;
    107107        i->cost = i->cvtCost;
    108108        alternatives.clear();
    109109        alternatives.push_back( *i );
    110       } else if( i->cost == minCost ) {
     110      } else if ( i->cost == minCost ) {
    111111        i->cost = i->cvtCost;
    112112        alternatives.push_back( *i );
Note: See TracChangeset for help on using the changeset viewer.