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