Coverage Report

Created: 2018-11-16 02:38

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/tools/clang/include/clang/Rewrite/Frontend/FrontendActions.h
Line
Count
Source (jump to first uncovered line)
1
//===-- FrontendActions.h - Useful 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_REWRITE_FRONTEND_FRONTENDACTIONS_H
11
#define LLVM_CLANG_REWRITE_FRONTEND_FRONTENDACTIONS_H
12
13
#include "clang/Frontend/FrontendAction.h"
14
#include "llvm/Support/raw_ostream.h"
15
16
namespace clang {
17
class FixItRewriter;
18
class FixItOptions;
19
20
//===----------------------------------------------------------------------===//
21
// AST Consumer Actions
22
//===----------------------------------------------------------------------===//
23
24
class HTMLPrintAction : public ASTFrontendAction {
25
protected:
26
  std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI,
27
                                                 StringRef InFile) override;
28
};
29
30
class FixItAction : public ASTFrontendAction {
31
protected:
32
  std::unique_ptr<FixItRewriter> Rewriter;
33
  std::unique_ptr<FixItOptions> FixItOpts;
34
35
  std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI,
36
                                                 StringRef InFile) override;
37
38
  bool BeginSourceFileAction(CompilerInstance &CI) override;
39
40
  void EndSourceFileAction() override;
41
42
0
  bool hasASTFileSupport() const override { return false; }
43
44
public:
45
  FixItAction();
46
  ~FixItAction() override;
47
};
48
49
/// Emits changes to temporary files and uses them for the original
50
/// frontend action.
51
class FixItRecompile : public WrapperFrontendAction {
52
public:
53
  FixItRecompile(std::unique_ptr<FrontendAction> WrappedAction)
54
2
    : WrapperFrontendAction(std::move(WrappedAction)) {}
55
56
protected:
57
  bool BeginInvocation(CompilerInstance &CI) override;
58
};
59
60
class RewriteObjCAction : public ASTFrontendAction {
61
protected:
62
  std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI,
63
                                                 StringRef InFile) override;
64
};
65
66
class RewriteMacrosAction : public PreprocessorFrontendAction {
67
protected:
68
  void ExecuteAction() override;
69
};
70
71
class RewriteTestAction : public PreprocessorFrontendAction {
72
protected:
73
  void ExecuteAction() override;
74
};
75
76
class RewriteIncludesAction : public PreprocessorFrontendAction {
77
  std::shared_ptr<raw_ostream> OutputStream;
78
  class RewriteImportsListener;
79
protected:
80
  bool BeginSourceFileAction(CompilerInstance &CI) override;
81
  void ExecuteAction() override;
82
};
83
84
}  // end namespace clang
85
86
#endif