1//===-- FrontendActions.h - Useful Frontend Actions -------------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10#ifndef LLVM_CLANG_REWRITE_FRONTENDACTIONS_H 11#define LLVM_CLANG_REWRITE_FRONTENDACTIONS_H 12 13#include "clang/Frontend/FrontendAction.h" 14 15namespace clang { 16class FixItRewriter; 17class FixItOptions; 18 19//===----------------------------------------------------------------------===// 20// AST Consumer Actions 21//===----------------------------------------------------------------------===// 22 23class HTMLPrintAction : public ASTFrontendAction { 24protected: 25 virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, 26 StringRef InFile); 27}; 28 29class FixItAction : public ASTFrontendAction { 30protected: 31 llvm::OwningPtr<FixItRewriter> Rewriter; 32 llvm::OwningPtr<FixItOptions> FixItOpts; 33 34 virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, 35 StringRef InFile); 36 37 virtual bool BeginSourceFileAction(CompilerInstance &CI, 38 StringRef Filename); 39 40 virtual void EndSourceFileAction(); 41 42 virtual bool hasASTFileSupport() const { return false; } 43 44public: 45 FixItAction(); 46 ~FixItAction(); 47}; 48 49class RewriteObjCAction : public ASTFrontendAction { 50protected: 51 virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, 52 StringRef InFile); 53}; 54 55class RewriteMacrosAction : public PreprocessorFrontendAction { 56protected: 57 void ExecuteAction(); 58}; 59 60class RewriteTestAction : public PreprocessorFrontendAction { 61protected: 62 void ExecuteAction(); 63}; 64 65} // end namespace clang 66 67#endif 68