clang  10.0.0svn
Classes | Namespaces | Typedefs | Enumerations | Functions
Transformer.h File Reference

Defines a library supporting the concise specification of clang-based source-to-source transformations. More...

#include "clang/ASTMatchers/ASTMatchFinder.h"
#include "clang/ASTMatchers/ASTMatchers.h"
#include "clang/ASTMatchers/ASTMatchersInternal.h"
#include "clang/Tooling/Refactoring/AtomicChange.h"
#include "clang/Tooling/Refactoring/RangeSelector.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Support/Error.h"
#include <deque>
#include <functional>
#include <string>
#include <type_traits>
#include <utility>
Include dependency graph for Transformer.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.


struct  clang::tooling::ASTEdit
struct  clang::tooling::RewriteRule
 Description of a source-code transformation. More...
struct  clang::tooling::RewriteRule::Case
struct  clang::tooling::detail::Transformation
 A source "transformation," represented by a character range in the source to be replaced and a corresponding replacement string. More...
class  clang::tooling::Transformer
 Handles the matcher and callback registration for a single rewrite rule, as defined by the arguments of the constructor. More...


 Dataflow Directional Tag Classes.
 The following three functions are a low-level part of the RewriteRule API.


using clang::tooling::TextGenerator = std::function< Expected< std::string >(const ast_matchers::MatchFinder::MatchResult &)>


enum  clang::tooling::IncludeFormat { clang::tooling::IncludeFormat::Quoted, clang::tooling::IncludeFormat::Angled }
 Format of the path in an include directive – angle brackets or quotes. More...


TextGenerator clang::tooling::text (std::string M)
 Wraps a string as a TextGenerator. More...
RewriteRule clang::tooling::makeRule (ast_matchers::internal::DynTypedMatcher M, SmallVector< ASTEdit, 1 > Edits, TextGenerator Explanation=nullptr)
 Convenience function for constructing a simple RewriteRule. More...
RewriteRule clang::tooling::makeRule (ast_matchers::internal::DynTypedMatcher M, ASTEdit Edit, TextGenerator Explanation=nullptr)
 Convenience overload of makeRule for common case of only one edit. More...
void clang::tooling::addInclude (RewriteRule &Rule, llvm::StringRef Header, IncludeFormat Format=IncludeFormat::Quoted)
 For every case in Rule, adds an include directive for the given header. More...
RewriteRule clang::tooling::applyFirst (ArrayRef< RewriteRule > Rules)
 Applies the first rule whose pattern matches; other rules are ignored. More...
ASTEdit clang::tooling::change (RangeSelector Target, TextGenerator Replacement)
 Replaces a portion of the source text with Replacement. More...
ASTEdit clang::tooling::change (TextGenerator Replacement)
 Replaces the entirety of a RewriteRule's match with Replacement. More...
ASTEdit clang::tooling::insertBefore (RangeSelector S, TextGenerator Replacement)
 Inserts Replacement before S, leaving the source selected by unchanged. More...
ASTEdit clang::tooling::insertAfter (RangeSelector S, TextGenerator Replacement)
 Inserts Replacement after S, leaving the source selected by unchanged. More...
ASTEdit clang::tooling::remove (RangeSelector S)
 Removes the source selected by S. More...
ast_matchers::internal::DynTypedMatcher clang::tooling::detail::buildMatcher (const RewriteRule &Rule)
 Builds a single matcher for the rule, covering all of the rule's cases. More...
std::vector< ast_matchers::internal::DynTypedMatcher > clang::tooling::detail::buildMatchers (const RewriteRule &Rule)
 Builds a set of matchers that cover the rule (one for each distinct node matcher base kind: Stmt, Decl, etc.). More...
const RewriteRule::Caseclang::tooling::detail::findSelectedCase (const ast_matchers::MatchFinder::MatchResult &Result, const RewriteRule &Rule)
 Returns the Case of Rule that was selected in the match result. More...
Expected< SmallVector< Transformation, 1 > > clang::tooling::detail::translateEdits (const ast_matchers::MatchFinder::MatchResult &Result, llvm::ArrayRef< ASTEdit > Edits)
 Attempts to translate Edits, which are in terms of AST nodes bound in the match Result, into Transformations, which are in terms of the source code text. More...

Detailed Description

Defines a library supporting the concise specification of clang-based source-to-source transformations.

Definition in file Transformer.h.