diff options
Diffstat (limited to 'include/clang/Rewrite/Frontend')
-rw-r--r-- | include/clang/Rewrite/Frontend/ASTConsumers.h | 48 | ||||
-rw-r--r-- | include/clang/Rewrite/Frontend/FixItRewriter.h | 132 | ||||
-rw-r--r-- | include/clang/Rewrite/Frontend/FrontendActions.h | 83 | ||||
-rw-r--r-- | include/clang/Rewrite/Frontend/Rewriters.h | 35 |
4 files changed, 0 insertions, 298 deletions
diff --git a/include/clang/Rewrite/Frontend/ASTConsumers.h b/include/clang/Rewrite/Frontend/ASTConsumers.h deleted file mode 100644 index c9df889..0000000 --- a/include/clang/Rewrite/Frontend/ASTConsumers.h +++ /dev/null @@ -1,48 +0,0 @@ -//===--- ASTConsumers.h - ASTConsumer implementations -----------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// AST Consumers. -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_CLANG_REWRITE_FRONTEND_ASTCONSUMERS_H -#define LLVM_CLANG_REWRITE_FRONTEND_ASTCONSUMERS_H - -#include "clang/Basic/LLVM.h" -#include <memory> -#include <string> - -namespace clang { - -class ASTConsumer; -class DiagnosticsEngine; -class LangOptions; -class Preprocessor; - -// ObjC rewriter: attempts to rewrite ObjC constructs into pure C code. -// This is considered experimental, and only works with Apple's ObjC runtime. -std::unique_ptr<ASTConsumer> -CreateObjCRewriter(const std::string &InFile, raw_ostream *OS, - DiagnosticsEngine &Diags, const LangOptions &LOpts, - bool SilenceRewriteMacroWarning); -std::unique_ptr<ASTConsumer> -CreateModernObjCRewriter(const std::string &InFile, raw_ostream *OS, - DiagnosticsEngine &Diags, const LangOptions &LOpts, - bool SilenceRewriteMacroWarning, bool LineInfo); - -/// CreateHTMLPrinter - Create an AST consumer which rewrites source code to -/// HTML with syntax highlighting suitable for viewing in a web-browser. -std::unique_ptr<ASTConsumer> CreateHTMLPrinter(raw_ostream *OS, - Preprocessor &PP, - bool SyntaxHighlight = true, - bool HighlightMacros = true); - -} // end clang namespace - -#endif diff --git a/include/clang/Rewrite/Frontend/FixItRewriter.h b/include/clang/Rewrite/Frontend/FixItRewriter.h deleted file mode 100644 index 3b1b31e..0000000 --- a/include/clang/Rewrite/Frontend/FixItRewriter.h +++ /dev/null @@ -1,132 +0,0 @@ -//===--- FixItRewriter.h - Fix-It Rewriter Diagnostic Client ----*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// This is a diagnostic client adaptor that performs rewrites as -// suggested by code modification hints attached to diagnostics. It -// then forwards any diagnostics to the adapted diagnostic client. -// -//===----------------------------------------------------------------------===// -#ifndef LLVM_CLANG_REWRITE_FRONTEND_FIXITREWRITER_H -#define LLVM_CLANG_REWRITE_FRONTEND_FIXITREWRITER_H - -#include "clang/Basic/Diagnostic.h" -#include "clang/Basic/SourceLocation.h" -#include "clang/Edit/EditedSource.h" -#include "clang/Rewrite/Core/Rewriter.h" - -namespace clang { - -class SourceManager; -class FileEntry; - -class FixItOptions { -public: - FixItOptions() : InPlace(false), FixWhatYouCan(false), - FixOnlyWarnings(false), Silent(false) { } - - virtual ~FixItOptions(); - - /// \brief This file is about to be rewritten. Return the name of the file - /// that is okay to write to. - /// - /// \param fd out parameter for file descriptor. After the call it may be set - /// to an open file descriptor for the returned filename, or it will be -1 - /// otherwise. - /// - virtual std::string RewriteFilename(const std::string &Filename, int &fd) = 0; - - /// True if files should be updated in place. RewriteFilename is only called - /// if this is false. - bool InPlace; - - /// \brief Whether to abort fixing a file when not all errors could be fixed. - bool FixWhatYouCan; - - /// \brief Whether to only fix warnings and not errors. - bool FixOnlyWarnings; - - /// \brief If true, only pass the diagnostic to the actual diagnostic consumer - /// if it is an error or a fixit was applied as part of the diagnostic. - /// It basically silences warnings without accompanying fixits. - bool Silent; -}; - -class FixItRewriter : public DiagnosticConsumer { - /// \brief The diagnostics machinery. - DiagnosticsEngine &Diags; - - edit::EditedSource Editor; - - /// \brief The rewriter used to perform the various code - /// modifications. - Rewriter Rewrite; - - /// \brief The diagnostic client that performs the actual formatting - /// of error messages. - DiagnosticConsumer *Client; - std::unique_ptr<DiagnosticConsumer> Owner; - - /// \brief Turn an input path into an output path. NULL implies overwriting - /// the original. - FixItOptions *FixItOpts; - - /// \brief The number of rewriter failures. - unsigned NumFailures; - - /// \brief Whether the previous diagnostic was not passed to the consumer. - bool PrevDiagSilenced; - -public: - typedef Rewriter::buffer_iterator iterator; - - /// \brief Initialize a new fix-it rewriter. - FixItRewriter(DiagnosticsEngine &Diags, SourceManager &SourceMgr, - const LangOptions &LangOpts, FixItOptions *FixItOpts); - - /// \brief Destroy the fix-it rewriter. - ~FixItRewriter() override; - - /// \brief Check whether there are modifications for a given file. - bool IsModified(FileID ID) const { - return Rewrite.getRewriteBufferFor(ID) != nullptr; - } - - // Iteration over files with changes. - iterator buffer_begin() { return Rewrite.buffer_begin(); } - iterator buffer_end() { return Rewrite.buffer_end(); } - - /// \brief Write a single modified source file. - /// - /// \returns true if there was an error, false otherwise. - bool WriteFixedFile(FileID ID, raw_ostream &OS); - - /// \brief Write the modified source files. - /// - /// \returns true if there was an error, false otherwise. - bool WriteFixedFiles( - std::vector<std::pair<std::string, std::string> > *RewrittenFiles=nullptr); - - /// IncludeInDiagnosticCounts - This method (whose default implementation - /// returns true) indicates whether the diagnostics handled by this - /// DiagnosticConsumer should be included in the number of diagnostics - /// reported by DiagnosticsEngine. - bool IncludeInDiagnosticCounts() const override; - - /// HandleDiagnostic - Handle this diagnostic, reporting it to the user or - /// capturing it to a log as needed. - void HandleDiagnostic(DiagnosticsEngine::Level DiagLevel, - const Diagnostic &Info) override; - - /// \brief Emit a diagnostic via the adapted diagnostic client. - void Diag(SourceLocation Loc, unsigned DiagID); -}; - -} - -#endif diff --git a/include/clang/Rewrite/Frontend/FrontendActions.h b/include/clang/Rewrite/Frontend/FrontendActions.h deleted file mode 100644 index 6c290e4..0000000 --- a/include/clang/Rewrite/Frontend/FrontendActions.h +++ /dev/null @@ -1,83 +0,0 @@ -//===-- FrontendActions.h - Useful Frontend Actions -------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_CLANG_REWRITE_FRONTEND_FRONTENDACTIONS_H -#define LLVM_CLANG_REWRITE_FRONTEND_FRONTENDACTIONS_H - -#include "clang/Frontend/FrontendAction.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, - StringRef Filename) override; - - void EndSourceFileAction() override; - - bool hasASTFileSupport() const override { return false; } - -public: - FixItAction(); - ~FixItAction() override; -}; - -/// \brief Emits changes to temporary files and uses them for the original -/// frontend action. -class FixItRecompile : public WrapperFrontendAction { -public: - FixItRecompile(FrontendAction *WrappedAction) - : WrapperFrontendAction(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 { -protected: - void ExecuteAction() override; -}; - -} // end namespace clang - -#endif diff --git a/include/clang/Rewrite/Frontend/Rewriters.h b/include/clang/Rewrite/Frontend/Rewriters.h deleted file mode 100644 index 3ad76df..0000000 --- a/include/clang/Rewrite/Frontend/Rewriters.h +++ /dev/null @@ -1,35 +0,0 @@ -//===--- Rewriters.h - Rewriter implementations -------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// This header contains miscellaneous utilities for various front-end actions. -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_CLANG_REWRITE_FRONTEND_REWRITERS_H -#define LLVM_CLANG_REWRITE_FRONTEND_REWRITERS_H - -#include "clang/Basic/LLVM.h" - -namespace clang { -class Preprocessor; -class PreprocessorOutputOptions; - -/// RewriteMacrosInInput - Implement -rewrite-macros mode. -void RewriteMacrosInInput(Preprocessor &PP, raw_ostream *OS); - -/// DoRewriteTest - A simple test for the TokenRewriter class. -void DoRewriteTest(Preprocessor &PP, raw_ostream *OS); - -/// RewriteIncludesInInput - Implement -frewrite-includes mode. -void RewriteIncludesInInput(Preprocessor &PP, raw_ostream *OS, - const PreprocessorOutputOptions &Opts); - -} // end namespace clang - -#endif |