clang  10.0.0svn
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 
14 #include <memory>
15 
16 namespace clang {
17 namespace arcmt {
18 
20 protected:
21  bool BeginInvocation(CompilerInstance &CI) override;
22 
23 public:
24  CheckAction(std::unique_ptr<FrontendAction> WrappedAction);
25 };
26 
28 protected:
29  bool BeginInvocation(CompilerInstance &CI) override;
30 
31 public:
32  ModifyAction(std::unique_ptr<FrontendAction> WrappedAction);
33 };
34 
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 
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.
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
Migrates to modern ObjC syntax.
Definition: ARCMTActions.h:58
std::unique_ptr< ASTConsumer > CreateASTConsumer(CompilerInstance &CI, StringRef InFile) override
Create the AST consumer object for this action, if supported.
CompilerInstance - Helper class for managing a single instance of the Clang compiler.
Abstract base class to use for AST consumer-based frontend actions.
CheckAction(std::unique_ptr< FrontendAction > WrappedAction)
Dataflow Directional Tag Classes.
A frontend action which simply wraps some other runtime-specified frontend action.
bool BeginInvocation(CompilerInstance &CI) override
Callback before starting processing a single input, giving the opportunity to modify the CompilerInvo...
Defines the clang::FrontendAction interface and various convenience abstract classes (clang::ASTFront...