Ignore:
Timestamp:
Sep 12, 2016, 6:32:46 PM (8 years ago)
Author:
Rob Schluntz <rschlunt@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
f006f01
Parents:
8f7cea1
git-author:
Rob Schluntz <rschlunt@…> (09/12/16 18:24:34)
git-committer:
Rob Schluntz <rschlunt@…> (09/12/16 18:32:46)
Message:

make TupleAssignment? generate temporaries, add StmtExpr? for GCC statement expressions, expand tuple assignment expressions, collapse SolvedTupleExpr?, MassAssignExpr?, and MultipleAssignExpr? into TupleAssignExpr?

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/SynTree/Mutator.cc

    r8f7cea1 r6eb8948  
    308308}
    309309
    310 Expression *Mutator::mutate( TupleExpr *tupleExpr ) {
    311         mutateAll( tupleExpr->get_results(), *this );
    312         mutateAll( tupleExpr->get_exprs(), *this );
    313         return tupleExpr;
    314 }
    315 
    316 Expression *Mutator::mutate( SolvedTupleExpr *tupleExpr ) {
    317         mutateAll( tupleExpr->get_results(), *this );
    318         mutateAll( tupleExpr->get_exprs(), *this );
    319         return tupleExpr;
    320 }
    321 
    322310Expression *Mutator::mutate( TypeExpr *typeExpr ) {
    323311        mutateAll( typeExpr->get_results(), *this );
     
    364352}
    365353
     354Expression *Mutator::mutate( TupleExpr *tupleExpr ) {
     355        mutateAll( tupleExpr->get_results(), *this );
     356        mutateAll( tupleExpr->get_exprs(), *this );
     357        return tupleExpr;
     358}
     359
    366360Expression *Mutator::mutate( TupleIndexExpr *tupleExpr ) {
    367361        mutateAll( tupleExpr->get_results(), *this );
     
    377371}
    378372
    379 Expression *Mutator::mutate( MultipleAssignExpr *assignExpr ) {
     373Expression *Mutator::mutate( TupleAssignExpr *assignExpr ) {
    380374        mutateAll( assignExpr->get_results(), *this );
    381         assignExpr->set_lhs( maybeMutate( assignExpr->get_lhs(), *this ) );
    382         assignExpr->set_rhs( maybeMutate( assignExpr->get_rhs(), *this ) );
     375        mutateAll( assignExpr->get_tempDecls(), *this );
     376        mutateAll( assignExpr->get_assigns(), *this );
    383377        return assignExpr;
    384378}
    385379
    386 Expression *Mutator::mutate( MassAssignExpr *assignExpr ) {
    387         mutateAll( assignExpr->get_results(), *this );
    388         assignExpr->set_lhs( maybeMutate( assignExpr->get_lhs(), *this ) );
    389         assignExpr->set_rhs( maybeMutate( assignExpr->get_rhs(), *this ) );
    390         return assignExpr;
     380Expression *Mutator::mutate( StmtExpr *stmtExpr ) {
     381        mutateAll( stmtExpr->get_results(), *this );
     382        stmtExpr->set_statements( maybeMutate( stmtExpr->get_statements(), *this ) );
     383        return stmtExpr;
    391384}
    392385
Note: See TracChangeset for help on using the changeset viewer.