Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/SymTab/AddVisit.h

    r630a82a r145f1fc  
    99// Author           : Richard C. Bilson
    1010// Created On       : Sun May 17 16:14:32 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Apr  7 14:42:21 2016
    13 // Update Count     : 5
     11// Last Modified By : Rob Schluntz
     12// Last Modified On : Tue Jul 14 12:26:17 2015
     13// Update Count     : 4
    1414//
    1515
     
    2727
    2828        template< typename Visitor >
     29        inline void addVisitStatement( Statement *stmt, Visitor &visitor ) {
     30                maybeAccept( stmt, visitor );
     31///   if ( ! declsToAdd.empty() ) {
     32///     CompoundStmt *compound = new CompoundStmt( noLabels );
     33///     compound->get_kids().push_back( stmt );
     34///     addDecls( declsToAdd, compound->get_kids(), compound->get_kids().end() );
     35///   }
     36        }
     37
     38        template< typename Visitor >
    2939        inline void addVisit(CompoundStmt *compoundStmt, Visitor &visitor) {
    3040                addVisitStatementList( compoundStmt->get_kids(), visitor );
     41        }
     42
     43        template< typename Visitor >
     44        inline void addVisit(IfStmt *ifStmt, Visitor &visitor) {
     45                addVisitStatement( ifStmt->get_thenPart(), visitor );
     46                addVisitStatement( ifStmt->get_elsePart(), visitor );
     47                maybeAccept( ifStmt->get_condition(), visitor );
     48        }
     49
     50        template< typename Visitor >
     51        inline void addVisit(WhileStmt *whileStmt, Visitor &visitor) {
     52                addVisitStatement( whileStmt->get_body(), visitor );
     53                maybeAccept( whileStmt->get_condition(), visitor );
     54        }
     55
     56        template< typename Visitor >
     57        inline void addVisit(ForStmt *forStmt, Visitor &visitor) {
     58                addVisitStatement( forStmt->get_body(), visitor );
     59                acceptAll( forStmt->get_initialization(), visitor );
     60                maybeAccept( forStmt->get_condition(), visitor );
     61                maybeAccept( forStmt->get_increment(), visitor );
    3162        }
    3263
     
    4374        }
    4475
    45         // template< typename Visitor >
    46         // inline void addVisit(CaseStmt *caseStmt, Visitor &visitor) {
    47         //      addVisitStatementList( caseStmt->get_statements(), visitor );
    48         //      maybeAccept( caseStmt->get_condition(), visitor );
    49         // }
     76        template< typename Visitor >
     77        inline void addVisit(CaseStmt *caseStmt, Visitor &visitor) {
     78                addVisitStatementList( caseStmt->get_statements(), visitor );
     79                maybeAccept( caseStmt->get_condition(), visitor );
     80        }
     81
     82        template< typename Visitor >
     83        inline void addVisit(CatchStmt *cathStmt, Visitor &visitor) {
     84                addVisitStatement( cathStmt->get_body(), visitor );
     85                maybeAccept( cathStmt->get_decl(), visitor );
     86        }
    5087} // namespace SymTab
    5188
Note: See TracChangeset for help on using the changeset viewer.