Jun 22, 2017, 9:49:39 AM (4 years ago)
Thierry Delisle <tdelisle@…>
aaron-thesis, arm-eh, cleanup-dtors, deferred_resn, demangler, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, resolv-new, with_gc
35df560 (diff), e9a3b20b (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.

Merge branch 'master' of plg.uwaterloo.ca:software/cfa/cfa-cc

1 edited


  • src/Common/PassVisitor.h

    r35df560 r925b7f4  
    1818// Templated visitor type
    1919// To use declare a PassVisitor< YOUR VISITOR TYPE >
    20 // The visitor type should specify the previsit/postvisit for types that are desired.
     20// The visitor type should specify the previsit/postvisit/premutate/postmutate for types that are desired.
     21// Note: previsit/postvisit/premutate/postmutate must be **public** members
     23// Several additional features are available through inheritance
     24// | WithTypeSubstitution - provides polymorphic TypeSubstitution * env for the current expression
     25// | WithStmtsToAdd       - provides the ability to insert statements before or after the current statement by adding new statements into
     26//                          stmtsToAddBefore or stmtsToAddAfter respectively.
     27// | WithShortCircuiting  - provides the ability to skip visiting child nodes; set skip_children to true if pre{visit,mutate} to skip visiting children
     28// | WithScopes           - provides the ability to save/restore data like a LIFO stack; to save, call GuardValue with the variable to save, the variable
     29//                          will automatically be restored to its previous value after the corresponding postvisit/postmutate teminates.
    2231template< typename pass_type >
    8695        virtual void visit( ConstructorExpr * ctorExpr ) override final;
    8796        virtual void visit( CompoundLiteralExpr *compLitExpr ) override final;
    88         virtual void visit( UntypedValofExpr *valofExpr ) override final;
    8997        virtual void visit( RangeExpr *rangeExpr ) override final;
    9098        virtual void visit( UntypedTupleExpr *tupleExpr ) override final;
    172180        virtual Expression* mutate( ConstructorExpr *ctorExpr ) override final;
    173181        virtual Expression* mutate( CompoundLiteralExpr *compLitExpr ) override final;
    174         virtual Expression* mutate( UntypedValofExpr *valofExpr ) override final;
    175182        virtual Expression* mutate( RangeExpr *rangeExpr ) override final;
    176183        virtual Expression* mutate( UntypedTupleExpr *tupleExpr ) override final;
Note: See TracChangeset for help on using the changeset viewer.