citrun

watch C/C++ source code execute
Log | Files | Refs | LICENSE

consumer.h (614B)


      1 #include "visitor.h"
      2 
      3 #include <clang/AST/ASTConsumer.h>
      4 #include <clang/Rewrite/Core/Rewriter.h>
      5 
      6 
      7 class RewriteASTConsumer : public clang::ASTConsumer
      8 {
      9 	RewriteASTVisitor	 Visitor;
     10 
     11 public:
     12 	explicit		 RewriteASTConsumer(clang::Rewriter &R) :
     13 					Visitor(R) {}
     14 
     15 	// Override the method that gets called for each parsed top-level
     16 	// declaration.
     17 	virtual bool		 HandleTopLevelDecl(clang::DeclGroupRef DR) {
     18 		for (auto &b : DR) {
     19 			// Traverse the declaration using our AST visitor.
     20 			Visitor.TraverseDecl(b);
     21 			// b->dump();
     22 		}
     23 		return true;
     24 	}
     25 
     26 	RewriteASTVisitor	&get_visitor() { return Visitor; };
     27 };