clang 20.0.0git
Mutations.h
Go to the documentation of this file.
1//===- Mutations.h - mutate syntax trees --------------------*- C++ ---*-=====//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8// Defines high-level APIs for transforming syntax trees and producing the
9// corresponding textual replacements.
10//===----------------------------------------------------------------------===//
11#ifndef LLVM_CLANG_TOOLING_SYNTAX_MUTATIONS_H
12#define LLVM_CLANG_TOOLING_SYNTAX_MUTATIONS_H
13
18
19namespace clang {
20namespace syntax {
21
22/// Computes textual replacements required to mimic the tree modifications made
23/// to the syntax tree.
24tooling::Replacements computeReplacements(const TokenBufferTokenManager &TBTM,
25 const syntax::TranslationUnit &TU);
26
27/// Removes a statement or replaces it with an empty statement where one is
28/// required syntactically. E.g., in the following example:
29/// if (cond) { foo(); } else bar();
30/// One can remove `foo();` completely and to remove `bar();` we would need to
31/// replace it with an empty statement.
32/// EXPECTS: S->canModify() == true
33void removeStatement(syntax::Arena &A, TokenBufferTokenManager &TBTM,
34 syntax::Statement *S);
35
36} // namespace syntax
37} // namespace clang
38
39#endif
void removeStatement(syntax::Arena &A, TokenBufferTokenManager &TBTM, syntax::Statement *S)
Removes a statement or replaces it with an empty statement where one is required syntactically.
Definition: Mutations.cpp:79
tooling::Replacements computeReplacements(const TokenBufferTokenManager &TBTM, const syntax::TranslationUnit &TU)
Computes textual replacements required to mimic the tree modifications made to the syntax tree.
The JSON file list parser is used to communicate input to InstallAPI.