FrontendActions.h revision 9b414d3e2d0cb84512b55a3275a98490b090162a
19b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar//===-- FrontendActions.h - Useful Frontend Actions -------------*- C++ -*-===// 29b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar// 39b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar// The LLVM Compiler Infrastructure 49b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar// 59b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar// This file is distributed under the University of Illinois Open Source 69b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar// License. See LICENSE.TXT for details. 79b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar// 89b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar//===----------------------------------------------------------------------===// 99b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar 109b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar#ifndef LLVM_CLANG_REWRITE_FRONTENDACTIONS_H 119b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar#define LLVM_CLANG_REWRITE_FRONTENDACTIONS_H 129b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar 139b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar#include "clang/Frontend/FrontendAction.h" 149b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar#include <string> 159b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar#include <vector> 169b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar 179b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbarnamespace clang { 189b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbarclass FixItRewriter; 199b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbarclass FixItPathRewriter; 209b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar 219b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar//===----------------------------------------------------------------------===// 229b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar// AST Consumer Actions 239b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar//===----------------------------------------------------------------------===// 249b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar 259b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbarclass HTMLPrintAction : public ASTFrontendAction { 269b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbarprotected: 279b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, 289b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar llvm::StringRef InFile); 299b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar}; 309b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar 319b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbarclass FixItAction : public ASTFrontendAction { 329b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbarprotected: 339b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar llvm::OwningPtr<FixItRewriter> Rewriter; 349b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar llvm::OwningPtr<FixItPathRewriter> PathRewriter; 359b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar 369b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, 379b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar llvm::StringRef InFile); 389b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar 399b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar virtual bool BeginSourceFileAction(CompilerInstance &CI, 409b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar llvm::StringRef Filename); 419b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar 429b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar virtual void EndSourceFileAction(); 439b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar 449b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar virtual bool hasASTFileSupport() const { return false; } 459b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar 469b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbarpublic: 479b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar FixItAction(); 489b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar ~FixItAction(); 499b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar}; 509b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar 519b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbarclass RewriteObjCAction : public ASTFrontendAction { 529b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbarprotected: 539b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, 549b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar llvm::StringRef InFile); 559b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar}; 569b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar 579b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbarclass RewriteMacrosAction : public PreprocessorFrontendAction { 589b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbarprotected: 599b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar void ExecuteAction(); 609b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar}; 619b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar 629b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbarclass RewriteTestAction : public PreprocessorFrontendAction { 639b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbarprotected: 649b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar void ExecuteAction(); 659b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar}; 669b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar 679b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar} // end namespace clang 689b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar 699b414d3e2d0cb84512b55a3275a98490b090162aDaniel Dunbar#endif 70