1//===--- ARCMTActions.h - ARC Migrate Tool 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_ARCMIGRATE_ARCMT_ACTION_H 11#define LLVM_CLANG_ARCMIGRATE_ARCMT_ACTION_H 12 13#include "clang/Frontend/FrontendAction.h" 14#include "llvm/ADT/OwningPtr.h" 15 16namespace clang { 17namespace arcmt { 18 19class CheckAction : public WrapperFrontendAction { 20protected: 21 virtual bool BeginInvocation(CompilerInstance &CI); 22 23public: 24 CheckAction(FrontendAction *WrappedAction); 25}; 26 27class ModifyAction : public WrapperFrontendAction { 28protected: 29 virtual bool BeginInvocation(CompilerInstance &CI); 30 31public: 32 ModifyAction(FrontendAction *WrappedAction); 33}; 34 35class MigrateAction : public WrapperFrontendAction { 36 std::string MigrateDir; 37 std::string PlistOut; 38 bool EmitPremigrationARCErros; 39protected: 40 virtual bool BeginInvocation(CompilerInstance &CI); 41 42public: 43 MigrateAction(FrontendAction *WrappedAction, StringRef migrateDir, 44 StringRef plistOut, 45 bool emitPremigrationARCErrors); 46}; 47 48} 49} 50 51#endif 52