clang 20.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
14#include <memory>
15
16namespace clang {
17namespace arcmt {
18
20protected:
21 bool BeginInvocation(CompilerInstance &CI) override;
22
23public:
24 CheckAction(std::unique_ptr<FrontendAction> WrappedAction);
25};
26
28protected:
29 bool BeginInvocation(CompilerInstance &CI) override;
30
31public:
32 ModifyAction(std::unique_ptr<FrontendAction> WrappedAction);
33};
34
36 FileRemapper Remapper;
37protected:
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 EmitPremigrationARCErrors;
47protected:
48 bool BeginInvocation(CompilerInstance &CI) override;
49
50public:
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;
63public:
64 ObjCMigrateAction(std::unique_ptr<FrontendAction> WrappedAction,
65 StringRef migrateDir, unsigned migrateAction);
66
67protected:
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
Defines the clang::FrontendAction interface and various convenience abstract classes (clang::ASTFront...
Abstract base class to use for AST consumer-based frontend actions.
CompilerInstance - Helper class for managing a single instance of the Clang compiler.
A frontend action which simply wraps some other runtime-specified frontend action.
std::unique_ptr< FrontendAction > WrappedAction
bool BeginInvocation(CompilerInstance &CI) override
Callback before starting processing a single input, giving the opportunity to modify the CompilerInvo...
bool BeginInvocation(CompilerInstance &CI) override
Callback before starting processing a single input, giving the opportunity to modify the CompilerInvo...
std::unique_ptr< ASTConsumer > CreateASTConsumer(CompilerInstance &CI, StringRef InFile) override
Create the AST consumer object for this action, if supported.
Definition: ObjCMT.cpp:2005
bool BeginInvocation(CompilerInstance &CI) override
Callback before starting processing a single input, giving the opportunity to modify the CompilerInvo...
Definition: ObjCMT.cpp:1980
bool BeginInvocation(CompilerInstance &CI) override
Callback before starting processing a single input, giving the opportunity to modify the CompilerInvo...
Migrates to modern ObjC syntax.
Definition: ARCMTActions.h:58
bool BeginInvocation(CompilerInstance &CI) override
Callback before starting processing a single input, giving the opportunity to modify the CompilerInvo...
Definition: ObjCMT.cpp:207
std::unique_ptr< ASTConsumer > CreateASTConsumer(CompilerInstance &CI, StringRef InFile) override
Create the AST consumer object for this action, if supported.
Definition: ObjCMT.cpp:195
The JSON file list parser is used to communicate input to InstallAPI.