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 13252723Sdim#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 36235633Sdimclass MigrateSourceAction : public ASTFrontendAction { 37235633Sdim FileRemapper Remapper; 38235633Sdimprotected: 39235633Sdim virtual bool BeginInvocation(CompilerInstance &CI); 40235633Sdim virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, 41235633Sdim StringRef InFile); 42235633Sdim}; 43235633Sdim 44224135Sdimclass MigrateAction : public WrapperFrontendAction { 45224135Sdim std::string MigrateDir; 46226890Sdim std::string PlistOut; 47226890Sdim bool EmitPremigrationARCErros; 48224135Sdimprotected: 49224135Sdim virtual bool BeginInvocation(CompilerInstance &CI); 50224135Sdim 51224135Sdimpublic: 52226890Sdim MigrateAction(FrontendAction *WrappedAction, StringRef migrateDir, 53226890Sdim StringRef plistOut, 54226890Sdim bool emitPremigrationARCErrors); 55224135Sdim}; 56224135Sdim 57235633Sdim/// \brief Migrates to modern ObjC syntax. 58235633Sdimclass ObjCMigrateAction : public WrapperFrontendAction { 59235633Sdim std::string MigrateDir; 60263509Sdim unsigned ObjCMigAction; 61235633Sdim FileRemapper Remapper; 62235633Sdim CompilerInstance *CompInst; 63235633Sdimpublic: 64235633Sdim ObjCMigrateAction(FrontendAction *WrappedAction, StringRef migrateDir, 65263509Sdim unsigned migrateAction); 66235633Sdim 67235633Sdimprotected: 68235633Sdim virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI,StringRef InFile); 69235633Sdim virtual bool BeginInvocation(CompilerInstance &CI); 70235633Sdim}; 71235633Sdim 72224135Sdim} 73224135Sdim} 74224135Sdim 75224135Sdim#endif 76