Changes in src/SynTree/VarExprReplacer.h [c3b3799:7543dec]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/SynTree/VarExprReplacer.h
rc3b3799 r7543dec 24 24 25 25 /// Visitor that replaces the declarations that VariableExprs refer to, according to the supplied mapping 26 class VarExprReplacer : public Visitor {26 class VarExprReplacer : public Mutator { 27 27 public: 28 typedef std::map< DeclarationWithType *, DeclarationWithType* > DeclMap;28 typedef std::map< DeclarationWithType *, Expression * > DeclMap; 29 29 private: 30 30 const DeclMap & declMap; … … 32 32 public: 33 33 VarExprReplacer( const DeclMap & declMap, bool debug = false ); 34 ~VarExprReplacer(); 34 35 35 36 // replace variable with new node from decl map 36 virtual void visit( VariableExpr * varExpr );37 virtual Expression * mutate( VariableExpr * varExpr ); 37 38 38 static void replace( BaseSyntaxNode * node, const DeclMap & declMap, bool debug = false ) { 39 template<typename Node> 40 static void replace( Node *& node, const DeclMap & declMap, bool debug = false ) { 39 41 VarExprReplacer replacer( declMap, debug ); 40 maybeAccept( node, replacer );42 node = maybeMutate( node, replacer ); 41 43 } 42 44 };
Note: See TracChangeset
for help on using the changeset viewer.