]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm-project/clang/include/clang/ARCMigrate/ARCMTActions.h
Move all sources from the llvm project into contrib/llvm-project.
[FreeBSD/FreeBSD.git] / contrib / llvm-project / clang / include / clang / ARCMigrate / ARCMTActions.h
1 //===--- ARCMTActions.h - ARC Migrate Tool Frontend Actions -----*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8
9 #ifndef LLVM_CLANG_ARCMIGRATE_ARCMTACTIONS_H
10 #define LLVM_CLANG_ARCMIGRATE_ARCMTACTIONS_H
11
12 #include "clang/ARCMigrate/FileRemapper.h"
13 #include "clang/Frontend/FrontendAction.h"
14 #include <memory>
15
16 namespace clang {
17 namespace arcmt {
18
19 class CheckAction : public WrapperFrontendAction {
20 protected:
21   bool BeginInvocation(CompilerInstance &CI) override;
22
23 public:
24   CheckAction(std::unique_ptr<FrontendAction> WrappedAction);
25 };
26
27 class ModifyAction : public WrapperFrontendAction {
28 protected:
29   bool BeginInvocation(CompilerInstance &CI) override;
30
31 public:
32   ModifyAction(std::unique_ptr<FrontendAction> WrappedAction);
33 };
34
35 class MigrateSourceAction : public ASTFrontendAction {
36   FileRemapper Remapper;
37 protected:
38   bool BeginInvocation(CompilerInstance &CI) override;
39   std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI,
40                                                  StringRef InFile) override;
41 };
42
43 class MigrateAction : public WrapperFrontendAction {
44   std::string MigrateDir;
45   std::string PlistOut;
46   bool EmitPremigrationARCErros;
47 protected:
48   bool BeginInvocation(CompilerInstance &CI) override;
49
50 public:
51   MigrateAction(std::unique_ptr<FrontendAction> WrappedAction,
52                 StringRef migrateDir,
53                 StringRef plistOut,
54                 bool emitPremigrationARCErrors);
55 };
56
57 /// Migrates to modern ObjC syntax.
58 class ObjCMigrateAction : public WrapperFrontendAction {
59   std::string MigrateDir;
60   unsigned    ObjCMigAction;
61   FileRemapper Remapper;
62   CompilerInstance *CompInst;
63 public:
64   ObjCMigrateAction(std::unique_ptr<FrontendAction> WrappedAction,
65                     StringRef migrateDir, unsigned migrateAction);
66
67 protected:
68   std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI,
69                                                  StringRef InFile) override;
70   bool BeginInvocation(CompilerInstance &CI) override;
71 };
72
73 }
74 }
75
76 #endif