clang 10.0.0git

ARCMTActions.h
Go to the documentation of this file.
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
clang::arcmt::ObjCMigrateAction
Migrates to modern ObjC syntax.
Definition: ARCMTActions.h:58
clang::WrapperFrontendAction::CreateASTConsumer
std::unique_ptr< ASTConsumer > CreateASTConsumer(CompilerInstance &CI, StringRef InFile) override
Create the AST consumer object for this action, if supported.
Definition: FrontendAction.cpp:1059
clang::arcmt::ModifyAction
Definition: ARCMTActions.h:27
clang::arcmt::FileRemapper
Definition: FileRemapper.h:30
FileRemapper.h
clang::arcmt::MigrateSourceAction
Definition: ARCMTActions.h:35
clang::arcmt::MigrateAction
Definition: ARCMTActions.h:43
clang::CompilerInstance
CompilerInstance - Helper class for managing a single instance of the Clang compiler.
Definition: CompilerInstance.h:72
clang::ASTFrontendAction
Abstract base class to use for AST consumer-based frontend actions.
Definition: FrontendAction.h:243
clang::arcmt::CheckAction::CheckAction
CheckAction(std::unique_ptr< FrontendAction > WrappedAction)
Definition: ARCMTActions.cpp:27
clang
Dataflow Directional Tag Classes.
Definition: CFGReachabilityAnalysis.h:21
clang::arcmt::CheckAction
Definition: ARCMTActions.h:19
clang::WrapperFrontendAction
A frontend action which simply wraps some other runtime-specified frontend action.
Definition: FrontendAction.h:304
clang::arcmt::CheckAction::BeginInvocation
bool BeginInvocation(CompilerInstance &CI) override
Callback before starting processing a single input, giving the opportunity to modify the CompilerInvo...
Definition: ARCMTActions.cpp:16
FrontendAction.h
Defines the clang::FrontendAction interface and various convenience abstract classes (clang::ASTFront...