Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/SymTab/AddVisit.h

    r145f1fc r620cb95  
    55// file "LICENCE" distributed with Cforall.
    66//
    7 // AddVisit.h -- 
     7// AddVisit.h --
    88//
    99// Author           : Richard C. Bilson
     
    8585                maybeAccept( cathStmt->get_decl(), visitor );
    8686        }
     87
     88        template< typename Visitor >
     89        void acceptAndAdd( std::list< Declaration * > &translationUnit, Visitor &visitor, bool addBefore ) {
     90                std::list< Declaration * >::iterator i = translationUnit.begin();
     91                while ( i != translationUnit.end() ) {
     92                        (*i)->accept( visitor );
     93                        std::list< Declaration * >::iterator next = i;
     94                        next++;
     95                        if ( ! visitor.get_declsToAdd().empty() ) {
     96                                translationUnit.splice( addBefore ? i : next, visitor.get_declsToAdd() );
     97                        } // if
     98                        i = next;
     99                } // while
     100        }
    87101} // namespace SymTab
    88102
Note: See TracChangeset for help on using the changeset viewer.