// Copyright 2017 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // // Handles the rewriting of base::Value::GetType() to base::Value::type(). #ifndef TOOLS_CLANG_VALUE_CLEANUP_VALUE_REWRITER_H_ #define TOOLS_CLANG_VALUE_CLEANUP_VALUE_REWRITER_H_ #include <set> #include <string> #include <utility> #include <vector> #include "clang/ASTMatchers/ASTMatchFinder.h" #include "clang/Tooling/Refactoring.h" class ValueRewriter { public: explicit ValueRewriter(std::set<clang::tooling::Replacement>* replacements); void RegisterMatchers(clang::ast_matchers::MatchFinder* match_finder); private: class ListValueCallback : public clang::ast_matchers::MatchFinder::MatchCallback { public: ListValueCallback(std::string method, std::string replacement, std::set<clang::tooling::Replacement>* replacements); void run( const clang::ast_matchers::MatchFinder::MatchResult& result) override; const std::string& method() const { return method_; } const std::string& replacement() const { return replacement_; } private: const std::string method_; const std::string replacement_; std::set<clang::tooling::Replacement>* const replacements_; }; std::vector<ListValueCallback> list_value_callbacks_; }; #endif // TOOLS_CLANG_VALUE_CLEANUP_VALUE_REWRITER_H_