ARCMTActions.h revision 263508
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/ARCMigrate/FileRemapper.h"
14#include "clang/Frontend/FrontendAction.h"
15#include "llvm/ADT/OwningPtr.h"
16
17namespace clang {
18namespace arcmt {
19
20class CheckAction : public WrapperFrontendAction {
21protected:
22  virtual bool BeginInvocation(CompilerInstance &CI);
23
24public:
25  CheckAction(FrontendAction *WrappedAction);
26};
27
28class ModifyAction : public WrapperFrontendAction {
29protected:
30  virtual bool BeginInvocation(CompilerInstance &CI);
31
32public:
33  ModifyAction(FrontendAction *WrappedAction);
34};
35
36class MigrateSourceAction : public ASTFrontendAction {
37  FileRemapper Remapper;
38protected:
39  virtual bool BeginInvocation(CompilerInstance &CI);
40  virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI,
41                                         StringRef InFile);
42};
43
44class MigrateAction : public WrapperFrontendAction {
45  std::string MigrateDir;
46  std::string PlistOut;
47  bool EmitPremigrationARCErros;
48protected:
49  virtual bool BeginInvocation(CompilerInstance &CI);
50
51public:
52  MigrateAction(FrontendAction *WrappedAction, StringRef migrateDir,
53                StringRef plistOut,
54                bool emitPremigrationARCErrors);
55};
56
57/// \brief Migrates to modern ObjC syntax.
58class ObjCMigrateAction : public WrapperFrontendAction {
59  std::string MigrateDir;
60  unsigned    ObjCMigAction;
61  FileRemapper Remapper;
62  CompilerInstance *CompInst;
63public:
64  ObjCMigrateAction(FrontendAction *WrappedAction, StringRef migrateDir,
65                    unsigned migrateAction);
66
67protected:
68  virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI,StringRef InFile);
69  virtual bool BeginInvocation(CompilerInstance &CI);
70};
71
72}
73}
74
75#endif
76