Ignore:
Timestamp:
Jan 7, 2015, 6:04:42 PM (10 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, with_gc
Children:
0b8cd722
Parents:
d9a0e76
Message:

fixed restrict, fixed parameter copy, introduced name table for types, changed variable after to string

File:
1 edited

Legend:

Unmodified
Added
Removed
  • translator/ResolvExpr/Resolver.cc

    rd9a0e76 r17cd4eb  
    4747            (*i)->print( std::cerr );
    4848            (*i)->accept( resolver );
    49         }
     49        } // for
    5050#endif
    5151    }
     
    8181                for ( std::list< Alternative >::const_iterator i = finder.get_alternatives().begin(); i != finder.get_alternatives().end(); ++i ) {
    8282                    i->print( std::cout );
    83                 }
    84             }
     83                } // for
     84            } // if
    8585#endif
    8686            assert( finder.get_alternatives().size() == 1 );
     
    9898            } else {
    9999                return true;
    100             }
     100            } // if
    101101        }
    102102 
     
    112112                for ( std::list< Alternative >::const_iterator i = finder.get_alternatives().begin(); i != finder.get_alternatives().end(); ++i ) {
    113113                    i->print( std::cout );
    114                 }
    115             }
     114                } // for
     115            } // if
    116116#endif
    117117            Expression *newExpr = 0;
     
    124124                        newExpr = i->expr->clone();
    125125                        newEnv = &i->env;
    126                     }
    127                 }
    128             }
     126                    } // if
     127                } // if
     128            } // for
    129129            if ( !newExpr ) {
    130130                throw SemanticError( "Too many interpretations for switch control expression", untyped );
    131             }
     131            } // if
    132132            finishExpr( newExpr, *newEnv );
    133133            return newExpr;
     
    147147            Type *new_type = resolveTypeof( typeDecl->get_base(), *this );
    148148            typeDecl->set_base( new_type );
    149         }
     149        } // if
    150150        SymTab::Indexer::visit( typeDecl );
    151151    }
     
    163163        for ( std::list< DeclarationWithType * >::const_iterator i = functionDecl->get_functionType()->get_returnVals().begin(); i != functionDecl->get_functionType()->get_returnVals().end(); ++i ) {
    164164            functionReturn.push_back( (*i)->get_type() );
    165         }
     165        } // for
    166166        SymTab::Indexer::visit( functionDecl );
    167167        functionReturn = oldFunctionReturn;
     
    173173            delete exprStmt->get_expr();
    174174            exprStmt->set_expr( newExpr );
    175         }
     175        } // if
    176176    }
    177177
     
    196196            delete forStmt->get_condition();
    197197            forStmt->set_condition( newExpr );
    198         }
     198        } // if
    199199 
    200200        if ( forStmt->get_increment() ) {
     
    202202            delete forStmt->get_increment();
    203203            forStmt->set_increment( newExpr );
    204         }
     204        } // if
    205205 
    206206        Visitor::visit( forStmt );
     
    236236            delete castExpr;
    237237            returnStmt->set_expr( newExpr );
    238         }
     238        } // if
    239239    }
    240240
    241241    void Resolver::visit( SingleInit *singleInit ) {
    242         // if ( singleInit->get_value() ) {
    243         //     CastExpr *castExpr = new CastExpr( singleInit->get_value(), initContext->clone() );
    244         //     Expression *newExpr = findSingleExpression( castExpr, *this );
    245         //     delete castExpr;
    246         //     singleInit->set_value( newExpr );
    247         // }
    248         // singleInit->get_value()->accept( *this );
     242        if ( singleInit->get_value() ) {
     243            CastExpr *castExpr = new CastExpr( singleInit->get_value(), initContext->clone() );
     244            Expression *newExpr = findSingleExpression( castExpr, *this );
     245            delete castExpr;
     246            singleInit->set_value( newExpr );
     247        } // if
     248        singleInit->get_value()->accept( *this );
    249249    }
    250250
Note: See TracChangeset for help on using the changeset viewer.