1224135Sdim//===--- ARCMTActions.h - ARC Migrate Tool Frontend Actions -----*- C++ -*-===// 2224135Sdim// 3224135Sdim// The LLVM Compiler Infrastructure 4224135Sdim// 5224135Sdim// This file is distributed under the University of Illinois Open Source 6224135Sdim// License. See LICENSE.TXT for details. 7224135Sdim// 8224135Sdim//===----------------------------------------------------------------------===// 9224135Sdim 10224135Sdim#ifndef LLVM_CLANG_ARCMIGRATE_ARCMT_ACTION_H 11224135Sdim#define LLVM_CLANG_ARCMIGRATE_ARCMT_ACTION_H 12224135Sdim 13249423Sdim#include "clang/ARCMigrate/FileRemapper.h" 14224135Sdim#include "clang/Frontend/FrontendAction.h" 15224135Sdim#include "llvm/ADT/OwningPtr.h" 16224135Sdim 17224135Sdimnamespace clang { 18224135Sdimnamespace arcmt { 19224135Sdim 20224135Sdimclass CheckAction : public WrapperFrontendAction { 21224135Sdimprotected: 22224135Sdim virtual bool BeginInvocation(CompilerInstance &CI); 23224135Sdim 24224135Sdimpublic: 25224135Sdim CheckAction(FrontendAction *WrappedAction); 26224135Sdim}; 27224135Sdim 28224135Sdimclass ModifyAction : public WrapperFrontendAction { 29224135Sdimprotected: 30224135Sdim virtual bool BeginInvocation(CompilerInstance &CI); 31224135Sdim 32224135Sdimpublic: 33224135Sdim ModifyAction(FrontendAction *WrappedAction); 34224135Sdim}; 35224135Sdim 36234353Sdimclass MigrateSourceAction : public ASTFrontendAction { 37234353Sdim FileRemapper Remapper; 38234353Sdimprotected: 39234353Sdim virtual bool BeginInvocation(CompilerInstance &CI); 40234353Sdim virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, 41234353Sdim StringRef InFile); 42234353Sdim}; 43234353Sdim 44224135Sdimclass MigrateAction : public WrapperFrontendAction { 45224135Sdim std::string MigrateDir; 46226633Sdim std::string PlistOut; 47226633Sdim bool EmitPremigrationARCErros; 48224135Sdimprotected: 49224135Sdim virtual bool BeginInvocation(CompilerInstance &CI); 50224135Sdim 51224135Sdimpublic: 52226633Sdim MigrateAction(FrontendAction *WrappedAction, StringRef migrateDir, 53226633Sdim StringRef plistOut, 54226633Sdim bool emitPremigrationARCErrors); 55224135Sdim}; 56224135Sdim 57234353Sdim/// \brief Migrates to modern ObjC syntax. 58234353Sdimclass ObjCMigrateAction : public WrapperFrontendAction { 59234353Sdim std::string MigrateDir; 60263508Sdim unsigned ObjCMigAction; 61234353Sdim FileRemapper Remapper; 62234353Sdim CompilerInstance *CompInst; 63234353Sdimpublic: 64234353Sdim ObjCMigrateAction(FrontendAction *WrappedAction, StringRef migrateDir, 65263508Sdim unsigned migrateAction); 66234353Sdim 67234353Sdimprotected: 68234353Sdim virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI,StringRef InFile); 69234353Sdim virtual bool BeginInvocation(CompilerInstance &CI); 70234353Sdim}; 71234353Sdim 72224135Sdim} 73224135Sdim} 74224135Sdim 75224135Sdim#endif 76