Viewing file: FrontendActions.h (2.54 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
//===-- FrontendActions.h - Useful Frontend Actions -------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===//
#ifndef LLVM_CLANG_REWRITE_FRONTEND_FRONTENDACTIONS_H #define LLVM_CLANG_REWRITE_FRONTEND_FRONTENDACTIONS_H
#include "clang/Frontend/FrontendAction.h" #include "llvm/Support/raw_ostream.h"
namespace clang { class FixItRewriter; class FixItOptions;
//===----------------------------------------------------------------------===// // AST Consumer Actions //===----------------------------------------------------------------------===//
class HTMLPrintAction : public ASTFrontendAction { protected: std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI, StringRef InFile) override; };
class FixItAction : public ASTFrontendAction { protected: std::unique_ptr<FixItRewriter> Rewriter; std::unique_ptr<FixItOptions> FixItOpts;
std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI, StringRef InFile) override;
bool BeginSourceFileAction(CompilerInstance &CI) override;
void EndSourceFileAction() override;
bool hasASTFileSupport() const override { return false; }
public: FixItAction(); ~FixItAction() override; };
/// Emits changes to temporary files and uses them for the original /// frontend action. class FixItRecompile : public WrapperFrontendAction { public: FixItRecompile(std::unique_ptr<FrontendAction> WrappedAction) : WrapperFrontendAction(std::move(WrappedAction)) {}
protected: bool BeginInvocation(CompilerInstance &CI) override; };
class RewriteObjCAction : public ASTFrontendAction { protected: std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI, StringRef InFile) override; };
class RewriteMacrosAction : public PreprocessorFrontendAction { protected: void ExecuteAction() override; };
class RewriteTestAction : public PreprocessorFrontendAction { protected: void ExecuteAction() override; };
class RewriteIncludesAction : public PreprocessorFrontendAction { std::shared_ptr<raw_ostream> OutputStream; class RewriteImportsListener; protected: bool BeginSourceFileAction(CompilerInstance &CI) override; void ExecuteAction() override; };
} // end namespace clang
#endif
|